Telex: Teletype expanders

This is amazing and i think we need a dedicated 4-voice synth working with Teletype and some voice handling Operators.


Yes, two at each end nails the boards down very nicely while not making future disassembly impossible.

Make sure you clamp everything together before soldering to get the middle sets of pins seated well.


being able to control multiple TXo modules effectively was actually one of the main drivers for grid integration! partially because there is so much that can be done with all the TXo ops, i probably only used 1% of what’s possible so far… i should make some dedicated TXo/grid scenes once grid integration is complete.


Wow! Can you post the scene? I would love to modify this for a 6 voice synth with Just Friends / Just Type


Here are the three TXi modules. My stately schnozz would not fit in the frame.

Solder looks a little blobby, sheesh. I was working fast.


Also keen to see the scene. I’ve been trying to do this for JF…I’m close, but having a few voice allocation issues, particularly when 2 voices are allocated to the same note

1 Like

I’ll share when I have a chance to clean it up.

I’m in the middle of some firmware work (next rev for TELEX, 16n firmware and teletype ops, a couple of new pattern ops, and the ER-301 teletype ops). All of the coding is done - but I have a fair bit of testing before I do a pull request (working off the grid ops branch by @scanner_darkly). Once that is done - I’ll clean up and share my scene. :slight_smile:


TELEX v.019 BETA Released

A new beta of the TELEX code was released last evening. It is 100% compatible with the current Teletype firmware and fixes the TXo offset bug that @Pampalini discovered a few weeks ago.

You might also notice that the beta also contains some expanded functions for calibration (suggested by @jnoble) and gates for the envelopes. These features require an update to the Teletype firmware. That update isn’t available yet.

My Teletype changes were merged into @scanner_darkly’s branch last week and will be available in his next Grid Operators Teletype Firmware Beta. That is a week or so away. (We did this to keep the number of independent Teletype firmware versions to a minimum and to ensure that the features got into the pipeline after the nearly-final 2.2 release goes live.)

Yes, this is a total tease. But, my brain is still close to the material, so I figured I better share this now. Sorry for the mental cruelty.

Download Beta TELEX Software

Release Notes


  • Revised address identification code
  • Added calibration code for the CV outputs
  • Fixed offset bug for slew times of 0
  • Added new envelope mode for on/off that gate the attack and decay


  • Revised address identification code
  • Fixed range bug that kept CV/PARAM from reaching the max value

Please let me know if you experience any problems with it.

Coming in the next Grid Operators Teletype Firmware BETA

Again - this isn’t released just yet. Should be here soon. :slight_smile:

New TELEX Operators

Locks the current offset (CV.OFF) as a calibration offset and saves it to persist between power cycles for output x. (Detailed description of the process is at the bottom of the post.)

Clears the calibration offset for output x.

TO.ENV x y
This parameter essentially allows output x to act as a gate between the 0 and 1 state. Changing this value from 0 to 1 causes the envelope to trigger the attack phase and hold at the peak CV value; changing this value from 1 to 0 causes the decay stage of the envelope to be triggered.

New Pattern Operators

find the first minimum value in the pattern between the START and END for the working pattern and return its index

find the first minimum value in the pattern between the START and END for pattern x and return its index

find the first maximum value in the pattern between the START and END for the working pattern and return its index

find the first maximum value in the pattern between the START and END for pattern x and return its index

ER-301 Operators

SC.TR x y
Set trigger output for the ER-301 virtual output x to y (0-1)

Set polarity of trigger for the ER-301 virtual output x to y (0-1)

Set the pulse time for the ER-301 virtual trigger x to y in ms

Flip the state for the ER-301 virtual trigger output x

Pulse the ER-301 virtual trigger output x

SC.CV x y
CV target value for the ER-301 virtual output x to value y

CV offset added to the ER-301 virtual output x

Set CV value for the ER-301 virtual output x

Set the CV slew time for the ER-301 virtual output x in ms

16n Operators

reads the value of the FADER slider x; default return range is from 0 to 16383

TXo Calibration Helper

To calibrate your TXo outputs, follow these steps. Before you start, let your expander warm up for a few minutes. It won’t take long - but you want to make sure that it is calibrated at a more representative temperature.

Then, first adjust your offset (CV.OFF) until the output is at zero volts (0). For example:

CV.OFF 1 8

Once that output measures at zero volts, you want to lock it in as the calibration by calling the following operator:


You will find that the offset is now zero, but the output is at the value that you targeted during your prior adjustment. To reset to normal (and forget this calibration offset), use the TO.CV.RESET command.


Amazing work, thanks so much!

1 Like

P.MIN is a very welcome addition. Previously I had to sacrifice an entire script to do get an argmin.
How does it handle a tie? does it return the index of the first occurrence or the last?

First. :slight_smile:

I went through the same. :slight_smile: :slight_smile:

1 Like

Not sure if this belongs here or in the Teletype 2.2 thread … I’m running the latest beta:

Executing TI.PRM x when x is greater than the highest param input (in my case, greater than 12) locks up the Teletype.

Calibrating my TXi and Parameter went fine. On the TI.IN.CALIB is it a matter of preference to set our TXi to -10V thru 10V or 0V to +10V, or is it your recommendation to set it to the full range?

What is the factory default? Edit: Just read that there are no defaults set.

I’m getting “Unknown Word” with: TO.CV.CALIB 1

This generally happens when there is insufficient pull-up on your i2c bus. How many devices are you running and do you have a powered bus board?

The Teletype can generally handle approximately 3 devices before things are unstable - but this is also affected by the length of your cable runs. In my experience, reads fail more consistently first. Unknown ports/devices are a sure fire way to get an unstable bus to lock your Teletype. The solution - a powered bus board.

Full range. I did calibrate this last batch of TXi before sending them. Don’t believe the documentation. It is full of lies. Big, fat, blatant lies. :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile:

(Or I printed it before deciding to calibrate them.)

Yeah - you need the firmware that was merged into @scanner_darkly’s branch. It isn’t available yet. :slight_smile:

I have a backpack on the Teletype that currently feeds (2) TXo, (3) TXi, and a JF. Overall system power is a lightly loaded Intellijel TPS30 MAX. I haven’t had any stability issues otherwise.

After some more investigation, the problem arises when trying to read past 32. This is fine:

L 1 32: TI.PRM I

But this hangs the Teletype:

L 1 33: TI.PRM I

The problem arises when moving code around that uses a counter as the index for parameter reads: sometimes the line that does counter reset gets deleted etc., and the counter goes over the limit and locks up the Teletype.

Ah! Now I understand. There might be a bounds error when calling beyond the 8 supported devices. I’ll look into it. Thanks for clarifying. :slight_smile: :slight_smile: :slight_smile: :slight_smile:


While I wasn’t able to replicate the hanging Teletype with my development setup, I went ahead and put bounds checks in as they were something I should have been doing anyway. I’ve submitted a pull request for @scanner_darkly. Depending on his timeframe - hopefully this chance can make it into the grid release. :slight_smile:

Thanks again for reporting it.


new beta firmware for the Teletype supporting the new features listed above is now available here:


Bug report: v0.19 TXi issues. :slight_smile:

I don’t know where to begin with this one except with the hardware and firmware versions:

Teletype w/backpack running grid/ops latest
(3) TXi running v0.19
(2) TXo running v0.19
(1) Late model Just Friends with I2C connection

TI.PRM x returns 0 or weird values on TXi running v0.19. TI.IN seems to be affected too. I tried a mix of firmware revisions (two TXi v0.18, one TX v0.19) and the v0.18 TXis worked fine and th v0.19 did not. Reflashing everything to v0.18 fixes the problem except that there appears to be an issue with TI.PRM.MAP …

… namely that full CW can return 0 when e.g. TI.PRM.MAP 1 0 7 is in effect. Backing off from full CW will return the expected 7. (EDIT: right after posting, it occurred to me that I ran a calibration on the params and then swapped Teensies around while troubleshooting … this could explain what I’m seeing, so hold off chasing that one!)

This took a while to isolate due to a bad Teensy in one of the TXis–not sure how that happened! I completely remove the Teensy to flash it, so it’s not a magic smoke issue. Stuff happens. :slight_smile: