Per-board node agent. Publishes SoC thermal, throttle and load metrics to Redis, so heat events (which otherwise leave no trace) are observable and can be picked up by fleet telemetry.
Part of the Librescoot open-source platform.
Runs on both the MDB and the DBC from a single binary. The default Redis address
192.168.7.1:6379 resolves to the local instance on the MDB and to the MDB
across the link on the DBC, so no per-board Redis config is needed. The board is
told apart by -board (or autodetected from the hostname) and selects the
target hash.
The DBC i.MX6 is Industrial grade (passive throttle at 95C, critical shutdown at 100C) and sits in a sun-exposed handlebar enclosure rendering a live map on its GPU. When it crosses 95C the thermal governor drops the CPU to 396 MHz and steps the GPU cores down, which can stall the Qt dashboard. None of this is currently visible in software. This service exposes it.
node:mdb / node:dbc:
| Field | Type | Notes |
|---|---|---|
| board | string | mdb / dbc |
| cpu-temp-mc | int | SoC junction temp, milli-degrees C |
| cpu-freq-khz | int | current CPU frequency |
| governor | string | cpufreq governor |
| throttling | 0/1 | any cooling device active (authoritative; board-agnostic) |
| cpu-throttling | 0/1 | cpufreq cooling device active |
| gpu-throttling | 0/1 | GPU-named cooling device active (DBC) |
| throttle | string | none / cpu / gpu / cpu+gpu / active / critical |
| loadavg-1m | float | 1-minute load average |
| uptime-s | int | system uptime, seconds |
| heartbeat | int | monotonic; advances each tick |
| grade | string | automotive / industrial (static) |
| temp-passive-mc | int | passive throttle trip (static) |
| temp-critical-mc | int | critical shutdown trip (static) |
| freqs-khz | string | available CPU frequencies (static) |
| cooling-devices | string | cooling device types (static) |
mc = milli-degrees C (raw sysfs units), to avoid lossy conversions.
make build # ARM (MDB/DBC)
make build-host # local
make test| Flag | Default | Description |
|---|---|---|
| -redis | 192.168.7.1:6379 | Redis address |
| -board | (autodetect) | mdb / dbc |
| -hash | node: | target hash override |
| -interval | 5s | sampling interval |
| -root | / | filesystem root for sysfs/proc (testing) |
| -version | print version and exit |
This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Made with ❤️ by the Librescoot community