|
| 1 | +--- |
| 2 | +hide: |
| 3 | + - toc |
| 4 | +--- |
| 5 | + |
| 6 | +# Keyestudio + EX8874 |
| 7 | + |
| 8 | +!!! note "Keyestudio ESP32 Beta Testing" |
| 9 | + |
| 10 | + Please note that the Keyestudio ESP32 board is currently in Beta testing, so this information may change at any time. If using this board, we highly recommend joining our [Discord server](/support/discord.md) and request access to the `#beta-testing` channel. |
| 11 | + |
| 12 | +{ width=30% align=right } |
| 13 | + |
| 14 | +## Keyestudio IOT ESP32 PLUS Development Board |
| 15 | + |
| 16 | +- Limited testing has been done with this board. |
| 17 | +- Please report any anomalies when using the pins in the suggested custom motor defines. |
| 18 | +- A custom motor define is required when using the Keyestudio ESP32 board, as the pins are in different locations vs. the WeMos ESP32. |
| 19 | +- Do not be fooled by the V pin on the I2C header block as it is 5V, and there is no onboard level shifting of the SDA SCL pins. |
| 20 | + |
| 21 | +## Keyestudio IOT ESP32 PLUS vs. WeMos R1 D32 |
| 22 | + |
| 23 | +- Fewer modifications may be required. |
| 24 | +- WiFi does not need the resistor. |
| 25 | +- Pin locations A0, A1 can be used for current sensing. |
| 26 | +- Default pins can be used on EX8874. |
| 27 | + |
| 28 | +{ width=20% align=right } |
| 29 | +{ width=15% align=right } |
| 30 | + |
| 31 | +## Incorrect IOREF voltage |
| 32 | + |
| 33 | +- The IOREF pin location has the 5V pin. If the pin on the EX8874 is bent, the IOREF could be jumpered to 3V3 pin on the EX8874. |
| 34 | +- The preferable work-around to the incorrect 5V pin is to modify the EX8874, using the **3V3 IOREF Override** solder pad on the EX8874. If voltage is not correct, the ADC inputs will receive up to 5V when the IOREF pin is 5V. |
| 35 | + |
| 36 | +{ width=30% align=right } |
| 37 | + |
| 38 | +- When using the 3V3 IOREF Override, bend the IOREF pin or confirm that the trace connecting the pin is completely cut. |
| 39 | + |
| 40 | +--- |
| 41 | + |
| 42 | +## One EX8874 |
| 43 | + |
| 44 | +- Keyestudio ESP32 motor defines are not included in MotorDrivers.h |
| 45 | +- Do not edit MotorDrivers.h; a custom motor define should be added in config.h |
| 46 | +- Note how the ESP32 GPIO pin numbers are used, and the Arduino pin locations are shown/commented. |
| 47 | + |
| 48 | +```cpp |
| 49 | + #define EX8874_KEYES_ESP32 F("EX8874_KEYES_ESP32"),\ |
| 50 | + new MotorDriver(25/* 3*/, 19/*12*/, UNUSED_PIN, 13/*9*/, 32/*A0*/, 1.52, 5000, 36 /*A4*/), \ |
| 51 | + new MotorDriver(23/*11*/, 18/*13*/, UNUSED_PIN, 12/*8*/, 33/*A1*/, 1.52, 5000, 39 /*A5*/) |
| 52 | + #define MOTOR_SHIELD_TYPE EX8874_KEYES_ESP32 |
| 53 | +``` |
| 54 | +
|
| 55 | +- When one EX8874 motor shield is used with Keyestudio IOT ESP32 PLUS, the default EX8874 pins are used. |
| 56 | + |
| 57 | + { width=80% } |
| 58 | +
|
| 59 | +### Single EX8874 Checklist |
| 60 | +
|
| 61 | +- [ ] Cover the barrel connector on Keyestudio IOT ESP32 PLUS Development Board, as VIN power will be provided by EX8874 |
| 62 | +- [ ] IOREF Override set to 3v3 |
| 63 | +- [ ] Confirm that IOREF pin is bent or trace is cut |
| 64 | +- [ ] Add the custom motor define - 4 lines in config.h |
| 65 | +
|
| 66 | +--- |
| 67 | +
|
| 68 | +## Stacked EX8874 |
| 69 | +
|
| 70 | +- Reminder: No modifications are needed when installing EX8874 for 4 track outputs on EX-CSB1. |
| 71 | +- **IOREF:** The IOREF override is also needed for the top shield. |
| 72 | +- **VIN:** Refer to instructions on [cutting the VIN trace and disabling the regulator](/products/ex-motorshield8874/ex-motorshield8874.md/#steps-to-stack) for the top shield. |
| 73 | +
|
| 74 | +- Stacking motor shields on Keystudio ESP32 requires |
| 75 | + a. use of solder pad for 8 alternate pins |
| 76 | + b. for Fault pins, bend A4 and A5 pins and jumper to the GPIO headers |
| 77 | +
|
| 78 | + { width=80% } |
| 79 | +
|
| 80 | +- A custom motor define will be needed in config.h |
| 81 | +
|
| 82 | +```cpp |
| 83 | + #define EX8874X2_KEYES_ESP32 F("EX8874X2_KEYES_ESP32"), \ |
| 84 | + new MotorDriver(25/* 3*/, 19/*12*/, UNUSED_PIN, 13/*9*/, 32/*A0*/, 1.52, 5000, 36/*A4*/), \ |
| 85 | + new MotorDriver(23/*11*/, 18/*13*/, UNUSED_PIN, 12/*8*/, 33/*A1*/, 1.52, 5000, 39/*A5*/), \ |
| 86 | + new MotorDriver(26/* 2*/, 5/*10*/, UNUSED_PIN, 14/*7*/, 34/*A4*/, 1.52, 5000, 2 /*A4*/), \ |
| 87 | + new MotorDriver(16/* 5*/, 17/* 4*/, UNUSED_PIN, 27/*6*/, 35/*A5*/, 1.52, 5000, 4 /*A5*/) |
| 88 | + #define MOTOR_SHIELD_TYPE EX8874X2_KEYES_ESP32 |
| 89 | +``` |
| 90 | + |
| 91 | +### Stacked EX8874 Checklist |
| 92 | + |
| 93 | +- [ ] Cover the barrel connector on Keyestudio IOT ESP32 PLUS Development Board, as VIN power will be provided by one EX8874 |
| 94 | +- [ ] IOREF Override set to 3v3 on both EX8874 boards |
| 95 | +- [ ] Confirm that IOREF pin is bent or trace is cut |
| 96 | +- [ ] VIN trace cut and regulator disabled on top EX8874 |
| 97 | +- [ ] Alternate pins enabled via solder pads |
| 98 | +- [ ] Jumpers added for GPIO 2 and 4 |
| 99 | +- [ ] Add the custom motor define - 6 lines in config.h |
| 100 | + |
| 101 | +==TODO== |
0 commit comments