Most laboratory power supplies are just equipped with manually adjusted potentiometers. Not this one, voltage and current are microcontroller controlled and adjustable, manually via local encoder as well as remotely via serial communication, allowing for programming, automated testing as well as for long term data logging (on a PC for example).
Technically the main components are two LT3081 in parallel for voltage regulation, a standard LM324 for current measuring and limitation, a TC7660 for negativ voltage creation necessary for creating the needed minimal load even down to 0V of regulation output, two LM334 creating the minimal load, an AVR microcontroller (ATXmega32) for all control and communication tasks in conjunction with a rotary encoder for user input and a graphics 3.2" TFT display for user output (numerical and graphical).
The circuit allows for a voltage regulation range of 0.1V - 16V and current limitation of 2mA - 2A. Because I had used an available 24V wall mount adapter I have added an input step down regulation with two LT1936 in parallel as a voltage follower in order to reduce power dissipation on the LT3081 ICs. Also a single front panel button in addition to the rotary encoder to easily enable/disable the power supply output has been added later on for practical reason.
The LT3081 circuits allow for internal temperature measurements which has been used for the fan control (on/off with hysteresis).
The chosen display (a cheap 3.2" TFT display from ebay) blocks with its 8-bit parallel interface and the additional 6 control lines altogether already 14 I/O lines from the microcontroller. As visible in the schematics the chosen microcontroller's I/O usage is almost 100% (a single ADC line remains unused) and this even without using a quartz
(the microcontroller runs from internal 32 MHz clock) which frees two additional lines (this is one of the reasons why I created another device, see project jsLabPS2).
With Atmel Studio 7 for the microcontroller programming and Lazarus to create the PC remote control and logging application all development tools were free of charge.
The whole device is breadboarded and then enclosed into a proper housing. It's working well since more than a year now (August 2016). A bit later I created a similar power supply but with a SPI display to lower the GPIO usage and use the freed pins to control a programmable elctronic DC load included in the same housing (see project jsLabPS2). Both supplies turned out to be very useful since and provide a good service.
I'll not do a PCB for this one, because I did a better version (0...20V, 0..3A, DC Load 0...3A, SPI TFT, UART and Bluetooth-LE for logging and remote control, additional 3.3V & 5.0V outputs with current monitoring) in the meantime: the project is called "jsLabPS3", this time with PCB (revision C already), please have a look to that one ...