MIDI over Bluetooth with ESP32

2 hours ago, TK. said:

My first KiCAD project - I don’t miss xcircuit and Eagle & I’m happy that other people can now edit the files with state-of-the-art open source SW as well :slight_smile:

 

KiCAD is great ! Glad you switch

Best

Zam

 

While waiting for the PCB I worked on the “Apple MIDI” protocol which allows to transfer MIDI messages over WIFI (and Ethernet - known from this project: 

http://discourse.midibox.org/t/topic/18081

As a second project I consider to create a universal “MIDI bridge” device for MIDIbox projects which supports UART, Bluetooth, WIFI and SPI, maybe also CAN.

So, it can be connected via SPI port J28 to a MBHP_CORE_STM32/F4/LPC17 instead of the MBHP_ETH module, or alternatively via UART (e.g. also to PIC based projects) giving us wireless connections :slight_smile:

The latency is not so nice - expect ca. 5 mS + some jitter - it won’t be really suitable for sending MIDI Notes, but it will be very nice for MIDI controllers.

Another topic which needs to be explored: if the antenna is strong enough to send/receive in a metal case, like MIDIphy MBSEQ V4+

Best Regards, Thorsten. 

Great work! The universal solution will be much appreciated as we have spare UARTs on the upcoming BLM :slight_smile:

I think that a ESP32 could handle the BLM16x16+X code internally, no need for a second core :slight_smile:

Best Regards, Thorsten.

Short update: the ESP32 based MBHP_MF_NG can now communicate with BLEMIDI over Bluetooth, Apple MIDI over WIFI, and traditional MIDI via UART

-> https://github.com/midibox/esp32-idf-mfdrv

Still some work to do, but I think that this is a pretty good basis for other MIDIbox projects - special focus was on reliable SysEx transfers and routing between different MIDI interfaces.
This major challenge is solved! :slight_smile:

Best Regards, Thorsten.

Great work Thorsten !!

Side question, is it possible to hook ESP32 and STM32F4 cores with direct midi/UART connection (high speed without opto like I do between 3 STM core here)

And use it as a RTPM wifi bridge ?

Best

Zam

29 minutes ago, Zam said:

Side question, is it possible to hook ESP32 and STM32F4 cores with direct midi/UART connection (high speed without opto like I do between 3 STM core here)

And use it as a RTPM wifi bridge ?

Or prepare the ESP32 as a SPI-MIDI slave like a kissbox?

Actually I wanted to provide SPI slave (see some postings above), so that the module can be connected to J28 instead of ENC28J60

But a UART connection is available as well - and the baudrate is configurable by default.

As long as you only need a point-to-point connection, UART is a good choice. But for accessing multiple ports (e.g. BLE and Apple MIDI) SPI would be better, because it considers multiple “cables”.

Best Regards, Thorsten.

P.S.: in context of MBHP_MF_NG: only UART option will work, because SPI is already used for other purposes.

So meanwhile: is it worth replacing the PIC with the ESP? 

I’m designing a PCB for MF NG by myself. So if the PIC is outdated I’d upgrade to an ESP up front. 

Yeah, I know, I’m like six years late to the conversation, but…

I was looking into the ESP32 myself recently, but for an entirely different purpose. From what I understand, there are two hardware UARTs on the ESP32 that can be accessed on the dev kit v1 board. I have further come to understand that the device can be configured as an i2c slave with a configurable address using the Arduino IDE and the wire library.

My thought is this: configure the ESP32 as an i2c slave to provide 2 DIN MIDI outs (plus perhaps Bluetooth MIDI) to my stm32 based MIDIBox sequencer build, in opposition to the PIC-based i2c MIDI solution, as it is getting harder and harder to program PICs in the modern age.

Does this sound like it could be a feasible solution, TK?