Skip to content

roboworks/atlas-driver

100×100 mm ESP32 robot controller: four motor channels, encoder inputs, an OLED menu and screw terminals for everything.

v3.0.1esp324-layer · 100×100 mm$21.60 BOM1h 30m buildTAPR-OHL-1.0updated 20 days ago
Loading standoff.stl
standoff.stl

A deliberately boring, deliberately repairable robot controller. Every connection is a screw terminal, every part is through-hole or SOIC, and the only surface-mount work is a driver you can replace with a socket if you are nervous.

Design goals

  1. A classroom can build it. No reflow, no 0402, no BGA.
  2. A wire can be moved without a soldering iron. Screw terminals, not JSTs.
  3. The failure modes are visible. The OLED shows rail voltages, encoder counts, and which half-bridge tripped.

Channels

  • 4× DC motor half-bridges (L293DD), 600 mA continuous each
  • 2× quadrature encoder inputs with pull-ups
  • 1× iBUS / SBUS radio input on J14
  • I²C header for the display and anything else

Power

7–12 V into J9. The LM7805 is doing the honest, wasteful thing; at 12 V and 400 mA of logic load it dissipates about 2.8 W and gets hot enough to matter. The buck variant fork replaces it with an MP1584 module and is the better choice if you are running from 3S.

Assembly order

Lowest components first, as always:

  1. Resistors and the SOIC driver
  2. Ceramics, then the electrolytics
  3. Tactile switches and the slide switch
  4. Screw terminals — all ten, get them flush
  5. Headers for the ESP32 devkit and the OLED
  6. LM7805 last, bent over with an M3 screw into the board

Known errata

Rev 3.0.1 fixes the swapped ENC2_ChA/ChB silkscreen. The DRC still reports two unrouted connections on /ENC2_ChB; they are intentional — that net is jumpered on the top side so the encoder polarity can be flipped without recutting a trace.