Befaco VCMC / i2c Development

You may find now on the Test branch of VCMC GitHub (github.com/Befaco/VCMC) the binaries and for the bravest the source code for I2C support.

It is currently a WIP but we would like to get feedback from users connecting to different platforms.

We are trying to keep as much compatibility with Teletype source code as possible to make new integrations as easy as possible, so kudos and credits to the Teletype Team!

The current implementation is only for leader mode with support tested only on Just Friends but on theory supporting the following devices:
whitewhale
meadowphysics
earthsea
orca
ansible
justfriends
W/
telexO
telexI
ER301
matrixarchate
disting ex

For each of these devices, most of the Teletype commands are implemented but not debugged.

To configure the module for I2C you have two options:

  1. Go to main configuration menu (long press on encoder) and select a follower device. This should set the default implementation for the device on gates, CVs and sliders.
    Currently there is implementation for default configurations on ER-301, Just Friends and TelexO
  2. Go to the VCMC configuration for each individual port (Gate/CV/Slider) and select I2C Device, Command and Channel. This should provides tons of customization for the user.

There isn’t support yet for Saving the I2C parameters to EEPROM, so your configuration will be lost when the module is reset.

After installation of the this firmware, you may need to go through calibration procedure.

So have fun and let me know your suggestion/issues.
Thanks a lot!

14 Likes

ParanormalPatroler This might be of your interest :slight_smile:

1 Like

It definitely is and maybe @scanner_darkly (who is an amazing source of information, inspiration, and code work on Teletype) would be interested to know there’s a follower option coming, which would allow the Teletype to control the VCMC. Right?

Unfortunately I have none of the follower modules to test but I’m going to jump on the bandwagon as soon as Teletype is an option. No pressure, I’m patient.

@scanner_darkly does the VCMC need to be in follower mode to send data to Teletype that Teletype can the parse in one way or another? I assume yes. And I also assume there’s no way to take advantage of the MIDI ops until there’s a follower option for the VCMC, right?

You’re all amazing by the way!

yes, in order for teletype to be able to read VCMC faders / button states via i2cv the VCMC would need to be in the follower mode. since there are 16 values in total i would suggest emulating 16n faderbank, then you could simply use the existing faderbank ops.

no, the midi in ops don’t use i2c, you need to connect VCMC USB MIDI to the USB port on teletype (assuming it’s compatible with teletype MIDI implementation, sounds like it is).

1 Like

Is there any compiled HEX file with the I2C functions enabled?

There is an hex on the folder bin Test branch from Github repository,

Yes, I’ve installed the .hex from the BIN folder, but inside the VCMC I can not find the I2C config …

I have updated the binary because some users have reported issues with the previous version.
Please update with the new version, and on the configuration for CV, Fader or Gate there is a menu that allows to configure each input to send a different I2C message.

1 Like

So, any news on being able to set the VCMC as a follower so that it works with Teletype as well?

I’m really curious to try this out. I would assume that the “status” of VCMC in i2c doesn’t impact the module’s behaviour with MIDI, and the end goal here would be for Teletype to be able to request values from the VCMC’s faders/buttons/cv inputs etc. This would essentially render the VCMC as a good controller for Teletype which, by the way, has 8 scripts, so this 1:1 is really perfect!

I’m also curious if this has changed. It would be a bummer to have to do this process everytime the case is fired up.

I know I’m not the only one excited for VCMC > Teletype connection, so any news would be really welcome!

The main issue I see is that VCMC has more than 16 “simultaneous” parameters it can send, faders, buttons, CV inputs. More like 26, so I’m not sure which ops would be ideal for this, but I guess we could use the 16n ones and limit the use case to those scenarios where the fader and CV are tied (SUM on VCMC) to the same value?

The code in the Test branch includes the option for leader and follower operations.
We have tested connecting VCMC and CVThing modules to check that the basic functionality is working.
The Leader operation is confirmed to work.
The follower operation has been tested and the next step should be to create the code for Teletype for additional ops and testing.
Unfortunately I have not a Teletype available to proceed with testing and development.

The current code is saving to EEPROM the configurations. The drawback is that the available User Slots are reduced from 4 to 3.

This feature development is currently on hold until we have a test bench available.

Do not hesitate to contact for any further clarifications.

1 Like

Does the Test branch have a hex file I can download to get this on VCMC?

I think @scanner_darkly 's suggestion was to repurpose the operators which are already available for 16n, instead of making new operators for VCMC. Granted VCMC has 26 parameters that can be controlled simultaneously, whereas the 16n faderbank only has 16 sliders, but until there’s a decision for dedicate ops we could make this work with 16 parameters (8 faders and maybe the 8 gates/buttons). As things stand, if I download the Follower VCMC firmware, am I right to assume that VCMC won’t be able to work with Teletype as the ops aren’t “tied” to anything?

Also, if VCMC uses the Follower firmware, am I right to presume that the normal operation of the VCMC (re: MIDI) is the same as before?

I’m willing to send mine over if that helps, or ideally test things on my side, to the best of my abilities. I am no coder and my questions can be stupid sometimes (Manu can verify both :wink: ) but I’m always happy to help and available for calls etc.

Reasonable and absolutely fine. I worked with 2 User Slots for a long time :slight_smile: so having 3 instead of for sounds more like a +1 than a -1 to me. Plus I’m pretty fast at changing parameters on the fly by now!

Wait, does this also apply on the CVThing?!? I did not know CVThing can do i2c. That’s absolutely great! I’ll try that as well, I have both units and it’s still my responsibility to beta test the CVThing so I’m happy to help towards making both modules work with Teletype.

How should I proceed?

I will prepare a new hex for you yo make initial testing.
The code from 16m will be a good base but still it is required to create the new ops on Teletype.
I will PM you and try to arrange testing.
Thanks a lot!

2 Likes

looking forward to this, how is it going the development for the ER301? I see no news since january :frowning:

Anyone have any luck with this? I’m wondering if it’s stable enough for general use… are there still plans to release it as a stable version?

Edit: Well… For science, I’ve compiled and installed the Test firmware on my CV Thing. Unfortunately it crashes when I try to do the factory calibration. Luckily I can do general calibration which seems to be ok… now I just need to figure how to connect the I2C to my Just Friends… I assume it’s the EXP pins? I’d rather get confirmation of that before attempting this though :sweat_smile:

check this out! A user's guide to i2c
good source of info on i2c

Thanks - this guide is very helpful, but my question is hardware specific to the CV Thing. It doesn’t appear to have ground (GND), data (SDA) and clock (SCL) pins. Perhaps @Befaco can assist?

1 Like

The I2C pins on the teensy are exposed via JP1, the inward facing 2x4 header by the cutout corner on the read board. The GND is the outer corrner pin, followed by SCl and SDA as you go back down the board.

1 Like

Thanks! Unfortunately I have a factory built version and the pcbs and layouts are different. No jumper pins on factory built boards, just 2x3 pins labels “EXP”.

howdy team. any updates on this project? I’m reminded by expert sleepers announcement.