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.5k
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.2k
ATOMDisplay_DisplayModule_M5Stack_UG_2023_Tokyo.pdf
ciniml
1
1.6k
Rusty Stack-chanのすすめ
ciniml
0
460
Raspberry Pi Picoデバッガ使用のすすめ
ciniml
0
1.9k
ベアメタル向けRust stdクレートの実装調査
ciniml
2
680
ESP32でSORACOM Arcつないでみた
ciniml
2
1.1k
RustでCMSIS-DAP実装してみた。
ciniml
2
870
技書博初出展してみた
ciniml
0
350
Wio Terminalのなんやかんや
ciniml
2
1.6k
Other Decks in Programming
See All in Programming
ActiveSupport::Notifications supporting instrumentation of Rails apps with OpenTelemetry
ymtdzzz
1
250
カンファレンスの「アレ」Webでなんとかしませんか? / Conference “thing” Why don't you do something about it on the Web?
dero1to
1
110
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
150
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
200
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
230
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
110
Jakarta EE meets AI
ivargrimstad
0
690
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
640
EMになってからチームの成果を最大化するために取り組んだこと/ Maximize team performance as EM
nashiusagi
0
100
OnlineTestConf: Test Automation Friend or Foe
maaretp
0
120
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
1.1k
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
2
360
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Music & Morning Musume
bryan
46
6.2k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Making Projects Easy
brettharned
115
5.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Navigating Team Friction
lara
183
14k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Faster Mobile Websites
deanohume
305
30k
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
ご清聴ありがとうございました