How It Works¶
MaD is a full stack, from steel to pixels. This section explains each layer and how they connect.
flowchart TB
user["Operator"] --> app
subgraph host["Computer (browser)"]
app["Control app<br/>Control"]
end
subgraph machine["MaD machine"]
fw["Firmware<br/>(Propeller 2, C)"]
periph["Motor · force gauge ·<br/>encoder · endstops · SD"]
end
app <-->|"Web Serial · ProtoEmb"| fw
fw <--> periph
periph --> sample["Sample under test"]
Start with the system overview for the end-to-end data flow, then dive into any layer:
- Theory of operation — how the machine moves, measures, runs a test and keeps itself safe
- Firmware — layered C on the 8-core Propeller 2
- Communication protocol — the ProtoEmb binary wire format
- The control app — Web Serial + WASM in a worker
- SIL emulator — running the real firmware with no hardware
- Hardware — the PCBs