2026年8月4日火曜日

発掘したDigisparkを使ってみる 〜Linux MintにもCH34xドライバをインストールしてみる

前回の続きです。「Digispark(←GitHub)」という小さなArduino互換機(ATtiny85が載っている)を発掘してしまってLチカ実験をはじめたのですが、Linux Mintで動かしている自作PCで動作確認で、まだうまく動かすことができていません。古いiMacではCH341ドライバをインストールすることで使えるようになったので、Linux Mintでもインストール作業をやってみることにしました。

中国WCHのサイトからLinux用のドライバをダウンロードしてみました。zipファイルを展開して内容を確認すると、昔懐かしい(?)「Makefile」がありました。「コンパイルが必要なのか…。」とインストールをしようと思ったことに後悔を感じつつ、ここまで来たならやってしまおうと腹を括りました。

幸い(?)「README.md」ファイルが添付されていて、インストール手順が書かれていた(英語)のでこれを読みながら作業を進めます。もし、この記事を参考にしながら作業をされる場合は、ご自身がダウンロードしたドライバに添付されているREADMEファイルを参照してください。Linux Mintのメニューから「ターミナル(今回は、「GNOME端末」を使用)」を開いて以下の手順で作業します。
#ダウンロードしたドライバの.zipファイルは、あらかじめ任意の場所に展開をしておいてください。

  1. ターミナルを起動して、任意の場所に展開した「CH341SER_LINUX」フォルダに移動する(「cd」コマンド)
  2. 「CH341SER_LINUX」フォルダ内の「driver」フォルダに移動する(「cd」コマンド)
  3. 「sudo make」コマンドでmakeを実行する
  4. 「sudo make load」コマンドを実行して「insmod ch341.ko」と表示されるか確認する
  5. 「sudo make install」コマンドを実行してしばらく待つとインストールが完了する

念のため自作PC自体を再起動して、Arduino IDEを起動してからDigisparkをつないでみました。それでも、やはり「ポート:」には「/dev/ttyS0」しか表示されません。そのまま、Lチカプログラムを開いて、一度Digisparkを抜いてから「→(コンパイル&書き込み)」ボタンをクリックして、「…60 seconds)」と表示されたところで挿し直します。「書き込み完了」のメッセージが出ましたが、やはりプログラムの書き込みはできてません。

エラーメッセージが赤い文字で表示されているので、よく読んでみると、「library/micronucleus_lib.c:66: micronucleus_connect: Assertion `res >= 4’ failed.」となっていて、異常終了していることがわかりました。もっと根本的な問題があるようです。ボードマネージャでインストールできるバージョンが1.5.xまで使えるようになったら、この問題が解決する可能性があるのかもしれませんが、macOSでは使えるのにLinuxでは使えないということは、OSごとに違う設定にしなければならない何らかのプログラムが、うまくできていないのかもしれません。
#自分でできることがあれば、やってみたいとは思うのですが…。

そもそも、DigisparkのUSB接続関係をサポートしているのが「micronucleus」というシステムで、USBシリアル変換ICのような別のICなどを使わずにATtiny85のブートローダーとしてmicronucleusを使うことによってUSB接続とUSB経由でのプログラムに対応しているようです。だとすると、このブートローダーのバージョンアップや別のものへの変更で、うまく動かすことができるようになるのかもしれません。ブートローダーの書き込みは、「ATtiny85にブートローダーを書き込む」や「USB接続で書き込めないDigispark ATtiny85のブートローダをアップデートして復活させる方法」で紹介されていたので、今後は、これらを参考にして取り組んでみたいと思います。…思います。
#Digisparkにプログラムを書き込む際に、一度Digisparkを抜いてArduino IDEでプログラムを書き込める状態にしてから、再び挿し込まなければならないのは、USB接続用のICを使わずに「micronucleus」を使っているからという理由のようです。