# PyEilik: a client for the Eilik robot's USB protocol

> PyEilik implements control of an Eilik desk robot over a recovered USB serial protocol. Its C library and Python wrapper move four servos, read and update the 128×64 display, and play video with synchronized movement. The protocol reference documents 125000-baud framing, command IDs, checksums and acknowledgements.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-06
- Original resource: <https://github.com/aklto/PyEilik>
- Primary source: <https://github.com/aklto/PyEilik/blob/b1bf7ea6f29b939cddee66ffadd498ad32d02aa0/README.md>
- Catalog page: <https://awesomerea.org/resources/pyeilik-case/>
- Record JSON: <https://awesomerea.org/resources/pyeilik-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/pyeilik-case/index.md)

## Requirements & limits

- **Prerequisites:** macOS and Python 3.9 or newer are required; the serial link uses an Apple-specific ioctl for 125000 baud.
- **Prerequisites:** Video playback requires ffmpeg on PATH; PNG display requires the image extra.
- **Limits:** The robot's speaker cannot receive audio through the documented protocol.
- **License:** MIT license.

## Primary sources

1. <https://github.com/aklto/PyEilik/blob/b1bf7ea6f29b939cddee66ffadd498ad32d02aa0/README.md>
2. <https://github.com/aklto/PyEilik/blob/b1bf7ea6f29b939cddee66ffadd498ad32d02aa0/PROTOCOL.md>

## More in Protocols

- [libfprint-goodixtls: a reconstructed Goodix GXFP5187 fingerprint driver](https://awesomerea.org/resources/libfprint-goodixtls-case/index.md) · Case study
- [RazerStream: reconstructing Stream Controller device control](https://awesomerea.org/resources/razerstream-case/index.md) · Case study
- [DABplay+: reconstructing USB DAB+ dongle control](https://awesomerea.org/resources/dabplayplus-case/index.md) · Case study
- [PocketPrinter5890: reconstructing the Lidl 5890 printer protocol](https://awesomerea.org/resources/pocketprinter5890-case/index.md) · Case study
- [Parking sensor kit: reconstructing its display protocol](https://awesomerea.org/resources/parking-sensor-protocol-case/index.md) · Case study
- [pyhaseiq: reconstructing the older Hase iQ stove's WebSocket protocol](https://awesomerea.org/resources/pyhaseiq-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
