Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Increased generic IO pins from 32 to 50 #725

Merged
merged 3 commits into from
Aug 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions PINOUTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,24 @@ This wiring can be completely modified by the user.
| DOUT29 | SOFT_SPI_SDO or TMC_SPI_SDO or STEPPER_DIGIPOT_SDO |
| DOUT30 | SOFT_SPI_CLK or TMC_SPI_CLK or STEPPER_DIGIPOT_CLK |
| DOUT31 | ACTIVITY_LED |
| DOUT32 | |
| DOUT33 | |
| DOUT34 | |
| DOUT35 | |
| DOUT36 | |
| DOUT37 | |
| DOUT38 | |
| DOUT39 | |
| DOUT40 | |
| DOUT41 | |
| DOUT42 | |
| DOUT43 | |
| DOUT44 | |
| DOUT45 | |
| DOUT46 | |
| DOUT47 | |
| DOUT48 | |
| DOUT49 | |
| DIN0 | ENC0_PULSE |
| DIN1 | ENC1_PULSE |
| DIN2 | ENC2_PULSE |
Expand Down Expand Up @@ -68,3 +86,22 @@ This wiring can be completely modified by the user.
| DIN29 | SOFT_SPI_SDI or TMC_SPI_SDI or STEPPER_DIGIPOT_SDI |
| DIN30 | SOFT_I2C_CLK |
| DIN31 | SOFT_I2C_DATA |
| DOUT32 | |
| DOUT33 | |
| DOUT34 | |
| DOUT35 | |
| DOUT36 | |
| DOUT37 | |
| DOUT38 | |
| DOUT39 | |
| DOUT40 | |
| DOUT41 | |
| DOUT42 | |
| DOUT43 | |
| DOUT44 | |
| DOUT45 | |
| DOUT46 | |
| DOUT47 | |
| DOUT48 | |
| DOUT49 | |

10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ You can also reach me at µCNC discord channel

Version 1.10 added the following new major features.
- added support SPI bulk transfers. This improves SPI transmission speeds while keeping the whole firmware responsive, opening the door for new modules and upgrades to µCNC using SPI driven hardware like TFT displays.
- increased general purpose IO pins from 32 outputs/32 inputs to 50 outputs/50 inputs
- added support for a second SPI port

Version 1.9 added the following new major features.

Expand Down Expand Up @@ -213,8 +215,8 @@ TODO List of G-Codes in µCNC future releases:
- 1 door open switch (interrupt driven)
- 16 pwm outputs
- 16 analog inputs
- 32* generic digital inputs
- 32* generic digital outputs
- 50* generic digital inputs
- 50* generic digital outputs
- 6 servo control outputs (50Hz-PPM)

* see notes
Expand All @@ -225,8 +227,8 @@ NOTES:

- _6 steppers + 2 extra that can be configured to mirror 2 of the other 6 for dual drive axis_
- _6 limit switch (one per axis) plus 3 optional second axis X, Y or Z support dual endstops_
- _Generic inputs support interrupts on the first 8 pins. Prior to version 1.4 the number of generic inputs was limited to 16._
- _Prior to version 1.4 the number of generic outputs was limited to 16._
- _Generic inputs support interrupts on the first 8 pins. Prior to version 1.4 the number of generic inputs was limited to 16. Prior to version 1.10 the number of generic inputs was limited to 32._
- _Prior to version 1.4 the number of generic outputs was limited to 16. Prior to version 1.8 the number of generic outputs was limited to 32._

µCNC with a configuration similar to Grbl is be able to keep up to 30KHz step rate for a 3 axis machine on an Arduino Uno at 16Mhz. (the stated rate depends on the length of the segments too, since many short length segments don't allow full speed to be achieved). For this specific type of use (like in laser engraving) a 16-bit version of stepping algorithm is possible pushing the theoretical step rate limit to 40KHz on a single UNO board.

Expand Down
Binary file modified docs/mcumap_gen.xlsx
Binary file not shown.
252 changes: 252 additions & 0 deletions uCNC/src/cnc_hal_config_helper.h
Original file line number Diff line number Diff line change
Expand Up @@ -960,6 +960,132 @@ extern "C"
#endif
#define DIO78 UNDEF_PIN
#endif
#ifndef DOUT32
#define DOUT32 UNDEF_PIN
#ifdef DIO79
#undef DIO79
#endif
#define DIO79 UNDEF_PIN
#endif
#ifndef DOUT33
#define DOUT33 UNDEF_PIN
#ifdef DIO80
#undef DIO80
#endif
#define DIO80 UNDEF_PIN
#endif
#ifndef DOUT34
#define DOUT34 UNDEF_PIN
#ifdef DIO81
#undef DIO81
#endif
#define DIO81 UNDEF_PIN
#endif
#ifndef DOUT35
#define DOUT35 UNDEF_PIN
#ifdef DIO82
#undef DIO82
#endif
#define DIO82 UNDEF_PIN
#endif
#ifndef DOUT36
#define DOUT36 UNDEF_PIN
#ifdef DIO83
#undef DIO83
#endif
#define DIO83 UNDEF_PIN
#endif
#ifndef DOUT37
#define DOUT37 UNDEF_PIN
#ifdef DIO84
#undef DIO84
#endif
#define DIO84 UNDEF_PIN
#endif
#ifndef DOUT38
#define DOUT38 UNDEF_PIN
#ifdef DIO85
#undef DIO85
#endif
#define DIO85 UNDEF_PIN
#endif
#ifndef DOUT39
#define DOUT39 UNDEF_PIN
#ifdef DIO86
#undef DIO86
#endif
#define DIO86 UNDEF_PIN
#endif
#ifndef DOUT40
#define DOUT40 UNDEF_PIN
#ifdef DIO87
#undef DIO87
#endif
#define DIO87 UNDEF_PIN
#endif
#ifndef DOUT41
#define DOUT41 UNDEF_PIN
#ifdef DIO88
#undef DIO88
#endif
#define DIO88 UNDEF_PIN
#endif
#ifndef DOUT42
#define DOUT42 UNDEF_PIN
#ifdef DIO89
#undef DIO89
#endif
#define DIO89 UNDEF_PIN
#endif
#ifndef DOUT43
#define DOUT43 UNDEF_PIN
#ifdef DIO90
#undef DIO90
#endif
#define DIO90 UNDEF_PIN
#endif
#ifndef DOUT44
#define DOUT44 UNDEF_PIN
#ifdef DIO91
#undef DIO91
#endif
#define DIO91 UNDEF_PIN
#endif
#ifndef DOUT45
#define DOUT45 UNDEF_PIN
#ifdef DIO92
#undef DIO92
#endif
#define DIO92 UNDEF_PIN
#endif
#ifndef DOUT46
#define DOUT46 UNDEF_PIN
#ifdef DIO93
#undef DIO93
#endif
#define DIO93 UNDEF_PIN
#endif
#ifndef DOUT47
#define DOUT47 UNDEF_PIN
#ifdef DIO94
#undef DIO94
#endif
#define DIO94 UNDEF_PIN
#endif
#ifndef DOUT48
#define DOUT48 UNDEF_PIN
#ifdef DIO95
#undef DIO95
#endif
#define DIO95 UNDEF_PIN
#endif
#ifndef DOUT49
#define DOUT49 UNDEF_PIN
#ifdef DIO96
#undef DIO96
#endif
#define DIO96 UNDEF_PIN
#endif
#ifndef LIMIT_X
#define LIMIT_X UNDEF_PIN
#ifdef DIO100
Expand Down Expand Up @@ -1394,6 +1520,132 @@ extern "C"
#endif
#define DIO161 UNDEF_PIN
#endif
#ifndef DIN32
#define DIN32 UNDEF_PIN
#ifdef DIO162
#undef DIO162
#endif
#define DIO162 UNDEF_PIN
#endif
#ifndef DIN33
#define DIN33 UNDEF_PIN
#ifdef DIO163
#undef DIO163
#endif
#define DIO163 UNDEF_PIN
#endif
#ifndef DIN34
#define DIN34 UNDEF_PIN
#ifdef DIO164
#undef DIO164
#endif
#define DIO164 UNDEF_PIN
#endif
#ifndef DIN35
#define DIN35 UNDEF_PIN
#ifdef DIO165
#undef DIO165
#endif
#define DIO165 UNDEF_PIN
#endif
#ifndef DIN36
#define DIN36 UNDEF_PIN
#ifdef DIO166
#undef DIO166
#endif
#define DIO166 UNDEF_PIN
#endif
#ifndef DIN37
#define DIN37 UNDEF_PIN
#ifdef DIO167
#undef DIO167
#endif
#define DIO167 UNDEF_PIN
#endif
#ifndef DIN38
#define DIN38 UNDEF_PIN
#ifdef DIO168
#undef DIO168
#endif
#define DIO168 UNDEF_PIN
#endif
#ifndef DIN39
#define DIN39 UNDEF_PIN
#ifdef DIO169
#undef DIO169
#endif
#define DIO169 UNDEF_PIN
#endif
#ifndef DIN40
#define DIN40 UNDEF_PIN
#ifdef DIO170
#undef DIO170
#endif
#define DIO170 UNDEF_PIN
#endif
#ifndef DIN41
#define DIN41 UNDEF_PIN
#ifdef DIO171
#undef DIO171
#endif
#define DIO171 UNDEF_PIN
#endif
#ifndef DIN42
#define DIN42 UNDEF_PIN
#ifdef DIO172
#undef DIO172
#endif
#define DIO172 UNDEF_PIN
#endif
#ifndef DIN43
#define DIN43 UNDEF_PIN
#ifdef DIO173
#undef DIO173
#endif
#define DIO173 UNDEF_PIN
#endif
#ifndef DIN44
#define DIN44 UNDEF_PIN
#ifdef DIO174
#undef DIO174
#endif
#define DIO174 UNDEF_PIN
#endif
#ifndef DIN45
#define DIN45 UNDEF_PIN
#ifdef DIO175
#undef DIO175
#endif
#define DIO175 UNDEF_PIN
#endif
#ifndef DIN46
#define DIN46 UNDEF_PIN
#ifdef DIO176
#undef DIO176
#endif
#define DIO176 UNDEF_PIN
#endif
#ifndef DIN47
#define DIN47 UNDEF_PIN
#ifdef DIO177
#undef DIO177
#endif
#define DIO177 UNDEF_PIN
#endif
#ifndef DIN48
#define DIN48 UNDEF_PIN
#ifdef DIO178
#undef DIO178
#endif
#define DIO178 UNDEF_PIN
#endif
#ifndef DIN49
#define DIN49 UNDEF_PIN
#ifdef DIO179
#undef DIO179
#endif
#define DIO179 UNDEF_PIN
#endif
#ifndef TX
#define TX UNDEF_PIN
#ifdef DIO200
Expand Down
Loading
Loading