There are plenty of buck, boost, and buck-boost power converters on the market and Sparkfun sells a bunch. On some of them you can turn a potentiometer or swap a resistor divider to change the output voltage. However none of them let you set the voltage via software (such as over UART, SPI, or I2C).
DEV-15801 (which uses the STUSB4500) is kind of software adjustable, as you can change the output voltage that the USB-PD charger brick outputs, but a) there is no power converter on there and it doesn’t support the new PPS standard for USB-PD, so if you want exactly 13.8 volts for example, you’re out of luck, and b) you’re also at the mercy of the USB power supply - if you plug it into a “dumb” power supply you won’t get anything other than 5 (or 5.1) volts.
What I am looking for is something that can take the voltage from a 1S lithium battery (specifically, PRT-13856) and step it up or down to any voltage between 1.5V and some reasonable upper limit (like 24V). I managed to hack a pretty janky boost converter together using an ATtiny85 as the switching controller which could be commanded over I2C (details in this youtube video), but it just barely worked on a breadboard and I’m having even worse luck on a perfboard for some odd reason. So I was hoping to be able to find an existing power converter or power converter controller chip that still has the ability to have the output voltage be changed via software.
After striking out looking for something like this for months I think I finally hit pay dirt: the LM251772 (datasheet here). According to said datasheet the output voltage can be adjusted over I2C with surprising accuracy, and there is also a current monitoring and limiting feature and an output cutoff pin. It looks to be a relatively new chip designed for use in a USB-PD source (Sparkfun only sells the sink I mentioned above), and I couldn’t find any other boards using it other than TI’s evaluation kit.
It seems like a very nice board that you can make an easy bench top power supply out of too as well as the use case I’m looking at. Just plug in a microcontroller, a knob, and a display and you can make a power supply that is able to not only be set to any voltage, but (if you write the code to do it) sweep the voltage across a range to test something (I don’t know what) and measure the current at the same time, or in a pinch charge another lithium battery.
I don’t know if y’all take product requests, but consider this one.