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.

Reload Controller displays the current setpoint and measurements from the Re:load Pro. It’s updated every second. In addition, power and resistance are calculated and displayed on the screen, as well as the COM port being used and the firmware version of the Re:load Pro being monitored. Several buttons allow the setpoint to be adjusted in various increments, or a setpoint can be entered directly by clicking on the ‘Specify’ button.

Reload Controller - Overtemp warningA couple shutdown options are provided as well. Both will change the setpoint to zero milliamps when they successfully complete. The first option is a timer based shutdown, which can be set in minutes and seconds. The second option is a voltage-based shut down, which will cause a shutdown when voltage reaches a certain point or below. This could be useful for battery testing, to prevent it from being discharged below a certain voltage.

The application monitors the serial port for messages coming from the Re:load Pro. Errors are displayed in the status box at the bottom of the main form. Overtemp and Undervolt conditions will result in a dialog box letting the user know the unit will be reset to clear the problem.

The program does have some limitations. First, it does nothing to prevent damage to the Re:load Pro or any other equipment that may be attached. It assumes instead that the Re:load Pro’s built-in protection mechanisms will suffice. From what I’ve seen, the built-in mechanisms work, but the application should be used with caution, and with the knowledge that no guarantees are made about its performance or safety. I’ve done quite a bit of testing, but I cannot provide a guarantee that Reload Controller will work as intended.

Another problem that I haven’t addressed in the application is that if the Re:load Pro resets on its own, communication is lost and the program does not pick up on this. It will continue to display the last reading it received until the serial port is manually disconnected and reconnected.

With all of that said, here’s the application if you’re interested in using and/or modifying it:

Reload Controller (ZIP)

If you just want to use it and don’t care about the source code, the compiled application can be found in the ZIP file in the ReloadControllerSln\ReloadController\bin\Release folder. Just grab the entire folder and run ReloadController.exe.

If you have any questions or comments, or find the this program useful, let me know! I always enjoy getting feedback.

2 thoughts to “Reload Controller”

  1. Great work. Apart from an exception on startup due to it trying to open a non-existant serial port (COM15) it works fine. I’d been meaning to write something similar, but it kept dropping low on the todo list.

    1. Thanks Kean. I agree, the exception got caught, but it’s ugly. I thought I had a better mechanism in place for that; apparently I don’t. I’ll have to fix that up in dsub. Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *