The original script (not this fork) mentioned in:
- Up to 10Hz* sampling
- Proper
psutilCPU monitoring (was disabled) - Fan speed and RP1 temperature monitoring
- Power consumption estimation from the PMIC based on RPi5-power
- Runtime tracking and more consistent polling intervals during stress tests/benchmarking
- Cleaner console text output and print optimizations
- No process spawning overhead (original script used OS-level
clearcalls) - Throttling reasons and undervoltage are now highlighted
- No process spawning overhead (original script used OS-level
- Clean exit when using
ctrl+Cor clean system shutdown - Hardware checking to make sure the script is really running on a RPi5
- Other manual cleanups
- Uses <1% CPU
- No process spawning overhead (reads directly from device tree)
- Even more efficient than the vcgencmd bindings (that module calls a subprocess to get data)
For the original README and what this script monitors, refer to the original repo,
or, look at this screenshot:
Run rpi5_telemetry_monlog.py on the Pi itself. Without any options, it will automatically create a CSV in the same directory.
Example:
python3 rpi5_telemetry_monlog.py 0.5 -m
# ^^^----- optional polling time in secondsPass -m to disable logging and only use the script for monitoring.
* = Calls to vcgencmd are limited to sequential access, likely at both the kernel and firmware level (from testing).
If the refresh rate is < 1 sec, clocks for less important busses are sampled less often (around every second or so).
A full poll on a RPi5 takes about 130 ms, most of it due to the fact that each clock speed takes about 10ms to poll.
So realistically, the fastest polling rate for this script is a little less than 10Hz.
- Refresh rate config
- Run time limiting
- Improve polling speed (up to 10Hz)
- Choose which data to poll/log?
- Could improve polling speed
- Add back missing ring oscillator monitoring? (referenced in one of the screenshots in the original article)
- Integration with other monitoring setups? (not just CSV export)
This repo welcomes issues, suggestions, and PRs. Feel free to reach out.
