ADDAC221 i2c

Hi @scanner_darkly and all!

I don’t know if this can be slightly off-topic, so sorry if so!

My good friend André from ADDAC has modded a ADDAC 221 and now it transmits midi over i2c. This is amazing since not only one can use 10 offset knobs (x 8 pages) of the module to control stuff directly over i2c but also allows to connect cv sources from the system and convert them to i2c. There’s also midi in so it opens a lot of possibilities. This is particularly useful for ER301 users since they can take advantage of the i2c connections. André tested this directly with the ER 301 and it seems to work perfectly so far.

My question is how can we integrate this and be able to maintain the teletype-er301 connection. Can teletype read the i2c info coming from the ADDAC 221? And shall we use the fader op for that, just like with the faderbank?

thanks in advance!

11 Likes

It is interesting how many offshoots have been inspired by the faderbank, and a modded ADDAC 221 certainly looks like a great addition to this growing ecosystem :+1: It definitely deserves its own thread.

There can only (reliably) be one I2C leader on the bus. Teletype is only a leader but the 16n and its offspring can be configured as leader or follower. Therefore to accomplish what you ask ADDAC will need to have both leader and follower firmware options available. If they aren’t comfortable opening up their firmware source then they may want to allow selecting I2C addresses and message ranges in their configuration tool. Per-preset settings would be good for Leader mode configs (eg switch pages to control a different part of your ER-301 patch).

  • Follower mode: 4x possible faderbank addresses with 16x values polled from each

  • Leader mode: 3x possible ER-301 addresses with 100x values accepted each

Seems like the ADDAC’s 10x values would fit within the existing faderbank paradigm but there are some possible deviations which would deserve a fresh approach with a new I2C address and Teletype OPs.

Big obvious question: Would the MIDI operations be open to I2C influence?

2 Likes

not much to add to what @desolationjones said. basically, it would be similar to using faderbank with teletype - without TT you run it in leader mode, so it pushes changes to ER-301, with TT it has to be in follower mode, and then you can use metro script to poll for values and push them to ER-301.


in terms of dedicated TT ops - i think in general it’s best to have dedicated ops for each device, but this sounds like a pretty special case, and it would be easy to re-use fader ops for it, especially since we allow up to 4 faderbanks on the same i2c bus.

a better option to consider might be adding new device agnostic ops for controllers (since it’s likely there will be even more devices supporting the i2c protocol). something like CTRL or similar. these could support any number of values (instead of being limited to 16 for faderbank) and we could allocate address space for up to 8 devices.


curious, is hardware mod required for it, or is it just the firmware?

edit: let’s split this into a separate thread.

3 Likes

Hi @desolationjones and @scanner_darkly. Thanks for the replies!

I’m not by any means an expert in i2c, firmware or the build of the module but I think I understood your replies.

I think so yes, but I’ll clarify with André

it the fader ops are usable it’s great news.

that would be even better for sure. but I guess it will depend on someone’s interest to implement it :slight_smile:

Hardware, but André made a new pcb so the new modules will have a prepared board to transmit i2c.

Btw, the addac 221 has midi out so theoretically it can be used to have midi out from the teleype, I guess.

sure, if I knew how to do it! :smiley:

3 Likes

yeah they should be usable already, andré would just need to implement the follower mode. i would be happy to help with any questions.

this might be faster than waiting for dedicated ops to be added - they warrant a separate discussion, i’ll start a new thread. once we finalize the requirements i can add them (unless @csboling beats me to it :slight_smile: )

yeah, with midi in / out there are several potential use cases:

  • send CV to ER-301 (already implemented)
  • send MIDI notes to ER-301
  • read CVs from teletype (via existing fader ops, possibly dedicated ops in the future)
  • read MIDI CCs from teletype (would require new ops)
  • send MIDI notes and CCs from teletype (would require new ops)

need to think how to do the last 2 in the way that isn’t device specific…

2 Likes

I would love seeing something like this to talk between Bitwig and my i2c enabled stuff. There was so much interest with the 16n so I’m wondering what kind of interest might be here for this modified 221 with i2c?

@eremitalf I’d change the topic of this thread to something like, Midi to i2c Module

i would keep this thread for addac221 discussion, for midi/i2c discussions check out these threads:



1 Like

With the txi nowhere to be found, this seems like a nice step forward, although it’s too large and to feature rich for my immediate use. I’ll be following this with great interest!

I’ll send my TT to André tomorrow so he can test all this. Exciting!

1 Like

Hi @scanner_darkly and @desolationjones ! First of all, happy 2020! :smiley:

I wonder how can we retrieve values bigger than FB 16? Teletype doesn’t seem to recognise values above 16 when receiving signal from the ADDAC 221. How can FB read the values from the remaining 3 faderbanks, like you say above? Is it possible to receive the 64 values from the same device?

thanks!

In current Teletype firmware it is associating each set of 16 values to a particular I2C address. For the ADDAC device to respond past FB 16, it will need to be listening for messages on all of those channels, and responding on the appropriate channel.

1 Like

what @desolationjones said. allowing it to query 64 values would require a change in teletype firmware (although a very minor change).

1 Like

thanks @desolationjones and @scanner_darkly! got it. From what I understood from André he cannot configure the 221 firmware to use all three i2c addresses at the same time with the same unit.

Fingers crossed for a new dedicated op or firmware upgrade soon. :slight_smile:

Anyway, the 221 is successfully working via i2c. Read by teletype and sent to ER301 via i2c. Only 16 channels though, but it’s a start. Also, there are updated bus boards for the 221, now with i2c headers. I’m waiting for mine to arrive, which should happen next week.

1 Like

Happy new year!

This is my first post here!
@eremitalf has been challenging me to do this integration for a while and i finally accepted the challenge, so far i have our ADDAC221 running 2 separate i2c networks, one in master mode to send messages into ER301 and a second network in slave mode to communicate with teletype.
this allows me to send cv and midi into the ER301 using the SC.CV and SC.TR and with a new OP for the teletype i’ll also be able to send and receive data from 221 which can come either from the 221 cv inputs or any of the 2 midi inputs (usb and din5).
I cloned the teletype github repo, created a new OP but now i’m stuck in compiling this new teletype firmware, i believe the issue has to do with: (PREFIX=$HOME/avr32-tools make install-cross) as it returns:
Failed to connect to distribute.atmel.no port 80: Network is unreachable make: *** [downloads/avr32-patches.tar.gz] Error 7
I’m on osx, tried both catalina and sierra

i wanted to get everything working with teletype before submitting any files for your approval and so on but this got me stuck so any help would be greatly appreciated! :slight_smile:

All the very best*
Andre

5 Likes

hi andre, welcome to lines!

re: firmware toolchain - there is some discussion in this thread. see if this post helps: Module firmware development: avr32 toolchain

or if you’re comfortable using docker you could also try that option.


i can make a change to allow using FB for 64 channels instead of 16. you mentioned a new OP - is it something 221 specific?

also curious about 2 separate i2c networks - do you mean 221 using both at the same time, so 2 completely separate buses, or is it 1 bus switchable between the leader mode and the follower mode?

1 Like

fingers crossed for this 64 channels upgrade. Please keep me posted @scanner_darkly.

ok give it a try (disclaimer: i didn’t have a chance to test).

teletype.hex (587.8 KB)
teletype.zip (172.6 KB)

i think this should be a temporary solution as this change is not compatible with how FB op is supposed to work for multiple faderbanks (even though there is a bug right now which will prevent it from working for faderbanks 2-4, from what i can tell).

1 Like

great! I’ll try it in a few days. thanks for this!

After a long hiatus I just wanted to say that this solution is working perfectly so far, thanks to @_ag and @scanner_darkly. I’m using the ADDAC 221 to send up to 64 channels of i2c to the teleype, which routes them to the ER301. Due to the fact that the ADDAC 221 has a usb connection on its panel and midi minijack input I can simultaneously use a midi controller (faderfox UC4) on the minijack and midi signals from the laptop (pure data, max /msp) via usb. And I can also send CV signals from the modular as midi to the laptop (or other midi devices).

Nice! Will this alternate ADDAC221 firmware be made public or open-sourced?
If it is going to be widely available, I think ADDAC221 should get its own I2C address and OPs within Teletype and crow. Or perhaps it will be a good target for the hypothetical universal I2C OPs that have been kicked around.

EDIT: whoops, I see I am duplicating discussion you are already having on the Teletype thread :slight_smile: