16n-faderbank / 16n

Sixteen faders, a Teensy, MIDI over USB and jack, CV out, and I2C out. Phew.
Other
337 stars 58 forks source link

Teensy 3.2 -> 4.0 Migration #68

Open janczmok1970 opened 11 months ago

janczmok1970 commented 11 months ago

Hi, i wonder what functions are critical in the 3.2 that would stop to 4.0 migration ? Background: I hardly can get a 3.2, but 4.0 seems pin compatible.

eagereyes commented 8 months ago

I just built a 16n using a Teensy 4.0 and it works with basically no modifications. I just commented out all the I2C code because the i2c_t3 library doesn't exist on 4.0 and I don't need I2C anyway.

That aside, it works just fine if I set the maximum raw value in the config utility to 4090. I bet there's a setting somewhere to get higher resolution, but since we're only sending 7-bit values anyway, it doesn't matter.

angiamusic commented 5 months ago

I just built a 16n using a Teensy 4.0 and it works with basically no modifications. I just commented out all the I2C code because the i2c_t3 library doesn't exist on 4.0 and I don't need I2C anyway.

Would you mind uploading it as a fork or something? I can't seem to get it to work at all, but then I also failed basic HTML in school. Teensy 4.0 support in general should be a concern for this project as Teensy 3.2s have been out of production since October 2023.

eagereyes commented 5 months ago

Hi, I've forked the repo and uploaded my modified version of the firmware here: https://github.com/eagereyes/16n-for-Teensy-4.0 It also includes a compiled .hex file for use on Teensy 4.0. Let me know if it works for you!

Cy-Rot commented 5 months ago

Hi, the hex file works fine, but I can't compile the source code. I was on an older version of the arduino Ide, wich raised a lot of errors with midi.h.

I upgraded to 2.3.2 now but there are still a lot of warnings concerning sign and unsigned values and one ( as I assume) error, which prohibits the teensy from connecting as a usb midi interface to my computer:


__In file included from C:\Users\samoz\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\libraries\MIDI\src/MIDI.h:307, from C:_DATEN\05_THO\CyFader\Cy_16n-for-Teensy-4.0main\firmware\16n_faderbank_firmware\16n_faderbank_firmware.ino:22: C:\Users\samoz\AppData\Local\Arduino15\packages\teensy\hardware\avr\1.59.0\libraries\MIDI\src/MIDI.hpp:492:74: note: initializing argument 1 of 'void midi::MidiInterface<Transport, _Settings, _Platform>::sendRealTime(midi::MidiType) [with Transport = midi::SerialMIDI; _Settings = midi::DefaultSettings; Platform = midi::DefaultPlatform]' 492 | void MidiInterface<Transport, Settings, Platform>::sendRealTime(MidiType inType) | ~~~^~~~


Maybe you've have an idea how I could solve this?

infovore commented 4 months ago

I believe 4.0 is pin compatible; the firmware will require recompiling. The hex file linked above by @eagereyes might be your best bet. Meanwhile, I've also made a branch that reverts to using Wire.h; the main advantage of that would be that Teensy 4 boards could be used along with I2C.

I do not, however, have a Teensy 4.0 to test with.