Raspberry Pi ZERO OTG

Raspberry Pi ZeroをOTGモードを使って、PCからMIDIデバイスとして認識できるように設定します。OTGはUSB On-The-Goの略です。PCがUSBのHost(親)とし、Raspberry Pi ZeroをFunction(子供側)にすることができます。普通のRaspberry Piは常にUSB Host(親)として機能し、このモードに対応していません。設定はLinuxの扱いに慣れていないとちょっと難しいかもしれません。以下の2つのファイルを書き換えます。


  1. /boot/config.txtの最終行に、dtoverlay=dwc2を書き加えます。Linuxのエディタを用いて、ファイルを書き換えます。
    > pi@raspberrypi:~ $ sudo vi /boot/config.txt
    

  2. /boot/cmdline.txtに記載の、rootwaitを探して、rootwait modules-load=dwc2,g_midiと修正します。
    > pi@raspberrypi:~ $ sudo vi /boot/cmdline.txt
    

コマンドラインで、以下の2つの命令を実行することでも書き換えられます。

> pi@raspberrypi:~ $ sudo sed -i -e '$ a dtoverlay=dwc2' /boot/config.txt
> pi@raspberrypi:~ $ sudo sed -i s/rootwait/rootwait\ modules-load=dwc2,g_midi/ /boot/cmdline.txt

2つのファイルを書き換えたらrebootします。

> pi@raspberrypi:~ $ sudo reboot

PCとUSB接続します。Raspberry Pi Zero の中央のUSBと記載されている端子とつないで下さい。

PCでデバイスマネージャーを開くと、サウンド、ビデオ、および… の項目にMIDI functionが追加されています。

一方、Raspberry Pi Zeroでは、amidi -lコマンドを使って、f_midiという名前でMIDIデバイスが認識できます。

> pi@raspberrypi:~ $ amidi -l
Dir Device    Name
IO  hw:0,0    f_midi

Web MIDIを使って、MIDIの送受信をチェックします。PCのChromeで、このページを開きます。MIDI IN:/MIDI out:の両方にMIDI functionを設定します。

Raspberry Pi Zeroでも同じページを開きます。MIDI IN:/MIDI out:の両方にMIDI functionを設定します。

PC側のPushを押します。Raspberry Pi ZeroのブラウザでMIDIが受信できます。

Raspberry Pi Zero側のPushを押します。PCのブラウザでMIDIが受信できます。