SeeMidi - The Midi Meter

Having grown up with an Ohm meter in my hand I tend to feel blind when I don’t have one available. I guess at times the tongue on the nine volt battery works, albeit painful when you are working with higher voltages. When trouble shooting Midi gear things get really frustrating when I can’t see what’s really going on between devices. At times I just need a meter on my gear rack that I could plug a cable into and verify that there is data. My meter only displays the raw midi HEX codes. It does not decode the data stream into a descriptive keyup/keydown/note type display, I was only interested in seeing the raw data. I dislike PC based software monitors because you can never tell if you have control of the midi port or not. Plus, you have to wait and boot up the computer just for a five second diagnostic.

With that in mind I built my own “midi meter”, so to speak.

The Circuit

My “midi meter” is based on a twenty pin Atmel 8051 compatible microcontroller, the AT89C2051. The midi signal is connected to the processor’s serial port using a 6N138 opto isolator. I also have provided a through port so that the midi signal can also be used to control other devices. The “midi meter” can be left in line, as long as it is powered. LED D1 is an activity indicator that lights anytime a midi signal is sent into the “meter”. The data is lightly formatted and then displayed on a 2 by 40 line LCD display. You can clear or pause the display by pressing the corresponding control buttons. Please note, when the “meter” is in the paused state incoming midi data is discarded and will not be displayed. The ICL7660 in the circuit is a negative voltage converter. It is used to produce the contrast voltage necessary to drive the LCD display.

Building the “meter”

Construction of the midi meter is straight forward. I built my meter into a 19 inch rack mount case, although it would be really simple to make the meter portable and battery operated. I opted to use an internal mains fed power supply. You can use any five volt internal or external regulated power supply. The current requirement will mainly be driven by the display you use. My display is backlit requiring a bit more power. In any case, having a power supply that will deliver between 500ma and 1 amp will be plenty.

My midi meter was wired wrapped on a general purpose prototyping board. Make sure you keep the 12 mhz crystal close to the 2051 microcontroller. Polarity on the midi in and through jacks is critical. If the polarity is reversed, your meter will not work. Be aware that you need to provide at least one or two .1 uf bypass capacitors between the positive voltage supply and ground. Except for the power connector, I mounted all of the jacks and controls on the front panel. The display contrast is controlled by a small locking potentiometer. Once the contrast has been set you’ll probably never have to touch the setting again.

I’ve included both the source code and the assembled Intel HEX file below. If you change the size of the display you may possibly want to edit the source to format the start up message. The source was assembled with the ASEM-51 Macro Assembler. If you make any really neat changes to the code, like event decoding or such, please send me a copy. There might be others interested in the modifications.

Design Information


Copyright © 2004-2006, Len Bayles
Thr Oct 26 18:22:15 MDT 2006