Reload Controller header image

Reload Controller

Earlier this year I purchased an Arachnid Labs Re:load Pro, which is an adjustable constant-current load. I’ve always wanted an electronic load for my lab, but didn’t want the spend the money. The Re:load Pro solved that problem as it’s just $125. Sure, it doesn’t sink as much current or have all the options of fancier units, but it does everything I need. For testing panel meters, batteries and LEDs, it’s quite capable. So far, I’m happy.

Reload Controller Main screenOne of the features that caught my interest when I purchased it was the ability to interact with it via a virtual serial port on the USB interface. I immediately got the idea to develop an application that could control a Re:load Pro, but didn’t have time to work on it. Recently however, I started working on serial port projects at work again, and I finally completed my serial port class, called dsub. I needed to test it, and I thought of the Re:load Pro. It was a perfect device for testing. I set about developing an app, and correcting some bugs in dsub along the way. The result is an improved dsub class, and a small application called Reload Controller which I’m releasing here. (more…)

dsub: Serial Port class for C#.Net

dsub main formI’ve long held an affinity for serial ports. They’re easy to understand, easy to setup, and require no special drivers. I’ve worked on several projects over the years that have utilized serial ports, mostly in classic VB applications. Since learning Microsoft C#.Net, I’ve wanted to use it to interface with them. A few years ago I picked up a copy of Serial Port Complete Second Edition by Jan Axelson, and it’s been a tremendous help. Much of what I’ve learned has come from her book and website. I set out to develop my own serial port class based on my needs, and I’ve now finally finished it to the point where I feel comfortable sharing it. It’s called dsub, named for the D-subminiature electrical connector. I’m releasing it under an MIT license so you can download, use and modify the application and source code.

Download dsub here (Visual Studio 2010 project)

dsub uses .Net’s built-in SerialPort class, but adds some additional functionality to deal with multi-threading, error handling, etc. I won’t cover all the details of how it works, or why; for that, you should pick up a copy of Jan’s book and check out the COM_Port_Terminal application available on her website. dsub does differs in several ways from her serial port class, the most important difference being that I use the SerialPort.ReadLine method to get new data from the buffer. As a result, any serial port data that dsub reads will need a defined “end of transmission” character, such as a carriage return or line feed. This can be specified in dsub, so it’s possible to use any character. I did this because all the equipment I deal with sends data this way, and it’s easier to parse the data once I know the transmission is complete. If you have a situation where there isn’t a defined end of transmission character, then dsub won’t work. (Note: Jan’s class does not have this limitation.)

dsub Settings FormThe GUI application that’s included will read data from the selected serial port and display it in a grid. If a field delimiter is specified, it will use that to break up the data into separate columns in the grid. At the bottom of the screen, you can enter text to be sent. There is also a textbox where errors will be displayed. The application implements all the features of dsub so it provides a good example of how to use it.

If you use dsub in your application, let me know! I’d love to hear how it’s being used. I’ll also do my best to answer any questions or address any issues with it.

Update: Memory usage reporting fixed in Analog PC Stats application

Updated PC Meter application

It was brought to my attention a couple months ago by mnedix that the application I developed for the Analog PC Stats Meter was not reporting the correction Memory usage. I looked into it, and it turns out that the PerformanceCounter I was using in C# ties into the page file, not just physical memory. Apparently it was close enough to the physical memory used when I tested the program initially, because I never caught it. I just released an updated version of the application today that get the actual physical memory percentage used (you can download it here). It utilizes the GetPerformanceInfo Windows API to do this, using code developed by Antonio Bakula. This post at Stack Overflow is what led me to his solution. As the screenshot above shows, it’s now very close to what Windows reports. It’s a little off, maybe due to rounding, I didn’t have a lot of time to dig deeper. It’s close enough, at least for me! In the screenshot, I’ve got a couple textboxes that display physical available memory and total physical memory for troubleshooting.

While I’m posting, I want to point out it’s been approximately a year since I last posted on my blog, but I’m still here. The last year-and-a-half has been quite hectic for me, but I hope to get back into working on projects and sharing them on here soon! I’ve heard from a few people who have enjoyed my posts and used the information I’ve shared to work on their own projects and it’s been great hearing from them. Thanks!

Crate built from upcycled pallet wood

Crate built from reclaimed pallet woodI recently inherited several tools and and pieces of equipment which I hope to put to good use someday. For now though, I live in an apartment, which means much of this stuff is going into storage. Some of the equipment is heavy and prone to damage, so I need a way to protect it. I decided to to build some small crates for these items, since cardboard boxes won’t be strong enough. However, I don’t want to spend a lot of money doing it, and lumber is expensive, so I figured I’d get what I need from old pallets. They’re a popular source of upcycled wood for DIY projects, which means there’s lots of info on how to reuse them, and best of all, they’re free. Last weekend I set about transforming some old pallets into crates and I’m quite happy with the results.


PS2 Motor Controller header

Playstation 2 Motor Controller

I’m a big fan of the Playstation video game consoles, so when I learned about the PS2X library by Bill Porter, I had to try it out.  PS2X makes it easy to interface Arduino microcontrollers with Playstation 2 controllers.  After wiring everything up and testing it with the sample program, I set out to find something more interesting to do with it.  The result is a stepper motor that is controlled by the Sony controller.  Here’s a video of it in action:


pc meter header

Analog PC Stats Meter


At some point while researching microcontroller projects, I came across several people who had used Arduinos and PICs to drive analog panel meters so they would display computer stats such as CPU load, memory usage, etc.  It immediately struck me as something I just had to do.  Here it is.  My PC meter uses an Arduino microcontroller and receives the stats from a .NET Framework application I wrote in C#.Net.  It’s housed in a plastic enclosure and looks quite professional IMHO.  It was a fun project, and something I think most any computer/electronics geek would enjoy.  I love mine, and I look forward to building more.

Here it is in action:

Read on for details on the parts and tools I used, some info on the process of building the device (and the problems I ran into) and links to download the source code and meter templates.


Japanese Toolbox header

Japanese Toolbox

Japanese Toolbox completeOftentimes, I find myself going to my parents’ house or a friend’s place to build or repair something, and I have nothing to put my larger tools in.  As a result, my drill, saw, clamps and other large items end up either laying on the floor of my truck or stuffed into whatever cardboard box I found laying around.  If I had a large, sturdy box to throw this stuff in, it would make these trips much more convenient and I would spend less time loading and unloading my tools and more time working.  So when I saw Len Cullum’s Japanese Toolbox project in MAKE 34, I knew I had found my solution.


RGB LED Shadow Art

RGB LED Test circuitWhile testing my recently acquired Piranha LEDs, I noticed quite by accident that the output from the breadboarded circuit created some interesting effects when used to cast shadows against a plain background.  The edges of the shadows show the red, blue and green (and mixed) colors due to their coming in from slightly different positions and angles.  It’s a fun effect, but there isn’t much room for creativity as my test circuit only had 6 LEDs (2 of each color) grouped closely together.  Something more interesting and dramatic could be achieved using larger light sources positioned further apart, which would allow control over where the different colors fall and how much they overlap.  It’s something I may pursue in the future when I have more lights built.  Until then, here’s a couple photos I snapped and a video I quickly put together using my test circuit.

The first photo is (quite obviously) my hand and the second is a failed amplifier circuit I had laying around.

RGB LED Shadow Art #1

RGB LED Shadow Art #2

And a video, which came out creepier than I had intended.  A friend described it as “Dr. Frankenstein visits Studio 54!”

Superflux LEDs header

SuperFlux “Piranha” LED testing

I’m planning an LED floodlight project that will use a lot of square 4-pin LEDs, aka SuperFlux or “Piranha” LEDs.  I hadn’t had a chance to use these type of LEDs until now, so after receiving my order this week I immediately went to work on trying them out.  This won’t be a very technical review, just a quick look at the specs and my experience with testing the LEDs and what I thought of them.


cMoy amp header

cMoy Headphone Amp


The cMoy Headphone Amplifier is a popular, well-documented DIY project, which makes it great for beginners to take on.  That’s exactly the reason I chose to do it.  I followed the instructions and suggestions from the TangentSoft cMoy Tutorial written by Warren Young, and it came out great, especially for my first attempt at building a headphone amplifier.

I won’t get into how I built mine (the tutorial at TagentSoft is where you should go for that) but read on if you’re interested in seeing what parts I used and some of the problems I ran into.