Skip to content

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

CircuitFromToWire GaugeNotes
Main battery branch18650 battery pack BAT+ / BAT-ESP32 battery port BAT+ / BAT-MX1.25 2P or factory battery wireUse 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 branch18650 BAT+Motor branch switch → 5 V boost IN+22-24 AWG red wireThis line powers the motors and headlights; it is recommended to add an independent switch only on the motor branch.
Common groundBattery BAT- / boost OUT- / DualEye GNDXIAO GND / front DRV8833 GND / rear DRV8833 GND / WS2812B GND20-22 AWG black wire or small distribution boardAll GND must share a common ground; otherwise UART, motor, and lighting control signals will become unstable.
Boost to motor driver5 V boost OUT+ / OUT-Front DRV8833 VM/GND; rear DRV8833 VM/GND20-22 AWG red/black main wires, short branches to both driver boardsThe 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 UARTDualEye LCD1 Pin10 UART_TXD / Pin9 UART_RXD / GNDXIAO D7(GPIO20) RX / D6(GPIO21) TX / GND26-28 AWG signal wires + SH1.0 14P adapter cableCross-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 power5 V boost OUT+ / GND or USB-CXIAO 5V/VIN / GND24-26 AWG red/black wiresOnly 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 boardsXIAO D2(GPIO4)/D3(GPIO5)/D4(GPIO6)/D5(GPIO7)Both DRV8833 boards: AIN1/AIN2/BIN1/BIN2 wired in parallel by name26-28 AWG signal wires, can be fanned out via a small distribution boardD2-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 motorsAOUT1/AOUT2; BOUT1/BOUT2Left-front N20; right-front N20Motor’s own wires or 24-26 AWGIf a wheel spins backward when driving forward, swap the two motor wires for that wheel.
Rear DRV8833 to rear motorsAOUT1/AOUT2; BOUT1/BOUT2Left-rear N20; right-rear N20Motor’s own wires or 24-26 AWGRear-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 conversionESP32 free data GPIOAHCT/HCT level shifter A input26-28 AWG signal wireLevel-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 headlights5 V boost OUT+ / GND; level-shifter Y outputWS2812B 5V / GND / DINPower: 24-26 AWG; data: 26-28 AWGY 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 %.
BuzzerESP32 SPK+ / SPK-4 Ω 3 W or 8 Ω 1-2 W buzzerFine, flexible twisted pairDo not connect either buzzer terminal to GND; connect directly across the speaker interface on the main control board.

Recommended Wire Lengths

Wire TypeRecommended LengthUsage
20-22 AWG red wire~1.0-1.2 mBattery positive, motor branch, boost to front/rear DRV8833 main power bus
20-22 AWG black wire~1.0-1.2 mCommon ground bus, motor branch negative, front/rear driver board GND
26-28 AWG multi-color signal wire~1.5-2.0 mUART, XIAO to DRV8833, WS2812B data and level conversion
Fine flexible twisted pair~0.3 mSmall speaker wires, keep away from motor wires
Heat shrink tubing1-5 mm mixed sizesInsulate 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 PinSignalConnection/Usage
LCD1-Board SH1.0 14PIN Pin 10UART_TXDConnect to chassis control board RX; DualEye sends AR1 motion/light commands
LCD1-Board SH1.0 14PIN Pin 9UART_RXDConnect 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 6GNDConnect to chassis control board GND; must share the same ground
LCD1-Board SH1.0 14PIN Pin 53V3Only 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.