Project · EasyKids Robotics Competition 2026 · Chiang Mai

Miles’s first sumo bot

A remote-controlled, two-wheel sumo robot built around an Arduino Uno. This is our engineering notebook: the exact parts and wiring, the tests that passed, the mistakes we made, and the final control issue where community advice would be welcome.

Current status

Motor hardware passed

An automatic six-step test drove the left motor forward/reverse, the right motor forward/reverse, and both motors together in both directions.

Radio signal passed

Both receiver channels produced stable servo pulses with no genuine zero-signal readings in a 1,100-line capture.

Integration still intermittent

When the radio program controls the complete drivetrain, the right side has been inconsistent. The latest work is isolating receiver mixing from loose connections and power sag.

Why document a robot that is not perfect yet? Because the failed paths and decisive tests are the useful part. This page separates what we proved from what we still suspect.

What we built

HotRC transmitter  ~~ radio ~~>  F-06A receiver
                                      │ CH1 + CH2 servo pulses
                                      ▼
                                  Arduino Uno
                                      │ D5–D8 direction signals
                                      ▼
4 × AA motor pack  ──────────────>  L298N driver  ─────>  2 × TT motors
       motor power                     ▲
                                       │ shared GND

Laptop USB (bench testing) ─────────> Arduino + receiver logic power

The Uno reads radio pulses and makes driving decisions. The L298N is the muscle: it switches the separate motor supply through two H-bridges. The Uno must never power the motors directly.

Confirmed specifications

PartConfirmed detailJob
ControllerArduino Uno-compatible board; CH340 USB serial at /dev/cu.usbserial-1110Reads radio and controls direction
RadioHotRC F-06A six-channel PWM receiver and matching pistol-grip transmitterCH1 steering; CH2 throttle
Motor driverL298N dual H-bridge; ENA and ENB jumper caps installedDrives two brushed motors
Motors2 × two-wire TT geared DC motors, rated approximately 3–6 VDifferential drive
Motor supply4 × matching AA cells in series (about 6 V fresh)Feeds L298N motor input
Logic supplyUSB during bench testingPowers Uno and receiver
Radio calibrationCH1 ≈ 1230–1729 µs; CH2 ≈ 1030–1877 µs; neutral ≈ 1480/1450 µsDefines dead zones and endpoints

Verified wiring map

Disconnect the motor battery before moving any wire.

FromToPurpose
F-06A CH1 signal (S)Uno D2Steering pulse
F-06A CH2 signal (S)Uno D3Throttle pulse
F-06A +Uno 5VReceiver power
F-06A Uno GNDReceiver ground
Uno D5L298N IN1Left motor direction A
Uno D6L298N IN2Left motor direction B
Uno D7L298N IN3Right motor direction A
Uno D8L298N IN4Right motor direction B
Uno GNDL298N GNDCritical common reference
AA pack positiveL298N 12V/VINMotor supply positive
AA pack negativeL298N GNDMotor supply negative
L298N OUT1 + OUT2Left TT motorMotor A
L298N OUT3 + OUT4Right TT motorMotor B
L298N header:  ENA | IN1 | IN2 | IN3 | IN4 | ENB
                     jumper  D5    D6    D7    D8   jumper

Motor wires belong on OUT1–OUT4, never on Arduino pins. Reversing the two wires of one motor safely reverses its physical direction. ENA and ENB remain jumpered for full speed.

Power lessons we learned

Do not use the 12.6 V pack here

We initially considered a three-cell 12.6 V pack. It exceeds the competition’s 12 V limit when fully charged and is a poor match for 3–6 V TT motors.

Use separate logic and motor paths

USB can power the Uno and receiver while four AAs power the L298N. Both supplies may be connected during testing, but Arduino GND and L298N GND must be joined.

Battery options considered during the sumo robot build
Power options considered during the build. Mixing old/new cells or different chemistries is unsafe and causes unreliable voltage under load.
  • Arduino GPIO pins provide instructions, not motor current.
  • The L298N loses voltage internally, so motor-terminal voltage is lower than battery voltage.
  • LEDs can stay illuminated while weak cells collapse when both motors start.
  • Solder and insulate motor leads; loose hook connections caused intermittent behavior.

Diagnostic timeline

  1. USB discovery: macOS detected the Uno clone as CH340 USB Serial at /dev/cu.usbserial-1110.
  2. Compilation: early errors came from pasting fragments inside loop(). A complete sketch with setup(), loop(), and motor helpers compiled successfully.
  3. Receiver identification: the F-06A outputs servo-style PWM, not separate forward/back/left/right digital signals.
  4. Six-step motor test: IN1, IN2, IN3, IN4, both A directions, and both B directions all produced movement—six of six.
  5. Radio capture: more than 1,100 readings showed stable CH1 and CH2 pulses and revealed that the original 1400/1600 thresholds did not match the real endpoints.
  6. Control-model correction: a pistol-grip radio needs steering/throttle differential mixing, not one receiver channel assigned directly to each motor.
  7. Remaining symptom: receiver-driven tests became intermittent, particularly on the right motor, even though the automatic output test had proved that channel could operate.

Where we would value community help

The evidence points toward an intermittent connection, motor-supply sag, or a timing/ failsafe integration issue—not a completely dead motor or H-bridge. If you have built a similar Uno + F-06A + L298N robot, these are the most useful next checks:

  • Measure AA-pack and L298N output voltage while both motors are commanded.
  • Continuity-test D7→IN3, D8→IN4, ENB, OUT3 and OUT4 while gently moving each connector.
  • Confirm whether sequential pulseIn() reads are reliable enough for both simultaneous F-06A channels, or replace them with interrupt-based capture.
  • Recommend a more efficient dual brushed-motor driver for 3–6 V TT motors, if locally available.
  • Suggest safe differential-mixing and failsafe values for CH1 1230–1729 µs and CH2 1030–1877 µs.

Please share advice with a reproducible test: what to disconnect, what to measure, the expected result, and what each possible result means. That style of help moved this build forward far more than swapping several things at once.

Version 2 priorities

Better driver

Use a modern low-voltage dual H-bridge with less voltage drop than the L298N.

Permanent wiring

Solder motor leads, add strain relief, shorten jumpers and label both ends.

Measured power

Choose cells from measured stall current and voltage-under-load data, not nominal voltage alone.

Credits and links

  • Builder: Miles Michelini — competition story
  • Family and build support: Mike, Wendy and LaoYe
  • Event: EasyKids Robotics Competition 2026, Chiang Mai · August 2, 2026
  • Purpose: Share the real process so another young builder can diagnose one variable at a time.