Skip to main content

Electronics

Boards that run the UC2 ESP32 firmware (uc2-ESP). A host talks serial JSON to one board; boards talk CANopen to each other. Protocol, commands and Python clients: Serial & CANopen interface.

UC2 control topologies

Available hardware interfaces​

BoardRoleFirmware envPage
Standalone board v3 / v4 (ESP32 DevKit)standalone, no CANUC2_3, UC2_4Standalone board
Standalone board v4CAN master, node 1 (hybrid: motors local, LED/galvo via CAN)UC2_canopen_standalone_v4_releaseStandalone board
HAT+ for Raspberry Pi 5CAN master, node 1UC2_canopen_masterHAT+: v1, v2
Stepper backpack (XIAO ESP32-S3)CAN satellite, motor A/X/Y/Z = node 10/11/12/13UC2_canopen_slave_motorStepper backpack
Laser interface (XIAO ESP32-S3)CAN satellite, node 20UC2_canopen_slave_laserFRAME electronics
LED / illumination (XIAO)CAN satellite, node 30UC2_canopen_slave_ledBoards & node IDs
Galvo interface (XIAO)CAN satellite, node 40UC2_canopen_slave_galvoBoards & node IDs
PS4 controllerBluetooth on standalone builds, or CAN bridge node 5 (DS4 on USB-OTG)UC2_canopen_bridge_ps4_usbhostPS4 controller

FRAME electronics is the design reference for the HAT+, stepper backpack Rev C, laser interface and pogo-pin connectors.

Every board also accepts serial JSON on its own USB port: 115200 baud on the standalone board, 921600 on the HAT+ ESP32, USB-CDC (baud ignored) on XIAO satellites.

Bus​

ItemValue
ProtocolCANopen (CANopenNode), master = node 1
Bitrate500 kbit/s, fixed
ConnectorJST-XH 4, daisy-chained: 1 GND, 2 +12 V, 3 CAN_H, 4 CAN_L
TransceiverSN65HVD230 (3.3 V), not isolated
Termination120 Ω at the two physical ends of the bus only

Termination solder jumpers, all open by default:

BoardJumper
HAT+ v2JP801
HAT+ v1JP1001
Stepper backpackJP502
Laser interfaceJP301
Galvo interfaceJP2001

Pins, node IDs and routing per env: Boards, roles & node IDs. Adding a board to the bus: Add a CAN satellite.