Using Expert Sleepers FHX expanders with Patch.Init()

This is a project to use the Expert Sleepers 8x CV expander (FHX-8CV) and the 8x gates expander (FHX-8GT) with patch.init() for loads more CV and gate outputs. This is based on implementing the Expert Sleepers SPI protocol in patch.init() - after figuring out the protocol. Here is a short clip with the setup running a software emulation of Øchd but unlike the real Øchd this patch.init() emulation is switchable for bipolar and unipolar CV outs.

The Øchd emulation was just a proof of concept to pull together the key ideas. Here’s a link to a pdf with all the details of the pinout and interconnect and all the details I was able to puzzle out about how to work with the Expert Sleepers SPI protocol.

It’s basically all working as a base for the project I really want to work on. If I get progress on that I’ll add some notes here.

FYI the Øchd emulation is in C++. There is an infinite loop driving a loop counter. There are 8 values held for the 8 LFOs and 8 values held to increment the LFOs each time the loop goes around. The increment amounts are based on powers of the golden ratio.


Ahhhhh this is quite cool


Thank you so much for sharing this on the forum too! It’s seriously amazing.
The new demo clip really shows how powerful this pairing is :slight_smile:

1 Like

This is a really cool project! Would it be also possible to use this with the daisy patch programming in the gen environment?

1 Like

Thanks! So sorry I don’t know Gen but I can only see this working if there is SPI support in Gen. I think the approach I took with this project should work on any embedded system that has SPI and three GPIO pins spare, but if Gen is more about signal processing it might not have a way to call the SPI and GPIO.

and the c++ code is now at GitHub - goochrm/patch.Init-ochd: Demo code for Electrosmith patch.Init() expanded using FHX-8CV DAC and running an emulation of Ochd LFOs.