72 lines
3.6 KiB
Markdown
72 lines
3.6 KiB
Markdown
# 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.
|
|
|
|
## The legacy loom (`pins-legacy.ini`)
|
|
|
|
For the four legacy towers: yaw only, with a DHT11 (pin 9) and the enclosure fan
|
|
it runs (PWM 10, tach 11) on the Leonardo, and a second SPI device's chip select
|
|
(pin 2) held high. The pins are transcribed from the legacy firmware (a TMC-API
|
|
Arduino sketch); the yaw pins match the standard loom. Declare it with
|
|
`env = dht11` and `cooling = fan`. The installer offers it as `loom = legacy`,
|
|
and keeps only the lines for what is declared. Not yet run on a real legacy
|
|
tower.
|
|
|
|
## 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`.
|