らんらん技術日記

日々の学習メモに

nRF Snifferをv3にアップデート

久々にNordic Semiconductorのホームページを覗いてみたら、nRF Snifferのメジャーバージョンがv2からv3に更新されていました。 nRF Snifferといえば、過去に僕はBluefruit LE Snifferを購入しています。

www.sengoku.co.jp

購入時のnRF Snifferはv2です。
想定した用途では使えなかったので、ほとんど眠っていますが・・・。
v3では機能面が良くなることを期待しつつ、試しにアップデートしたいと思います!

Adafruit社のページを確認

こういう時は、開発元のホームページを確認するのが一番です。
開発元はAdafruit社ということで、専用ページを見つけました。

https://learn.adafruit.com/introducing-the-adafruit-bluefruit-le-sniffer/using-with-sniffer-v2

以下は、v2→v3にアップデートする際の該当記事を意訳した内容です。

FWアップデートのガイドやチュートリアルは用意してないぞ。
そもそもFWのソースコード持ってないしな。
Nordic社のページを当たってくれや。

なめとんのかwww

自己流でアップデート

仕方がないので、自己流でアップデートしたいと思います。
自己流といいつつも、この世界の「常識」に従っているので、特に変わったことはしていません。
アップデートの流れは、大きく以下の3ステップになります。

  1. 変換基盤を作る
  2. FWアップデート
  3. Wiresharkのセットアップ

「3.Wiresharkのセットアップ」はNordic社のHPに方法がそのまま書いてあります。「1.変換基盤を作る」「2.FWアップデート」は特に決まったやり方はないので、自己流?になります。

変換基盤を作る

パソコンから、基盤上のマイコン(nRF51822)にアクセスする仕組みを作ります。
先に必要な道具を紹介します。

  • Bluefruit LE Sniffer本体
  • ARM Cortex -M0 対応のプログラマ
  • 変換基盤の材料
    • ユニバーサル基盤
    • 配線
    • ピンヘッダ
  • はんだセット、ニッパ、ワイヤストリッパ等の工具

f:id:yukirunrun:20200613184149p:plain

僕はプログラマとしてJ-Link EDUを使いました。
なのでJ-Link EDUを前提に話を進めます。

〇変換基盤を作る
Bluefruit LE Snifferには、SWD(ARMマイコンのデバック用通信規格)を行うためのパッドがあります。
ということで、SWDでプログラムを書き込むことにします。
J-Link EDUのピン配置を参考に、変換基盤を作成します(写真は裏から基盤を見ているので、配置が反転しています)。続いて、配線と Bluefruit LE Snifferをはんだづけします。

f:id:yukirunrun:20200613192242p:plain

f:id:yukirunrun:20200613192335p:plain

〇パソコンと繋げる
J-Link EDUはパソコンと直接USBで接続します。Bluefruit LE Snifferの電源は、適当にUSB給電します。
写真の黒い物体は、ただのモバイル用のUSBバッテリですw

f:id:yukirunrun:20200613193341p:plain

FWアップデート

ここからはパソコン上での作業になります。
必要なツールの紹介です。

  • nRF Sniffer v3
  • nRF Connect for Desktop
    • Programmer

ツールはNordic社のHPからダウンロードできます。

★nRF-Sniffer
nRF Sniffer for Bluetooth LE - nordicsemi.com

★nRF Connect for Desktop
nRF Connect for Desktop - nordicsemi.com

〇nRF Connect for Desktopのインストール
nRF Connect for DesktopはFW書き込み用のアプリケーションとして利用します。
他の方法でも代替可能ですが、この方法が一番楽かと思います。

NordicのHPから最新版をダウンロードし、インストールしてください。
nRF Connect for Desktopを起動すると、ホーム画面が現れます。
必要に応じて、色々なアプリをインストールできるようです。
今回はProgrammerのインストールのみで十分です(僕は興味本位でBluetooth Low Energyも入れました)。

f:id:yukirunrun:20200613195604p:plain

〇FWを用意する
書き込むFWのイメージは、nRF-Snifferをダウンロードすると、zipファイルの中に入っています。
zipファイルを解凍し、hexフォルダの中から、「sniffer_pca10028_xxxxxxx.hex」を使用します(xxxxxxxは任意の文字です)。
ここで注意です!
pca10028とはNordic社が販売する開発ボードのことです。 Bluefruit LE Snifferとは別製品です。
通常ならば、別製品のFWを使うことはできません。
今回、pca10028のFWを使う理由は、Adafruit社のHPにそれっぽい記述があるからです。
本当に使える確証はありません。
まぁ、おそらく問題ないと思いますw

〇FWを書き込む
パソコンにJ-Link EDUを接続し、先ほどインストールしたProgrammerを開きます。
画面上側のSelect deviceを押して、デバイスと接続します。

f:id:yukirunrun:20200613202432p:plain

バイスが正しく認識されると、画面下側のLogウインドウにその旨のメッセージが流れます。
この状態でFile memory layoutに「sniffer_pca10028_xxxxxxx.hex」をドラッグ&ドロップ、画面右側のWriteを押下します。

f:id:yukirunrun:20200613203356p:plain

ものの数秒のうちに書き込みは完了します。
書き込みに成功すると「Write Procedure finished」のようなログが流れます。

ここまで完了すると一安心です!
僕は今回たまたま一発成功でしたが、いつもはどこかでミスりますw
もし失敗した場合は、まずは「1. 変換基盤を作る」の作業を見直してみてください。

Wiresharkのセットアップ

Nordicが紹介している通りにやればOKです。
僕なりのオリジナリティはないので、省略します。

infocenter.nordicsemi.com

Wiresharkのセットアップがうまくいくと、以下のようにBLEのパケットを確認できます。
f:id:yukirunrun:20200613205419p:plain

以上でアップデートは完了です。
次回、もしv3の新機能があれば紹介したいと思います!