- original-frame/ moves into 2009-fpga/original-frame/ (the FPGA version introduced the frame).
- Media regrouped by the owner: the two 2011-07-01 PNGs and MOV02256-02259 to FireFly, SNC00198.jpg to the FPGA version.
- Removed from the current version (still in the history): docs/math wisFORlive.docx, wisFORlive3.docx, wisFORlive4.docx and 'z axis rotation.url'.
- READMEs, 2026-current/CLAUDE.md and the root timeline updated to match.
The root README has the timeline of all generations since 2009. Each generation folder explains its hardware and what is in it. .gitattributes turns off line-ending conversion so all files stay as they were.
The Arduino IDE needs the folder name to match the .ino: HexapodRobot/, Hexapod_NEW/ and Hexapod_Teensy/. References in 2026-current/CLAUDE.md updated.
The LEGACY copies of HexapodRobot, Hexapod_NEW, Hexapod_Teensy and the old remote sketch were identical to the imported repos and are removed. The old Nextion design moves to 2019-teensy-nrf24/remote-nextion/, the 2019 remote case files to 2019-teensy-nrf24/remote-case/. Paths in CLAUDE.md, READMEs, remote/ comments, sim/build.ps1, the Unity DLL message and .vscode/settings.json now point to the new places. robot/ is not touched (its CLAUDE.md asks to check with the owner first).
From https://mangavalk.com/Hexapod/Hexapod @ 7945005 (its Hexapod_Teensy
is identical to the copy already in LEGACY). Earlier electronics
generation: on-board IK driving an external SSC-32-style servo
controller. Notes on what still applies are in CLAUDE.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>
- LEGACY/remote/teensy/: old remote sketch from
https://mangavalk.com/Hexapod/remote.git @ 492dece (reference only).
- remote/Config.h: sticks on A0-A5, Nextion on Serial1 (0/1), as in the
old sketch; MPU6050 moved to Wire2 (25/24) since A4/A5 are Wire's pins.
- NextionUI: controls on a vscope-global "control" page added to the
old HMI; keeps the old t1 status texts; the old page-1 b2 button (and
serial 'U') enter Nextion upload passthrough, following the PC's baud.
- Docs: NEXTION.md, remote README wiring, CLAUDE.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Simulation
- sim/: the unchanged robot firmware compiled into hexapod_sim.dll
against PC stand-ins (Arduino, Servo, Wire + register-level MPU6050,
RF24 with matching-config radio), a kinematic body model (support
plane + planted-foot odometry) that also drives the simulated IMU,
and a headless smoke test (sim_smoke). build.ps1 builds and tests.
- Hexapod_Simulation_Unity/ folded in (history kept in a bundle
outside the repo). Assets/HexapodSim loads the DLL, drives the
existing leg rig, and offers joystick / keyboard / robot-serial
input plus a test panel.
Robot (all found or confirmed in the simulation)
- Config.h geometry taken from the Unity model.
- IK femur elevation sign, gait stance direction, body pose
rotation direction, yaw lever arm.
- Stance feet integrated from the current command; gait restarts at
mid-stance; heading integrates the applied turn rate, only while
walking.
- Leg clearance and reach checks (Limits::feetFeasible); walk command
and body pose scaled as a whole, pose scale rate-limited, planted
feet guarded so the body never snaps or legs collide.
- Robot-gyro self-leveling as an integrator.
- Heading mode: steering relative to the body; S walks backward.
- Standing height from the remote (STANCE_HEIGHT_RANGE_MM).
Protocol v3 (reflash both boards)
- CmdPacket gains body_height (22 bytes).
Remote
- Height slider (Nextion hHeight/nHeight, serial [ ]).
- Fixed unspecified I2C read order in RemoteIMU.
LEGACY/: owner's old Nextion HMI and remote hardware assets.
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>