Teletype DIY: using Grid & Keyboard at the same time (no switch)

As you know, Teletype currently does not support hubs - writing scripts for your Monome or DIY Grid requires using the internal grid simulation, changing cables or some kind of USB switch.

So it might be interesting for some of you, that it is actually quite easy to create a little add-on which allows you to live code your Grid with a keyboard, without switching. This add-on can be put in a little box, or in a 2HP module.


My wireless (dongle) USB keyboard is connected not into the Teletype`s USB port, but to a simple Arduino Pro Mini (328P / 3.3V / 8Mhz) with a Mini USB host shield (~ $10 in total).

The Arduino is forwarding key presses coming in by USB over the II bus to the Teletype. If you put this into a 2HP module, you could wire it directly - I am using a 3.5mm TRP stereo cable into the TxB expander, like the Fader bank.

Once I cleaned up the code, I will publish a patch to the official firmware and/or Github link below, but the required code is actually pretty minimal. A few lines need to be added to the Teletype’s firmware. At start up it checks, if the II keyboard interface is present. If not, it behaves 100% as usual. If present, it polls the Arduino via II at about the same rate, as the internal keyboard would be checked, and then launches the existing keyboard routine.

The code on the Arduino is a simple input buffer plus I2C request handler.


I am not sure if Teletype programmers can give me a free II address for this device, but it would be possible to change it easily. Currently I am using 0x75.

Thank you all, and keep up the good work

@tehn, @scanner_darkly, @okyeron

P.S. As a side effect, this allows the use of USB keyboards with integrated hubs.

P.P.S. A similiar approach could also be used to connect Grid & Arc to the Teletype at the same time, without Ansible (assuming direct Arc support would be added at some later point), or connecting a DIY Neotrellis grid to the Teletype without the additional FTDI adapter (


This sounds great! I would probably use it in conjunction with a switch though, to move the grid between Teletype and Ansible.

My Ansible is still in the mail. I guess it should be possible, and not too difficult, to connect the keyboard to the Teletype, the Grid to Ansible, and have the Ansible forward the Grid to the Teletype on request (similar to the keyboard interface above, but implemented as an Ansible app, for example).

I plan to use the Ansible with a DIY Arc, though, not so much with the Grid. The most flexible option would be to have Ansible access the external hub, to which one would connect keyboard, Grid and Arc, and forward external devices to the TT on request. But not sure if or when I will have time to look into this.

very cool to see the concept realized! have you done any stress testing when using it with grid and sending i2c to other devices at the same time?

This is great @mcleinn, did you ever post the code? Interested in trying this HID polling approach with the keyboard attached to ansible.

Hi Dewb. Not yet. I was happy with the proof of concept, but did not find time to implement proper handling of modifier and special keys, as I was finishing my rack. When I finally finished it, rockets started raining down on my city (I am based in Ukraine), so I had to leave everything behind. As you imagine, now focused on more serious tasks. Hope to finish this project in better times. All the best


Oh no! Yes, definitely more serious things to focus on. Wishing you safety, luck, and peace.