見出し画像

Mutable InstrumentsのPlaitsを作る

Plaitsとは

Mutable InstrumentsのPlaitsという製品がある。
これのことだ

ようわからんけど、いろんな音が出そうなんて買いました。

まだあまりモジュラーシンセに関する知識はないが、Mutable Instrumentsの多くはデジタル機材だ。他のユニットはアナログのものも多いし、それなりのデジタルもあるが、こちらは機能から比較するとかなり小さくまとまっている。
そのため、自作DIYでPlaitsを仕上げるのは中上級者向けというのを記載しておく。自己責任でお願いします。ビビらせるわけではないですが、ミリ単位以下の作業精度とある程度のコンピュータリテラシーが必要です。

Mutable Instrumentsはオープンソース

作るって言ったってどうすんだ?ご安心を。Mutable Instrumentsはオープンソースになっている。オープンソースってのは公開しているってことだ。BOM(部品表)はもちろん、回路図、PCBも全てgitで公開されている。
オープンソースなので二次利用が可能だ。勝手にPCB作って売ってもいいかな。多分。知らんけど自己責任で。
gitで管理されているからチェックアウトして使えるし、フロントパネルやPCBは海外サイトで容易に手に入る。セットで組み合わせるなり、自分で作るなり、用意はいくらでもできるはずだ。ちなみにこちらにある。

ちなみに部品はほとんどが表面実装なのでmouserがお勧めです。こちらのサイトの一番下にmouser projectがあります

下のほうにある「Plaits 0603 Version BOM」
余計にいろいろ数が多く注文されてますが、誤差なので入れます。気になる人は一個一個数を確認して入れてください。
あと別途ジャンパーとポイントメーターが必要です。もちろんツマミも。ジャックも必要かな。ジャンパー以外はthonkで買いましょう。

まず用意するもの

用意するものを書いておく
■ハンダ用具
当然である。前述したようにめちゃくちゃ細かく、平気で1mm以下のパーツもあるので使いやすいハンダが良いです。
■PC(macOS)
STLink-V2を使用して出来上がった部品(IC回路)に書き込みを行うため、必要です。多分Windowsでも大丈夫ですが、CUI(コマンドベース)で操作するため2台ある方はMacが良いです。Windowsの方はVirtualBoxとか入れる必要があるかも。
■STLink-v2
PCと基板を繋いてソフトウェアを書き込む機械です。オフィシャル品が3000円くらいで、汎用品だと1000円くらいからあります。私はこれを使いました。

■Eagle(ソフトウェア)
部品がめちゃくちゃ細かい(何回目、、)為、Eagleという基板設計に使用するソフトを使った方が良いです。PCBの基盤自体が文字も雑に印刷されており、確実に位置を図るのに必須とも言えます。図面表は前述したgitにあります。フリーのもので十分です。

実装

これに関しては頑張ってくださいというしかない。特にICが隣の足に干渉しないように。あとズレですね。PCBのパターンを剥がさないように注意してください。youtubeとか見て勉強するのもあり。パーツが細かいので注意。

ソフトウェア組み込み

基本的にはこれに沿って作業します。

ハンダ実装ができたらモジュラー電源に繋げ、まずは電源を入れてみましょう。
私はLEDの8個が適当な色でつきました。プログラムがセットされてないのでそんなもんかなと思います。
手元にSTLinkを用意し、いよいよ組み込んでいきます。
macでやったのでmacベースで記載します。
まずはターミナルを起動しましょう。
アプリケーション→コマンドユーティリティ→ターミナル

ターミナルで以下のコマンドを打ちます。
が、homebrewがない人はググってインストールしましょう。ちなみに私はXcodeも入れてるので場合によっては入れたほうが良いかもしれません。
brewが入ったら(あれば)最新化しましょう。

$brew update

完了後、stlinkと必要なライブラリを入れます。

$brew install stlink
$brew install openocd

適当な作業ディレクトリを作って、cdコマンドを使って移動してください。

$mkdir mutable
$cd mutable

Mutable Instrumentsのeurorackからビルドに必要なファイルを落としてきます。
サブディレクトリも最新を取得します。

$git clone https://github.com/pichenettes/eurorack
$git submodule init && git submodule update

GNU Arm Embedded Toolchain 4.8-2013-q4-majorを落としてきます。

ここの「 gcc-arm-none-eabi-4_8-2013q4-20131218-mac.tar.bz2」を落として解凍します。
解凍してできたフォルダ「gcc-arm-none-eabi-4_8-2013q4」を「arm-4.8.3」に名前を変えます。
名前を変えたフォルダを/usr/localにコピーします。
${USERNAME}は自分のに置き換えてください

$sudo cp -pr /Users/${USERNAME}/Downloads/arm-4.8.3 /usr/local/

適当につくった作業ディレクトリ、mutable/eurorackに移動してmakeコマンドを叩きます。

$cd mutable/eruorack
$make -f plaits/bootloader/makefile hex
$make -f plaits/makefile

STLinkのコネクタを基板のピン、RESET, SWDIO, SWCLK and GNDに合わせて接続します。その後、モジュラーシンセ 側の電源を入れます。その次にSTLinkをmacのUSBに接続します。
基盤上は四角い穴がGNDです。

USB接続後(make -f plaits/makefile upload)を叩くと以下のようにメッセージが流れます。

XXXXXXXXX:eurorack ${USERNAME}$ make -f plaits/makefile upload
openocd -s /opt/local/share/openocd/scripts/ -f interface/stlink-v2.cfg -f target/stm32f3x.cfg -c "init" -c "halt" -c "sleep 200" \
				-c "flash erase_address 0x08000000 32768" \
				-c "reset halt" \
				-c "flash write_image erase build/plaits/plaits_bootloader_combo.bin 0x08000000" \
				-c "verify_image build/plaits/plaits_bootloader_combo.bin 0x08000000" \
				-c "sleep 200" -c "reset run" -c "shutdown"
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
none separate
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
Info : STLINK v2 JTAG v27 API v2 SWIM v6 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 3.546860
Info : stm32f3x.cpu: hardware has 6 breakpoints, 4 watchpoints
target halted due to debug-request, current mode: Handler HardFault
xPSR: 0x01000003 pc: 0xfffffffe msp: 0xffffffd8
Info : device id = 0x20006432
Info : flash size = 256kbytes
erased address 0x08000000 (length 32768) in 0.440452s (72.653 KiB/s)
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
adapter speed: 950 kHz
target halted due to debug-request, current mode: Thread 
xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
auto erase enabled
target halted due to breakpoint, current mode: Thread 
xPSR: 0x61000000 pc: 0x2000003a msp: 0xfffffffc
wrote 260096 bytes from file build/plaits/plaits_bootloader_combo.bin in 11.379387s (22.321 KiB/s)
target halted due to breakpoint, current mode: Thread 
xPSR: 0x61000000 pc: 0x2000002e msp: 0xfffffffc
verified 258896 bytes in 4.509708s (56.063 KiB/s)
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
adapter speed: 950 kHz
shutdown command invoked

最後のShutdownまで出ればOKです。
多分10秒もあれば終わります。
うまく行くとLEDが1つだけ光ります。一回電源を切って再度入れ直してみましょう。Outにヘッドフォンか何かを繋いで音が出ればOKです。

トラブルシューティング

最後のmakeコマンドで以下にハマりました

XXXXXXX:eurorack ${USERNAME}$ make -f plaits/makefile upload
openocd -s /opt/local/share/openocd/scripts/ -f interface/stlink-v2.cfg -f target/stm32f3x.cfg -c "init" -c "halt" -c "sleep 200" \
				-c "flash erase_address 0x08000000 32768" \
				-c "reset halt" \
				-c "flash write_image erase build/plaits/plaits_bootloader_combo.bin 0x08000000" \
				-c "verify_image build/plaits/plaits_bootloader_combo.bin 0x08000000" \
				-c "sleep 200" -c "reset run" -c "shutdown"
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
none separate
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
Info : STLINK v2 JTAG v27 API v2 SWIM v6 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 3.548447
Error: init mode failed (unable to connect to the target)
in procedure 'init' 
in procedure 'ocd_bouncer'

make: *** [upload_combo_jtag_erase_first] Error 1

Error: init mode failed (unable to connect to the target)
が表示されて先に進めない事象が起こりました。
STLinkは見えるけど、その先のPlaitsが見えてないみたい。
モジュラー側の電源ON直後にmakeコマンド実行すると出来ましたので、そのようなタイミングがあるのかも知れません。

まとめ

いろいろ音が出せて面白いです。
もう少し細かい使い方や、操作などいっぱい触ってみようかと思います。
いつかは本物と比較してみたいなぁと思っています。

この記事が気に入ったらサポートをしてみませんか?