Skip to main content

Electronics and controllers

FRAME electronics: a Raspberry Pi 5 with the HAT+ v2, plus satellite boards on one CANopen bus (500 kbit/s).

BoardRoleCAN nodeDrives
Raspberry Pi 5runs ImSwitch— (own MCP2515 on the HAT+ as can0)—
HAT+ v2 ESP32CANopen master, serial JSON from the Pi (USB-C, 921600 Bd)1routes commands to the satellites, switches 12 V bus power
Stepper backpacksmotor satellites10/11/12/13 (A/X/Y/Z)stepper driver, endstop
Laser interfacesatellite20laser channels 0–3
LED / illumination boardsatellite30LED ring / matrix, laser id 4
Galvo interfacesatellite40galvo scanner
GPIO satellitesatellite60E-stop, collision sensor, I2C
  • Bus: JST-XH 4 (GND, +12 V, CAN_H, CAN_L), daisy-chained, 120 Ω termination at both ends only.
  • Bus power turns off on E-stop, Pi GPIO23 or {"task":"/state_act","power":0}.
  • Two ways in: serial through the master (default; ImSwitch ESP32Manager), or CANopen directly from the Pi's can0 (uc2canopen, ImSwitch UC2CANOpenManager). Use one path per node (why).
  • Every satellite also accepts serial JSON on its own USB port, so it can be tested off the bus.

Details: Serial & CANopen interface · Boards, roles & node IDs · Add a CAN satellite · Firmware.