Music projects

MIDIbox SEQ V4

Last updated: 2025-08-15

* coming soon *

Intro

I built a MIDIbox seq4 some years ago, but newer used it out of lack of time. Now I hope to get the time to finish everything and to use it. Unfortunately the project stalls since some years, but all the infos are still on the net (scattered through many pages).

I will document things here for my built.

The MIDIbox Operating System (MIOS) has been developed by Thorsten Klose (starting 1998!) for the requirements of flexible MIDI applications like MIDI controllers, processors, synthesizers, sequencers. Look here: http://www.ucapps.de/mios.html.

After the PIC area (8 bit) Thorsten switched to 32 bit (STM32 in 2008) for his MIDIBox Hardware Platform (MBHP). Since 2011, MIOS32 supports LPC17xx microcontrollers and since 2013 STM32F4.

The hardware

MBHP_CORE_STM32F4

I use for my sequencer the MIDIBox Hardware Platform MBHPCORESTM32F4 module. This module uses an STM32F4DISCOVERY board with an STM32F407VG MCU (order code STM32F407G-DISC1). This board is still available in 2025, but the price tripled.

The circuit of the core module can be found here: http://www.ucapps.de/mbhp_core_stm32f4.html.

For my built I need the following headers and Jumpers:

MBHP_MIDI_IO

This module has two MIDI IN/OUT pairs (and MIDI Activity LEDs if you need them). Two modules can be connected (J1 of second board to J1 of first board) to get 4 MIDI IN and 4 MIDI OUT ports.

The circuit of the MIDI I/O module can be found here: http://www.ucapps.de/mbhp_midi_io.html.

The 6N138 was a widely used optocoupler in the 1980s. A better alternative for MIDI input schematics is the 6N137 (higher speed). Both optocouplers are pin-compatible. Minor modifications are needed to use the 6N137. The resistor on pin 7 to GND can be omitted and the pull-up resistor on pin 6 has a higher value (10k instead of 1k).

The 6N137 has a digital output optocoupler. A bypass capacitor (optional with the 6N138) should be connected between pins 5 and 8 (Vcc and GND). This capacitor helps stabilize the voltage and improve performance by filtering out noise and transient fluctuations.

To better understand what is going on I have drawn an alternative circuit. The cable connections from the core to the MIDI IO board and between the two IO boards are 1:1.

circuit MBHP_MIDI_IO

MBHP_I2C_MIDI

The I2C MIDI module can be used to add 4 more MIDI OUT ports to the sequencer. This is done by 4 PIC16F88 microcontroller (Microchip) running which a special firmware (not MIOS!).

From http://www.ucapps.de/mbhp_iic_midi.html:

The IIC MIDI "slaves" are doing some high level MIDI protocol handling in order to relieve the "master" core from time and memory intensive tasks. This improves the overall performance.

The firmware has been prepared for up to 4 IIC MIDI slaves connected via the IIC bus to a single master.

I purchased a PCB at midiphy.com. The board is v1.2 from T. Klose 2019 (antilog devices). Part of the circuit can be found on http://www.ucapps.de/mbhp_iic_midi.html. To better understand the PCB I have drawn the following circuit:

circuit MBHP_MIDI_IO

Programming the PIC16F88 microcontroller

Installing the MIOS32 Bootloader

The board is equipped with an ST-LINK/V2 programmer and debugger (Mini-USB on the right), so that is possible to flash a MIOS bootloader program without external programmer.

The simplest way is to use the ST-Link2/V2 utility from STM in a virtual machine running Windows (look here: http://www.ucapps.de/mbhp_core_stm32f4.html).

I have a board with MB997C Newer board versions marked with MB997D require a firmware update for STM Link, so that the microcontroller can boot with Micro USB power supply instead of the ST-Link connector. This update can be done with the ST Link Utility:

The MIOS bootloader creates an USB-MIDI port that allows to flash the MIOS32 applications via USB-MIDI (Micro-USB on the left). To do so we can use the platform independent MIOS Studio from Thorsten that works also under Linux.

MIOS Studio

We need this software to program the board. I'm running Kubuntu 25.04 and so I downloaded the MIOSStudio249 for 64bit Linux (compiled under Ubuntu) on http://www.ucapps.de/mios_studio.html. Extract the file MIOS_Studio from MIOS_Studio_2_4_9.tar.gz. When I tried to run MIOS_Studio it I got: error while loading shared libraries: libwebkit2gtk-4.0.so.37. Ubuntu uses now libwebkit2gtk-4.1. But the workaround was fairly simple. You create a new temporary sources list with the old repo, and install the lib. After this you delete the sources list:

    sudo nano /etc/apt/sources.list.d/mios_studio_tmp.list

Copy the following line to the file:

deb http://gb.archive.ubuntu.com/ubuntu jammy main

Save and close (Ctrl+o, Ctrl+x).

Then install the library abd delete the file:

    sudo apt update
    sudo apt install libwebkit2gtk-4.0-dev
    sudo rm /etc/apt/sources.list.d/mios_studio_tmp.list

Now Studio is running :)

Tip: Sometimes Studio crashed when changing MIDI In/Out ports. To avoid this first chose <<None>> and than the other MIDI port.

Programming the core

OLED 2*40 displays

I replaced my LCD displays with OLED displays from Winstar (SEH4002A, parallel white): https://en.aliexpress.com/item/1005006472554529.html?. They work with 5 V.

As only one of the two display worked I searched the MIDIbox forum and found out, that a parameter called lcd_type used by the bootloader must be set to 0x02 (default 0x00).

#

Wilba's frontpanel

I used Wilba's frontpanel: http://www.midibox.org/dokuwiki/doku.php?id=wilba_mb_seq.

SD-card

The MBHPCORESTM32F4 module has an adapter for an SD Card. The size should be around 1 GB (2 GB and 4 GB will work as well).

Note that a SD Card is a must when you are using Wilba's frontpanel, because the dedicated button/LED assignments will be loaded from a special MBSEQ_HW.V4 file which has to be stored in the root directory of the card. Without this file the frontpanel won't work!

picit 3.5 aliexpress

https://github.com/jaka-fi/pk2cmd

udev

75-pickit_3.rules

    # PICkit 3
    ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="900a", MODE="0660", GROUP="plugdev"

Download pk2cmd-x86_64.AppImagefrom release.

./pk2cmd-x86_64.AppImage -P

PICkit3 is in MPLAB mode. Use PICkitminus GUI to download minimum required OS v2.00.05 or later

Final note for Linux; the pk2cmd currently doesn't support updating PICkit3 firmware. If your PICkit3 doesn't have scripting firmware installed, you must use the GUI software on Windows PC to update it

https://github.com/jaka-fi/PICkitminus

Virtualbox Windows

needs .NET Framework 2.0

https://dotnet.microsoft.com/en-us/download/dotnet-framework/net35-sp1

BLM with Launchpad Mini [MK3]

The Launchpad Mini [MK3] has two MIDI interfaces. We are here only interested in the interface to receive MIDI from Custom modes (external MIDI input or Light controls in Lighting Custom Modes and Programmer mode).

In Programmer mode, your Launchpad Mini loses access to Session, Drum, Keys, and User Modes, and the entire surface (pads and buttons) becomes unlit. Each pad and button will send out a specified MIDI message when pressed. You can light the pads and buttons by sending their corresponding MIDI messages to Launchpad Mini. For more information, see the Programmer Reference Guide, which can be downloaded at: downloads.novationmusic.com.

BLM protocol:

https://github.com/midibox/mios32/blob/master/apps/controllers/blm_scalar/README.txt

Download

Interesting links

https://niroke.blogspot.com/2017/07/an-unofficial-build-guide-for-midibox.html

https://github.com/westlicht/midibox-seq-v4

https://github.com/borfo/pyBLM

https://bitbucket.org/monokinetic/pyblm/src/main/pyBLM.py

BLM Protocol documentation: https://github.com/midibox/mios32/tree/master/apps/controllers/blm_scalar

BLM info page: http://www.ucapps.de/midiboxseqmanual_blm.html

http://wiki.midibox.org/doku.php?id=mididocs:seq:usingblm