Raspberry Pi Diagnostic Suite
Tech Specs
Automated 19-vector hardware quality assurance, real-time telemetry, and standardized RMA triage for single-board computers.
Diagnostics
- Test vectors
- 19 automated
- Run plan
- 4 phases: Platform & Ports, Radio & Network, Storage, Compute & Power
- Platform & ports
- Bootloader
- Interfaces
- PCIe
- USB
- HDMI
- CSI/DSI
- Camera
- GPIO
- UART
- Keyboard
- Radio & network
- Ethernet
- Wi-Fi
- Bluetooth
- Storage
- Partition and mount health, filesystem check, SD read/write speed
- Compute & power
- CPU temperature, memory, and a power audit that runs alone
- Results
- Passed, warning, failed, or info for optional hardware that isn’t present
Power Audit
- Stress test
- 2-second all-core load while core voltage is sampled
- Under-voltage
- Fails the test
- Throttling
- Raises a warning
- Pi 5 supply
- Warns when the power supply reports less than 5 A
Electrical Safety
- GPIO probing
- Pins read with internal pull-ups (SET_PULL_UP); no external wiring or probes
- Line release
- Each line freed (gpio_free) inside try…finally
- Fault reporting
- Pin-by-pin results with a stuck or failed pin isolated on the report
Compatibility
- Raspberry Pi 5 / 500
- RP1 via lgpio, GPIO chip found automatically (/dev/gpiochip4, 0, 1)
- Pi 4, 400, 3, Zero 2 W
- gpiozero, with lgpio or RPi.GPIO as fallbacks
- Older boards
- Pi 2, 1, Zero and Zero W run in passive mode
- Operating system
- Raspberry Pi OS 64-bit (Debian 12 Bookworm / 13 Trixie)
Reports
- Format
- 2-page RMA manifest and certificate, printable or saved as PDF
- Reference ID
- DOC-RMA-YYYYMMDD-NNNN, from the test session
- Contents
- Unit-under-test spec sheet, per-test criteria and results, verdict, technician sign-off
- Integrity
- HMAC-SHA256 seal over the full record; it changes if stored results are edited
Reliability
- Per-test ceiling
- 180 seconds; a hung test is reported as failed
- Hardware access
- Bus-touching tests are serialised by a lock
- Records
- SQLite in WAL mode with a daily 90-day prune timer
- Throttle readings
- Cached for 15 seconds
- Interface
- Self-hosted fonts, icons and charts, so it works offline
Software
- Languages
- Python 3.9–3.12
- JavaScript (ES6+)
- CSS3
- HTML5
- Bash
- Backend
- Flask 3.1
- Gunicorn 23 (1 worker, 8 threads)
- SQLite (WAL)
- psutil
- lgpio
- gpiozero
- pyserial
- spidev
- Frontend
- Dependency-free vanilla JavaScript that polls the API
- Service
- systemd service with a least-privilege sudoers rule for power actions