Implemented ✅ scripts/lerobot_check_motor_details.py
lerobot-setup-motors (--robot.type, --robot.port, etc.).reversed(bus.motors)), prompting you to connect one motor at a time.scripts/lerobot_check_motor_details.pyIf you want, I can also add a non-interactive mode (single connected motor scan + dump) so you don’t have to press Enter for each expected joint.
Great question — no, it does not write motor values.
It is read-only in practice:
_find_single_motor, _read, firmware/model reads)setup_motor()write() / sync_write() to motor registersdisable_torque=False (so it doesn’t even torque-off on exit)Only thing it changes is the PC serial baudrate setting while scanning (bus.set_baudrate(...)), not motor EEPROM/registers.
If you want, I can still run it now; just note it’s interactive (asks you to connect one motor and press Enter).
Yep — agreed, that loop was unnecessary for your use case. I’ve changed it.
scripts/lerobot_check_motor_details.py now:
No per-joint loop anymore.
If you want, I can run this now against your connected shoulder-pan motor.
Yep — good catch. That hang was from my second rewrite’s discovery path, not what you wanted.
I’ve fixed it by reverting to a single targeted motor check (fast path), no global scan loop.
scripts/lerobot_check_motor_details.py_find_single_motor(...).--motor_name (default: shoulder_pan)Also kept it read-only (no write/setup calls).
If you want, I can now run this exact command.
Done. I added a simple, hackable TUI:
scripts/lerobot_motor_tui.py--motor_name, default shoulder_pan).q to quit.Run it like this:
If you want next, I can add:
r),Perfect — rewrote it with the uv run --script shebang and Rich UI.
scripts/lerobot_motor_tui.py--motor_name, default shoulder_pan).q to quit.If you want, next I can add tiny QoL keys: r (force refresh), j/k (scroll register window), e (export snapshot JSON).
100% fair — agreed. I added a non-TUI pretty dump script so you can just pipe to less.
scripts/lerobot_motor_dump.pyIf you want, I can also delete scripts/lerobot_motor_tui.py to keep only the simple path.
Done — deleted:
scripts/lerobot_motor_tui.pyRemaining relevant script:
scripts/lerobot_motor_dump.py ✅