Arduinoブートローダを焼くための治具

ATMEGA328-PU を購入する際、Arduinoブートローダ書き込み済みのものはスイッチサイエンスで販売されていますが、これより安い「ブートローダ未書き込み」のもの、例えば秋月で扱っているATMEGA328-PU を買った場合、最初にブートローダを「焼きこむ」(= burn する)作業が必要になります。

ブートローダを焼きこむ方法はArduinoのチュートリアルにある Using an Arduino as an AVR ISP (In-System Programmer)From Arduino to a Microcontroller on a Breadboard というページ(いずれも英語)に載っています。このページには、既存のArduinoをISPとして使うためのスケッチを書き込み、ブートローダが書き込まれる側のArduinoをブレッドボード上に組む、という方法が書かれています。今まではそれを参考にしてブートローダを書き込んでいましたが、ブレッドボードを片付けてしまうとまた組まなければならず、面倒です。

そこで、ブレッドボードで組んでいた回路をユニバーサル基板に置き換えて、ゼロプレッシャーソケットをつけました。これを使って焼きこんでいる様子が下の写真です。

Arduinoブートローダ書き込み

Arduinoブートローダ書き込み

▲写真左:PCと接続するUSBアダプタ、写真中央:ISPとして使う(焼きこみプログラムを動かす)側のArduino互換機、写真右:焼きこまれる(新品ATMEGA328をつける)側のArduino互換機

中央と左の基板の接続は、ArduinoでいうD11~D13、すなわちATMEGA328の17~19番ピン(MOSI、MISO、SCK)同士をつなぎます。ISP側のD10は、焼きこまれる側の新品のリセットピン(ATMEGA328の1番ピン)につなぎます。あとは電源+5v、GND 同士を接続するだけ。

実際のISPの操作は、3年前に投稿したこちらの動画ですでに説明しています。この動画は、それまでオリジナルの Arduino 基板をかぶせていた CAmiDion 1号機を改造して、Arduino と同じ回路を内蔵したときのものです。


ニコニコ動画版はこちら

焼きこまれたあとの動作確認:ISPとして使っていた基板を外し、ゼロプレッシャーソケットがついている基板をそのままUSBアダプタにつなぎます。サンプルスケッチとしては “blink” を流し込んで LED の点滅を確認するのが簡単です。

ゼロプレッシャーソケットでArduino互換機

ゼロプレッシャーソケットでArduino互換機

このようにゼロプレッシャーソケット式にした最低限のArduino互換基板を用意しておくだけでいろいろ便利に使えるようになります。

ちなみにトラブル時のヒントは PlayGround の Mega ISP にあったりします。

CAmiDion 2号機改良版 ついに完成

【BEFORE】

電子楽器 CAmiDion 2号機

電子楽器 CAmiDion 2号機 旧版

【AFTER】

CAmiDion 2号機 改良版

電子楽器 CAmiDion 2号機 改良版

というわけで、旧2号機を分解して1ヶ月後、ようやく新2号機が完成しました!
5号機が完成してから2号機の老朽化や使いにくい点などが目立つようになったので、思い切って作り変えました。そんなわけで見かけ上は5号機とほとんど同じです。

CAmiDion-2 MIDI/オーディオ端子

CAmiDion-2 MIDI/オーディオ端子

CAmiDion 2号機の裏ぶたを開けたところ

CAmiDion 2号機の裏ぶたを開けたところ

5号機からの改良点はこんな感じです。

  • コードボタン基板の上側のネジを皿ネジから鍋ネジにしました。皿ネジを使うには、その形状に合わせて径の大きいドリルを手で回して穴の入り口を削る必要があるのですが、この微調整が意外と面倒。指が当たりにくい箇所に対してそこまでして皿ネジを使う意味を感じなくなったためです。
  • 74HC138をコードボタン基板のほうに取り付け、さらにコネクタを縦横2箇所に配置しました。74HC138側(カソード側コモン)は横に配置、アノード側コモンはマトリクスの切れ目に縦に配置、という使い分けができ、強度も増し、引き回す線をさらに削減できました。
  • PWM出力の隣のピンがマトリクス出力の1本だったため、ボリューム最大にしたときにマトリクススキャンノイズが聞こえやすくなっていました。このノイズを軽減するため、PWM出力の隣をできるだけ使わないよう、ピン割り当てを変更しました。2号機~5号機すべてに対してこのノイズ対策を行い、同じArduinoスケッチで使えるようにしました。

このコードボタン基板の改良は、プリント基板化のアイデアの一つとして取り入れるきっかけになりそうです。(いっそのことキット化できたらいいなぁ…)

途中でチップLEDが隣のランドにくっついちゃうというハプニングがあって、チップLEDを外してたら1個壊してしまい、新しいLEDに付け直したらB♭のLEDだけちょっと斜めになってしまいました。

やっぱりプリント基板化したほうがいいのかなぁ…。