Endstop

Rev 0.2.1 · in integration

Architecture

The authority lives on the other side of the wire

The agent computes wherever it likes, at whatever speed it likes, on hardware we assume is compromised. What it cannot do is reach the actuator lines, because they terminate at a different device.

§0

System definition

Endstop is a specified system with a proven core, not a concept awaiting design. What follows is its configuration, subsystem by subsystem, with the maturity of each stated rather than blurred.

SubsystemSpecificationState
Host processorin-order RV32 soft core; no OS, no DMA, no network stack, no cache by defaultselected · available
Interpreter corefuel-bounded bytecode VM with memory-region isolation1proven · runs today
Capability tablethree typed effects: read state, propose setpoint, request signaturespecified
Envelope monitormulti-point limits, predicted stopping position, rate ceilings, deadmanspecified
Effect constructiontrusted-side serialisation from an enumerated intent set with quantised parametersspecified
Audit chainEd25519 over program hash, monitor verdicts and a monotonic counterspecified
I/O surfaceserial in; PWM or step/direction out; relay drive in series with the safety chain; SPI secure elementspecified
Enforcement latency< 100 µs per cycle at 500 Hzprojected · not yet measured
Board integrationbring-up, timing closure, end-to-end measurementin build

The distinction that matters in that last column: the interpreter core is not something we intend to verify. It is demonstrably verified, published, and running on processors of this class today. The work in front of us is integration and measurement, not proof.

§1

The effect path

Every effect in the system follows one path, and there are no side doors — not because they are blocked, but because the instruction set does not contain them.

  1. The agent (114), running off-board on untrusted host compute (110), sends a program over a unidirectional serial interface (120).
  2. The program executes in the verified interpreter (134) under a fuel bound. It terminates by construction; there is no analysis to defeat, only a counter that reaches zero.
  3. It may invoke exactly three capabilities through the capability table (136): read state, propose a setpoint, request a signature. There is no file, no socket, no allocator, no fourth verb.
  4. Each proposed effect is checked by the envelope monitor (138) against limits validated offline, covering multi-point position, predicted stopping position, rate ceilings and a deadman.
  5. Effects that pass are constructed by the trusted side and emitted (144) to the driver stage (152). Effects that fail degrade to a safe stop. Both outcomes are signed by the audit signer (142) under a key held in the secure element (140).
100 BOUNDED-AUTHORITY ACTUATION SYSTEM 110 GRAPHICS PROCESSING UNIT 112 LANGUAGE MODEL PLANNER 114 UNTRUSTED · OFF-BOARD 120 PROGRAM + PARAMETERS 130 AUTHORITY GATE SOFT PROCESSOR 132 VERIFIED INTERPRETER FUEL-BOUNDED 134 CAPABILITY TABLE 136 ENVELOPE MONITOR MULTI-POINT · PREDICTED STOP 138 SECURE ELEMENT 140 AUDIT SIGNER 142 TRUSTED COMPUTING BASE 144 EFFECT 150 DRIVER STAGE PWM · STEP/DIR 152 SERVO DRIVE 154 ACTUATOR 156 ACTUATOR PLANE EMERGENCY STOP 162 CONTACTOR 164 160 INDEPENDENT OF GATE — SERIES INTERRUPTION FIG. 1
Figure 1. The effect path, with reference numerals. Authority terminates at the gate (130) rather than at the host (110); the host reaches the actuator plane (150) only through the gate; and the safety chain (160) bypasses the gate entirely, interrupting the servo drive (154) in series. A numeral key lists all twenty references.
The e-stop is not in this list

The emergency-stop chain (160) is wired physically around the gate, opening the contactor (164) in series with the servo drive. This is the one property we state without qualification. The gate can only ever permit motion. No firmware state, and no failure of ours, can command it.

§2

Two timescales, because the physics demands it

Fast control loops are certainly not ours to sit inside. Current loops typically run at 8–20 kHz and velocity loops at around 5 kHz, inside the servo drive where they belong. What crosses the network is setpoints, typically at 500 Hz or as PWM.

LAYER RATE RUNS IN Planner / agent 10 – 100 Hz off-board · untrusted Setpoint stream 500 Hz · 2 ms ← ENDSTOP INSERTS HERE Position loop 250 Hz – 2 kHz servo drive Velocity loop ~5 kHz servo drive Current loop 8 – 20 kHz servo drive never traversed Fast loops stay in the drive. Only setpoints cross the boundary the gate sits on.
Figure 2. Where the gate inserts. The loops that stabilise the machine run at kilohertz rates inside the drive and never traverse the gate, so it cannot destabilise them. Only the setpoint stream crosses the boundary.

So enforcement splits. The slow path validates the envelope offline, once, the way every certified safety configuration in industry is validated. The fast path is a constant-time comparison against that envelope on every cycle, using table lookups with no allocation and no search.

PathRateWorkBudget
Offline validationper configurationenvelope derivation, risk assessment, signed acceptancehours
Admissionper programcapability grant check, dry run under fuelseconds
Enforcementevery cyclemulti-point limits, stop prediction, rate, deadman< 100 µs

The latency figure is not chosen for marketing. ISO 13855 converts reaction time directly into required guard distance at 1600 mm/s of human approach, which works out at 1.6 mm per millisecond. A sub-100 µs budget costs about 0.16 mm of separation. The gate does not take workspace away from you.

§3

The trusted side constructs the effect

This is the design decision that came directly out of adversarial review, and it replaced an earlier design that inspected agent-supplied bytes.

A gate that validates a byte string is validating a field it believes is the amount, the joint index, the destination. Encodings tend to be adversarial: the same bytes often mean different things under different parsers, and the attacker chooses the encoding.

The agent supplies an index into a pre-approved intent set and quantised parameters. The gate serialises the transaction or the setpoint itself.

Effects are named, not described

Quantisation is probably as important. Snapping parameters to a coarse grid and emitting on a fixed schedule reduces the bandwidth of any channel an agent might modulate, from arbitrary to countable. We would rather publish a residual figure than imply zero.

§4

What is trusted, and what is merely present

A trusted computing base is only meaningful if you enumerate it. Ours is roughly 550 lines, and the parts outside it are listed with equal precision.

ComponentStatusBasis
Interpreter coremachine-checkedpublished verified VM; UB-freedom and memory containment proven1
Fuel accountingmachine-checkedpart of the verified VM; a counter, not an analysis
Memory isolationmachine-checkedproven: all accesses land in designated regions
Capability tableengineeredstatic; callee behaviour not proven
Envelope monitorsengineerednative code outside the VM; model-checked arithmetic
Audit chainengineeredEd25519 over program hash, verdicts, monotonic counter
Boot & signature checkengineeredimmutable first stage, anti-rollback counter
Soft processorassumedin-order RV32, no speculation, no cache by default
Synthesis toolchainassumedopen toolchain, reproducible builds intended
Physical accessout of scopeno tamper response in the pilot
OUT OF SCOPE physical attacker · power & EM side channels · model-to-silicon gap ASSUMED in-order RV32 soft core · open synthesis toolchain ENGINEERED · model-checked, not proven envelope monitors · capability table · audit chain · boot & anti-rollback MACHINE-CHECKED Interpreter core · fuel · memory isolation published, independently reviewable ↓ trust decreases outward
Figure 3. Scope of assurance. Only the innermost band is proven. Each band outward is a weaker claim, and the outermost is explicitly excluded. A trusted computing base is only meaningful if the exclusions are named.
Threat model exclusions

The pilot excludes physical attackers, power and electromagnetic side channels, and the gap between a formal hardware model and delivered silicon. Those exclusions are disqualifying for payment-HSM and cross-domain defence use, where tamper response is a baseline requirement — so we are not selling into those markets.

They should be defensible for a fenced robot cell, where physical access is already controlled, and that is the market we are addressing first.

§5

Deliberately small, deliberately dull hardware

An in-order RISC-V soft core on an FPGA, running from on-chip memory. No operating system. No DMA engine. No network stack. No cache by default, so timing is predictable and the speculative-execution attack classes do not exist to begin with.

The I/O surface should be the complete effect vocabulary: a serial link in, PWM or step/direction out, a relay drive that sits in series with the existing safety chain, and an SPI secure element holding keys. Everything the device can do is visible on the pin map, and that is what makes an independent audit tractable rather than aspirational.

Signing runs off the control path entirely. Verified portable code on this class of core generally signs in tens of milliseconds, and the control loop never waits on it.2

References

  1. The interpreter core derives from a published, independently reviewable verified bytecode virtual machine whose machine-checked proofs cover absence of undefined behaviour and containment of memory accesses within designated regions. The specific artifact and its proof development are disclosed to design partners under evaluation agreement.
  2. Measured figures for portable verified Ed25519 implementations on 32-bit RISC-V are approximately 1.2 million cycles per signature, placing signing in the tens of milliseconds at typical soft-core clocks. Implementation choice materially affects this; some widely used portable libraries are an order of magnitude slower on 32-bit targets.