2026年1月5日月曜日

Seeeduino XIAO (SAMD21G18A)をDAPLinkデバイス化する(2)

 

Seeed Wikiに「ArduinoボードをDAPLinkデバイスとして使用する方法」という記事があったのでトレースしてみる。、、、の続き。VSCodeにRaspberry Pi Pico拡張機能を入れてデバッグする。

参考ページはこちら(https://zenn.dev/usagi1975/articles/2024-08-29-000_pico_development)。参考ページではpi picoをdebug probeにしてpi picoをデバッグしてるけど、これを、daplink xiao(samd21)からのxiao RP2040でやろうってわけだよ。

結線はこう。
右がdaplink xiao(samd21)で左がxiao RP2040。

んでは、VSCodeを起動して、拡張機能アイコンをつついて、検索ボックスにpiって入れて、Raspberry pi picoを選んで、
んで、インストール。
、、、こんなんでるけど、信頼するしかない;

新しい拡張機能アイコンができるので押してみる。
こうなる。

んで、"New Project From Example"を選んで、現れた画面で、、、今回はblinkを選択して、まぁいい感じで設定を入力して、
Createを押す。

右下にこんなのが出て、
そこそこ時間がかかって、、、

こうなる。

blink.cを見てみる。
GPIO25がblinkするらしい。で、GPIO25ってなんなんや?って回路図(https://wiki.seeedstudio.com/ja/XIAO-RP2040/)見ると、
だましなしなら、LED青がblinkするはず。

ではコンパイルしてみる。

なんじゃもんじゃ出るけど最終的にこうなって、たぶんうまくいったんだろう。

デバッグしてみる。

なんかエラーっぽいの出ているけど、それらしいところで停止しているぽい。

ステップ実行ボタンを押すと、それらしくコードが移動して、それに伴いLED青が点灯したり消灯したりする。

続行ボタンを押してみる

こうなる。

停止ボタンを押してから
Flash Projectしてみる

こうなって、勝手にリセットがかかって、blinkするようになる。
いいかんじ。xiao samd21 daplink使える!

が、pi picoって結構お安く手に入るからこんなことせんでもいいかもだけど(、、、今さらー)、、、賢明な方はpi pico買ってください。

2026年。良い年になりますよう(。>ㅅ<)✩⡱

2026年1月4日日曜日

Seeeduino XIAO (SAMD21G18A)をDAPLinkデバイス化する(1)<--ふたたび

 

Seeed Wikiに「ArduinoボードをDAPLinkデバイスとして使用する方法」という記事があったのでトレースしてみる。

Seeed Wikiの当該ページはこちら(https://wiki.seeedstudio.com/ja/Arduino-DAPLink/)。で、使用するボードはSeeeduinoXIAO(SAMD21)。

1.DAPLink Arduinoライブラリのインストール

1-1.Seeed_Arduino_DAPLink リポジトリをダウンロード
Seeed-Studio/Seeed_Arduino_DAPLinkで、
ってすると、
Seeed_Arduino_DAPLink-master.zip
ってのがダウンロードされる。

1-2.ArduinoIDEにライブラリを追加
んで、ArduinoIDEで
で、開くダイアログでさっきダウンロードしたSeeed_Arduino_DAPLink-master.zipを選ぶ。一瞬で何かが行われた後、こんな感じでSeeed_Arduino_DAPLinkってやつが現れるようになる。

2. Seeed SAMD boardsを再インストール
ボードフォルダの中にもlibrariesフォルダがあって、このなかのtinyusbが古かったので衝突が起こってたと思う。updateでもいいのかもしれないけど、、、

2-1.ボードマネジャでseeedで検索してSeeed SAMD Boardsを探して、一旦削除。

2-2.ArduinoIDEを再起動してSeeed SAMD Boardsを再度インストール

3.ピン定義のカスタマイズ
Seeeduino Xiaoを使用しているのでスキップ。

4. Arduinoボードへのアップロード

4-1.プロジェクトを開く
ArduinoIDEでexampleからdaplink_v2を開く。
(いろいろ試したけど、こっちがいいらしい)

4-2.コードをちょっといじる。
元のコードは#if 0でスキップしてます。


4-3.USB StackをTinyUSBに変更する。

4-4.コンパイルしてみる。
(ライブラリの衝突はなくなった)

4-4.書き込む。
できたと主張している。

5.OpenOCDで動作確認
5-1.OpenOCDをここ(https://github.com/xpack-dev-tools/openocd-xpack/releases)から持ってくる。

5-2.フォルダに展開

5-3.ブツを接続する
拡張ボード側がXIAO RP2040です。

5-4.展開したフォルダでコマンドプロンプトを起動

5-5.OpenOCD起動
ここまでくればまぁ大丈夫。

5-6.telnet接続してみる
Teratermを起動してOpenOCDに接続する。


たぶんうまくいってる!

ライブラリの衝突はやっぱりダメだったんだろう。
daplink_v2を使うことでzadigいらなくなったっぽい。
どういうコードでどういうエラーが出てるかをGeminiに伝えることで、中身はさっぱりわからんけど解決できた。

AI、、、ちょっとずつ使えるようになってきてると思う。AIバブル(?)はまだつづくかなー

2026年1月3日土曜日

Seeeduino XIAO (SAMD21G18A)をDAPLinkデバイス化する(1)<--だめ

 

Seeed Wikiに「ArduinoボードをDAPLinkデバイスとして使用する方法」という記事があったのでトレースしてみる。ごめん、うまくいかない。WindowsでもLinuxでもopenocdがCMSIS-DAPデバイスを見つけてくれないTT

Seeed Wikiの当該ページはこちら(https://wiki.seeedstudio.com/ja/Arduino-DAPLink/)。で、使用するボードはSeeeduinoXIAO(SAMD21)。本当に単純に愚直にトレースする。

1.DAPLink Arduinoライブラリのインストール

1-1.Seeed_Arduino_DAPLink リポジトリをダウンロード
Seeed-Studio/Seeed_Arduino_DAPLinkで、
ってすると、
Seeed_Arduino_DAPLink-master.zip
ってのがダウンロードされる。

1-2.ArduinoIDEにライブラリを追加
んで、ArduinoIDEで
で、開くダイアログでさっきダウンロードしたSeeed_Arduino_DAPLink-master.zipを選ぶ。一瞬で何かが行われた後、こんな感じでSeeed_Arduino_DAPLinkってやつが現れるようになる。

2. Adafruit_TinyUSB_Arduinoライブラリのインストール

2-1.Adafruit_TinyUSB_Arduino リポジトリをダウンロード
adafruit/Adafruit_TinyUSB_Arduinoで、
ってすると、
Adafruit_TinyUSB_Arduino-master.zip
ってのがダウンロードされる。

2-2.ArduinoIDEにライブラリを追加
んで、1-2と同じようにArduinoIDEを操作して、Adafruit_TinyUSB_Arduino-master.zipを選択するとAdafruit TinyUSB Libraryってのが現れるようになる。

3.ピン定義のカスタマイズ
Seeeduino Xiaoを使用しているのでスキップ。

4. Arduinoボードへのアップロード

4-1.プロジェクトを開く
ArduinoIDEでexampleからsimple_daplinkを開く。

4-2.USB StackをTinyUSBに変更する。

4-3.コンパイルしてみる。
ArduinoIDEが認識しているライブラリがとっ散らかっているせいでウォーニング出てるけどまぁ意図通りのライブラリを選択しているみたい。

4-4.書き込む。
できたと主張している。

ここから先は参考サイトにない情報(できて当然とでも思ってるんやろうか?)
5.ドライバを変更する
ところで、このままではWindowsではCMSIS-DAPデバイスとして認識されなくてUSBシリアルデバイスのままなのである。ちなみにLinuxマシンにつなぐとCMSIS-DAPデバイスとして認識されているぽい。
こういう場合はzadigでいじくりまわすといい(雑)。

5-1.Zadigをダウンロード
ここ(https://zadig.akeo.ie/)からもらってくる。

5-2.Zadig実行
実行ファイル状態でダウンロードされるので、そのまま実行。
ブツをつないだ状態で
んで、ブツを選ぶ
んで、ドライバを入れ替える
こんなんなる
んで、こうなる
デバイスマネジャーを見ると
ってなってるので、たぶんうまくいってる。

5-3.ちなみに
ドライバを標準に戻すにはデバイスを接続した状態で、デバイスドライバで削除(今回の場合はCMSIS-DAPを削除)。んで、ブツを抜いて再度挿せば元に戻る(今回の場合はUSBシリアルデバイスに戻る)。が、これやるとCOMポート番号が変わっちゃうのがなんだかなーなんだよねー;

このあと、openocdで動かそうとしたんだけど、だめだったわ。なんなんだろうね。
OpenOCDでRP2040にアクセスしようとしたんだけどねー