fwt_software/hardware/lattepanda-3-delta/NOTES.md

3.1 KiB

LattePanda 3 Delta setup kit

For the Delta fleet: a LattePanda 3 Delta host, an onboard ATmega32U4 ("Arduino Leonardo") driving two TMC5160 boards, yaw and pitch. Run through scripts/install-tower, or ./install.sh --help on its own.

What is known, from tower 111 (surveyed 2026-09-23, read-only)

OS Ubuntu 22.04.5 LTS, kernel 6.8
Motor MCU /dev/serial/by-id/usb-Arduino_LLC_Arduino_Leonardo-if00, USB 2341:8036
Camera Alvium, USB 1ab2:0001, port 2-2
Modem Quectel RM520N-GL, four ttyUSB nodes
Serial / I2C /dev/ttyS0..3, /dev/i2c-0..15; the ambient sensor is on /dev/i2c-2
Packages every entry in packages.txt already installed
Preconditions NOT applied: usbfs_memory_mb 16, camera usb3_lpm_permit u1_u2
hardware.ini none - the tower has never been migrated

Applied to tower 111, 2026-09-23 [partial]

Through scripts/install-tower, host half only: preconditions (usbfs 16 -> 1000, camera LPM u1_u2 -> 0), hardware.ini (yaw + pitch, MTi, SHT41, standard pins.ini, every drivetrain value ; TODO), config.ini keys that hardware.ini now owns commented out, the missing night camera profile exported, the host rebuilt on Ubuntu 22.04 (GCC 11) and restarted with --init --start. It homed and resumed capturing. test hardware: axes, IMU, env and camera PASS; motor FAIL on the old firmware's missing echoes, as expected. Firmware NOT flashed.

Firmware flashed on tower 111, 2026-09-24 [verified]

With the drivetrain converted from what the replaced firmware ran (see docs/hardware-config-plan.md section 13) and 75 mOhm sense resistors read off both boards. tools/flash.sh flashed it through the Leonardo's 1200-baud touch unchanged. The new firmware asked, the host answered, test hardware passed every leaf, and it homed to within 0.03 % of the old firmware's travel.

Rebooted 2026-09-24 over ssh: the boot service started it with --init --start, it homed and resumed capturing within ~35 s, and install-tower --verify passed every check, the USB preconditions included. The Leonardo was not reset by that warm reboot - USB power stayed up, its uptime carried on - so the boot-time config request was not exercised there; the host's re-send on connect covered it.

What this kit has NOT done yet

In particular:

  • pins.ini is not a traced loom. It carries the numbers the firmware ran on before pins moved into hardware.ini. Trace one Delta's wiring and replace it with a table the way the IOTA's was done.
  • Other Delta towers' drivetrains are not known. 111's values are 111's: converted from the firmware it ran, with its own boards' sense resistors. Do not copy them to another tower without reading that tower's boards and firmware revision the same way.

Migrating an existing Delta tower

Host first, firmware second (docs/hardware-config-plan.md section 13). The installer's order already is: it writes hardware.ini, builds the host and runs test hardware against the OLD firmware before any flash - and blocks the flash while a drivetrain value is still a ; TODO.