Skip to content

Repository files navigation

Librescoot Node Service

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.

Why

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.

Published hash

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.

Build

make build        # ARM (MDB/DBC)
make build-host   # local
make test

Flags

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

License

This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Made with ❤️ by the Librescoot community

About

Per-board node agent: publishes SoC thermal, throttle and load metrics to Redis

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages