Skip to content

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).

Photo and 3D model

PlayBot, photo from its repository
Photo:@GuybrushTreep (opens in a new tab)MITsource file (opens in a new tab)

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.

Bill of materials

23 parts

23 of 23 parts shown

Parts list
#ComponentQuantityEst. priceSupplier
1PH-2AWB2–LCSC
210uF1–LCSC
322uF2–LCSC
44.7uF2–LCSC
5100nF1–LCSC
61uF1–LCSC
7SMAJ5.0A_C29254431–LCSC
8NSR0320MW2T1G1–LCSC
91uH1–LCSC
10XL-1608SURC-061–LCSC
11SZYY0603YG1–LCSC
121MMHOLE_PTH4––
13SI2301CDS-T1-GE31–LCSC
14732kΩ1–LCSC
15100kΩ1–LCSC
162kΩ2–LCSC
171kΩ3–LCSC
1810kΩ2–LCSC
19100k1–LCSC
20BM05B-SRSS-TBT(LF)(SN)1–LCSC
21TPS61023DRLR1–LCSC
22MCP73831T-2ATI/OT1–LCSC
23MAX17048G+T101–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.