EVDrive Overview
EVDrive is a dedicated electronics board designed for Science Olympiad Electric Vehicle (EV).
Instead of dealing with a messy breadboard, loose jumper wires that vibrate out mid-run, or spending weeks laying out your own custom PCB, you can drop this board into your chassis, plug in your modules, and start testing.
All the small surface-mount parts (resistors, MOSFETs, capacitors, fuse clips, LDO, LEDs) come pre-soldered. You just plug your microcontroller, stepper drivers, and sensors into the labeled female headers.
Why we built this
If you've built a Science Olympiad EV car before, you know how annoying the electrical side can be:
- Breadboards add electrical noise and jumper wires come loose right before an official run.
- Making a car drive in a dead-straight line without closed-loop feedback is almost impossible because of slight differences in wheel diameter, motor steps, or floor traction.
- AS5600 magnetic encoders share the same hardcoded I2C address (
0x36), making it tricky to wire two of them to one microcontroller without adding an extra multiplexer board.
We made EVDrive to get the wiring out of the way so you can focus on what actually scores points: dialing in your target distance, tuning straight-line correction, and getting consistent times.
Board Walkthrough
Here is a quick breakdown of what is on the board and what each part does:
1. ESP32-S3 DevKit Socket
Dual female headers sized specifically for a standard ESP32-S3 DevKitC-1. The ESP32 handles motion math, reads the sensors, and generates high-frequency step pulses for the stepper drivers.
2. Dual Stepper Driver Sockets (TMC2209)
Two standard StepStick socket headers wired for TMC2209 stepper drivers:
- Smooth, quiet microstepping for two independent NEMA 17 stepper motors (left and right wheels).
- Large 1000µF decoupling capacitors on the motor power rail to absorb motor inductive spikes.
3. Dual Independent I2C Buses (Encoder A & Encoder B)
Two separate 4-pin I2C headers (J1 and J2) routed to independent hardware I2C buses on the ESP32:
- Bus 1 (
Wireon GPIO 1 / 2): Connects to the MPU-6050 gyro and Encoder A. - Bus 2 (
Wire1on GPIO 41 / 42): Connects directly to Encoder B.
4. Onboard MPU-6050 Gyro Header
A dedicated socket for an MPU-6050 6-axis gyro/accelerometer module.
- Mounted directly in line with the chassis to track vehicle yaw.
- Lets your code run real-time heading correction to automatically steer back straight if the car drifts left or right.
5. Onboard Battery Voltage Monitoring
A built-in 100kΩ / 10kΩ voltage divider (11:1 ratio) connected to GPIO13 lets the ESP32 read the motor battery voltage in real time so you can track battery sag and maintain consistent run speeds.
6. Hardware Wireless Switch & Status LED
Competition rules strictly prohibit active wireless communication (WiFi and Bluetooth) during impound and competition runs. The board includes a physical hardware switch connected to GPIO15 and a dedicated indicator LED (GPIO16) so you can verify that wireless is disabled before impound.
7. Power Protection & Regulators
- MOSFET reverse polarity protection: High-current P-channel MOSFETs (AO4407A) protect both the 12V motor rail and 5V logic rail if power leads are accidentally reversed.
- Dual Fuses: Independent fuses for motor power (5A fuse
F1) and logic power (2A fuseF2). - AP2112K-3.3 LDO Regulator: A dedicated 600mA low-dropout regulator supplies clean, ripple-free 3.3V power to the ESP32 and sensors.
- Power LEDs: Onboard LEDs for 12V, 5V, 3.3V, and a programmable user status LED on
GPIO40.
8. Controls & Expansion
- Start & Reset buttons: Tactile buttons for hardware reset and run triggering (
GPIO7). - 10-Pin GPIO Breakout (
J6): Extra pins (GPIO21, 35, 36, 37, 38, 45, 47, 48plus 3.3V and GND) broken out for limit switches, bumpers, or custom sensors.
How it works on the track
The board is laid out specifically for closed-loop control:
-
Straight-line gyro correction: Cars almost never roll perfectly straight on their own. By reading yaw rate from the MPU-6050 in your main loop, your code can detect when the car starts veering off line and slightly adjust the relative speed of the left and right motors in real time to hold the track line.
-
Accurate distance calibration: With AS5600 magnetic encoders on your drive wheels, you can calibrate exact distance per wheel rotation and detect if a tire slipped on acceleration or braking.
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 rules and mounting hardware in Modifications & Rules.
- Read Firmware Setup for the starter code and snippets.
- Read Calibration & Tuning to get your gyro correction and stopping distance dialed in.
- Learn about Bluetooth pit tuning and cutoff rules in Wireless Setup & Rules.
- Explore Web Bluetooth & Telemetry to build a wireless dashboard.