Welcome to the Eilik Robot Interface project! This repository provides tools and libraries to interact with and customize your Eilik companion robot, turning it into an even more versatile and personalized robotic friend.
This project is currently early-stage / research + scaffolding.
EnergizeLab does not provide a public open-source API for Eilik at this time, so this repo focuses on:
- BLE discovery / connection scaffolding
- documenting observed GATT services/characteristics
- building a clean foundation for future community-driven tooling
β What works today:
- Repo structure + tooling (in progress)
- BLE scan + device introspection (planned for v0.1)
- Reliable "wave/dance/sound" actions
- A stable protocol implementation
- Complete control interface
Disclaimer: This project is not affiliated with EnergizeLab. Use at your own risk. Please be patient for features that require reverse engineering.
- Python 3.8 or higher
- Bluetooth LE capable hardware
- An Eilik robot
- Clone the repository:
git clone https://github.com/ailynux/eilik-robot.git
cd eilik-robot- Install required dependencies:
pip install -e .Or install with development dependencies:
pip install -e ".[dev]"from eilik.robot import EilikRobot
async def main():
robot = EilikRobot()
# Scan for Eilik devices
devices = await robot.scan(timeout=10.0)
print(f"Found {len(devices)} devices")
for device in devices:
print(f" - {device.name} ({device.address})")async def main():
robot = EilikRobot()
# Connect to a device
await robot.connect("XX:XX:XX:XX:XX:XX") # Replace with your device address
# List GATT services and characteristics
services = await robot.list_gatt()
for service in services:
print(f"Service: {service.uuid}")
for char in service.characteristics:
print(f" Characteristic: {char.uuid}")
await robot.disconnect()See the examples/ directory for more complete examples.
- Project structure and tooling
- BLE device scanning
- Device connection and disconnection
- GATT service/characteristic introspection
- Research notes documentation
- Research Notes - Documented GATT services and characteristics
- Connection Guide - How to connect to your Eilik (coming soon)
I welcome contributions! Please read the Contributing Guide first.
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/
# Check code style (if configured)
flake8 eilik/This project is licensed under the MIT License - see the LICENSE file for details.
- The Eilik robot creator community
- Contributors to the Bluetooth LE Python libraries (especially
bleak)
- v0.1: BLE scanning and introspection
- v0.2: Protocol discovery and documentation
- v0.3: Basic command interface (if protocol is understood)
- Future: Custom behaviors, animations, and integrations
Made with β€οΈ for the Eilik community
