Part of esp32-sysmon-* project; desktop server to send the data to ESP32 over USB.
ESP32 part of this project - required to actually see metrics
Linux: 100% compatible, CLI mode
Windows: 100% compatible, tray mode
macOS: Should work, untested
DEPENDS ON CRATES
Crates used to get hardware metrics:
all-smi
sysinfo
systemstat
#1 - In my tests, cpu temperature was not collected reliably. I don't think i can do something with this issue. CPU temperature is not displayed.
#2 - I can not implement tray mode for macOS, because i don't have a Mac device, so macOS uses CLI args.
#3 - Some hardware may not be supported. If so, the display will not show metrics for
that hardware, but it will continue to show all supported metrics.
#4 - On my machine (Windows 11, Intel Core i5-12400f) CPU frequency remains constant. It is possible that on other machines CPU frequency remains constant
#5 - It is possible that other connected ESP32 "steals" port connection. This happens becouse server is looking for any ESP32. I tried fixing it, but the fix was brittle and not cross-platform.
git clone https://github.com/c4ff0e/esp32-sysmon-server
cd esp32-sysmon-server
cargo bl # build linux binary
cargo bw # build windows binary
# no cargo alias for macos
# if you are using linux:
sudo apt-get update && sudo apt-get install -y libudev-dev pkg-config protobuf-compile libdrm-dev # example for ubuntuDownload binary from latest release.
./esp32-sysmon-server run # start
./esp32-sysmon-server logs # prints logs and path to log fileAdd to PATH
You can put the binary wherever you like, for example: ~/.local/bin;
mkdir -p ~/.local/bin
mv esp32-sysmon-server ~/.local/binThen:
export PATH="$HOME/.local/bin:$PATH"Autorun
mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/esp32-sysmon-server.servicePaste this inside the file:
[Unit]
Description=ESP32 System Monitor Server
After=default.target
[Service]
ExecStart=%h/.local/bin/esp32-sysmon-server run
Restart=always
RestartSec=3
[Install]
WantedBy=default.targetEnable and start the service:
systemctl --user daemon-reload
systemctl --user enable esp32-sysmon-server.service
systemctl --user start esp32-sysmon-server.serviceCheck:
systemctl --user status esp32-sysmon-server.serviceLogs are overwritten on server startup
Launch the esp32-sysmon-server.exe binary from latest release. After launch, a tray icon will appear in the system tray, which can be used to stop the server and open logs.
Autorun
Put the shortcut to the .exe inside the startup folder:
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
Logs are overwritten on server startup.
./esp32-sysmon-server run # start
./esp32-sysmon-server logs # prints logs and path to log filePermission denied for serial port [Serial port name]. Check device access permissions.
Fix:
sudo usermod -aG uucp "$(whoami)"After running this command, log out and log back in, or reboot.
Your [something] is unsupported
Server has reported that something from your desktop hardware is not supported by it. Display will continue to work, but unsupported hardware metrics will not be shown.
No data
Check server
Desktop server didn't send any metrics/metrics are stale. Check whether it crashed/exited/lost connection or using the wrong port.
