Minibots
Minibots are small two-wheeled robots that Team 2367 students build, wire and program from scratch. You write their behaviour in Python, drive them with a gamepad, and do all of it from this browser — no clone, no terminal, no Python install.
What a Minibot is made of
Three pieces, and it helps to know which one you are working on before you open a tool.
-
The robot. A classic ESP32 running
MicroPython, two motors driven through
ESCs, a battery, and an optional small OLED. Its behaviour lives in one file
you write:
main.py. - The dongle. An ESP32-S3 on a USB stick. It plugs into the driver's laptop and appears as a gamepad-style USB device, which is what lets a web page talk to it at all.
- The driver station. A page on this site. It reads your gamepad, and sends what you do with it to the dongle.
The dongle and the robots talk over ESP-NOW, a connectionless Wi-Fi radio mode. Both ends must be on the same Wi-Fi channel — 6 unless someone changed it — and getting that wrong is the single most common reason a robot never shows up. So the path from your thumb to a wheel is: gamepad → this browser → dongle over USB → radio → robot.
The robot stops its motors on its own if that radio link goes quiet for more
than a quarter second. Nothing you write in main.py can switch
that off.
Start here
- Building the robot Coming soon The chassis, the drivetrain, and what goes where.
- Wiring the robot Coming soon Battery, ESCs, motors and the ESP32 — which pin goes to what, and the mistakes that cost a board.
- Driving the robot Use the driver station: pair a gamepad to a robot, enable it, and stop it.
-
Programming the robot
Write
main.py: the loop, the full list of things you can ask the robot for, and the traps.
The three tools
All three are pages on this site, and all three are in the sidebar. Each one needs different hardware plugged in.
| Tool | What it does | What you need plugged in |
|---|---|---|
| Driver station | Pair gamepads to robots, enable the field, cap the speed, trim the motor neutrals. This is the page used at competition. | Dongle on USB, a gamepad, robots powered on |
| Robot code |
Read main.py off a robot, edit it, push it back. Also
installs MicroPython on a brand-new board.
|
The robot on USB — not the dongle |
| Dongle firmware | Write the current dongle build. Needed after a protocol change, or on a dongle that has never been flashed. | Dongle on USB, held in its bootloader |