UMK4x4 - 4-16 in/out and 3-15 IN/3OUT USB MIDI interface for STM32F103 series board
__ __| | | /_) | ___| | |
| __ \ _ \ ' / | | / | _ \ __ \ | _` | __ \ __|
| | | | __/ . \ | < | | __/ | | | ( | | |\__ \
_| _| |_|\___| _|\_\_|_|\_\\____|\___|_| _| _____|\__,_|_.__/ ____/
This release introduces new utilities to configure your UMK4x4. These utilities work locally or online.
Check the directory here : https://github.com/TheKikGen/USBMidiKliK4x4/tree/master/htmltools to download locally.
The previous release introduced an issue blocking UMK firmware when it was used in standalone mode (with a power supply only).
it is now corrected. You can adjust the USB detection time with the option #7 in the configuration menu (USB idle time), or by sending the appropriate sysex (Intelligent thru mode settings). Default USB idle is 30 seconds: that means the standalone mode will be activated after 30 seconds.
The inclination towards smaller hardware devices has made it increasingly difficult to make use of DIN connectors for MIDI In/Out in the past few years. Many manufacturers have chosen to use 3.5mm “TRS” connectors instead. It is why The KikGen Labs team released a new UM4x4 V2.3 board based on the STM32F103 Bluepill. This new board uses 3,5MM TRS jacks instead of midi DIN, with full MMA RP-054 type A compliance. Midi DIN is still possible obviously, under the form of a 4 mini 3.5mm jacks to DINs rail board, so you can “patch” midi in and out as you want.
3 news pipes have been added in that release :
https://github.com/TheKikGen/USBMidiKliK4x4/releases/tag/v2.5.2
This v2.5.1 release includes a bug correction in parameters validation of the MSGFLTR pipe that was blocking the function #2.
https://github.com/TheKikGen/USBMidiKliK4x4/releases/tag/v2.5.1
A multi-port USB MIDI interface for the STM32DUINO platform.
Download the last firmware here : https://github.com/TheKikGen/USBMidiKliK4x4/releases
User manual is here : https://github.com/TheKikGen/USBMidiKliK4x4/wiki/UMK4x4-V2.5-User-Manual
Check also the wiki here : https://github.com/TheKikGen/USBMidiKliK4x4/wiki
The story of this project starts with a hack of the MIDIPLUS/MIDITECH 4x4 USB to MIDI interface.
Needing more midi jacks, I bought a second Miditech interface, but I discovered it was not possible to use 2 Miditech / Midiplus MIDI USB 4X4 on the same computer to get 8x8, and according to the Miditech support, as that usb midi interface was not updateable at all !
I was stucked….That was motivating me enough to write a totally new and better firmware : the UsbMidiKlik4x4 project was born.
The current version V2.5 supports full USB midi until 16xIN , 16XOUT plus routing features, enabling configurables standalone mode, merge mode, thru mode, split mode, midi transformation, midi clock, etc., huge sysex flow, configuration menu from serial USB, and is very fast and stable thanks to the STM32F103. More of that, you can aggregate until 5 3x3 boards seen as one by activating the “Bus mode”.
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
If you are a regular user of USBMidiKlik, please consider making a donation to encourage our team, and to pay for the coffees swallowed during the long nights of coding !
thekikgen@gmail.com&lc=FR&item_name=Donation+to+TheKikGen+projects&no_note=0&cn=¤cy_code=EUR&bn=PP-DonationsBF:btn_donateCC_LG.gif:NonHosted">
The “pipeline” feature allows you to modify an incoming midi message through a chain of transformation functions (a “pipe”), e.g., transpose notes, split, map channel to another, map CC to another, etc…New pipes can be easily added in order to obtain complex midi transformations without degrading performances.
4 Midi clock generator / 8 virtual ports are available within the routing engine. Below is an overview of the possible paths for a midi message packet, coming from a physical in port to a physical out port :
The bus mode allows the aggregation of up to five interfaces using the I2C protocol, which will be seen as a single interface by the usb host and/or the midi routing engine (including standalone mode).
Last release of the firmware can be found here : https://github.com/TheKikGen/USBMidiKliK4x4/releases/
Update tool is included. Unzip and launch the UMK_BluePillUpdate.bat file (Windows only currently).
A new version of the USBMidiKlik 4x4 PCB ready-to-use (based on a STM32F103) is available now at Tindie
The board is USB Powered, so no additional power supply necessary.
It works driverless as a class compliant device, with all Windows and Linux versions, Mac OS X, Akai MPC Live/X/Force, IOS, Android…
To simplify connectivity, this board uses now only 3.5mm jacks for MIDI and I2C :
You will find also at Tindie, a 4 ports “midi rail” PCB allowing MIDI DIN from/to TRS. This can help if your need MIDI DIN ports and/or to arange the order of the DIN ports.
With a single board, you can set e.g. 2 MIDI DIN IN and 2 OUT or 3 IN, 1 OUT, or you can set a 16 DIN ports (8 IN, 8 OUT) with 4 PCB, etc..
With 8 midi rail boards and 5 UMK4x4 stacked boards, it is possbile to get 30 midi DIN ports (15 x IN + 16 x OUT).
NB: The UMK4x4 supports only 3 physical IN and 3 physical OUT.
The first protoype of the bus mode I use every day !
Orzdk has developped a graphical UI for manipulating and configuring the USBMidiKliK settings in sysex mode, from a web browser.
It also allows to show visual representation of the routes and transformations that are currently applied in your USBMidiKlik.
Prebuilt binaries are compiled for the tkg-hid-bootloader since the 2.5 version, so you need the tkg-hid-bootloader firmware here :
https://github.com/TheKikGen/stm32-tkg-hid-bootloader/blob/master/F1/bootloader_only_binaries/tkg_hid_generic_pc13.bin
You can then use TKG-FLASH.EXE provided in the release to flash the 128K or the 64k bluepill version.
The 128K firmware should work on a 64K Bluepill most of the time. If it is not the case, try the 64K firmware version.
2 modes can be used to configure the USBMidiKlik midi : system exclusive messages or a configuration menu.
Sysex messages have the following format, and ARE ONLY INTERPRETED ON CABLE 0 OR MIDI IN JACK 1 :
F0 77 77 78 <sysex function id > <data> F7
The “F0 77 77 78” is the specific sysex header for USBMidiKlik4x4. Know that it is a totally unofficial header.
You will find the sysex V2.5 documentation in the repository :
https://raw.githubusercontent.com/TheKikGen/USBMidiKliK4x4/master/UMK-4X4-SYSEX-IPL.TXT
The second way is to activate the configuration menu on the serial port with the following sysex :
F0 77 77 78 06 08 F7
To send that Sysex, you can use for example, MIDIOX, or the “sendmidi” command line utility by gbevin :
sendmidi dev "USB MIDIKliK 4x4" syx hex 77 77 78 06 08
You will find the last binary release of sendmidi here : https://github.com/gbevin/SendMIDI/releases
Immediatly after sending this sequence with your prefered midi software, the interface will reboot in CDC serial COM mode, allowing you to open a terminal to configure easily USBMIDIKLIK.
You can use any software like TERATERM, on Windows, or “screen” on MacOs. The bauds rate must be set to 115200.
The following menu should appear after connecting to the right serial USB port , and pressing ENTER :
USBMIDIKLIK 4x4 - BLUEPILL STMF103C8x - V2.0
(c) TheKikGen Labs
https://github.com/TheKikGen/USBMidiKliK4x4
[0] View global settings [a] Show active devices
[1] View midi routing [d] SYSEX settings dump
[2] Usb VID PID
[3] Usb product string
[4] Cable OUT routing [e] Reload settings
[5] Jack IN routing [f] Factory settings
[6] IntelliThru routing [r] Factory routing
[7] IntelliThru timeout [s] Save settings
[8] Toggle bus mode [z] Debug on Serial3
[9] Set device Id [x] Exit
=>
Don’t forget to save your settings with the “s” option before leaving the configuration menu with “x”.