Required Hardware Connections
- First determine your ER-301 board revision.
- If you have an ER-301 with board revision 7, then please go here.
- Otherwise go here.
As of v0.3.06 of the ER-301 firmware, there is support for Teletype to control the ER-301 over the i2c bus. There is a discussion thread over on the forum dedicated to this topic:
Available Units and Commands
The following commands are available on the Teletype for control of the ER-301. In all cases, the first parameter is the port number which can take any value from 1 to 100.
|SC.TR port α||Set TR value to α (0/1)|
|SC.TR.TOG port||Toggle TR|
|SC.TR.PULSE port||Pulse TR using TO.TR.TIME/S/M as an interval|
|SC.TR.TIME port α||time for TR.PULSE; α in milliseconds|
|SC.TR.POL port α||polarity for TO.TR.PULSE set to α (0-1)|
|SC.CV port α||CV target α (bipolar)|
|SC.CV.SLEW port α||CV slew time; α in milliseconds|
|SC.CV.SET port α||set CV to α (bipolar); ignoring SLEW|
|SC.CV.OFF port α||CV offset; α added at final stage|
(Adapted from: TELEX Command Reference by bpcmusic)
The above SC.TR and SC.CV Teletype commands are paired with two corresponding units on the ER-301 of the same name:
The SC.TR unit has a single parameter called 'port' which is also modulate-able. This port parameter matches the first argument of all of the SC.TR commands on the Teletype side. If desired, you can have multiple units set to the same port.
For example, the following Teletype command:
will cause all instances of SC.TR units with port equal to 42 to output a pulse. Bang!
The SC.CV unit has a single parameter called 'port' which is also modulate-able. This port parameter matches the first argument of all of the SC.CV commands on the Teletype side. If desired, you can have multiple units set to the same port.
For example, any of the following Teletype commands:
will cause all instances of SC.TR units with port equal to 42 to slew to the value of 0.1 (which corresponds to the external value of 1V).
The Teletype maps the integers -16383 to 16383 (*) to the output voltages -10V to 10V. Since the ER-301, maps the voltages -10V to 10V to the internal values of -1 to 1, ER-301 values are calculated from Teletype raw values like this:
Two points to consider when using SC.CV and SC.TR commands to select and trigger slices on the ER-301 (or any device that uses a CV/gate selection mechanism).
Make sure the CV slew is set to zero (SC.CV.SLEW port 0), or, use the SC.CV.SET command instead of the SC.CV command. The SC.CV.SET command ignores the slew setting.
Place your SC.TR commands after the SC.CV/SC.CV.SET commands in your Teletype script. At the moment, Teletype I2C messages are sent one-by-one and there is no grouping functionality (i.e. here is a bunch of messages to treat as simultaneous). So the order in which your Teletype program generates the messages is the order in which the ER-301 will receive them along with a non-deterministic time interval between the messages (especially if there are a number of devices sharing the i2c bus).
Configuring the ER-301
You can enable Teletype i2c communication by navigating to Admin > System Settings > Monome Teletype and choosing the appropriate settings:
You can also set the ER-301 slave address in this same screen. If you have one ER-301, then use 0x31. Use 0x32 for your second ER-301 and use 0x33 for your third (!) ER-301. This way the Teletype will automatically route your commands in the following manner:
- ports 1-100 to the first ER-301 (0x31),
- ports 101-200 to the second ER-301 (0x32), and,
- ports 201-300 to the third ER-301 (0x33).