Drawbot – let's hack something cute
9 days ago
- #hardware hacking
- #DIY robotics
- #reverse engineering
- The author embarked on a hardware hacking project targeting a drawing robot toy that uses pre-defined barcode cards to select images to draw.
- Initial exploration revealed the robot's barcode system uses 8-bit codes, allowing for 256 possible images, but only 100 were provided with the toy.
- Disassembly of the robot was challenging due to recessed screws, requiring creative use of power tools to open the device.
- Fuzzing the barcode reader uncovered hidden images not included in the card deck, such as 'Take a bath!'.
- The robot's hardware includes an ARM Cortex-M0 MCU and two SPI NOR flash chips (64MB and 128MB), with the latter suspected to store drawing data.
- Barcode analysis revealed the system uses input multiplexing to read the 8-bit codes from the cards via optical sensors.
- A Raspberry Pi was used to emulate barcode inputs, enabling the enumeration of all possible images, including hidden ones not on the provided cards.
- Flash memory analysis identified a structured format for storing drawing instructions, which were successfully extracted and converted to SVG format.
- The author developed tools to modify the robot's drawing data, successfully replacing an existing image with a custom one by directly editing the flash memory.
- Future work could include automating the image replacement process, decoding and replacing audio files, or redesigning the robot's body.