Project files
8 KB
Machine-translated by Robotheca from the original in Chinese (opens in a new tab). License: MIT (opens in a new tab).
Atlas Rover Mk.1 V1.0 Wiring Instructions
Power Topology
The positive terminal of a single 18650 battery is split into two branches. It is recommended to make a short Y-shaped cable or use a small distribution board to separate the main control branch from the motor branch:
- Main control branch: Connect the 18650 to the ESP32 main control board's battery interface, paying attention to the MX1.25 polarity.
- Motor branch: Route the 18650 through the motor branch switch into a 5 V high-current boost module. After boosting, connect it to the VM pins of the front and rear DRV8833 modules and provide 5 V to the WS2812B.
All ground lines must share a common ground:
- ESP32 GND
- XIAO chassis control board GND
- Front and rear DRV8833 GND
- Boost module GND
- Battery negative terminal
Do not power the motors from the ESP32's 3.3 V output. Do not connect the 5 V boost output to the main control board's battery interface.
Wiring Worksheet
| Circuit | From | To | Wire Gauge | Notes |
|---|---|---|---|---|
| Main battery branch | 18650 battery pack BAT+ / BAT- | ESP32 battery port BAT+ / BAT- | MX1.25 2P or factory battery wire | Use a multimeter to confirm polarity first. If making a Y-split, the main control branch still connects to the battery port; do not connect the 5 V boost output to the battery port. |
| Motor power branch | 18650 BAT+ | Motor branch switch → 5 V boost IN+ | 22-24 AWG red wire | This line powers the motors and headlights; it is recommended to add an independent switch only on the motor branch. |
| Common ground | Battery BAT- / boost OUT- / DualEye GND | XIAO GND / front DRV8833 GND / rear DRV8833 GND / WS2812B GND | 20-22 AWG black wire or small distribution board | All GND must share a common ground; otherwise UART, motor, and lighting control signals will become unstable. |
| Boost to motor driver | 5 V boost OUT+ / OUT- | Front DRV8833 VM/GND; rear DRV8833 VM/GND | 20-22 AWG red/black main wires, short branches to both driver boards | The four motors have high startup current; VM only connects to the motor power source. Do not power the motors from ESP32/DualEye 3.3 V. |
| DualEye to XIAO UART | DualEye LCD1 Pin10 UART_TXD / Pin9 UART_RXD / GND | XIAO D7(GPIO20) RX / D6(GPIO21) TX / GND | 26-28 AWG signal wires + SH1.0 14P adapter cable | Cross-connect TX/RX; GND must share a common ground. ESP32-S3 UART is 3.3 V TTL; do not connect RS232. If the chassis board TX is 5 V, perform voltage division or level shifting before feeding into DualEye RX. |
| XIAO logic power | 5 V boost OUT+ / GND or USB-C | XIAO 5V/VIN / GND | 24-26 AWG red/black wires | Only use 5 V when you have confirmed that the XIAO interface allows it; during debugging you may power via USB-C first. The motor VM does not draw power from the DualEye board. |
| XIAO to front/rear DRV8833 boards | XIAO D2(GPIO4)/D3(GPIO5)/D4(GPIO6)/D5(GPIO7) | Both DRV8833 boards: AIN1/AIN2/BIN1/BIN2 wired in parallel by name | 26-28 AWG signal wires, can be fanned out via a small distribution board | D2-D5 drive both front and rear DRV8833 boards. The current firmware still uses left/right differential control and does not implement four-wheel independent closed-loop control. |
| Front DRV8833 to front motors | AOUT1/AOUT2; BOUT1/BOUT2 | Left-front N20; right-front N20 | Motor’s own wires or 24-26 AWG | If a wheel spins backward when driving forward, swap the two motor wires for that wheel. |
| Rear DRV8833 to rear motors | AOUT1/AOUT2; BOUT1/BOUT2 | Left-rear N20; right-rear N20 | Motor’s own wires or 24-26 AWG | Rear-wheel direction must match the same-side front wheel; front and rear on the same side are bound together: left-front + left-rear form the left logical side, right-front + right-rear form the right logical side. |
| WS2812B data conversion | ESP32 free data GPIO | AHCT/HCT level shifter A input | 26-28 AWG signal wire | Level-shifter VCC to 5 V, GND to common ground. If using 74AHCT1G125, enable OE per module instructions. Direct short-wire connections are only suitable for temporary testing. |
| WS2812B headlights | 5 V boost OUT+ / GND; level-shifter Y output | WS2812B 5V / GND / DIN | Power: 24-26 AWG; data: 26-28 AWG | Y output goes through a 330 Ω resistor to DIN; place a 470-1000 µF capacitor across the lamp board’s 5 V/GND. Limit brightness to 20-40 %. |
| Buzzer | ESP32 SPK+ / SPK- | 4 Ω 3 W or 8 Ω 1-2 W buzzer | Fine, flexible twisted pair | Do not connect either buzzer terminal to GND; connect directly across the speaker interface on the main control board. |
Recommended Wire Lengths
| Wire Type | Recommended Length | Usage |
|---|---|---|
| 20-22 AWG red wire | ~1.0-1.2 m | Battery positive, motor branch, boost to front/rear DRV8833 main power bus |
| 20-22 AWG black wire | ~1.0-1.2 m | Common ground bus, motor branch negative, front/rear driver board GND |
| 26-28 AWG multi-color signal wire | ~1.5-2.0 m | UART, XIAO to DRV8833, WS2812B data and level conversion |
| Fine flexible twisted pair | ~0.3 m | Small speaker wires, keep away from motor wires |
| Heat shrink tubing | 1-5 mm mixed sizes | Insulate every solder joint, wire passing through brass, and LED strip backside |
Recommended Motor Control Wiring
The additional board for motor control is the DRV8833. The ESP32 cannot directly drive the N20 motor; it can only output control signals. The DRV8833 is the power driver board responsible for supplying power and reversing the motor.
The PCA9685 is an optional expansion board for chassis-side control signals, not a required power driver board. The current Mk.1 main path does not use the PCA9685.
The XIAO chassis board connects to two DRV8833 boards:
- XIAO D2 / GPIO4 → Front and rear DRV8833 AIN1
- XIAO D3 / GPIO5 → Front and rear DRV8833 AIN2
- XIAO D4 / GPIO6 → Front and rear DRV8833 BIN1
- XIAO D5 / GPIO7 → Front and rear DRV8833 BIN2
Front DRV8833 connects to the front wheel motors:
- AOUT1/AOUT2 → Left front N20 motor
- BOUT1/BOUT2 → Right front N20 motor
Rear DRV8833 connects to the rear wheel motors:
- AOUT1/AOUT2 → Left rear N20 motor
- BOUT1/BOUT2 → Right rear N20 motor
Power connections for both DRV8833 boards:
- VM → Motor 5 V output from the boost module
- GND → Common ground
If the DRV8833 module has SLEEP, nSLEEP, STBY, or EN pins, connect them to 3V3 or pull them high according to the module's instructions; otherwise, the motor may not rotate.
Optional Dual-Board UART Voice Control
If using a ready-made wheeled/tracked chassis later or adding a second chassis control board, DualEye is recommended to serve only as a voice input and HMI, without directly executing motor closed-loop control. According to the official Waveshare interface table, the exposed UART of DualEye is located at the LCD1-Board SH1.0 14PIN interface. During construction, first use an SH1.0 14P to Dupont/IDC transition wire to lead out the signals, then connect them to the chassis board.
| DualEye Interface Pin | Signal | Connection/Usage |
|---|---|---|
| LCD1-Board SH1.0 14PIN Pin 10 | UART_TXD | Connect to chassis control board RX; DualEye sends AR1 motion/light commands |
| LCD1-Board SH1.0 14PIN Pin 9 | UART_RXD | Connect to chassis control board TX; if the chassis board TX is 5 V TTL, use voltage division or level shifting first |
| LCD1-Board SH1.0 14PIN Pin 2 or Pin 6 | GND | Connect to chassis control board GND; must share the same ground |
| LCD1-Board SH1.0 14PIN Pin 5 | 3V3 | Only for 3.3 V logic reference or low-power peripheral power supply; do not power the chassis board/motor |
Dual-board connection uses 3.3 V TTL UART:
- DualEye Pin10 UART_TXD -> XIAO D7 / GPIO20 / RX
- DualEye Pin9 UART_RXD <- XIAO D6 / GPIO21 / TX
- DualEye Pin2/Pin6 GND <-> XIAO GND
If the chassis board requires logic power, it can be powered from the 5 V boost branch to the chassis board's 5V/VIN, but you must first confirm that the chassis board's interface allows 5 V. Motor power should still be connected to the chassis board's motor power input, DRV8833 VM, or the motor power input of a ready-made chassis; do not draw power from the DualEye board, and do not let motor current pass through DualEye. If the chassis board TX is 5 V TTL, voltage division or level shifting must be added before entering DualEye RX.
It is recommended to use a one-line, one-command text protocol for serial commands, uniformly prefixed with AR1,, for example: AR1,MOVE,F,60,800, AR1,TURN,L,30,350, AR1,STOP.
The chassis board must discard all serial content without the AR1, prefix to avoid DualEye startup logs, debug prints, or garbled data accidentally triggering the motors; each motion command must include a duration_ms, and the chassis board should automatically stop the motors at the end time.
Recommended External Car Lights/RGB
The main control board does not integrate car lights or decorative RGB. To achieve the front light/status light effects shown in the images, an external WS2812B LED strip or ring must be connected.
The WS2812B requires 5 V, GND, and 1 ESP32 data GPIO. The PCA9685 cannot generate the single-wire data protocol for WS2812B, so do not connect the LED strip data line to the PCA9685.
For the official version, it is recommended to add a level shifter such as SN74AHCT1G125, 74AHCT125, or 74HCT14 (AHCT/HCT series): ESP32 GPIO -> A input, Y output -> 330 Ω resistor -> WS2812B DIN. The level shifter VCC connects to 5 V, and GND shares the ground.
Before finalizing the pinout, reserve a free GPIO for the WS2812B data input.
If using multiple LEDs, it is recommended to add a 330 Ω resistor in series with the data line and a 470–1000 µF capacitor between 5 V and GND.
The maximum current for 8 WS2812B LEDs at full white brightness is approximately 0.48 A. For desktop rovers, it is recommended to limit brightness to 20–40%.
Audio
The Mk.1 uses the ESP32 mainboard’s speaker interface and on-board audio path directly. Unless you explicitly intend to bypass the on-board audio, no external MAX98357A is required.
Polarity and Safety
- Before first-time battery connection, polarity of the battery interface must be confirmed.
- Before first-time connection of the boost module, set it to ~5.0 V unloaded, then connect the DRV8833 and WS2812B.
- A switch must be added to the motor branch.
- Use 18650 cells with built-in protection or add an external 1S protection board.
- Battery and motor wires must be insulated when routed near the brass chassis.
- When testing motors for the first time, lift the rover off the table.
Files by @davidwang960707-gpu, at commit 675d6f2, read from GitHub in your browser. Hardware license: MIT; software license: MIT. Robotheca doesn't review code: read it before running it.