EVDrive Overview
EVDrive is a dedicated educational robotics and motion-control platform designed to teach hands-on robotics, embedded systems, and coding.
Instead of relying on fragile breadboards or loose jumper wires prone to vibrating loose during runs and transport, EVDrive consolidates core vehicle electronics onto a single, reliable platform.
All surface-mount components (resistors, MOSFETs, capacitors, fuse clips, LDO regulator, and indicator LEDs) are pre-assembled. Microcontroller, stepper drivers, and sensors connect directly via labeled sockets, secure screw terminals, and keyed JST connectors.
Why We Built This
When learning robotics and building wheeled mobile robots, students and makers encounter common hurdles:
- Solderless breadboards and loose jumper wires introduce contact resistance and frequently disconnect under motor vibration.
- Maintaining a true straight-line trajectory across varying floor conditions requires reliable closed-loop feedback from both gyroscopic and wheel encoder sensors.
- Standard AS5600 magnetic encoders share a hardcoded I2C address (
0x36), typically requiring an external multiplexer to read both wheels on a single microcontroller.
EVDrive addresses these challenges directly, providing a clean electrical foundation so learners can focus on core engineering concepts: closed-loop control, algorithm design, sensor integration, and coding.
Board Walkthrough
1. ESP32-S3 DevKit Socket
Dual female headers sized for a standard ESP32-S3 DevKitC-1. The ESP32 handles motion math, sensor polling, and high-frequency step pulse generation for both drive motors.
2. Dual Stepper Driver Sockets & Motor Screw Terminals
- Two standard StepStick sockets configured for TMC2209 silent stepper drivers, providing smooth microstepping for left and right NEMA 17 motors.
- Dedicated 4-pin screw terminals (
J11andJ12) clamp motor leads securely. Unlike friction-fit pin headers, screw terminals prevent motor phase wires from pulling loose during acceleration, braking, or transport. - Large onboard decoupling capacitors absorb motor inductive spikes.
3. Dual Independent I2C Buses & Keyed JST Encoder Connectors
Two dedicated 4-pin keyed JST connectors (J1 and J2) route to independent hardware I2C buses on the ESP32:
- Bus 1 (
Wireon GPIO 1 / 2): Connects to the onboard MPU-6050 gyro socket and Encoder A. - Bus 2 (
Wire1on GPIO 41 / 42): Connects directly to Encoder B. - Designed to mate directly with our custom AS5600 encoder breakout boards via keyed JST harnesses, eliminating fragile pin connections and preventing accidental reverse polarity.
4. Onboard MPU-6050 Gyro Header
A dedicated center socket for an MPU-6050 6-axis gyro/accelerometer module:
- Positioned along the vehicle's centerline to measure yaw rate.
- Enables closed-loop heading correction in software to detect and correct steering drift.
5. Onboard Battery Voltage Monitoring
A built-in 100kΩ / 10kΩ voltage divider (11:1 ratio) connected to GPIO13 allows the ESP32 to monitor motor battery voltage in real time to detect battery discharge.
6. Hardware Wireless Switch & Status LED
The board includes a physical SPDT switch on GPIO15 and an indicator LED on GPIO16. This gives you direct manual hardware control over wireless connectivity—letting you toggle between wireless telemetry/programming and an isolated offline mode whenever you want to test autonomous, standalone code without network interference.
7. Power Protection & Regulation
- MOSFET Reverse Polarity Protection: High-current P-channel MOSFETs (AO4407A) protect both the 12V motor rail and 5V logic rail against accidental reverse connections.
- Dual Fuses: Small fuses on the bottom side of the PCB protect the board against many mistakes or accidents (5A fuse
F1) and logic power (2A fuseF2). - AP2112K-3.3 LDO Regulator: A dedicated 600mA low-dropout regulator supplies clean 3.3V power to the microcontroller and sensors.
- Power Rail Status LEDs: Dedicated diagnostic LEDs for 12V (
D2), 5V (D4), and 3.3V (D3), plus a programmable user LED onGPIO40.
8. Controls & Expansion
- Start & Reset Buttons: Tactile buttons for hardware reset and run initiation (
GPIO7). - 10-Pin GPIO Breakout (
J6): Auxiliary pins (GPIO21, 35, 36, 37, 38, 45, 47, 48plus 3.3V and GND) for limit switches, optical sensors, or auxiliary mechanisms.
Closed-Loop Control Architecture
The board is configured to support dual-sensor feedback:
-
Heading Correction (MPU-6050 Gyro): Yaw rate and heading integration allow software to detect angular drift in real time and apply differential motor speed adjustments to keep the chassis tracking straight.
-
Distance & Rollout Tracking (AS5600 Encoders): High-resolution magnetic encoders on the wheel hubs measure rotational travel directly, helping detect tire slip and enabling accurate rollout calibration.
Next Steps
- Check out the Chassis 3D Models & CAD to download official STEP and STL files for 3D printing your chassis.
- Check out the Bill of Materials for links and specs for all the parts you need to finish the car.
- Check the Pinout & Headers doc to see the exact ESP32 pin definitions and connector layouts.
- Follow Assembly & Wiring to put the board and chassis together.
- Learn about mounting hardware and add-ons in Customization & Hardware.
- Read Firmware Setup for the starter code and snippets.
- Read Calibration & Tuning to get your gyro correction and stopping distance dialed in.
- Learn about wireless telemetry and offline mode in Wireless & Bluetooth Setup.
- Explore Web Bluetooth & Telemetry to build a wireless dashboard.