Draft: shared protocol, remote firmware, project docs

Not yet verified on hardware.

- shared/HexapodProtocol: CmdPacket (now 20 bytes, adds remote_roll /
  remote_pitch), FLAG_* bits and radio settings as the single protocol
  definition; static payload size = sizeof(CmdPacket) on both radios.
- robot: use the shared protocol; vx = forward (harness w/x <-> q/e);
  InputMapper adds remote tilt on top of the right stick when
  FLAG_REMOTE_GYRO is set, and robot.ino no longer zeroes stick
  roll/pitch when it's off.
- remote (Teensy 4.1): Sticks (calibration, EEPROM), RemoteIMU,
  RemoteState (interlocks, link-loss disarm, smoothing), PacketBuilder,
  RadioLink, NextionUI, SerialConsole.
- CLAUDE.md, README.md, remote/README.md, remote/NEXTION.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mangavalkandClaude Opus 5.5 committed 2026-09-28 18:14:00 +02:00
1 parent ad77b06c36
commit 91dac16fca
30 files changed
+1706 -57

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
# Hexapod
A six-legged walking robot (Teensy 4.0) and its handheld remote
(Teensy 4.1 + Nextion touchscreen), linked over nRF24L01.
```
robot/ robot firmware: IK, gait, body pose, IMU stabilization, state machine
remote/ remote firmware: 2 x 3-axis sticks, MPU6050 tilt, Nextion UI, RF24 TX
shared/ HexapodProtocol: the CmdPacket wire format + radio settings used by both
scripts/ PlatformIO helper (per-environment sketch folder)
```
## Build (PlatformIO)
```
pio run # build both
pio run -e robot -t upload
pio run -e remote -t upload
pio device monitor -e robot
```
## Where to go next
- **[robot/README.md](robot/README.md)**: placeholder geometry to measure,
the bench-check checklist, and the serial test harness for driving the
robot without a remote.
- **[remote/README.md](remote/README.md)**: wiring, control scheme, stick
calibration, and the remote's serial console.
- **[remote/NEXTION.md](remote/NEXTION.md)**: how to build the touchscreen
HMI.
- **[shared/HexapodProtocol/HexapodProtocol.h](shared/HexapodProtocol/HexapodProtocol.h)**:
the protocol. Change it only by reflashing both boards.