I2C communication with Monome Teletype

another contributor to teletype (i’ve been working on grid/teletype integration), and an owner of er-301 (which i really need to spend more time with). just wanted to say i would be very excited to see this happen and would happily contribute dev time if needed as well.

thinking on how the 2 could be integrated the easiest and most obvious is probably having teletype show up as an input source (apologies if i’m using wrong terminology here) for triggers and modulation. the opposite (having er-301 send triggers and modulation to teletype) would require some sort of a polling system.

i think a deeper integration would be most exciting though. both modules support saving a complete state. if teletype was able to select a preset on 301 then essentially you have a modular system with recallable patches. not sure if this is something that would be doable with the plugin SDK though.

and if one was allowed to dream then extending this to controlling unit connections and/or storing 301 presets on teletype or teletype scenes on 301 would be very powerful.

11 Likes

This cross pollination between Lines and O|D is an interesting one. I couldn’t imagine two other forums meeting on such creative and polite terms where a speculative dialogue could generate so much anticipation and hope of an alliance.

8 Likes

Here and Lines : the two best places on the internet !

13 Likes

Dear all,

Please visit http://instagram.com/scanner_darkly_

Thank you!
Stef

3 Likes

amazing to see these ingredients together in action! specially considering the just recently made available teletype grid ops are a total game changer on that front.

to clarify, there is no i2c going on between the two in the video. but IMO, these are already a dream team without bus communication!

looking forward to explore my recently acquired er301…

1 Like

Some good news and some bad news.

Some time ago, tehn and I swapped modules to get this going. Last weekend, I finally got around to hooking up the Teletype with the ER-301 and started developing a few Teletype-specific units and the I2C driver. Unfortunately just as I got to the testing phase for the I2C driver, I realized there was something wrong with the I2C signals coming from the ER-301. It turned out that the AM3352-SOM board has a Schottky diode in series (*) with the SDA pin which prevents the ER-301 from ACK’ing any messages from the Teletype. That’s the bad news. (**)

The good news is that it is quite easy to hack (non-destructively) the ER-301 into having a working I2C port. The necessary modification is to solder a shunt across the diode (labeled as D3 on the red AM3352 board):

Here is what it looks like after I soldered a U-shaped shunt across diode D3:
diode-shunted

Once this modification is done then I2C can be wired up to the UART port underneath the rear SD card like this:

  • UART(TX) to I2C(SCL)
  • UART(RX) to I2C(SDA)
  • optional: UART(GND) to I2C(GND)

The next step is to add custom commands for the ER-301 to the Teletype. I have not done this yet because I would like someone else to handle the Teletype firmware modifications and also I’m not sure there will be any interest given the required hardware hack.

If there is someone who would like to help then I would like to have the same (basic) commands as @bpcmusic has done for the TELEXo:

Command Description
SC.TR 1-n α Set TR value to α (0/1)
SC.TR.TOG 1-n Toggle TR
SC.TR.PULSE 1-n Pulse TR using TO.TR.TIME/S/M as an interval
SC.TR.TIME 1-n α time for TR.PULSE; α in milliseconds
SC.TR.POL 1-n α polarity for TO.TR.PULSE set to α (0-1)
SC.CV 1-n α CV target α (bipolar)
SC.CV.SLEW 1-n α CV slew time; α in milliseconds
SC.CV.SET 1-n α set CV to α (bipolar); ignoring SLEW
SC.CV.OFF 1-n α CV offset; α added at final stage
(Adapted from: TELEX Command Reference by @bpcmusic)

The ER-301 command prefix is SC for sound computer and n can be any number from 0 to 255. So is there anybody out there willing to mod their ER-301 and the Teletype firmware? Once these modifications are done to the Teletype firmware, then I can go ahead and put the finishing touches on the ER-301 Teletype units and I2C settings and release it in a new firmware.

(*) The reason that there is a diode on SDA is because this pin is also used as the RX signal for UART0. The diode is used for level-shifting so that the 3.3V UART on the CPU can be used with 5V devices.
(**) Needless to say, when the upgraded CPU board comes out in mid-2018, it will include a dedicated I2C port that requires no hacking. (Edit: After receiving feedback, this timeline has been redacted. The CPU upgrade will be revisited after the firmware reaches v1.0.)

17 Likes

Very cool!! Makes me wish I had a Teletype, I’d be totally up for doing this!

Best wishes to whomever does go ahead with this, super easy mod, well worth it imho! And worst case scenario it’s just the SOM that it’s possible to screw up, so not a big deal if your soldering iron slips and melts everything (don’t do this or anything like it heheh).

But wait… that’s not the best news in this post:

:smiley: This is fantastic - roll on summer :smiley:

3 Likes

Yes to both things! YES! (A Teletype is coming towards me as we speak!)

So I do have a Teletype along with 2 Telex TXo’s and 1 TXi, but I’m not trained in the art of solder.

The CPU boards are relatively cheap if I’m not mistaken so wouldn’t it be possible to have one sent to a skilled community member who could perform the required mods and then send them on to the purchaser who could just drop it in and plug in the i2C cable?

@scanner_darkly Would you be willing to add the SC commands to the Teletype firmware?

This reminds me. The Teletype I2C port is a 2x3 header while the ER-301 UART port is a 1x5 header. So you will also need the skills to create an adapter cable.

@bpcmusic sent out custom cables with the new batch of Telex that were 3-pin i2C cables instead of the 2x3 that I got for Just Friends. Still, you are saying then we’d need a 3 to 5 wire adapter right?

I have both and would absolutely make the hack! It would look worse than yours but I could handle it. Worst case I have to wait untill summer :stuck_out_tongue: (yay!)

Unfortunately I don’t have yet the skills to mod the firmware. @scanner_darkly seems to be the man, but he’s busy finishing the grid ops :scream: (seriously, do not disturb him, heheh)

a question about the design: if I understand correctly the messages are sent to units. so they would need to be put in a global chain to use as an input right?

1 Like

Some motivation. Initially there will be two Teletype units to support the commands mentioned: Teletype Gate and Teletype CV. Each Teletype unit has a parameter called index which controls which Teletype commands apply to it. For example:

SC.TR.PULSE 45

Would cause all Teletype Trigger units with an index parameter equal to 45, to send out a pulse. Because these are ER-301 units:

  • More than one unit can respond to the same command.
  • The destination index is modulate-able.
  • The units can be placed anywhere.
3 Likes

Guess you didn’t see his Instagram post where he was busy compiling VCV Rack :slight_smile:

No I didn’t :smirk:

(eagerly awaiting 2.2 and grid merged :stuck_out_tongue: )

Damn, i am so excited !
Teletype + Grid owner, i’d love to try this !!!
How would this work ? Dedicated IN/OUT units ?
EDIT : read you post. But it seems to go only from TT to the ER-301, isn’t it ?

I would absolutely do this.

Would it be possible to trigger Teletype from the ER-301 as well? I’d love to, for example, have slice change on a sample player send a gate through Teletype…

For now, yes. I would like to go live with just TT-to-ER-301 first and gather feedback before spending more time on it.

Does the Teletype support multi-master I2C? If yes then the answer is yes. If no then the answer is no.