Charter 21 · system · backup assignment

Spine Doctor

Distributed Health Monitor

Build a physical monitor for the health of the shared system.

Difficulty
★★★
Prefix
sd
Zone
workshop
Type
spine-doctor
Device
sd-01
Build time
10 hours

Mission

Build this

An OLED and semaphore that track expected publication intervals from selected devices.

One kit, one team repository.

Borrowed parts are labelled below and have a fallback. The assigned device ID is fixed; sensing and behaviour decisions remain yours.

Bill of materials

Parts

SourcePartFallback
● kitOLED
● kitRGB LED and buzzer
● kitSG90 servo

Disconnect USB before rewiring. Motors, the relay, and the servo need appropriate power and a shared ground. Never drive an actuator from the ESP32 3V3 pin.

Assembly

Build in evidence-producing steps

  1. Prove the connection first. Flash the unmodified first-message example with this charter’s zone, device type, and device ID.

    done when: sd-01 is alive on the developer view.

  2. Bench-test one input. Read the sensor or control in Serial Monitor before publishing or moving an actuator.

    done when: repeated physical conditions produce repeatable raw readings.

  3. Publish one registered measurement. Use the exact measurement and unit below.

    done when: the reading appears without a reject.

  4. Add the physical response. Keep spine.loop() running and avoid blocking delays.

    done when: repeated movement does not interrupt publishing or reset the board.

  5. Run the investigation. Collect the planned trials before tuning the final logic.

    done when: the build log contains observations, method, and a limitation.

Contract

Your topics

TopicUnitSuggested interval
garden/workshop/spine-doctor/sd-01/nodes-alivedevices60 s
garden/workshop/spine-doctor/sd-01/statusenumon change

Read another team

registered status and heartbeat topics

Physical behaviour

Alive

Raise the flag only when a device misses its own expected interval.

Your call: Model different expected intervals rather than using one arbitrary timeout.

Engineering evidence

Evaluate false alarms, detection delay, and recovery through controlled disconnects.

  1. Define expected intervals for a small monitored set.
  2. Run planned short and long outages.
  3. Report detection delay and false positives.

If you are fast: Compare the physical monitor with `/api/health` and explain disagreements.

Acceptance

Ready when all six are true

  • The registered device is alive and publishing its required topics.
  • The reject feed is clear after the final firmware starts.
  • The device reads at least one declared cross-team topic.
  • A physical output responds to real data without blocking MQTT.
  • The build log contains method, evidence, uncertainty, and a known limitation.
  • The enclosure exposes no unsafe wiring and the device ID can be scanned.

Backbone now

Live status

Updates from the same public event stream

Checking sd-01…