Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Matter開発環境をざっくり眺める

 Matter開発環境をざっくり眺める

2023/7/19に開催された、Nature Matter KaigiでのLT資料です。
Matterの各種開発環境をざっくり比較しました。

Kenta IDA

July 19, 2023
Tweet

More Decks by Kenta IDA

Other Decks in Programming

Transcript

  1. Matter開発環境をざっくり眺める

    2023年7月19日
    Nature Matter Kaigi
    Nature 井田健太


    View Slide

  2. - 井田健太 @ciniml
    - Firmware Engineer
    - Remo nanoのファームウェアや
    工場向けツールを書いてます
    自己紹介

    #NatureMatter

    View Slide

  3. Matter対応デバイス開発を始めるには
    ● Matterの規格書を読む
    ○ Matter 1.1 (May 17, 2023)
    ■ Core Spec - 911ページ
    ■ Device Library Spec - 91ページ
    ■ Application Library Spec - 358ページ
    ○ 結構多い…
    ● Matterのプロトコル・スタックを実装するのは大変
    ○ 暗号化セッション確立のシーケンス難しい…
    ● 基本的には既存のMatterスタック実装を使う
    #NatureMatter

    View Slide

  4. Matter実装(1/6)
    ● GitHubの project-chip organization以下にいろいろある
    ○ CSAが管理しているorganization
    ○ https://github.com/project-chip/
    ○ アイコンが自動生成のままだがホンモノ (CSAのロゴにしてほしい)
    #NatureMatter

    View Slide

  5. Matter実装(2/6) - connectedhomeip
    ● https://github.com/project-chip/connectedhomeip
    ● CSA公式のMatterプロトコルのリファレンス実装
    ○ リファレンス実装、だいじ。
    ● 各種プラットフォーム向け実装あり
    ○ Linux, ESP32, nRF52等
    ● C++で書かれている
    ● Matterで必要なプロトコルの各階層を一通り実装
    ● デバイスおよびコントローラ対応
    ● 認証試験用ツールの実装にも使われている
    https://github.com/project-chip/connectedhomeip/raw/m
    aster/docs/images/Matter_Layered_Arch.png
    #NatureMatter

    View Slide

  6. Matter実装(3/6) - esp-matter
    ● https://github.com/espressif/esp-matter
    ● ESP32シリーズ向けにconnectedhomeipをポーティングしたもの
    ○ ESP32: Espressifの無線機能付きMCU
    ● ESP32向けの実装
    ○ NVS(不揮発メモリ) ドライバの実装
    ■ FabricやNOC等の情報の保存
    ■ デバイス固有情報の読み出し
    ■ DACの管理
    ● さらにesp-matter固有のCライクなAPIでラップされている
    ○ ESP-IDFはCでの開発をサポートしているので、そのため?
    ● Remo nanoのファームウェアでも使用
    #NatureMatter

    View Slide

  7. Matter実装(4/6) - nRF Connect SDK
    ● https://www.nordicsemi.com/Products/Development-software/nrf-connect-sdk
    ● NordicのnRFシリーズ向けのファームウェア開発用SDK
    ○ nRF52, 53, 70, 91等
    ● nRFシリーズ向けにconnectedhomeipをポーティングしたものが含まれる
    ○ Nordicのfork版connectedhomeip
    https://github.com/nrfconnect/sdk-connectedhomeip
    ○ Zephyr RTOS対応などが追加されている
    ● まだ使ったことがないので、消費電力等どんな感じなのか気になる
    ○ nRF52, 53だとThreadをつかうことになる?
    #NatureMatter

    View Slide

  8. Matter実装(5/6) - matter-rs
    ● MatterプロトコルスタックのRust実装
    ○ https://github.com/project-chip/matter-rs
    ● まだ未完成
    ○ project-chip以下にあるけど、個人プロジェクトっぽい状態に見える
    ● 簡単なデバイスの実装は動いている
    ○ コントローラ実装はまだ手が付けられていない
    ● 現行実装はRustの `std` 環境を要求する
    ○ 組込み環境は `no_std` が一般的 (といいつつESP32はstdがあるけど)
    ● `no_std` 対応が進められている
    ● (connectedhomeipのビルド重いのでこっち開発すすむといいな…)
    #NatureMatter

    View Slide

  9. Matter実装(6/6) - matter.js
    ● MatterプロトコルスタックのTypeScript実装
    ○ https://github.com/project-chip/matter.js
    ● まだ未完成だがmatter-rsよりは活発そうに見える
    ● matter.jsをつかったコントローラやデバイスの実装として
    matternodeやmatter-node.jsがある
    ● 成熟すれば、Linux上でのMatter実装の候補の一つとなりそう
    #NatureMatter

    View Slide

  10. 余談:Matterのデバッグ
    ● 通信のデバッグと言えばWireshark
    ○ https://gitlab.com/wireshark/wireshark
    ● 基本的なMatterのパケット解析
    ● 2023/4/21にマージされたので
    Ubuntu等では自前でビルドする必要アリ
    ● Message Format, Protocol Formatの
    解析まで対応
    ● OpCode毎のパラメータ解析はまだ
    ● 暗号化フレームのデコードもなし
    #NatureMatter

    View Slide

  11. Matter実装まとめ
    項目 connectedhomeip esp-matter nRF Connect SDK matter-rs matter.js
    成熟度 実用 実用 実用 実験 実験
    プラットフォー

    Linux, MacOS, 各
    種MCU
    ESP32系 nRF系
    Zephyr RTOS
    ほぼ任意? Nodeが
    動く環境
    言語 C++ C/C++ C++ Rust Type Script
    MCU向け可 はい はい はい はい いいえ?
    #NatureMatter

    View Slide

  12. まとめ
    ● connectedhomeipはサクッとデバイス作る分には便利
    ○ 各デバイスベンダーのSDK向けのポーティングを使うだけ
    ○ on/off cluster実装デバイスとかはすぐ作れる
    ● 他言語による実装はまだ発展途上
    ○ matter-rs: デバイス実装の一部が動く段階. コントローラ未実装
    ○ matter.js: 結構すすんでそう. nodeを動かせるならアリかも
    ● Wiresharkをビルドしておくと良い
    #NatureMatter

    View Slide

  13. ご清聴ありがとうございました

    View Slide