Skip to content

looking-glass-station/PicoSysmon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PicoSysmon

This is rework of Dmytro Panin's project https://github.com/dr-mod/tiny-system-monitor

An external system performance monitor for your computer, built with a Raspberry Pi Pico and a 320x240 ST7789 display. The Windows host streams metrics over USB CDC, and the Pico renders a live dashboard.

Hardware

  • Raspberry Pi Pico (or compatible RP2040 board)
  • ST7789 320x240 SPI display
  • USB cable

Wiring Defaults in Client/code.py:

  • GP9 = CS
  • GP8 = DC
  • GP10 = SCK
  • GP11 = MOSI
  • GP12 = RST

Software The device firmware is CircuitPython. The host is Python and currently targets Windows with OpenHardwareMonitor/LibreHardwareMonitor DLLs.

Installing CircuitPython

  1. Download the CircuitPython UF2 for your Pico from circuitpython.org.
  2. Hold BOOTSEL, plug the Pico into USB, then release BOOTSEL.
  3. The Pico mounts as RPI-RP2.
  4. Drag and drop the UF2 onto RPI-RP2.

Software Installation

  1. Copy the Pico client code to the CIRCUITPY drive:
  2. Client/boot.py -> CIRCUITPY/boot.py
  3. Client/code.py -> CIRCUITPY/code.py
  4. Client/lib/ -> CIRCUITPY/lib/
  5. Install host dependencies: pip install pyserial pyserial-asyncio psutil requests pythonnet
  6. Run the host app from Host/: python main.py

Host Part The host gathers metrics with psutil and hardware sensor DLLs, then sends a compact JSON payload once per second. The Pico reads the USB CDC data channel and updates the UI.

How Device Discovery Works

  • Client/code.py contains a # MONITOR_DEVICE_ID marker.
  • The host scans drives for that marker, reads boot_out.txt, and uses the UID to find the matching COM port.
  • It resets the Pico once per OS boot via REPL, then reconnects to the data CDC port.

Repo Layout

  • Host/
  • Host/main.py - Windows host app that streams JSON.
  • Host/OpenHardwareMonitorLib/ and Host/LibreHardwareMonitorLib/ - sensor DLLs.
  • Client/
  • Client/code.py - CircuitPython UI and serial parser.
  • Client/boot.py - USB CDC setup.
  • Client/lib/ - CircuitPython libraries.

Troubleshooting

  • No COM port found. Ensure the Pico is mounted and boot_out.txt exists.
  • No COM port found. Confirm USB CDC data is enabled in Client/boot.py.
  • UI not updating. Confirm host JSON is printing to console.
  • UI not updating. Verify wiring and pin mapping in Client/code.py.
  • Missing sensors. Not all systems expose GPU or CPU temperature via the DLLs.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages