1.概要
  • Raspberry Pi (Raspbian)のArduino IDEにDigisparkの開発環境をインストールしました。
  • Digistump提供のDigisparkインストールパッケージ定義ではRaspbianに対応したHEXダウンローダが用意されていないためDigispark開発環境をインストールできません。
  • この辺り(https://forum.arduino.cc/index.php?topic=461404.0)に解決策がありました。これに沿ってインストールすると無事Digisparkが使えるようになりました。
  • 他のRaspberry Piにインストールするとき,手動でコピーしてインストールするのは面倒なのでDigisparkインストールパッケージ定義を再構築しRaspbian用ツールを用意しました。これによりArduino IDEボードマネージャからツール一式が自動インストールされます。
  • ただし,Digispark-USBデバイスへのアクセスルールをボードマネージャから自動インストールする方法が不明だったので、アクセスルールのインストールは手動で行う必要があります。
2.インストール
  1. 下のURLの2つのインストールパッケージ定義によりArduino IDEのボードマネージャからDigispark開発環境をインストールします。
    https://kimio-kosaka.github.io/digispark-clone/package_digispark-clone_index.json
    https://kimio-kosaka.github.io/udev_rules/package_udev-rules_index.json
  2. まず,Digisparkボードの定義 Digispark AVR Boards (clone) by Kosaka.Lab をインストールします。
  3. 続いてUSBデバイス・アクセス・ルール
    udev_rules by Kosaka.Lab をインストールします。図1
  4. 次の手動操作でデバイスルールをインストールします。
    1. メニュー「ツール」→「ボード」と進み「Install Digispark udev-rule」を選択します。図2
      これはルールをインストールするための仮装ボードです。
    2. 再度,メニュー「ツール」を開き,「ブードローダの書き込む」をクリックするとデバイスルールが書き込まれます。
     図1 図2
  5. デバイスルールのインストールが終ったら,パッケージマネージャで udev_rules by Kosaka.Lab を削除します。
  6. 参考
    1. Install Digispark udev-rule を選択し ブートローダ書き込み を実行すると
      ~/.arduino15/packages/udev_rules/hardware/avr/1.0.1/bootloaders/配下の
      シェルスクリプト mk_digispark_rule.sh が実行されます。

      mk_digispark_rule.sh
      
      #!/bin/sh
      rule_file=/etc/udev/rules.d/49-micronucleus.rules
      str1='SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", \
      ATTRS{idProduct}=="0753", MODE:="0666"'
      str2='KERNEL=="ttyACM*", ATTRS{idVendor}=="16d0",\
      ATTRS{idProduct}=="0753", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1"'
      echo "Make roule file: $rule_file"
      #
      if [ -e $rule_file ]; then
        echo "Already '$rule_file' is existing"
        exit 0
      else
        sudo touch $rule_file
        sudo chmod 666 $rule_file
        sudo echo $str1 >>$rule_file
        sudo echo $str2 >>$rule_file
        sudo chmod 644 $rule_file
        exit 0
      fi
    2. これにより,デバイスルールファイル
      /etc/udev/rules.d/49-micronucleus.rules が生成されます。
    3. Arduino IDE 内で任意のシェルスクリプトを実行する仕組みについては下記を参照してください。

      Arduino IDE 配下でシェルスクリプトを実行する

3.その他
  • Digistumpのオジリナルのインストールパッケージ定義では旧バージョンのavr-gccがオーバーライドされ不具合が発生しますが,ここで用いたインストールパッケージ定義はavr-gccのオーバーライドはしません。