Resource Monitor

Simple resource monitor using a HD44780 display and ATMega32u2 communicating to the computer with a RawHID protocol

Similar projects worth following
This project started out as an experiment with raw HID communications on the ATMega32u2 chip, using the uBBB dev board Warren and I designed. It is a pretty simple build, and could probably be done over a weekend. The display itself shows whatever text the computer sends it; on this implementation, the client sends system information via a Python program, but this could just as easily be the current music track, unread emails, or scrolling fortunes. Communication is done over native USB using raw HID data.

The Python client program currently shows the following information:

First line:

  • CPU % (Instant, 10 second average, 1 min average, 5 min average)
  • Memory % (Instant, 10 second average)
  • Disk Read (10 second average)
  • Disk Write (10 second average)
  • Network Upload (10 second average)
  • Network Download (10 second average)

Second line:

  • Mount point disk usage (rotates through all mount points every 5 seconds, showing percentage)
  • CPU Temperature
  • GPU Temperature

The AVR code shuts off the display after a period of inactivity (i.e. if the computer goes to sleep but the USB port is still active).

The enclosure was made on my scroll saw, using Arariba wood and a brushed aluminum faceplate. (Originally I had cut the enclosure out of MDF on my scroll saw using a generated design from , modified to provide windows for the LCD and a USB cable.) Unfortunately I do not have plans for the new box, as I somewhat designed it as I went (it was an exercise in determining the best procedure for wooden + aluminum enclosures, as I am planning on making my power supply enclosure in a similar manner).

  • 1 × UBBB Dev Board
  • 1 × LCD Display using HD44780 Driver eBay for the win!
  • 1 × Some sort of enclosure Originally I used 1/8" MDF cut on my scroll saw. Later I made a much nicer enclosure out of wood and aluminum. Pretty much anything can work here.

  • Resource Monitor Makeover

    The Big One04/19/2015 at 16:52 0 comments

    Over the weekend I made a new case for the resource monitor. I was getting bored of the plain MDF case; more importantly, I wanted to try out some new techniques for an upcoming enclosure for my power supply.

    The new enclosure is made from Arariba wood with a brushed aluminum faceplate. The front of the enclosure slopes up at about a 10 or 15 degree angle, to aid in visibility.

    The aluminum was some 1/8" extruded flat scrap that I had lying around. I cut out the hole for the display on my scroll saw (after trying a few other methods which did not work very well at all). I am not sure if using a scroll saw is the best for this, but it seemed to work as long as I kept the blade speed fast and the feed rate slow.

    I gave it a brushed finish with my stationary belt sander.

    The bottom panel lifts off for easy access to the guts.

    Here it is in action.

  • Cheap Chinese Displays

    The Big One04/05/2015 at 19:08 0 comments

    About a month ago, half of my resource monitor display started to go bad. It started with vertical lines not showing up, and went downhill from there. Applying pressure to the back of the PCB sometimes helped at first, but then it had less effect as time went on.

    A few days back the display completely failed. I borrowed a spare one from a friend, and re-soldered it up, and everything is working again.

    I have no proof that this was the cause, but I was driving the contrast pin with PWM directly without any RC filter. I wonder if that, over time, contributed to the failure. Even though I have no proof of it, I have since switched to a potentiometer instead of PWM for contrast (and while I was at it, a fixed resistor instead of PWM for brightness). It no longer has software controlled brightness / contrast, but I picked a resistor value which gives me the right brightness, and manually adjusted the potentiometer to match.

    Anyway, things are back to working again. Here's to hoping that this new display lasts longer than the previous one. They are from the same eBay seller, so if it was not PWM that was the cause, chances are it will fail again: this will tell me whether the display itself is just bad, or whether I was using it wrong.


View all 2 project logs

  • 1
    Step 1

    Solder wires from UBBB to LCD. (Note that uBBB pins are ordered as if looking at the bottom, since it also serves as a generic 32-TQFP breakout board if you flip it upside down). Specific connections are described below:

    -Connect pins 1, 5, and 16 on the LCD, and connect all three to pin 3 (GND) on the uBBB

    -Connect pin 2 (VDD) on the LCD to pin 4 (VCC) on the uBBB

    -Connect pin 3 (VE) on the LCD to a potentiometer wiper between 5v and GND

    -Connect pin 4 (RS) on the LCD to pin 15 (B1) on the uBBB

    -Connect pin 6 (E) on the LCD to pin 16 (B2) on the uBBB

    -Connect pins 11 .. 14 (Data 4 .. 7) on the LCD to pins 10 .. 13 (D4 .. D7) on the uBBB

    -Connect pin 15 (A) on the LCD to pin 14 (B0) on the uBBB via a resistor (the resistor value picked will determine brightness, so experiment).

  • 2
    Step 2

    Cut out the box on your scroll saw or laser cutter, and put it together. If you cut it carefully enough you probably don't need any glue to hold it together; on mine, it is friction fit very nicely.

  • 3
    Step 3

    Put the electronics in the box. I used a couple dabs of hot glue to hold the uBBB and LCD in place (but not so much that you cannot take it out again if desired).

View all 5 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates