- Pin the toolchain versions, with the Legoino/core 3.x error text.
- Note DIR_* direction constants and the corrected control table.
- Add the swapped-hub-address story to step 4, and the Arduino
prototype-ordering trap to the gotchas list.
- Swap HUB0/HUB1 addresses; they were the wrong way round.
- Add DIR_* constants for all seven motors, with DIR_RIGHT_TRACK at -1.
- Swap the right arm buttons: Cross raises, Triangle lowers.
- Move struct Frame into the types block - the Arduino prototype
generator needs it declared above the first function definition.
- Pin core 2.0.17 in the header; 3.x will not build Legoino.
Adds bench vs model power arrangements, the both-USB-plus-5V-jumper
hazard, current budget, diode drop margin, and a deliberate test for the
case the 400ms failsafe cannot cover.
Adds bring-up order (pair the pad before wiring, verify the port map with
DEBUG_MOTORS before trusting it), the tank drive control table, the extended
link protocol, and the wiring failure modes.
- Parse the extended frame (d-pad and analog triggers).
- Drive both hubs across all seven ports, one input per motor.
- Add a per-hub rate limit alongside the per-port one; hub1 has four
motors and the per-port throttle alone floods it.
- DEBUG_MOTORS flag to log which port each command lands on.