Status: Accepted
Date: 2026-07-02
Quality requirements addressed: QR-004
FaceGuardV2 controls a physical servo and LED in Raspberry Pi deployment, but the team also needs to develop, test, and demonstrate the product on laptops where GPIO hardware is unavailable.
Use a servo-controller abstraction with two runtime modes:
gpio mode for Raspberry Pi hardware deployment;emulated mode for local development, CI-adjacent checks, and review without hardware.Runtime mode is supplied through environment configuration.
Positive consequences:
Tradeoffs:
| View | Rendered diagram | Source artifact |
|---|---|---|
| Static view | component-diagram.png | component-diagram.puml |
| Deployment view | deployment-diagram.png | deployment-diagram.puml |
This ADR is visible in the static view through the Servo Controller component and external Servo + LED device. It is visible in the deployment view through the Raspberry Pi hardware boundary and the emulated mode used on development laptops.