Skip to content

Assembly Guide

Step-by-step hardware assembly instructions for the 3we robot platform.

Basic SKUStandard SKU
Time2-3 hours4-5 hours
DifficultyIntermediate (soldering required)Intermediate-Advanced
Cost~¥680 / $95~¥2,200 / $300
PrerequisitesBasic soldering, multimeter use+ Linux CLI, micro-SD flashing

  1. LiPo batteries can cause fire if short-circuited or punctured. Never leave charging unattended.
  2. Soldering iron temperatures exceed 300°C. Use a silicone mat and keep the tip clean.
  3. E-stop wiring is safety-critical. Double-check before first power-on (Step 7).
  4. Motors under load can draw 2A+ per channel. Do not exceed DRV8833 ratings (1.5A continuous per channel).
  5. Disconnect the battery XT30 connector before any wiring changes.

  • Phillips screwdriver (PH1, PH2)
  • Hex key set (M2, M2.5, M3)
  • Soldering iron (for motor wires)
  • Wire strippers
  • Multimeter
  • 3D printer (for custom brackets, optional)

Before starting, verify you have all components from the Bill of Materials.


  1. Inspect the aluminum chassis for burrs or bent edges
  2. Install M2.5 brass standoffs (x4) for PCB mounting
  3. Install M3 threaded inserts (x4) for payload mounting plate
  4. Verify all mounting holes align with the 20mm grid pattern

Motor orientation is critical for correct mecanum movement:

FRONT
[FL ╲] [╱ FR]
┌──────────────┐
│ │
│ CHASSIS │
│ │
└──────────────┘
[╱ RL] [RR ╲]
REAR
  1. Mount motors in their brackets using M2 screws
  2. Secure brackets to chassis corners with M3x8mm bolts
  3. Route motor wires through internal cable channels
  4. Solder JST-PH connectors to motor leads:
    • Red — Motor+ (positive terminal)
    • Black — Motor- (negative terminal)
    • Green — Encoder A
    • White — Encoder B
    • Red (thin) — Encoder VCC (3.3V)
    • Black (thin) — Encoder GND

Critical: Mecanum roller direction matters!

  • Front-Left & Rear-Right: Left-handed rollers (╲ pattern when viewed from front)
  • Front-Right & Rear-Left: Right-handed rollers (╱ pattern when viewed from front)
  1. Press wheel onto motor D-shaft
  2. Secure with M3 set screw (use threadlocker)
  3. Verify wheel spins freely without wobble
  4. Check ground clearance >= 25mm
  1. Place ESP32-S3 and motor drivers on standoffs
  2. Secure with M2.5 nylon screws (to avoid shorts)
  3. Connect motor cables to DRV8833 (match FL/FR/RL/RR labels)
  4. Connect encoder cables to ESP32-S3 GPIO headers
  5. Verify no cables are pinched or strained
  1. Mount at geometric center of chassis, as flat as possible
  2. Secure with M2 screws or double-sided tape (vibration-resistant)
  3. Connect I2C cable (4-pin: VCC, GND, SDA, SCL)
  4. Note mounting orientation (arrow on PCB = forward/X-axis)
  1. Mount on top using the provided bracket
  2. Position centrally with clear 360-degree line of sight
  3. Connect via USB-UART adapter to Pi 5
  1. Mount on front-facing bracket
  2. Connect via USB3 to Pi 5
  3. Ensure 160-degree field of view is unobstructed
  1. Mount 3S LiPo battery centrally (lowest possible for CG)
  2. Verify BMS LED indicates correct voltage
  3. Secure with velcro strap or 3D-printed retention clip
  4. Route XT30 cable to power distribution
  5. DO NOT connect yet — wait until final inspection

This is a safety-critical step. Double-check all connections.

E-Stop Button (NC contact)
Pin 1 ──→ Safety Relay Coil (+)
Pin 2 ──→ Safety Relay Coil (-)
Safety Relay NO Contact:
COM ──→ Battery VBAT
NO ──→ DRV8833 Motor Power Input
  1. Mount E-stop button on chassis top (accessible, labeled)
  2. Wire NC contact to safety relay coil terminals
  3. Wire relay NO contact in series with motor power line
  4. Verify: When button is UP (normal), relay energized, motors powered
  5. Verify: When button is DOWN (pressed), relay de-energized, motors cut
FromToInterface
Pi 5ESP32-S3USB-C (micro-ROS)
ESP32-S3DRV8833 x2GPIO (PWM + DIR)
DRV8833JGA25-370 MotorsDirect wire
Pi 5LD06 LiDARUSB-UART
Pi 5CameraUSB3
ESP32-S3BNO055I2C
E-StopSafety RelayNC contact
Safety RelayMotor powerInline

Before powering on for the first time:

  • All motor wires connected and secure
  • Battery polarity correct
  • E-stop button wired correctly (NC)
  • No loose wires or exposed conductors
  • No cables interfering with wheel rotation
  • All screws tightened
  • IMU mounted flat and centered
  • LiDAR has clear 360-degree line of sight
  1. Press E-stop button DOWN (motors locked out)
  2. Connect battery XT30 connector
  3. Verify power LED illuminates
  4. Check ESP32 serial output for boot messages
  5. Verify all sensor readings are reasonable
  6. Release E-stop button (twist to reset)
  7. Test motor movement with low speed commands

SymptomLikely CauseFix
No power LEDBattery disconnected or BMS trippedCheck XT30, verify cell voltage
Motors don’t spinE-stop active or relay wiringCheck relay state, verify NC wiring
Wrong movement directionMotor wires swappedSwap IN1/IN2 wires for affected motor
Robot curves when going straightWheel type swappedVerify roller direction (Step 3)
IMU driftBad mounting or calibrationRe-mount flat, run calibration routine

Once powered on and confirmed working:

  1. Flash firmware — See Firmware Guide for ESP-IDF build and flash
  2. Basic SKU: Use WiFi teleop for initial control
  3. Standard SKU: Install ROS2 on Pi 5, then follow Getting Started