System architecture
System decomposition
Motion control:
Duet 3 6HC
Responsible for:
kinematics
motion planning
step generation
G-code execution
Host system:
Raspberry Pi
Runs:
Duet services and web interface
plugins
logging and visualization (e.g. Grafana)
Real-time supervision:
ECU (master PCB)
Responsible for:
sensor fusion
machine state estimation
feed and spindle supervision
Distributed sensing:
Multiple sensor PCBs in zonal architecture
Local preprocessing and event-based reporting
Safety:
Hardware-only safety chain
Independent of Duet, Pi, and ECU firmware
Communication topology
Duet ↔ Raspberry Pi:
Native Duet architecture (services, UI, plugins)
ECU ↔ Raspberry Pi:
SPI or UART
Configuration, data logging, visualization
ECU ↔ Duet:
GPIO signals
Low-latency macro triggering
ECU ↔ Sensor PCBs:
CAN-FD
Event-driven, heartbeat-monitored
ECU ↔ Spindle servo drive:
RS-485
Safety chain:
Electrically independent
Directly actuates power and pneumatics
Responsibility boundaries
Duet:
Motion execution only
No supervision or state estimation
ECU:
Process supervision only
No trajectory planning
Raspberry Pi:
Configuration, logging, visualization
No real-time control
Sensor PCBs:
Local signal processing
No global decision-making
Safety system:
Hardware-only
Overrides all other systems
System architecture diagram
graph TD
%% Core control
Duet[Duet 3 6HC
Motion control
G-code
Kinematics]
Pi[Raspberry Pi
Duet services
Plugins
Logging
Grafana]
ECU[ECU / Master PCB
Real-time supervision
Adaptive logic]
%% Sensors
Piezo[Piezo surface microphones
Chatter detection]
Accel[Accelerometers
Directional vibration
Tilt estimation]
Temp[Temperature sensors]
Strain[Strain gauge
X carriage]
%% Distributed sensing
SensorPCBs[Distributed sensor PCBs
FFT / envelopes
Event-based reporting]
%% Actuators
Spindle[Spindle servo drive
AC servo]
Steppers[Stepper drives
Axes]
%% Safety
Safety[Safety chain
Contactors
E-stop
Pneumatic venting]
%% Machine
Machine[CNC machine
Frame, axes, spindle]
%% Connections
Pi <-->|Internal Duet link| Duet
Pi <-->|SPI / UART| ECU
Piezo --> SensorPCBs
Accel --> SensorPCBs
Temp --> SensorPCBs
Strain --> SensorPCBs
SensorPCBs <-->|CAN-FD| ECU
ECU <-->|RS-485| Spindle
ECU <-->|GPIO macros| Duet
Duet --> Steppers
Steppers --> Machine
Spindle --> Machine
Safety --> Spindle
Safety --> Steppers
Safety --> Machine