Skip to content

makbit/MIDI2USB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIDI2USB - Free and improved MIDI to USB Converter (v.1.3 Nov 2022)

GitHub repo size GitHub Release Date - Published_At GitHub all releases GitHub search hit counter GitHub search hit counter GitHub search hit counter

This device is designed to connect various musical instruments to a PC via the USB Fullspeed port. This is an improved version of the chinese USB2MIDI adapter in the same case. There are: 1 IN port, 1 OUT port, 16 channels/instruments, Plug-and-Play feature, Build-in drivers. The adapter is compatible with Windows (32-bit, 64-bit) and was tested with MIDI-OX, MuseScore, Cubase, etc.

The device is based on Silicon Laboratories 8-bit 8051 MCU EFM8UB20F32, (avg. price $2). This MCU has Fullspeed USB controller and adjustable internal oscillator (0.25%). You can use any compatible MCU, for example C8051F380.

Advantages of this MIDI2USB adapter:

  • Open and clean source code with comments;
  • Compliant to hardware and software MIDI Specification 1.0;
  • All electronic components are available in your local shop;
  • I use it myself.
  • MIT License

The Hardware folder contains Eagle CAD 9.0 schematics files, board file and component library. The .BRD file can be sent to your favourite PCB manufacturer. The board schematics can be found in theHardware/Efm8Midi.png file.

In the Firmware folder you will find all C-source files for this project. Files from SiLabs SDK are located in the EFM8 subfolder. The project was developed with the IAR Embedded Workbench IDE 8051. I beleive the source code is compatible with the Keil uVision PK51.

Some pictures of this MIDI2USB converter 🆒

Img/MIDI2USB-1-Box.jpg Img/MIDI2USB-2-InBox.jpg Img/MIDI2USB-3-Back.jpg

TODO 🖊️

  • Switch to UART#1 with FIFO buffer (done);
  • Test and improve SysEx handler (done);
  • Added Real-Time Message handler (done/test required);
  • Move all components to one side;
  • Add 4-pin header to optionaly solder USB cable;
  • Find a sponsor 😄

GitHub readme tips&tricks