Mr. Midi 2

Translation of my German article

Origin: Mr.Midi 2 on - in German

Mr.MIDI 2 has arrived!

Finally: The new Mr.Midi 2 is ready!
It works with the real midi file protocol and supports a FAT16 file system on the inserted card. So usage is as simple as with a MP3 player. For such a luxury you need the ATmega168 from Atmel.

Boasting :-)

Invented in Germany, going round the world! Since it is free open source, you can build it, sell it, modify it (but as open source again) and have fun with it!
Even people from UK, Japan and the Netherlands have build their own DIY MrMIDI 2!
If you like, you can send me pictures of your own!
Everybody who can build the circuit and program an ATmega168/328 on his own can use it for free and unrestricted.

Watch this:



Attention: Mega168 pin TX must be connected to OUT pin 5 and pull up to OUT pin 4!
For LED backlight: Connect LED- (K) of your display over a resistor to PORTB6+7 (in parallel), connect LED+ (A) to Vcc 5V
For mass production: Connect an 8MHz XTAL and 2 capacitors to PORTB6+7 for stable clock accuracy over life-time, see data sheet!



Project Mr.MIDI 2 download:
Converter for MM.BIN:
KEIL tool "hex2bin", required for making card bootloader file MM.BIN
Latest version:
Mr.Midi 2 Atmega168 - Fuses: 0xFF 0xDF 0xFB (512 words BOOTSZ)
Mr.Midi 2 Atmega328 - Fuses: 0xFF 0xD9 0xFF (1024 words BOOTSZ)

Set up your hardware

Use Atmel Studio 6.0! The newer versions use a different compiler and won't work!
Config your blank out-of-the-box ATmega168:



Edit files on PC:
Firmware Update:


You can add a small wavetable upgrade board with a 26-pin-connector to give Mr.MIDI2 full audio capabilities. Add a quality audio amplifier for superior MIDI sound!
Description of wavetable board connector (German)


Compile the project with WinAVR 20060421 + AVR Studio 4.12 or newer up to Atmel Studio 6.0. Ignore the warnings.
Use hex2bin to create the bootloader file MM.BIN.
Then update your main_blXX.hex-flashed MrMIDI2 to the current version!


Remember, this is a free DIY open source project.
Open source means: When you change it, please offer the sources as free download. If you want to make money of it (commercial production) you can do this, but put a link of this page on your product page (and in the product manual). Please send me a free sample of your product, too (so I can go showing off :-)!
No warranties or liabilities are given. Build and use this project on your own risk!

My Other Used Sources

I used the following software sources in this project (besides what is included in WinAVR and AVR Studio 4):
RC5 IR receiver (C code) from
Low level card driver (C code, modified) from
LCD routines (AVR assembler, ported to C and modified)


If you have questions, don't hesitate to mail me on lehmayr /\ -|- (replace the symbols with the "at" symbol).

Copyright © Simon Lehmayr