I have always liked the idea of steampunk; I like the old look of gadgets and devices. I recently "discovered" the Nixie tubes and, on my opinion, they go hand in hand with steampunk. So I've decided to take it slow and start with an easy schematic - Nixie PC meter (or monitor).
The concept is simple, I wanted to have something which can show me, at a glance, what is the status of the CPU and Memory. I did some digging on the Internet and I found all pieces to put this project together: the HV power source, the Arduino and its code and the PC software itself.
PS: I have to say from the very beginning that my work is limited only to the idea itself and the board. I will credit the websites and the original engineers along the way
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: Schematic
The schematic has 3 main components out of which the Arduino itself is not shown. I went with an Arduino Nano which can be bought on eBay for just few Euros (or dollars). The original PC meter was using an Arduino Leonardo but that was simply too big and powerful for me.
The HV power source is based on an MC34063 (or MC33063) which, again, is quite cheap and can be bought on eBay. The original schematic can be found here: https://threeneurons.wordpress.com/nixie-power-su... The added transistor and diode really make a difference, the output is much more stable. I assume that whoever reads this Instructable knows how to deal with high voltage and its dangers.
Between the Arduino and the Nixies there is a drivers' stage. I've built these drivers with a dual op-amp - LM358. I initially built them with a "better" dual op-amp - NE5532, but for some reason the behavior was not what I expected so I went back to the LMs. Very important in the drivers' stage, a low-pass filter is needed at the input.
Below, you have the schematic in both pic and .sch format:
Step 2: PCB
I've opted for a mixed component choice - surface and through.
The reasons are I'm quite resentful and lazy when it comes to drilling holes (it's boring) and the added value is that one can design a smaller PCB. I've decided to put the surface components directly on the bottom and drill holes only for the through components. I'm sure there could be other options, depending on the budget, available components, skills, imagination but that was my choice for this project. I used 1206 and SOP8 surface components which are fairly easy to solder (and one 2512 for the HV source).
Note: the top connections (in Red) are simple pieces of wire, it does mean the board is actually double-surface. Yes, one of them goes underneath a capacitor but that's not an issue as long as the wire is insulated.
Step 3: Logic
The logic of the circuit, the way I understood it, is that the PC software is gathering the required data and, along other functions (error messages etc), it pushes it to the Arduino via the COM port. The COM port is not static, it can be chosen based on where the Arduino actually connected to the PC. For example, my Arduino Nano connects to COM3 while Arduino Uno connects to COM7. This can be easily set up straight from the interface.
The original output was towards needle-indicators + LEDs; this is also cool but I just wanted Nixies. The original project can be found here: http://www.lungStruck.com/projects/pc-meter. As I mentioned in the beginning, I do not own the code and the PC software. They have been entirely developed by Scott Vincent, who was also kind enough to answer some questions regarding his project. I used the both the code and PC software as-is, with no modification and so far so good.
The zip file contains the PC software and the txt file contains the Arduino code. I've just created a sketch in Arduino and simply uploaded it to Nano. For more info on the files go visit the link above.
Step 4: Working Project
Building the project was fun looking at it from both ways. I've initially built the board for Nixie IN-9 but in a spark or intelligence I've added the 220k for the auxiliary cathode for IN-13. Turns out the IN-9 Nixies are very unstable, you never know where will they actually fire from. Sometimes they work well from the bottom but if they are fully lit (heavy load) they don't come back to the bottom but stay somewhere in the middle. It is, of course, annoying therefore I opted in the end for IN-13. This actually screws up my initial idea to embed them in a bay on the front of the PC; the IN-9s fit perfectly within that space but the IN-13s are longer so I will have to think of something else. I will probably tweak the low-pass filter (it just an RC filter), perhaps I can hit the sweet spot and make the IN-9s work.
The attached pics are showing the working project. The reason for so many wires in the 1st pic is that they (the board and Arduino) are supposed to be connected internally in the PC. The Arduino input and power will be an internal USB port and the board power comes directly from the PC's power source (12V). Both cables - internal USB slot-to-miniUSB and the 12V power can be found on eBay or can be reused from old computers. I will not get into details here - different strokes for different folks.
The 2nd pic shows the 2 Nixies indicating the readings of the PC software; the CPU Nixie is on the left and the MEM Nixie is on the right.
The 3rd pic shows the Nixies under load; I've downloaded a free load software which just stresses out the CPU and Memory. This approach is very useful for calibrating the Nixies via the 2 pots in the drivers' stage.
Step 5: Minor Glitch/issue
As you can see in the attached picture, the PC software memory reading is not the same as the PC Performance Memory reading (via Task Manager). This is because the PC Performance Memory reading is indicating the Physical Memory while the PC software (for the Nixie project) is indicating the %Committed Bytes in Use; the latter means that it shows the Physical Memory + available paging memory (page file). This is why, these 2 figured differ at the moment.
If a new version of the PC software will be released, which will address this minor issue, then I will surely update the Instructable.