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:

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.)