- LEGACY/Hexapod_Teensy/: old robot sketch (reference only).
- platformio.ini: robot env targets teensy36 (owner-confirmed board).
- Config.h: per-servo SERVOS table (pin, pulse at 0 deg, signed
us/deg, pulse limits) built from the old sketch's pins, ranges, trims
and the old Unity servo directions. Rear-left/front-left coxa offsets
set to 0: the owner re-horns those two servos (the old +-90 left them
at the end of travel; the sim showed them clamping).
- ServoDriver: 18 servos on hardware PWM (50 Hz, 16-bit); the Teensy 3.6
Servo library stops at 12.
- Radio on CE 39 / CSN 15 with SPI SCK on pin 14.
- sim: analogWrite/PWM shims, pulses decoded through SERVOS (API v6).
- Docs: CLAUDE.md, READMEs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>
Robot-side firmware (Teensy 4.0) imported unchanged as extracted.
platformio.ini defines [env:robot] (teensy40) and [env:remote]
(teensy41); scripts/select_src_dir.py points each env at its own
sketch folder so robot/ and remote/ stay Arduino-style sketches.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>