Arduino に dualMocoLUFA(USB-MIDI ファームウェア)を導入

情報源

環境

ファームウェアの導入

Arduino 公式ファームウェア書き換え方法 に従う。

ファームウェアの hex ファイルは dualMocoLUFA 公式 に置いてあるので、あらかじめダウンロードしておく。

まずはファームウェア書き換え用プログラム dfu-programmer を Homebrew 経由でインストールする。MacPorts からもインストール可能なようだ。

$ brew install dfu-programmer

Arduino を USB で接続。

DFU リセットをかける。すなわち、USB に一番近い2本のピンをショートさせて、離す。(ショートさせるピンの位置は下の画像を参照)。

Resetting DFU

型番リストは dfu-programmer 公式 にあるので、Arduino 上の USB ジャックに近い IC に書かれている型番を読んで適切なものを選ぶ(上の画像の、ショートさせているピンの左下にある IC がそれです。私のは atmega16u2 でした)。

というわけで、一度ファームウェアを消去し、書き込み、リセットする。

$ dfu-programmer atmega16u2 erase
$ dfu-programmer atmega16u2 flash dualMoco.hex
Validating...
5638 bytes used (45.88%)
$ dfu-programmer atmega16u2 reset 

Arduino をコンピュータから外す。

これでファームウェアの導入は完了である。

テスト

書き込むとき

下の画像を参考に、ピンをショートさせる。この状態を維持したままにすると、Arduino へスケッチを書き込むことができる。

Writing to Arduino with dualMocoLUFA

適当にドレミを送るスケッチを書いて、書き込み。

#include <MIDI.h>

int notenumber[8]={60, 62, 64, 65, 67, 69, 71, 72};
int i;

void setup(){
    MIDI.begin();
}

void loop() {
    for(i=0; i<8; i++){
        MIDI.sendNoteOn(notenumber[i], 100, 1);  // Velocity=100, Channel=1
        delay(500);  // bpm=120
        MIDI.sendNoteOff(notenumber[i], 100, 1);
    }
}

書き込んだら USB を外し、ショートさせていたジャンパを外して再度接続。

DAW かなにかを開いて、MIDI 信号が来ていることを確認。

デバイスは MIDI/MOCO for LUFA という名前で認識されました。iPad のシンセも鳴らすことができました。神かな?

それにしても超簡単やな……。MIDI シールドなんていらんかったんや! 製作者様ありがとうございます!!