Teletype I2C -> Select Bus bridge


#1

At the moment theres 2 protocols for digital module control behind the panel, I2C and the ‘select bus’, which is employed by Malekko, Make Noise, Expert Sleepers and a few others.

Im thinking lets join them together.

I did some research yesterday on the Select Bus protocol, and its a bit patchy, but basically the protocol is sending MIDI program change messages into the generally unused CV/Gate bus. Luckily the reccomended hardware implementation for doing this safely is right there in the Tempi and Rene Mk2 manuals!

Make Noise implementation in Tempi and Rene Mk2. You can see that the Select Bus allows setting the States of either of these modules, and they can be configured to either send or recieve state changes

Disting Mk4:

My vision for this is to begin with select bus scene recall via Teletype OPs. This would enable setting Distings to different algorithms and parameters per TT scene, as well as TEMPI, Rene Mk2 and the Malekko stuff. I was thinking about implementing this on a ‘enhanced’ TT busboard, rather than having a floating pcb mounted in the case. A small MCU is needed to translate I2C to serial MIDI, which could live on the backpack, and then use a 16pin power connector to get the messages on the bus.


At the moment, I have a few Disting Mk4’s on the way for experimenting, as well as the parts reccomended by MN for the buffering. Probably late next week I’ll put together a simple thing on a breadboard to send the required MIDI messages and see if I can get the Distings to react, and then after that is OPs on the TT side.

The reason im posting at length here before just implementing it is to gauge community interest and to do this in a manner that meshes well with the Teletype code base. While I have the Teletype toolchain installed and compiling, Im only a casual programmer at best and so I don’t want to go adding my own OPs for this in the wrong way, particularly if a few people think this is a neat idea. Also I dont actually own most of these Select Bus enabled modules, so ill need to find a few keen people to test combinations I cannot.

Rough Select Bus reference from Macro Machines (I think):

Make Noise Select Bus commands:


#2

Very, very cool! I had been wondering if the two could communicate together for a while.


#3

This sounds very interesting.
The mungo modules also use the select bus for recalling presets/parameters, normally done from the macro machines storage strip. It would be really great if that could be done from teletype! I’ve seen somewhere on MW John from mungo saying that the midi protocol used for that is quite simple and he’d be willing to share it with anyone interested as far as I remember.
I’m no programmer, but i know a bit from here and there, so I don’t know, but it seems fairly straight forward the way the storage strip works.
I have teletype and several mungo modules, I’d be very interested in helping you test the mungo part of this.

The storage strip is getting rare and it doesn’t seem like there’s going to be more of them. This would make me a lot less worried that my storage strip is going to fail one day.


#4

Wow I was just thinking about using the cv/gate lines on my power boards to get i2c between my cases. I have an amalgamod 12u case and it has two separate 6u cases that have the power and cv/gate line connected.
The only module I have that uses the cv/gate is my voltage block, which I thought about making a custom power cable that has the cv/gate removed. Would it be safe to then use i2c on these lines?
I’m going to be using the TT powered bus board connected directly to my powerboards.
Would it be better to route the i2c into the header on the pcb or run a cable from the i2c pcb into a power header on the case?

Geese I hope that makes sense :grimacing::joy:


#5

Ive doubled down and ordered the Malekko Quad LFO and Envelope as well. These are prime candidates for preset recall as theyre set and forget modulations, with no CV in. Plus im a bit light on modulation and this will free up my Just Friends for more exciting stuff!

Also ive confirmed with Os at expert sleepers that Disting MK4 responds to all MIDI commands on the select bus (it also has seperate MIDI headers so i wasnt sure of the distinction). This allows triggering of samples and modification of parameters via CCs via select bus.

So not ony is preset recall possible, but the TT could also trigger samples from OPs :slight_smile: Given that a theoretical bridge device is just outputting MIDI from TT commands, and Expert Sleepers make a breakout to regular DIN MIDI, you could also sequence external MIDI gear from Teletype OPs with enough programming effort

Right now Im hacking some stuff together on a spare teensy, to get it interpreting I2C commands sent from Teletype and outputting MIDI program changes. Will be able to test next week when Distings arrive

I have teletype and several mungo modules, I’d be very interested in helping you test the mungo part of this.

Great! Really, once this project gets going, a lot of the work required to build a standalone open source ‘storage strip’ module would already have been done. Its something ill think about!

EDIT: Got that done easier than expected. Teletype sequencing Ableton via USB out of the Teensy is working!


#6

Here is my first working test of I2C -> Select Bus. The Teletype is sequencing the samples on the 2 Disting Mk4s directly, via the Teensy on the breadboard and the buffering circuit, which connects to the CV(select) bus.

I havent gone about adding ops for this yet! @scanner_darkly is going to help me out with that
But its working as intended. Ill start on the backpack pcb tomorrow


#7

Just to clarify here (as far as I understand), this thread is not talking about connecting the I2C pins directly to the CV/Gate bus pins in the Eurorack spec. Please don’t do this. If you have output-to-CV-bus modules attached they could damage your I2C enabled device. The hardware layers are not compatible.

What is being discussed is some kind of digital bridge that allows both physical connections to be made to a single device, and translate between them (in both directions).

The mention of Teletype makes sense from a workflow point of view, but I believe this project is TT agnostic. It could simply be a floating pcb in your case that is the crossover point between the two protocols.

(@jimi23 please correct me if this is wrong and I’ll update)


#8

Yeah its just a bit of hardware doing translation between I2C and midi protocol. Initially, I’ll do some MIDI ops and the select bus save/recall:

BUS.SAVE pgrm
BUS.LOAD pgrm

These will be ops that are device agnostic and send the appropriate save/recall messages to all the Malekko, Make Noise, Expert Sleepers etc modules. Putting BUS.LOAD in the init script, and executing the relevant BUS.SAVE once finished editing the scene will keep things synced.

Beyond that:

MIDI.CC ch cc val
MIDI.PGRM ch pgrm
MIDI.NOTE ch note vel dur

These commands dont make much sense in the world of eurorack, except for the Disting Mk4 which can have all parameters changed with CC messages. However ES makes a breakout to DIN midi https://www.thonk.co.uk/shop/expertsleepersbusselect/

This would allow sequencing external gear from the Teletype. Im not sure what the performance will be like for this, my use case would be to send program changes to outboard effects pedals but i will likely add note sequencing anyway

I emailed John at Mungo to get the protocol that their modules use! And ill check in with Malekko too.


#9

My intention was to use the cv/gate line to act as a bridge between cases and not for the whole system. I was planning to cut the cv/gate traces in each case so that only the first hoarder in each case that connects to the bridging wires were connected. Thus allowing me to into a header in my lower case and have i2c sent across the bridge and be present on the first header in my top case. The rest of the cv/gate would be left to be on its own per case and not connected to the the i2c parts. Does that make sense?


#10

State save and recall of Malekko and Expert Sleepers gear!! Plus ive done MIDI ops, which can sequence the Distings, and with a DIN/minijack breakout cable sequence external gear from the Teletype

Im pondering working on clocking the gate bus as well from this bit of hardware. I know many 4MS modules can derive clock from the bus, and the malekko modules sync to the varigate 8+ this way. It definitely will be useful in my case syncing the Malekko motion recording from the Teletype (which i use to clock Kria so everything should be tight)


#11

Will this work with the Mungo’s do you think?


#12

How difficult would it be to wire an actual MIDI jack into this board, and use it to drive other devices?


#13

From John at Mungo:

Messages understood by the 0 modules are program change, and note on/off as appropriate (always channel 1). Saving is controlled by the zoom switch, if the switch is held a program change stores the configuration, otherwise it is recalled.

So recall should work without any changes. 2 options for saving, either have a zoom switch to hold while executing the save command, or use a output pin on the microprocessor (current a teensy while im breadboarding it) to hold the zoom input high, emulating the zoom switch hold. Not that difficult to do, but requires a different hardware configuration

Super easy!! Will do that today. Ill make a pcb that sits on the back of the teletype, and put MIDI out header on the back with the few components needed on board. Up to the builder to wire up the MIDI jacks in the case how they would like. Also the upcoming Faderbank could act as this MIDI out as well, as it recieves I2C and can output MIDI over a minijack


#14

to clarify re: faderbank - this will be an addition to the official firmware which i will provide that will allow it to respond to the new tt midi ops and will translate them into midi. this hasn’t been tested yet (but should work in theory).


#15

Nice one. Let me know if you need help testing, i have several mungo modules as well as some macro-machines ones (omnimod / dynamic destiny) so would be very useful to me.


#16

Just stopping by to see how progress is going?