Iterations:

V2 used the same connectors as the original V1 and split the buses. I wanted to add a top plate for safety and quickly realized one thing ..... its unhandy as heck.

First V3 switched up everything. I switched everything to components smaller than the USB-C connector und went to a creditcard-format ..... problem: i stuck with the connectors on one side and used a 2 row connector ... i wanted it to be more handy

V3.2: Final format with a single row of pins. Superhandy and resulted in an extremely flat design.

Hardware:


Heart is a AVR64EA48 where i try to utilize every peripheral.
USB-C input is via an MCP2221A.It is posible to control the output(and bus) voltage via a small LDO connected to o digital potentiometer. This way you can either use the 5V directly from the bus, of reduce the voltage to anything you want
Every output is buffered with a oneway buffer/levelshifter. This is one of the design choices i want to change. Using a µC with more outputs and using bidirectional buffers will be the way to go.
While the Analog inputs are just voltage dividers..... gotta be OP-amps on the next version.

Software:

Connecting via putty and 115200 Baud you get a get a nice text-based interface.
The device is divided into multiple subsystems which can be called via commands.
entering the "?" oder "sys ?" will give you all posiblities

Example: set output voltage to bus (5v usb) and beep the beeper
The arguments are always given in HEX values.
Example: reading analog input 2:

This system is definitely something i will optimize in the future. But it works for now and its easily integratable into a python-script