1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ちっこいArduino互換 Digisparkのクローンを作った

Last updated at Posted at 2022-09-05

Digispark?

ふた昔前くらいに流行った親指サイズのArduinoのクローン
基板の上に見える部品はレギュレータとマイコン本体のみ
マイコンの書き込みに一般的に必要とされるシリアル変換チップを載せていない
代わりにソフト(ブートローダ micronucleus)でUSBの機能を実装している

本家はもうすでに販売しておらず現在出回っているのは主にクローンらしい
ATTinyさえあれば作れそう

Micronucleus?

USB接続の部分を実装するブートローダ
V-USBというプロジェクトをベースに開発されているらしい
これが電源投入時(設定で変えられる)に走る
専用ic無しでのUSB接続を可能にする
メリット: 部品点数の削減やそれに用小型化
デメリット: 書き込み時に都度さしなおす必要が生じる

作る

大まかな流れは

  • 組み立て
  • ブートローダ書き込み
  • 完成

部品

Arduino UNO x1

出落ちで申し訳ない
これは部品というより道具として必要
ISP書き込み機の代わりにArduino UNOが使える
UNOを名指しした理由については後述

ATTiny85 x1

ATTinyであれば大体OKっぽい
メモリとサイズと値段と実績の関係で85を選んだ

47Ω x2

USBのデータ線に挟む抵抗
最初は電流制限だと思っていた
ダンピング抵抗というものらしくて波形のオーバーシュートを抑制するもの
ネットを漁った限り68Ω周辺が多かった
あまり重要ではなさそうだった(中途半端な値を新規で買いたくなかった)ので47Ωにした

1.5kΩ x1

USBのD-をプルアップする抵抗
ネットを漁った限りどれも1.5kΩで全くブレがなかったので怖くなって買ってきた

小信号用ダイオード

目的は整流ではなく電圧降下を使った降圧
V-USBのホームページに載っていた

あまりの荒業で驚いた
1N4148を2本使った
順電圧が1Vなので大体3.6Vくらいで落ち着くかなという思考

4.7uF x1

電源の平滑化とノイズの吸収?
本家基盤には並列に0.1uFもついていたがV-USBの回路図には4.7uFだけだったので信用した
コンデンサはチップだと安い(1/7くらい!)のでお勧め

基板とかUSBとかソケットとか

プリント基板は敬遠している
プリント基板にUSBごとプリントしたかった気持ちはある
ESP32用シリアル変換の時と同じ基板取り付けのUSBオスとFサイズ基盤(8x6穴)を買ってきた
マイコン部分は外せるようにソケットにした

縦型タクトスイッチ

やはりスイッチがあると便利なのでつけた
スペースの制約で縦型にした
押す力は後ろのソケットに受け止めてもらう

通電確認のLEDとビルトインLEDとそれらの電流制限抵抗

気分でつけた
赤と緑のチップLEDと10kΩの抵抗を使った

回路図

頑張って組み上げる
薄線はUEWで緑色部分はチップ部品

完成したのがこれ
実は3機目である

ブートローダ―書き込み

の記事を参考に進めさせていただいた
必要な箇所のみ以下に並べる

Arduino UNOのISP化

ATTinyにブートローダを書き込むには専用の装置が必要
Arduino UNOを持っていれば代用可
手持ちのArduino Nano everyやESP32でも試したが上手くいかなかった
おとなしくArduino UNOを使うべし

Arduino IDEを開いて
ファイル>スケッチ例>ArduinoISP>ArduinoISP
を選択してそのままUNOに書き込む

配線

下表の通り繋ぐ

UNO ATTiny85
10 PB5
11 PB0
12 PB1
13 PB2
5V VCC
GND GND

なおATTiny85の番号は物理的なピン番号ではなく内部的な番号なので注意

PB5 U VCC
PB3 PB2
PB4 PB1
GND PB0

Arduino IDEにATTiny85を追加

環境設定>追加のボードマネージャーのURL

http://drazzy.com/package_drazzy.com_index.json
を追加

ツール>ボード>ボードマネージャ
で ATTinyCoreを検索してインストール
場合によってはエラーを吐かれるが無視

試しに書き込む

環境設定>より詳細な情報を表示する>書き込み
にチェックを入れて
ツール>ボード>ATTiny85(no bootloader)
ツール>Clock>1MHz(internal)
ツール>書込装置>Arduino as ISP
を選んで
ファイル>スケッチ例>Basic>Blink
を書き込む(別にこれである必要はないが)

Arduino IDE 2.0.0の場合
スケッチ>書き込み装置を使って書き込む
でないと上手くいかないので注意

適当にLEDをぶっさして動くことを確認する

3行目のパスから始まる長い長い一行をコピーする
(avrdude本体とそのcfgファイルのパスを含むコマンド)

ブートローダ書き込む

これをダウンロードしたら
先ほどコピーした長いコマンドを書き換える
最初の方はそのままに

~~~ -b 19200 -U flash:w:path\to\t85_default.hex:i -U lfuse:w:0xf1:m -U hfuse:w:0xdf:m -U efuse:w:0xfe:m

path\to\t85_default.hexは適宜書き換えること

クロックと自己プログラムに関するヒューズを書き換えている
micronucleus公式はLOW:e1 HIGH:dd EXT:feを勧めているがEEPROMを使わない限りLOW:f1 HIGH:df EXT:feの方が省電力で良いはず

ドライバのインストール(Windows)

の手順に従ってドライバをインストールする

完成

以後プログラムを書き込む際は
ツール>ボード>ATTiny85(micronucreus digispark)
を選択して
digisparkは差さずに普通の書き込みボタンを押下
差してねって言われたら差すと書き込まれる

これでポケットにArduino互換機を常備できますね
めでたしめでたし

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?