I2C modules to use with the XMX

Just got the XMX and going through the initial learning curve of adding/editing and patching modules :slight_smile:

Beautiful piece of hardware :heart:

Is there any doco on using I2C modules, i.e. Michigan Synths makes a couple of fader modules and how to set them up with the XMX?

2 Likes

I dont think i2c is enabled in the device tree at the moment.

root@192.168.0.160's password: 
[root@rockchip:~]# i2cdetect -l
[root@rockchip:~]#

I don’t know what the plans are in this area…
perhaps it’ll be enabled when image is updated for the usb audio? @bert ?

note: even if it was enabled, there’d still need to be some means to interface i2c ‘messages’ to do something useful to control other eurorack modules - some kind of ‘i2c module’
there might also be other complications (master/slave role, voltages etc) as I previous discussed when looking at this on this on SSP (see below) - though, these may not be applicable to the XMX (as its different hardware).


fyi, comparison on SSP…

[root@rockchip:~]# i2cdetect -l 
i2c-3	i2c       	rk3x-i2c                        	I2C adapter
i2c-1	i2c       	rk3x-i2c                        	I2C adapter
i2c-2	i2c       	rk3x-i2c                        	I2C adapter
i2c-0	i2c       	rk3x-i2c                        	I2C adapter
[root@rockchip:~]# 

on the SSP i2c-3 is the one thats available for end-users
my wiki page for the SSP.

just a quick update, as Im chatting with Bert about this.

yeah, so it’ll be enabled when usb audio update is available.
I do have the expansion port pinout, and Im just confirming a few details on this.

once I have the details I need, and If Bert is happy for me to share,
then I will place on to the community wiki as I did with the SSP. again, like the SSP, this is intended for developers, as incorrect use could damage your XMX. ( * )

as above, even if there hardware is in place, we’d still need some kind of software to drive it.
some kind of ‘module’ to drive the i2c bus.

I did consider this for the SSP, but the value of the SSP, meant I was a bit risk adverse to trying this out… in fear of damaging the SSP… frankly, risk/reward was too skewed.
but it might, consider this on the XMX… that said, I don’t have any i2c devices, so I don’t really have a use-case/reason to actually do this, nor a way to test them.

as for the module, thats kind of interesting…
i2c is a relatively simple protocol, but it doesn’t really mean much in itself…
so whilst something like faders could be implemented as a kind of i2c register → cv module, others uses get much more complicated, and rather specific to the device you are talking.

also, you cannot really create an generic i2c module and then expect it to drive every i2c device… as whilst it will talk the protocol and communicate with the device - , its unlikely it would do anything useful.
i.e. some devices would need a specific module created to be useful.
(thats problematic given the size of user base… we’d almost be creating a module for 1 user :wink: )


( * ) frankly, this is true of any i2c device.
i2c was never intended as an end-user connector/protocol. it doesn’t have the protections etc that something like midi din/usb does. it’s being abused by eurorack modules :wink:

ok, thanks to @bert , Ive now updated the community wiki with the details for the xmx expansion port, and also other general information required to use i2c with the xmx. ( * )

as mentioned above, this is not an ‘end user’ project, rather supplied for developers.

as you would need to :
a) be very careful of hardware setup, in particular:
guarantee voltages do not exceed 3.3v
your device is configured as a follower/slave.

b) write a module in C++ for synthor to support your i2c device/module.

note: i2c is planned to be enabled when the usb audio interface is enabled.