From time to time I've been working on a project to run the Axoloti software on an Audiothingies P6 (https://www.audiothingies.com/p6/) hardware. The reason for this was ultimately to experiment with synthesizer design without having to build a hardware interface, as all that is already done in the P6. More importantly, the MCU used in the P6 is almost the same as in the Axoloti.
All this is slow work-in-progress, but basically I have accomplished three major tasks:
a) Porting the Axoloti firmware to the P6 platform, and
b) Implementing Axoloti objects for handling the P6 hardware, most importantly the 2x24 character LCD display and the rotary encoders, as well as
c) A basic menu system centered around a few objects holding tables with various menus.
The point of the exercise is to be able to emulate the P6 UI in a fairly simple way in the Axoloti environment.
Now, a), will probably not be very useful to most people, especially since Audiothingies ceased production of the P6, but b) and c) would be useful in other contexts as well.
The P6 uses 74HC165 and 74HC595 chips to essentially handle all digital I/O using a simple serial protocol - basically a clock line and a data line, which reads data from the latched shift registers in the 74HC165 chips or sends data to the shift registers in the 74HC595 chips which are then latched to the relevant outputs.
Unfortunately, I have not gotten around to uploading any of this to the contrib section mainly because it's been work-in-progress and I've only recently acheived something which I would consider useful.
A side note here is the UI concept used in the P6. Basically, there is a 2x24 character LCD display, which at any one time can display (up to) 6 parameters. Underneath the display there are 6 knobs which control the 6 parameters displayed. The top line displays a parameter name (abbreviated, as there are only 4 character positions available for each parameter, which in practice ends up as 3 characters, as you'll need a space between the parameter names for readability), and the bottom line displays the actual parameter. The buttons on the panel select a menu page, and for the P6 firmware this is cunningly laid out so that each 'module' (i.e. oscillator, filter, etc) occupies a single 'page' of 6 parameters.
The whole idea is that it's not a deep menu based system, you basically press the OSC button which brings up the parameters for oscillator 1, pressing OSC again brings up the parameters for oscillator 2, etc. So it's much easier and direct to work with than a menu based system where you have to navigate to some menu somewhere and then change a single parameter, go to another menu to change another parameter, etc. For me this is the ultimate compromise between having a full panel of pots/encoders with dedicated displays/led rings, and a 'letterbox' type menu system where you select a parameter with one knob and change its value with another.