Nordic nRF91シリーズ LTE通信ログの取得方法

<2026/02/19更新> *nRF9151バージョンに更新 こんにちは。加賀デバイスのNordic Teamです。 ネットワーク機器やIoT機器の開発していると様々トラブルに遭遇する事があります。実際に弊社にも下記のような様々な問い合わせがあります。 ・基地局は見つけられるが、そこから先が接続出来ない。 ・接続までに時間がかかる。 ・基地局までは接続出来ているが、その先のクラウドアプリケーションと通信が出来ない。 ・通信中に何かしらの理由で、急に切断される。そのようなトラブルの時に基地局とどのようなやり取りをしているか通信ログを見たいと思った事はありませんか? Nordic セルラーIoTモジュール nRF91シリーズでは、Modem Traceの機能を使ってLTEの通信ログを見る事が出来ます。この機能ではATコマンド、無線リソース制御(RRC)、非アクセス層(NAS)、およびインターネットプロトコル(IP) レベルまで可視化出来ます。 通信ログはUARTポート経由とSWDポート(デバッグポート)経由の2種類から選択可能となっています。どちらを使用しても通信ログは取得可能ですが使用するツールが異なります。 UARTポート経由の場合は、Nordicのツールがそのまま使え、実際の動きをWireshark(通信ログ)を見ながら評価が出来ます。そのためATコマンドを入力したり、クラウドアプリケーションからの指示を試しながら、動作がどのように変化するかすぐに確認出来ます。 SWDポート経由の場合は、Segger社のJ-Link RTT Loggerを使用します。SWDポート経由は使用するツールが違うため実際の動きを見ながらの評価は出来ません。取得したデータを後で解析する形で通信ログが確認可能です。メリットとしてはUARTが占有されないため通信ログ取得以外にUARTポートを使用する事が可能となります。 実際にそれらのポートから通信ログを取得してみたいと思います。評価にはNordicが提供しているSerial Modemを使用しました。 ◢◤UARTポート経由の場合 nRF91 modem tracing with UART backend using snippets UARTポート経由で通信ログを取得するためには、Extra CMake argumentsに -D<image_name>_SNIPPET=”nrf91-modem-trace-uart” を追加します。<image_name>はプロジェクト名になります。例として、SM_UARTというプロジェクトを作成した場合には、 -DSM_UART_SNIPPET=”nrf91-modem-trace-uart” となります。 またPCソフトはnRF Connect for DesktopのCellular monitorを使用します。起動後にデバイスを接続すると下記の画面となります。 “Start”ボタンを押すと通信ログの取得を開始します。TRACEがスタートしない場合は一度リセットボタンを押してみて下さい。 ATコマンドに対応したソフトウェアであれば、”start”ボタンの下にある”Refresh dashboard”(青色の枠)を押す事で、下記画面中央から右に示されているような、どのキャリアに接続しているか・電波強度はどの程度か・デバイスのIMEI・SIMのIMSI/ICCIDなどの様々な項目が確認出来ます。 左メニューバーの中段にある”Open in wireshark”(黄色の枠)のスライドバーをONして”start”ボタンを押すと、wiresharkも同時に起動するため実際に機器を動かしながら通信ログを見る事が出来ます。Wiresharkが起動しても左メニューバーのCONNECTION STATUSのTRACEにチェックマークが入らない場合は、一度リセットボタンを押してみて下さい。 通信ログは左メニューバーにある”RAW file name”(緑色の枠)で保存されます。クリックすると保存先フォルダにジャンプしてファイルが確認出来ます。 保存された通信ログはそのままでは見れないためファイル変換が必要となります。ファイル変換はCellular monitorを起動させた時(デバイスの接続前)の左メニューバーの”Open frace file in Wireshark…”(紫色の枠)で見る事が出来ます。 実際に開いた画像が下記となります。どのようなATコマンドを発行したのか・応答はどのようなものか・基地局とどのようなやり取りをしているかなど、様々な情報の確認が出来ます。 ◢◤SWDポート経由の場合…