
The Midi Monster is a general purpose USB device that will allow easy interfacing with a variety of real-world sensors. It was developed in support of the the PD workshop.
Preliminary firmware code is hosted at: midi monster git repository
There are two programmable AVR chips on the board. The ATmega32U2 acts as the USB and MIDI master and is programmed with the built-in (factory-default in chip) DFU bootloader.
To activate the DFU bootloader, plug the device into a USB port and execute the following button press sequence:
(note: you must use dfu-programmer from svn or patch a release version to program the 32u2)
In order to program the chip without using root I had to ad these udev rules:
[to program the mega32u2 with dfu]
SUBSYSTEM=="usb", ACTION=="add", SYSFS{idVendor}=="03eb", SYSFS{idProduct}=="2ff0", MODE="660", GROUP="uucp", SYMLINK+="atmega32u2-%k"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03eb", SYSFS{idProduct}=="2ff0", MODE="660", GROUP="uucp"
[to program the tiny48 with the midi monster in avrisp mode]
SUBSYSTEM=="usb", ACTION=="add", SYSFS{idVendor}=="03eb", SYSFS{idProduct}=="2104", MODE="660", GROUP="uucp", SYMLINK+="avrisp-%k"
BUS=="usb", ACTION=="add", SYSFS{idVendor}=="03eb", SYSFS{idProduct}=="2104", MODE="660", GROUP="uucp"
and added myself to the "uucp" group
The utility used to send a compiled program to the DFU bootloader is dfu-programmer. As of this writing, however, support for the 32u2 is only available in svn.
To check out the trunk of the svn tree:
svn co https://dfu-programmer.svn.sourceforge.net/svnroot/dfu-programmer/trunk/... dfu-programmer
Then build it:
$ cd dfu-programmer $ ./bootstrap.sh $ ./configure $ make
These are unified diffs that can be applied with the 'patch' program if you are compiling an older released version of dfu-programmer (see attachments at bottom)
The slave device on the board is the tiny48. It can be programmed by programming an ISP (in circuit serial programming) firmware to the atmega32u2 and then using the avrdude utility.
In order to program the tiny48 with avrdude I had to ignore the signature [-F] because my version of avrdude doesn't support the tiny48 either [I just said it was a tiny45 and then ignored the sig]:
avrdude -c avrisp2 -p t45 -P usb -e -U flash:w:../MIDI.hex -F
<TBD>
| Attachment | Size |
|---|---|
| arguments.c.diff_.txt | 1.01 KB |
| arguments.h.diff_.txt | 387 bytes |
| midi_monster_schematic.jpg | 253.02 KB |
| midi_monster_topology.jpg | 291.57 KB |
| midi_monster_topology_th.png | 29.12 KB |
| midi_monster_schematic_th.png | 15.59 KB |