A³ Motion Configuration
Hardware
Two parts: the panel (buttons, encoders, pots, LEDs on a microcontroller)
and the touchscreen UI on a computer, joined by USB serial with a
binary poll-frame protocol (firmware/host.py in
a3-motion).
Part |
V03 (current) |
V02 |
|---|---|---|
UI computer |
any Linux machine with a touchscreen; tested on an Intel NUC; on the rig, the Core itself |
Raspberry Pi 4B in the housing |
Panel controller |
ESP32-S3 ( |
Teensy 4.1 |
Panel power |
USB; the firmware dims the LEDs to stay within it |
PoE |
Display |
7” capacitive multi-touch |
7” touchscreen |
Buttonmatrix PCB |
V03 |
V02 |
Mainboard PCB |
V03 |
V02 |
Power estimate and pictures: A³ Motion Assembly.
The UI
a3-motion-ui (JUCE/C++) runs
standalone with the full interface and no panel — the default, not a
fallback. Build: Building and testing; finding Core:
another Core. Installed with role Motion it runs
as a3-motion.service.
The panel’s serial port
The panel’s USB bridge is a CH343, 1A86:55D3 (build.hwids in
firmware/boards/esp32-s3-devkitc-1-n16r8.json). Its tty number varies, so
nothing uses it:
Flashing (
pio run -t upload,pio device monitor,install --flash-firmware) finds it by USB ID; with several matches setserial_portin[motion](settings).The UI takes the port that answers the panel’s handshake.
Group
dialout; the installer adds the user (from the next login).