Tides 2018 i2c

Just received confirmation from @pichenettes that a mod of tides 2018 with i2c is possible.
Is there anyone who have attempted before?
It would be amazing to try also in light of the new Orca firmware by @scanner_darkly


Wow! That would be cool. Also plaits!!! https://forum.mutable-instruments.net/t/tides-2018-revision/14299/96?u=mutedial


Yes, it is but it is quite an effort to do the code work.
so it would be good to know from someone who has done this already or if anyone has ever tried it.

So a alt firmware for tides 2018 to make it more like just friends? That would be awesome :grin:

1 Like

I do not think it is possible to make exactly like but maybe it is possible to have a poly mode a la just friends!

wow, what a good news! hopefully this will happen :pray:t4::grin:

Oh also Plaits that’s a very good news. I’m wondering if the two outputs are linked or if they could be used independently. It would be cool to control the mode via I2c too.

the modules have two pins on the board that are connected to the i2c bus but there is no code implementation in any of the modules.
I am looking into it and it is not a trivial task, at least for my knowledge, so I would really look into make a community effort .
Also do not forget that this is a DIY hacking project as you would need to solder the pins yourself.

1 Like

I would love to see this implemented, and wish I could help… It would be super interesting to follow its implementation too.

And it’s also possible for Warps, Rings, Elements, Clouds – but then you have to use software I2C and it’s more complicated (you need a timer interrupt with higher priority than the audio stuff to manage your software I2C state machine).

Does this mean crow could talk to clouds???

[quoting @pichenettes ]

Seems like this is the starting point for investigating, I will dive in more this week.


This is a starting point in the sense that you’ll have to make sure that none of this code is running :smiley: This code uses the two pins as a UART, which is not what you want!

It’s only a matter of initializing B8 / B9 as a pair of I2C pins for I2C1. You can use the ST functions for that, and for subsequent read/write operations. https://github.com/pichenettes/stmlib/blob/master/third_party/STM/STM32F37x_StdPeriph_Driver/src/stm32f37x_i2c.c#L22

Unlikely because of the extra CPU usage to generate the per-channel envelopes.

Plaits has enough CPU power to only run one synthesis model at a time. That’s why AUX is always a “by-product” of OUT (either an intermediate product in the synthesis signal flow, or something obtained through a little fork in the path…)

Start with something more realistic, like remote-control of the existing features of the module :smiley:


Appreciate you chiming in! This is really exciting with all of the i2c momentum building from crow/norns/new monome firmwares. Being able to control mutable modules in this ecosystem will be HUGE.


20 characters of neat!

Interesting, a while back I was thinking about making an I2C => multiple serial thing to control Mutable modules. Somehow that made sense at the time: all the modules already have serial drivers, it didn’t seem like the timing was super critical, and it would have been mostly state change commands anyway (as @pichenettes says, remote controlling existing features…).

But sure, supporting I2C directly would also make sense if the pins are free :slight_smile: IIRC the F0/F3 I2C peripheral is slightly less quirky than F2/F4, although the devil is still somewhat in the state management details. FWIW last year I made myself a clone of the TELEXi using an STM32F0 initially with StdPeriph code, but eventually replaced some of it to improve the timing. Although I haven’t actually tested it against a TT, so…


Out of curiosity… has anyone tried to work/investigate on this already ?

I’d love to help if I could, but I don’t have the knowledge yet to implement this and I don’t really know where to start. I’m willing to learn though…

Regarding the operation of such a protocol, would the CV inputs of the modules be completely bypassed or could the commands received by I2C be cumulated with the CV inputs and pots of each module ?

I’m also wondering this! This seems really exciting and I think it’s become a bit of a long term goal for me to learn how I2C works, get a better grasp on C and to understand the MCU architecture better, because I feel like communication between modules could really transform what modular is and could be.

If you’re in a similar boat to me @Nordseele in terms of having trouble understanding a lot of what’s being said here, I’ve found watching Ben Eater’s videos on Youtube really helpful in terms of learning about computer architecture from the ground up :slight_smile: a lot to learn!

1 Like