I've uploaded some non-audio objects which I've devised while porting the Axoloti to run on the Audiothingies P6 .
The P6 has 6 rotary encoders, which together with 9 push buttons (and 6 push buttons in the encoders) are connected to 74HC165 shift registers using an SPI-like interface (although in the P6 it is bit-banged rather than using an SPI interface in the STM32 chip).
There's also a quadrature decoder object for decoding the outputs from the rotary encoders, which takes two inputs and produces an up clock and a down clock, which output clocks depending on which way the encoder is turned. There's also a step output which outputs clocks independent of the direction of rotation.
Objects:
objects/ricard/gpio/in/165ctrl v.axo (control object specifying the pins used and number of bits employed (8 per 74HC165 chip), as well as the scanning rate.
objects/ricard/gpio/in/165in.axo (actual bit input object generating a boolean signal)
objects/ricard/logic/qdecode.axo (quadrature decoder)
The P6 also uses a 74HC595 shift register for controlling 8 of the LEDs on the front panel.
Objects:
objects/ricard/gpio/out/595ctrl.axo (control object specifying the pins used and number of bits employed (8 per 74HC595 chip).
objects/ricard/gpio/out/595out.axo (actual bit output object)
The P6 has a 2x24 character LCD, and I've devised a pair of objects for printing to the LCD. The connection is rather rudimentary, utilizing the 4-bit mode of the display, with no status readout, hence a 6 wire interface suffices, with RS, E and 4 data bits D4..D7. The R/W pin is assumed permanently low (i.e. write).
Objects:
objects/ricard/disp/lcdctrl.axo (control object specifying the pins used and size of the print queue (number of strings that may be printed at once and which will be printed in order as the display becomes available)
objects/ircard/disp/lcdprint.axo (output object outputting the string input to the module when the clock input goes high)
The strings can contain rudimentary cursor control using control characters, see the object definition for more details.
Finally a rather trivial object, which converts a vector of bits into a single bit masked output value, with a 9 bit input. I seem to remember there being an 8 bit version among the factory patches but I cannot find it now.
Object:
objects/ricard/logic/bitval 9.axo
Please note that for the control objects, more pins can be selected than normally on Axoloti modules, simply because I want to be able to run these objects on the P6, where some of the pins used are not available for general use in the Axoloti. So exercise caution when using the modules so you don't select pins which are not actually available.