Smallest Arduino-compatible board with i2c, USB-MIDI (and capacitive touch?)

So I'm working on a project where I'd like to bake the Arduino I use into a custom PCB to house the rest of the electronics/components and I figured it would be a good excuse to try to find an optimized Arduino variant for my project.

I definitely need:

  • Arduino compatible (libraries/IDE)
  • i2c support (a single bus)
  • USB-MIDI (so it shows up as a MIDI device when compiled)

I would like to also have:

  • a capacitive touch pin
  • USB-C port
  • castellated pads

So I've looked at this handy comparison table here:
https://www.sparkfun.com/standard_arduino_comparison_guide

And from that, a decent option looks like this:

BUT

I can't tell if that works as USB-MIDI. I don't know what that would be labelled as or if it just comes down to the USB-to-Serial choice. The documentation mentions HID/mouse/keyboard support, but nothing about MIDI.

I normally use a Teensy (3.2s historically, but now 4.0s) and in the documentation there it explicitly mentions that it can be programmed to output MIDI. Since what I'm making is, to a certain extent a "MIDI controller", this is quite crucial.

Lastly, I don't know if any of the small boards have onboard capacitive pins (ala Teensy 3.2), as, again, I don't know where that would be labelled in any kind of comparison page.

I suppose I could use something like this with any Arduino-compatible board:

But don't know if that needs to be a specific kind of Arduino to work.

edit:
Also found this:

It seems to tick most of the boxes above (MIDI, i2c, USB-C, castellated), but never worked with one of these QT Py boards, so not sure how Arduino-compatible it is (for normal libraries as well as capacitive touch library use).

i can

Does that mean it (SparkFun Qwiic Pro Micro) does do USB-MIDI?

if Uno can do, why standalone 32u4 should not?

1 Like
1 Like

Goodness!

Tiny and so cheap too! Crazy that the wifi/bluetooth is superfluous so presumably be even cheaper without.

I didn't see anything on the product page about USB-MIDI but did find this, related to the ESP32S3 in general:

So don't know if the USB-MIDI implementation is different from the typical usbMIDI.sendControlChange-type messages or if that's specific to a Teensy:
https://www.pjrc.com/teensy/td_midi.html

Not a big deal, but as long as the MIDI implementation is comprehensive enough to do control change, pitch bend, etc... should be fine either way.

Lastly, I guess the i2c implementation is something you define in software, but looks straight ahead via this:

The ESP32 MCU has built-in WiFi/BLE capabilities, but if not needed you can simply don't use them (but why not implement a BLE-MIDI wireless device instead of USB? :wink:)

Regarding the USB, ESP32-S2/S3 has a complete USB device stack so you can program it as you need. The example you found is undoubtedly a good starting point.
Check also the examples included with this Adafruit library which fully support the ESP32 Arduino core.

As for the I2C, for XIAO board the default pins are D4 and D5 but with the ESP32 you can freely re-assign almost any pin to each of the included peripherals (I2C, I2S, SPI, UART etc).

1 Like

The option is nice, but part of the rest of the circuit will be an audio preamp and signal, so there will be "a cable" no matter what. Worth experimenting with though, as I've not done wireless stuff in ages (curious what kind of latency you get with BLE-MIDI these days).

Riiiight. That makes sense. I guess with this you need to flash things then put it into MIDI mode as separate steps (unlike the Teensy bootloader where you can switch back and forth and still program things).

Yup, I see that in the diagram. I missed it when first looking at it. I guess with this approach you need dedicated pull-up (2.2k?) resistors for the i2c since I didn't see any mention of built-in pull-ups, and the board is tiny so I imagine there's not resistors hiding anywhere.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.