Skip to content

Commit ae781ed

Browse files
authored
Keyestudio EX8874 updates
Keyestudio EX8874 updates
2 parents c3ebe5f + ea72f04 commit ae781ed

2 files changed

Lines changed: 30 additions & 25 deletions

File tree

docs/reference/.nav.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ nav:
66
- TrackManager: trackmanager
77
- Command Station Internal Architecture: command-station-arch.md
88
- Throttle Writers Guide: throttle-writers-guide.md
9+
- EXRAIL Commands: ./products/ex-commandstation/exrail/command-list.md
910
- Legacy Command Reference: legacy-command-reference.md
1011
- EX-CSB1: ex-csb1
1112
- ESP32: esp32

docs/reference/esp32/esp32-keyestudio.md

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ hide:
2626

2727
## Incorrect IOREF voltage
2828

29-
The IOREF pin is labeled a `5V` on the board.
29+
![ACEBOTT IOREF](/_static/images/esp32/esp32-keyestudio-ioref.png){ width=15% align=left }
3030

31-
![ACEBOTT IOREF](/_static/images/esp32/esp32-keyestudio-ioref.png){ width=15% }
31+
The pin in the IOREF location is 5V and labeled `5V` on the board.
3232

33-
The IOREF voltage will not be correct for this board combination.
33+
EX8874 requires IOREF voltage at 3.3V when used with ESP32 or other 3.3V microprocessors.
3434

35-
<span style="color:red">Warning:</span> Without modification the ADC inputs will receive up to 5V when the IOREF pin is 5V which will damage the board and likely destroy it. ***As such it is vital that the modifications below are made.***
35+
<span style="color:red">Warning:</span> Without modification the ADC inputs and I2C pins will receive up to 5V when the IOREF pin is 5V which will damage the ESP32 board and likely destroy it. ***As such it is vital that the modifications below are made.***
3636

3737
- Option A: The prefered work-around to the incorrect 5V pin is to modify the EX8874, using the `3V3 IOREF Override` solder pad on the EX8874.
3838

@@ -53,18 +53,18 @@ Note:
5353
Add the following lines to your `config.h` and remove any existing `#define MOTOR_SHIELD_TYPE ...` line.
5454

5555
```cpp
56-
#define EX8874_KEYES_ESP32 F("EX8874_KEYES_ESP32"),\
57-
new MotorDriver(25/* 3*/, 19/*12*/, UNUSED_PIN, 13/*9*/, 32/*A0*/, 1.52, 5000, 36 /*A4*/), \
58-
new MotorDriver(23/*11*/, 18/*13*/, UNUSED_PIN, 12/*8*/, 33/*A1*/, 1.52, 5000, 39 /*A5*/)
59-
#define MOTOR_SHIELD_TYPE EX8874_KEYES_ESP32
56+
#define EX8874_KEYES_ESP32 F("EX8874_KEYES_ESP32"), \
57+
new MotorDriver(25/* 3*/, 19/*12*/, UNUSED_PIN, 13/*9*/, 32/*A0*/, 1.52, 5000, 36 /*A4*/), \
58+
new MotorDriver(23/*11*/, 18/*13*/, UNUSED_PIN, 12/*8*/, 33/*A1*/, 1.52, 5000, 39 /*A5*/)
59+
#define MOTOR_SHIELD_TYPE EX8874_KEYES_ESP32
6060
```
6161
6262
- When one EX8874 motor shield is used with Keyestudio IOT ESP32 PLUS Development Board, the default EX8874 pins are used.
6363
64-
|output|Current<br/>Sense|PWM<br/>Enable|DIR<br/>Signal|Brake|Fault|Notes|
64+
|<br/>output|Current<br/>Sense|*PWM*<br/>Enable|*DIR*<br/>Signal|<br/>Brake|<br/>Fault|<br/>Notes|
6565
|:--:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
66-
|A|32 pA0|25 p3|19 p12|9 p9|36 pA4||
67-
|B|33 pA1|23 p11|18 p13|8 p8|39 pA8||
66+
|A|32 pA0|25 p3|19 p12|13 p9|36 pA4|Default pins|
67+
|B|33 pA1|23 p11|18 p13|12 p8|39 pA5||
6868
6969
### Single EX8874 Checklist
7070
@@ -87,35 +87,39 @@ Add the following lines to your `config.h` and remove any existing `#define MOTO
8787
8888
b. Cut the “Regulator Enable” trace on the bottom of the board
8989
90-
b. Use of solder pad for 8 alternate pins (not the fault pins)
90+
c. Use of solder pads for 8 alternate pins (not the **Fault** pins)
9191
92-
c. \^ for Fault pins, the pins on the ESP32 board labeled `io2` and `io4` will need to be bent about 90 degrees so that jumpers can be put on them. `io2` will need to be jumpered to `A4` on the EX8874. `io4` will need to be jumpered to `A5` on the EX8874.
92+
d. Jumpers are required to connect **Fault** pins on the top EX8874 to `io2` and `io4` pins:
93+
&nbsp; &nbsp; \- The pins on the ESP32 board labeled `io2` and `io4` can be bent about 45 degrees to accommodate jumpers.
94+
&nbsp; &nbsp; \- Bend out pins A4 and A5 on the top EX8874.
95+
&nbsp; &nbsp; \- Jumper `io2` to `A4` on the top EX8874.
96+
&nbsp; &nbsp; \- Jumper `io4` to `A5` on the top EX8874.
9397
9498
See the [Stacking two motor shields on the EX8874 page](../../products/ex-motorshield8874/ex-motorshield8874.md#steps-to-stack) for details on how to alter the board for this combination.
9599
96100
### First EX8874
97101
98-
|output|Current<br/>Sense|PWM<br/>Enable|DIR<br/>Signal|Brake|Fault|Notes|
102+
|<br/>output|Current<br/>Sense|*PWM*<br/>Enable|*DIR*<br/>Signal|<br/>Brake|<br/>Fault|<br/>Notes|
99103
|:--:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
100-
|A|32 pA0|25 p3|19 p12|9 p9|36 pA4|Default pins|
101-
|B|33 pA1|23 p11|18 p13|8 p8|39 pA8||
104+
|A|32 pA0|25 p3|19 p12|13 p9|36 pA4|Default pins|
105+
|B|33 pA1|23 p11|18 p13|12 p8|39 pA5||
102106
103107
### Second EX8874
104108
105-
|output|Current<br/>Sense|PWM<br/>Enable|DIR<br/>Signal|Brake|Fault|Notes|
109+
|<br/>output|Current<br/>Sense|*PWM*<br/>Enable|*DIR*<br/>Signal|<br/>Brake|<br/><span style="color:red">Fault|<br/>Notes|
106110
|:--:|:-----:|:-----:|:-----:|:-----:|:-----:|:-------------:|
107-
|C|34 pA2|26 p2|5 p10|14 p7|<span style="color:green">2 </span><span style="color:red">pA4</span>|use alternates for 8 pins|
108-
|D|35 pA3|16 p5|17 p4|27 p6|<span style="color:green">4 </span><span style="color:red">pA5</span>|\^ <span style="color:red">Bend</span> & <span style="color:green">jumper</span>. See notes|
111+
|C|34 pA2|26 p2|5 p10|14 p7|<span style="color:red">2 </span><span style="color:red">pA4</span>|use alternates for 8 pins|
112+
|D|35 pA3|16 p5|17 p4|27 p6|<span style="color:red">4 </span><span style="color:red">pA5</span>|<span style="color:red">Bend</span> & <span style="color:red">jumper</span>. See notes|
109113
110114
- A custom motor define will be needed in `config.h`
111115
112116
```cpp
113-
#define EX8874X2_KEYES_ESP32 F("EX8874X2_KEYES_ESP32"), \
114-
new MotorDriver(25/* 3*/, 19/*12*/, UNUSED_PIN, 13/*9*/, 32/*A0*/, 1.52, 5000, 36/*A4*/), \
115-
new MotorDriver(23/*11*/, 18/*13*/, UNUSED_PIN, 12/*8*/, 33/*A1*/, 1.52, 5000, 39/*A5*/), \
116-
new MotorDriver(26/* 2*/, 5/*10*/, UNUSED_PIN, 14/*7*/, 34/*A4*/, 1.52, 5000, 2 /*A4*/), \
117-
new MotorDriver(16/* 5*/, 17/* 4*/, UNUSED_PIN, 27/*6*/, 35/*A5*/, 1.52, 5000, 4 /*A5*/)`
118-
#define MOTOR_SHIELD_TYPE EX8874X2_KEYES_ESP32`
117+
#define EX8874X2_KEYES_ESP32 F("EX8874X2_KEYES_ESP32"), \
118+
new MotorDriver(25/* 3*/, 19/*12*/, UNUSED_PIN, 13/*9*/, 32/*A0*/, 1.52, 5000, 36/*A4*/), \
119+
new MotorDriver(23/*11*/, 18/*13*/, UNUSED_PIN, 12/*8*/, 33/*A1*/, 1.52, 5000, 39/*A5*/), \
120+
new MotorDriver(26/* 2*/, 5/*10*/, UNUSED_PIN, 14/*7*/, 34/*A4*/, 1.52, 5000, 2 /*A4*/), \
121+
new MotorDriver(16/* 5*/, 17/* 4*/, UNUSED_PIN, 27/*6*/, 35/*A5*/, 1.52, 5000, 4 /*A5*/)
122+
#define MOTOR_SHIELD_TYPE EX8874X2_KEYES_ESP32
119123
```
120124

121125
### Stacked EX8874 Checklist

0 commit comments

Comments
 (0)