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.