Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Matter開発環境をざっくり眺める
Search
Kenta IDA
July 19, 2023
Programming
0
1.6k
Matter開発環境をざっくり眺める
2023/7/19に開催された、Nature Matter KaigiでのLT資料です。
Matterの各種開発環境をざっくり比較しました。
Kenta IDA
July 19, 2023
Tweet
Share
More Decks by Kenta IDA
See All by Kenta IDA
組込みRustでも でかい?JSONを扱いたい!
ciniml
3
1.3k
ATOMDisplay_DisplayModule_M5Stack_UG_2023_Tokyo.pdf
ciniml
1
1.6k
Rusty Stack-chanのすすめ
ciniml
0
520
Raspberry Pi Picoデバッガ使用のすすめ
ciniml
0
2k
ベアメタル向けRust stdクレートの実装調査
ciniml
2
710
ESP32でSORACOM Arcつないでみた
ciniml
2
1.2k
RustでCMSIS-DAP実装してみた。
ciniml
2
910
技書博初出展してみた
ciniml
0
370
Wio Terminalのなんやかんや
ciniml
2
1.6k
Other Decks in Programming
See All in Programming
個人アプリを2年ぶりにアプデしたから褒めて / I just updated my personal app, praise me!
lovee
0
300
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
3.7k
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
790
JavaScriptツール群「UnJS」を5分で一気に駆け巡る!
k1tikurisu
8
1.3k
ISUCON14公式反省会LT: 社内ISUCONの話
astj
PRO
0
140
CNCF Project の作者が考えている OSS の運営
utam0k
5
620
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
3
1.1k
自分ひとりから始められる生産性向上の取り組み #でぃーぷらすオオサカ
irof
8
2.2k
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
150
ErdMap: Thinking about a map for Rails applications
makicamel
1
1.1k
Kanzawa.rbのLT大会を支える技術の裏側を変更する Ruby on Rails + Litestream 編
muryoimpl
0
120
定理証明プラットフォーム lapisla.net
abap34
1
670
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
A designer walks into a library…
pauljervisheath
205
24k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
3k
GitHub's CSS Performance
jonrohan
1030
460k
How GitHub (no longer) Works
holman
312
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Making Projects Easy
brettharned
116
6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Transcript
Matter開発環境をざっくり眺める 2023年7月19日 Nature Matter Kaigi Nature 井田健太
- 井田健太 @ciniml - Firmware Engineer - Remo nanoのファームウェアや 工場向けツールを書いてます
自己紹介 #NatureMatter
Matter対応デバイス開発を始めるには • Matterの規格書を読む ◦ Matter 1.1 (May 17, 2023) ▪
Core Spec - 911ページ ▪ Device Library Spec - 91ページ ▪ Application Library Spec - 358ページ ◦ 結構多い… • Matterのプロトコル・スタックを実装するのは大変 ◦ 暗号化セッション確立のシーケンス難しい… • 基本的には既存のMatterスタック実装を使う #NatureMatter
Matter実装(1/6) • GitHubの project-chip organization以下にいろいろある ◦ CSAが管理しているorganization ◦ https://github.com/project-chip/ ◦
アイコンが自動生成のままだがホンモノ (CSAのロゴにしてほしい) #NatureMatter
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
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
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
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
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
余談:Matterのデバッグ • 通信のデバッグと言えばWireshark ◦ https://gitlab.com/wireshark/wireshark • 基本的なMatterのパケット解析 • 2023/4/21にマージされたので Ubuntu等では自前でビルドする必要アリ
• Message Format, Protocol Formatの 解析まで対応 • OpCode毎のパラメータ解析はまだ • 暗号化フレームのデコードもなし #NatureMatter
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
まとめ • connectedhomeipはサクッとデバイス作る分には便利 ◦ 各デバイスベンダーのSDK向けのポーティングを使うだけ ◦ on/off cluster実装デバイスとかはすぐ作れる • 他言語による実装はまだ発展途上
◦ matter-rs: デバイス実装の一部が動く段階. コントローラ未実装 ◦ matter.js: 結構すすんでそう. nodeを動かせるならアリかも • Wiresharkをビルドしておくと良い #NatureMatter
ご清聴ありがとうございました