Arduino互換 Sakura Pro micro🌸を作ってみた (後編)

⏰この記事は約 10 分で読めます

こんにちは、JLです。今回は、桜の形のArduino互換機、Sakura Pro micro🌸を作ってみたお話の後編です。
実際に組み立てていきます。

前回のお話(前編)はこちら⏬からどうぞ

はんだ付け始め!

まずは、USB Type-Cのコネクタをはんだ付けをしていきます。

いきなり足が細かいですが、きっと何とかなります。

コネクタの部品をのせてみます

ICをはんだ付けした時のように、フラックスを塗った後に、はんだごてを軽く滑らせるようにして、はんだを乗せていきます。

ブリッジもなく、無事にはんだ付け出来ました。

◽◽◽

引き続き、その他細かい部品をはんだ付けをしていきます。

こんな感じでピンセットで位置合わせしながら、作業を進めていきます。

ちなみに部品の大きさはこんな感じ。1.5mmくらい…ですね。

クシャミをしたらどこかに行ってしまいそうです🤧

◽◽◽

小さな部品が終わったので、少し大きな部品をはんだ付けします。

基板設計の段階で、手はんだがし難いサイズのフットプリントを選んでしまったため、結構ギリギリの作業になってしまいました。まさかの大きい部品のほうが難しい始末。

もし基板を改修する事があれば、絶対変更しよう…と心に決めたのでした。

無事に細かいすべての部品を取り付けることが出来ました。

◽◽◽

次に水晶振動子を取り付けていきます。

この基板の中ではIC・USBコネクタを除くと一番大きな部品です。

こちらは難なく、無事に取り付けが完了しました。

さあ、最後の難関が待ち受けています。
気合で乗り切ります。

◽◽◽

ATmega32U4です

足の数は2560に比べると圧倒的に少ないので、きっと何とかなります。

基板の上に合わせて、フラックスをたっぷり塗って、はんだ付けをします。

取り付けが完了しました。

テスターを使用して、ブリッジなどがないかなど、本当に問題がないことを確認したので、ブートローダーを書き込んでいきます。

bootloaderを書き込みたかった

さて、書き込むbootloaderについてですが、ATmega32U4にArduinoのbootloaderをそのまま書き込んでしまうのは少々問題があります。

ATmega32U4はUSB機能付きのAVRです。

このATmega32U4に書き込みするbootloaderにはUSBのベンダーID(VID)とプロダクトID(PID)が含まれており、そのまま書き込んでしまうと、ArduinoもしくはProMicroの開発元のSpark Fun ElectronicsのVIDを流用してしまうことになります。

これは、ArduinoもSpark Fun Electronicsも、USB-IFも許可していないことで、行ってはいけません。

もちろん、安価な中華製Arduinoやpro microコピーなどの一部製品では、そんな事お構いなし!という感じで純正のArduinoのVIDを流用したものがあったりしますが…もちろん本当はダメです。

どうするか…というと、

  1. 自分用のVID/PIDを発行
  2. bootloaderのソースコードに記載されているVID/PIDを書き換え
  3. コンパイルしたものを書き込む

といった対応が必要になります。

なーんだ。じゃあUSB-IFにVIDを発行してもらおう🎵 

…と簡単にいくものでもなく、現在USB-IFに VIDを発行してもらうには、

「法人格を持ち(会社を設立)」「USB-IFにVIDの購入料金を払う」

というクエストをクリアする必要があります。

USB-IFのウェブサイトで実際に申請に関する情報を確認してみましょう。

現在(2021/11/27時点)のVIDの購入料金は、6,000 USDです。
日本円換算で、おおよそ68万円です。

ちょっと無理です。💸

USB機器作るのは一旦無理かな…😥

と諦めかけたり、色々調べていた中で、こちらの記事を見つけました。

サブライセンスを付与しているところがある、との事で最初にMicrochip社のサブライセンスが使えそうかな、と思い、詳細を調べました。

というのも、ATmega32U4はAtmel社が開発・販売していたものですが、2016年にMicrochip社に買収された経緯があります。

つまり、ATmega32U4を使用する今回のパターンでは、現在の発売元であるMicrochip社のサブライセンス付与が使えるのではないか?と思ったわけです。

結論から言うと、元々Microchip社が出していたチップは対象だが、Atmel社のものは対象外。…という事でした。

なんでやねん

というわけで、Sakura Pro micro🌸にbootloaderを書き込むにあたり、V-USBのサブライセンス付与を利用します。

無償でサブライセンスを付与してもらう場合は、GPLライセンスに則る必要があるのですが、Arduino(互換機)の都合上、ライセンスがバッティングしてしまう(Arduinoは(CC BY-SA))ため、今回は有償の商用ライセンスを選択しました。

支払いを行い、無事にVID/PIDのペアがメールで届いたので、bootloaderのソースコードの該当箇所を編集し、Sakura Pro micro🌸用のVID/PIDを設定したbootloaderを作成しました。

◽◽◽

…余談ですが、前出の「USBのベンダーIDとプロダクトIDの話」に記載されていたベンダーID発行費用は「49万円」でした。こちらの記事が4年前なので、4年間で約20万円近く値上がりしたという事になります。※もちろんドル円の上下はあると思いますが

いつか大きくなったら、会社をつくってベンダーIDを取りたいな、なんて思いましたが、その頃には100万円超えてそうだな…と…少し…怖くなりました😖

bootloaderの書き込み

さて、本題に戻って、前に作ったUSBaspの互換装置でSakura Pro micro🌸のbootloaderを書き込んでいきます。

書き込むために、ICSPに該当するピン「VCC・GND・RST・14(MISO)・15(SCK)・16(MOSI)」にジャンパ線を取り付けます。

今回、Sakura Pro micro🌸に対しては、はんだ付けを行わずに書き込みを行うため、サンハヤトのスルホール用テストワイヤを利用しました。

先端が爪のようになっていて、はんだ付けをせずにスルホールと導通するように出来ています。

image by sunhayato.co.jp

常用接続は出来ませんが、ちょっとの間だけであれば全然問題なく活用できます。

◽◽◽

ArduinoIDEからブートローダーを書き込む、を選択。

エラーもなく問題なく書き込みが完了しました。

ArduinoIDE上でも問題なく認識していることが確認できます。

動作の確認!

テストスケッチを書き込んで、問題なく動作するかを軽く確認してみましょう。

書き込むスケッチは、サンプルとして入っているBlinkを利用します。

void setup() {
  pinMode(10, OUTPUT);
}

void loop() {
  digitalWrite(10, HIGH);
  delay(1000);
  digitalWrite(10, LOW);
  delay(1000);
}

※今回は10番ピンと明記してますが、元の「LED_BUILTIN」でも構いません。その場合は13番ピンに線を接続してください。

10番ピンに先ほどのテストワイヤを接続し、ブレッドボード上でLEDの点灯テストをしてみます。

ブレッドボードはどんなものでも大丈夫ですが、1個あると色々テストが出来て良いかもしれません。

¥529 (2023/05/27 00:12時点 | Amazon調べ)

無事にLEDが点滅しました💡

テスト動作も問題なく、安心してPCに接続しなおしたところ、隠れていた問題が発覚しました。

ミス

PCで認識しない…。

おかしいな、と思い挿しなおすと認識する…。

原因を追いかけてみると、重大なミスに気が付きました。

USB Type-Cは、上下どちらの向き(逆挿し)でも問題なく認識するのが正しい挙動です。

USB Type-C のピンアサインを見ると、データ+とデータ-がA6/A7とB6/B7で上下どちらの向きで刺しても中央でペアになるようになっています。

Image by Chindi.ap (2016) / CC BY-SA 4.0

そしてこれが、Sakura Pro micro🌸のUSB周りの配線です。

お判りでしょうか。

B6/B7のペアのことをすっかり忘れた配線です。

電源ラインはきちんと逆挿しに対応しているのにも関わらず、データ線だけ配線を忘れているという状態。

PCで認識したりしなかったりした理由がここにありました。

なんというミス…。

というわけで…

ショートとかそういうミスをやらかさなくてよかった…と思いつつ、現在新しいバージョンを作成中です。

新しいリビジョンのSakura Pro micro🌸では、きちんと逆挿しにも対応しています。

因みに、フラグのごとく思った「はんだ付けがしにくい箇所」もきちんと修正をしました😅

正常版が完成したら、Sakura Pro micro🌸のプレゼント企画をしてみようかな、と思っています。

その際はTwitterで告知をしますので、もしよろしければ、ぜひフォロー等をして頂けましたら嬉しいです☺

今回は最後の最後でミスってしまった形でしたが、めげずに色々と作っていこうと思います。

また次回、機会がございましたら、お読みいただければ幸いです🤗

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です