Hi everyone,
This is my first post in which I'd like to present an Arduino Shield designed for controlling dual channel DIY bench power supply.
My colleague and I are working on it for some time to provide all hardware and software functionality that we hope could be beneficial to anyone who'd like to follow our power supply design or use it with their own.
History
A whole thing starts as just an another attempt to build bench power supply, an essential tool for experimenting and prototyping.
Idea was to build something in between commercial "heavy weights" that comes from brands such as Keysight (ex. Agilent, ex. HP) or Keithley and many others (that recently starts to got Chinese counterparts like Rigol or Siglent) and DIY projects based frequently about small MCU that indeed include some of Arduino boards and designs. The gap between mentioned solutions is huge both in hardware and software sense. When we talk about hardware then commercial solutions leads in e.g. power capacity, long term precision and reliability. On the software side at least one feature is distinctive and comes almost without exception with commercial powers supplies: that is remote control/programming and monitoring based on SCPI command set that use IEEE488, Ethernet or USB as communication layer.
DIY projects that uses MCU for digital control is mostly based around low-end MCU what sounds logical since there is no big deal in setting voltage and current and read it back. 4x4 keypad or incremental encoder as an input and two line LCD display on the output and that’s all you need especially when there is readily available code when one decide to use Arduino sketches.
Following that logic our first attempt was to use Atmel ATmega32U4 that is in the core of the now retired Leonardo board. We enrich it with few things that lacking such as external EEPROM for more capacity, RTC and Ethernet controller. We started building power supply firmware and relalize very soon that 32K (-4K) of flash memory is far too low. Just adding Ethernet library was enough to exceed mentioned limit. Yes, most of DIY power supply do not utilize Ethernet since USB is on the disposal and therefore why to use it? But USB cable length cannot be compared with Ethernet one.
Arduino Shield
That was a moment for redesigning everything. Instead of adding more capable MCU to a new digital control PCB we made decision to build an Arduino Shield. In that time only two boards fit in our requirement for (much) more memory: Mega2560 and Due. Their form-factor dictated the size of the new board, together with enclosure that was chosen previously that we found affordable and of nice quality that comes from Hi-fi 2000/Modushop.biz.
Hopefully Arduino will continue to offer mentioned and new boards using the same form factor (even newcomers such as Zero or MKR1000 does not support that claim).
When decision about form factor was made, another was about supporting architecture because Mega and Due comes from different clans: 8-bit AVR and 32-bit ARM that is programming-wise made transparent thanks to the Arduino IDE but on the hardware levels require different supply and logical level voltages: 5V and 3.3V. That decision simplify existence of really versatile Texas Instruments bus transceiver: SN74LVCC3245. Now we could continue with development taking into account some already used features that such digital control board should have.
Feature overview
- Outputs and remote sense inputs protection using TVSs, MOVs and SAR
- LED indications for output enable, remote sense and Stand-by mode
- Power relays for making serial or parallel connection of two outputs
- Signal relays for remote or local voltage sense
- Connectors for hosting Arduino Mega/Due board
- On-board 3.3V/1A LDO powering all peripherals
- Analog input for temperature sensor
- Soft-start/Stand-by control for the Auxiliary power supply module
- Level shifters for 3.3V ↔ 5V (3.3V ↔ 3.3V is also supported)
- Digital isolators for two SPI-bus/port for output channels control (power supply’s post-regulator module)
- Buzzer
- External EEPROM
- Real-time clock (RTC) with supercap back-up
- Ethernet controller
- TFT color display with touch-screen
- LED CV/CC mode indicators
- Optional V/F (Voltage-to-Frequency) converters for isolated temperature sensors (NTCs) that can be used for battery temperature monitoring
Few pictures
Rear side without Arduino board
Read side with Arduino board plugged in
Front side with binding posts mounted
In the few posts that follows I’ll present in more details hardware and software aspects of this shield and some plans for the future changes and improvements.