PlayBot
A desktop robot that turns a Playdate handheld into a small wheeled robot, with the Playdate acting as its brain and a charging dock for the console.
- Home
- Open source
- Works with AI
- arduino
- 3D printable
Suggested by Robotheca, created by @GuybrushTreep (opens in a new tab), from github.com/GuybrushTreep/PlayBot (opens in a new tab). Pinned to commit 376147d (opens in a new tab).
- Hardware license
- MIT (opens in a new tab)
- Software license
- MIT (opens in a new tab)
- Commercial use
- Allowed
Photo and 3D model

3D preview converted from github.com/GuybrushTreep/PlayBot at 376147d, under MIT. View the original files from GitHub (2.6 MB) (opens in a new tab)
What it can do
Written by Robotheca from the project's documents.
- Acts as a desktop robot for the Playdate handheld, which serves as its brain and sends commands over serial.
- Drives two motors with encoders and performs rotations and movements with PID control.
- Plays animations stored on an SD card, coordinating servo head movements with motors.
- Detects obstacles and edges using two ToF distance sensors and two IR sensors, and reports collisions.
- Senses ambient light and reports darkness changes to the Playdate.
- Reports battery level, voltage and charging state, and can charge the Playdate while running.
- Optional HuskyLens camera for AI vision is mentioned as compatible, not as a built-in feature.
- Battery life is stated as about 45 minutes of autonomous operation per charge.
Works with AI
Found by Robotheca in the project's files at commit 376147d, its robot.yaml and Robotheca's notes on its documents. Never guessed; Robotheca doesn't run the code.
“Optional HuskyLens camera for AI vision is mentioned as compatible, not as a built-in feature.”
Robotheca's notes: What it can do
Bill of materials
23 parts23 of 23 parts shown
| # | Component | Quantity | Est. price | Supplier |
|---|---|---|---|---|
| 1 | PH-2AWB | 2 | – | LCSC |
| 2 | 10uF | 1 | – | LCSC |
| 3 | 22uF | 2 | – | LCSC |
| 4 | 4.7uF | 2 | – | LCSC |
| 5 | 100nF | 1 | – | LCSC |
| 6 | 1uF | 1 | – | LCSC |
| 7 | SMAJ5.0A_C2925443 | 1 | – | LCSC |
| 8 | NSR0320MW2T1G | 1 | – | LCSC |
| 9 | 1uH | 1 | – | LCSC |
| 10 | XL-1608SURC-06 | 1 | – | LCSC |
| 11 | SZYY0603YG | 1 | – | LCSC |
| 12 | 1MMHOLE_PTH | 4 | – | – |
| 13 | SI2301CDS-T1-GE3 | 1 | – | LCSC |
| 14 | 732kΩ | 1 | – | LCSC |
| 15 | 100kΩ | 1 | – | LCSC |
| 16 | 2kΩ | 2 | – | LCSC |
| 17 | 1kΩ | 3 | – | LCSC |
| 18 | 10kΩ | 2 | – | LCSC |
| 19 | 100k | 1 | – | LCSC |
| 20 | BM05B-SRSS-TBT(LF)(SN) | 1 | – | LCSC |
| 21 | TPS61023DRLR | 1 | – | LCSC |
| 22 | MCP73831T-2ATI/OT | 1 | – | LCSC |
| 23 | MAX17048G+T10 | 1 | – | LCSC |
23 of 23 parts have no price in the source, so there is no parts total. Read from hardware/PCB/BOM_LiPo-Charging-Fuel-Gauge-with-5V-Boost-Converter_2024-11-11.csv at the pinned commit.
Build guide
The guide appears here as you scroll.
Guide by @GuybrushTreep (README.md), under MIT.
More guides
Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- Teensy 4.1 microcontroller acting as a USB host hub for the Playdate.
- DRV8835 dual motor driver carrier driving two N20 6V motors with encoders.
- Two TOF10120 time-of-flight distance sensors.
- Two ITR20001 IR sensors.
- TEMT6000 ambient light sensor.
- SG90 servo for head movement.
- WS2812 LEDs controlled by firmware.
- MAX1704X fuel gauge for battery monitoring.
- Custom power board with MCP73831 LiPo charger, TPS61023 5V boost converter and MAX17048 fuel gauge.
- 1-cell LiPo battery (15000mAh 504050 listed in the hardware list).
- Playdate's built-in accelerometer and microphone are used.
- Micro SD card holding animation files.
Connections
- The Playdate connects to the Teensy over USB serial, and the robot uses a USERIAL connector on the main board via a PH-to-SH cable.
- The power board's output feeds the main board and the DRV8835 through a JST PH power harness.
- Motor outputs M1 and M2 come from the DRV8835; four other wires carry encoder feedback (ENC1, ENC2).
- The two ToF sensors share an I2C bus through a 2-channel multiplexer, so their RX/TX wires can be cut.
- The servo uses a JST SH connector with brown for GND, red for V+ and orange for signal.
- The main board has low-profile headers so the Teensy fits inside the case.
- The author recommends cutting the Teensy's USB power trace so the battery-powered board is protected.