I2C is a hardware bus specification that allows 2 or more integrated circuits to communicate over two wires plus ground. I2C was designed for closed systems where the electrical characteristics of all bus connections and participants are known beforehand. As an end user, this means you should acknowledge that I2C is not a hardened consumer-oriented technology and all use of I2C to connect the ER-301 to other devices is at your own risk. Using I2C exposes sensitive circuitry of the ER-301 to ESD risks so precautions must be taken when designing your I2C-connected system. It is best to think of it as a form of community-supported factory-enabled hacking.
The first few runs of the ER-301 did not have a dedicated i2c header. Instead users would perform a small hardware modification (described here) so that they could use the exposed UART header instead.
In a nutshell, i2c requires 2 communication lines (SCL and SDA) plus 1 ground line. So there are 3 pins on the Teletype that need to be connected with a custom cable to 3 pins on the ER-301.
Please note: The ER-301 does not ship with i2c cables. Here is some info on how to DIY your own cables: DIY i2c cables @ LINES forum.
There are 5 pins extending parallel from underneath the ER-301 CPU board. You will only be using the top 3. You can also see that the 5 pins are labeled on the ER-301 silkscreen as TX, RX, GND, GND, and 5V. Connect like this:
- Teletype GND to ER-301 GND.
- Teletype SCL to ER-301 TX.
- Teletype SDA to ER-301 RX.
The goal of this hardware modification is to short out the diode labeled D3 on the red CPU board on the back of the ER-301. The diode’s original purpose was to provide level-shifting for the RX pin of the UART port. Shorting out this diode allows for this pin to be used for the SCL (clock) pin of i2c.
- Soldering iron (ESD-safe, reliable temperature control) and solder (recommend no-clean flux)
- Short length of solid core wire (or waste lead from a through-hole resistor or LED or similar)
- needle-nose pliers (optional)