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
530
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
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
190
さいきょうのレイヤードアーキテクチャについて考えてみた
yahiru
3
700
Grafana Cloudとソラカメ
devoc
0
130
SpringBoot3.4の構造化ログ #kanjava
irof
2
910
定理証明プラットフォーム lapisla.net
abap34
1
1.7k
Immutable ActiveRecord
megane42
0
130
2025.01.17_Sansan × DMM.swift
riofujimon
3
700
Rubyでつくるパケットキャプチャツール
ydah
1
730
CNCF Project の作者が考えている OSS の運営
utam0k
5
670
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
1
590
Open source software: how to live long and go far
gaelvaroquaux
0
560
法律の脱レガシーに学ぶフロントエンド刷新
oguemon
5
690
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
67
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Adopting Sorbet at Scale
ufuk
74
9.2k
For a Future-Friendly Web
brad_frost
176
9.5k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.4k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Making Projects Easy
brettharned
116
6k
Faster Mobile Websites
deanohume
306
31k
It's Worth the Effort
3n
184
28k
Code Review Best Practice
trishagee
66
17k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
What's in a price? How to price your products and services
michaelherold
244
12k
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
ご清聴ありがとうございました