← Electronics Paused

Bench power supply

A three-channel supply controller that got as far as the firmware

The control panel for a home-built bench power supply: three readouts and a knob. The software works; the box it was meant to go in is still a box of parts.

ControllerArduino Nano (ATmega328), PlatformIO project
MeasurementThree INA226 voltage/current/power monitors on I²C
DisplaysTwo seven-segment displays with I²C backpacks for the selected channel, a 20×4 I²C LCD for the overview
InputA rotary encoder with a push button; menu and value modes
StartedAutumn 2023

The idea

Every bench needs a power supply, and the ones with a nice display cost more than the ones without. I had transformers, regulators and a box. What I didn’t have was a front panel that showed me three channels at once and let me turn a knob to pick one.

So the project became the controller: an ATmega328 reading three INA226 monitors, one per channel, and showing voltage, current and power. Two big seven-segment displays show the selected channel’s volts and amps, the kind you can read from across the room. A 20×4 character LCD shows all three channels at once. A rotary encoder selects a channel; pressing it opens a small menu. Each channel has a calibration factor so a cheap shunt can be trimmed in software.

Where it stopped

The firmware does what the comment block at the top promises: it polls the sensors, refreshes the displays four times a second, and the encoder flips between channels and the menu. The last commit moved the encoder handling into its own function and that was October 2023.

What never happened was the analog side: the actual regulators, the enclosure, the front panel the displays were meant to sit in. The 3D printers arrived around then and ate every spare hour, and a cheap commercial supply appeared on the bench and quietly made the project optional.

If I pick it up again

It would probably stop being an ATmega project. An ESP32 would add a web page showing the three channels and a log of what a device drew over time, which is the feature I actually want when testing a battery-powered board. The INA226 half and the display code would carry over as they are.