MIDIbox Hardware Platform, USB GM5 Module

Background Infos


PCB data, can be viewed, modified and converted with Eagle Light. The .pdf based schematic has been created with xcircuit. There are no special eagle schematics available, since components have been netlisted in the .brd file directly!
Module Schematic Layout Data Quick-view
MBHP_USB_GM5_V1_1 mbhp_usb_gm5.pdf mbhp_usb_gm5_v1_2.brd mbhp_usb_gm5_v1_2.gif
Additional informations
File Size Description
mbhp_usb_gm5_orderlist.txt 1k Reichelt orderlist
mbhp_usb_gm5_4io_board.pdf 13k Breakout board for 4 additional MIDI INs and 4 additional MIDI OUTs

Available Ports

Following interfaces are provided by the USB GM5 module:

Name No. of pins Description
J1, J2, J3 2 Configuration jumpers. See table in schematic
J4 3 MIDI In1 Jack (opto isolated)
J5 3 MIDI Out1 Jack
J6 10 Digital MIDI IO pins. Can be used for direct digital connections to J11 (MIDI Link port) of the MBHP_CORE module. Connect a J6:Ox pin to J11:MI, and J6.Ix to J11:MO. Up to 5 cores can be bidirectionally linked this way. Ground (J11:Vs, don't forget it!) is available at J7.
For audio applications like MIDIbox SID, MIDIbox FM or MIDIbox CV it is recommended to use an optocoupler at MIDI In to avoid a ground loop between USB and audio (-> 50 Hz hum!)
For a full featured 2x5 MIDI Interface, line I2-I5 and O2-O5 can be connected to a breakout board with 4 additional opto isolated MIDI INs and 4 additional MIDI Out Jacks.
J7 2 External power supply port. The "Vs" (GND) pin provides the ground for digital MIDI IO connections to J11 (MIDI Link port) of the MBHP_CORE module. Cores could be USB powered via J7, but this isn't recommended for audio applications like MIDIbox SID, MIDIbox FM or MIDIbox CV since this will lead to a ground loop between USB and audio (-> 50 Hz hum!). Note also, that a USB host limits the max. current drain to 500 mA.
This port can also be used to power a breakout board for 4 additional MIDI IOs + optocoupler.

Windows Driver

All major platforms (Windows/Linux/MacOS) natively support the USB MIDI protocol, so that the 5 MIDI IO ports of GM5 will be available without additional driver installation. However, the Microsoft driver has some flaws (e.g. no multi client capability, corrupted SysEx transfers when large blocks are transfered, 1 mS latency between each event when they are sent over multiple ports) which can only be solved with a dedicated driver.

Ploytec (the makers of the GM5 chip) provide a Windows driver, which overcomes all these limitations. The performance is great, and the best: for GM5 buyers it's free!

Hint: it's possible to give each MIDI port it's own name by editing the [Strings] section in the midibox.org_gm5.inf file.

WDM.MIDI_1.szPname="MIDIbox SID (1)"
WDM.MIDI_2.szPname="MIDIbox FM (2)"
WDM.MIDI_3.szPname="MIDIbox SEQ (3)"
WDM.MIDI_4.szPname="MIDIbox Stribe (4)"
WDM.MIDI_5.szPname="Keyboard (5)"

This helps you to organize your MIDI ports, so that they are easier to find:


  • Q: the EEPROM is marked as optional in the schematic, what does this mean?
    A: it means, that you don't need to mount an EEPROM to get the module working. It's only a minor feature which helps to separate the modules in the device list if more than 2 devices are connected to a PC, so that they don't appear under the same name. Instead of midibox.org or ploytec.com you could give it the name of your wife/girlfriend or whoever.
    The EEPROM can only be programmed with a special application running on a MBHP_CORE module.
    My proposal if you are unsure about this option: don't buy an EEPROM, you don't really need it, even when multiple GM5 modules are connected to your PC!
  • Q: I want to use two GM5 modules for getting 10 MIDI IO ports, how can I give them individual names?
    A: Break the bridge at J8 of the PCB with a small screwdriver, so that IC2:IO4 is not connected to ground anymore. This selects the ploytec.com VID, so that your operating system can differ between two devices (midibox.org and ploytec.com) and installs an individual .inf file.
    If more ports with individual names are required, you could use different IO number configurations (J1..J3), since this results into different PIDs. Alternativeley you can use an EEPROM to define your own IO port configuration and PID - so long VID is assigned to Ploytec range, the Windows driver will find it.
    Note that without individual names, your OS will numerate the ports so that you are still able to differ between them.
  • Q: Is a dedicated driver planned for MacOS or Linux?
    A: This isn't required, as the legacy drivers are already working great!

Last update: 2024-05-08

Copyright 1998-2023, Thorsten Klose. All rights reserved.