File size: 1,517 Bytes
9de9b10 20a0ca6 9de9b10 a42951e 9de9b10 a42951e 9de9b10 20a0ca6 9de9b10 a42951e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | ---
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](https://github.com/V4C38/esp32-reachy-mini-controller) and [`PROTOCOL.md`](../PROTOCOL.md). Firmware and app must both speak v4.
## Local install
```bash
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`.
```bash
# 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.
|