metadata
title: ESP32 Motion Controller — Reachy Mini
emoji: 🕹️
colorFrom: gray
colorTo: yellow
sdk: static
pinned: false
short_description: ESP32 handheld motion controller for Reachy Mini
tags:
- reachy_mini
- reachy_mini_python_app
- esp32
- udp
- imu
ESP32 Motion Controller
Reachy Mini app that receives protocol v4 UDP samples from the handheld ESP32. Engage snapshots IMU zero; roll/pitch/yaw stay clutch-relative (rotation only). The app owns IK-safe clamping, hard yaw stops, antenna idle, and body follow.
See the repository README and PROTOCOL.md. Firmware and app must both speak v4.
Local install
pip install -e .
python -m esp32_motion_controller.main
UDP: <host>:8766
Live Space: https://huggingface.co/spaces/V4C38/esp32_motion_controller
Publish to Hugging Face
Tags required: reachy_mini, reachy_mini_python_app.
# from reachy-mini-app/
hf auth login
hf upload YOUR_USER/esp32_motion_controller . --repo-type space \
--exclude ".venv/*" \
--exclude "build/*" \
--exclude "dist/*" \
--exclude "*.egg-info/*" \
--exclude "**/__pycache__/*" \
--exclude "*.pyc" \
--exclude ".pytest_cache/*" \
--exclude ".DS_Store"
Keep those tags in the README frontmatter. The excludes matter: packages.find would otherwise pick up a stray build/lib/ as a second copy of the package, and .pyc files from another Python end up in the daemon's 3.12 venv.