I got inspired by a post about using analog gauges to display PC stats. The author of the article uses a voltmeter and a PIC 18F2550 connected to the USB port to display the CPU usage and the download speed. I wanted to do something similar and started looking on Ebay for a fancy voltmeter. I couldn’t find anything I really liked but there was a tachometer which got my attention.
A tachometer is usually installed in a car to measure the rotation speed of the engine. but I was going to use it to display the level of CPU usage. I bought the tachometer on Ebay, from a Chinese seller. I paid it only £20 delivered but I can not say it is a top quality device. Though It does its work it is very plasticky and the needle movement isn’t very precise.
The tachometer connects to the engine PC through 3 wires: 2 wires for the 12V power supply (the red and the black wires), whilst the green wire carries the signal which drives the needle. If the tachometer was installed in a car the signal would be a square wave coming from the engine coil: the higher the frequency of the square wave the further the needle moves. I wasn’t sure about the required amplitude of the signal but I found out that 5V were just right.
Of course I wasn’t connecting the tachometer to an engine’s coil but to a PIC 18F2550 microcontroller which would create the 5V square wave to drive the needle. The beauty of the 18F2550 is that its size is quite small, it has 28 pins, has a reasonable amount of program memory and also hardware support for the USB 2.0.
This was my first project involving USB communications and the main reason of this work was experimenting with this family of USB devices, as well as having a nice homemade gadget sitting on my desk.


Hi. I am Cristiano Cesaretto and this is my space to share with you how I spend my time: definitely programming, C# for 99% of the time. Other passions are electronics as a hobbyist, in particular experimenting with PIC microcontrollers. I also love flight simulation though I don't practice very much.


