Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
スタックチャンで複数アプリを切り替えるテクニック
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Takao Akaki
July 31, 2023
Programming
940
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
スタックチャンで複数アプリを切り替えるテクニック
2023/7/29 スタックチャン お誕生日会 2023のLTで、M5Stack-SD-Updaterの概要を説明した時のスライドです。
Takao Akaki
July 31, 2023
More Decks by Takao Akaki
See All by Takao Akaki
2026.6.27 お誕生日会で配布された透明シェルを交換する際の注意点について
mongonta0716
0
270
2025.5.4 M5Stack スタックチャンの活用方法(2025最新版)
mongonta0716
0
1.2k
スタックチャンに外部スピーカーを接続する方法
mongonta0716
0
880
2022.10.23 メタル #スタックチャン を作ってみた。
mongonta0716
0
2.6k
2022.09.23 メタルスタックチャンを作ってみた
mongonta0716
2
980
2022.7.23 スタックチャン誕生日会
mongonta0716
0
680
Other Decks in Programming
See All in Programming
Modernizing iOS Apps
seyfoyun
0
130
AI-Powered Domain-Driven Design
ziobrando
0
350
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
230
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
180
[2026-10-09]一枚の布で作らなくてもいい。 信頼性は「パッチワーク」で紡がれる~既存の運用と新しい可能性をつなぎ合わせてきたCREの話~
tosite
0
120
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
1
210
Vue Fes Japan の “作る側”に関わってみて
naokihaba
1
200
No More NoSuchMethodError
exoego
1
120
Railsバージョンを4倍にした話
optim
0
830
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
0
190
Jetpack Compose Mechanisms
skydoves
3
890
Groovy as a human and AI friendly programming language
paulk
0
130
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
430
How to Ace a Technical Interview
jacobian
280
24k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Site-Speed That Sticks
csswizardry
13
1.6k
Designing Experiences People Love
moore
143
24k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
900
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Transcript
スタックチャンで複数アプリを 切り替えるテクニック M5Stack-SD-Updaterの使い方 Arduino-Frameworkで利用できます。 5分なので概要だけです。 2023/7/29 タカオ
自己紹介 名前 タカオ(Twitter: @mongonta555) 職業 スタックチャン職人 M5Stackのドキュメント要員
スタックチャンと出会って2年で26人になりました。 BOOTHでスタックチャン タカオ版組み立てキットを頒布しています。 (見送った人数は 2023/7/29現在 579人) https://mongonta.booth.pm
ESP32上で複数のアプリを切り替えて使うことが 可能になります。 スタックチャンに限りません。 ArduinoFrameworkで利用できます。 相互に切り替えを行うには、各アプリにSD- Updaterの組み込みが必要です。 M5Stack-SD-Updaterとは https://github.com/tobozo/M5Stack-SD-Updater Tobozo Tagada(@TobozoTagada)氏が公開しているArduinoライブラリです。
M5Stack-SD-Updaterを使うメリット 1つのアプリで複数の機能を盛り込んだ場合にありがちな、ヒープメモリ不足 を気にしなくて済む。 複数の機能を同一コード内に持たずに済むので、複雑にならない。 M5Stack-SD-Updaterを使うデメリット SDやSPIFFSからバイナリを読み込むので切り替えには時間がかかる。 →
2つのアプリの切り替えであれば速くするテクニックもある。 プログラムを変更した場合、生成したbinも置き換える必要がある。 → あらかじめ、プログラムにbinを保存する機能を盛り込んでおくと楽
仕組み ESP32(S3等含む)はOTA(Over The Air)という仕組みを持っていて、ファームウェア(アプリ)を WiFi経由で書き換えることが可能です。 その仕組みを利用してSPIFFSやSD上にあるbinファイルをFlashに読み込んで 動作しているファームウェア(アプリ)を切り替えるという仕組みです。
仕組み上、app0とapp1のそれそれのサイズを超えるアプリは使用することができません。 Name 16MB(Core/2/S3等) 8MB(AtomS3等) 4MB(Atom,StickC等) build_partition default_16MB.csv default_8MB.csv default.csv nvs 5,000 5,000 5,000 otadata 2,000 2,000 2,000 app0 640,000 330,000 140,000 app1 640,000 330,000 140,000 spiffs 360,000 180,000 160,000 coredump 10,000 10,000 10,000 ESP32のFlashメモリのパーティションレイアウト(単位:byte)
簡単に言うと、、、 SDカードやSPIFFS(M5Stack内蔵Flashメ モリの一部)に書き込んだbinファイル を相互に切り替えることが可能です。 AIスタックチャン センサー値の表示 アプリ Bluetoothスピーカー スタックチャン AIStackchan.bin
BTStackchan.bin Sensor.bin ランチャーアプリ(menu.bin) AIスタックチャン BTSPK センサー アプリ
Binの用意の仕方 1.ArduinoIDEでバイナリビルド 2.VSCode+PlatformIOからコピー 3.アプリから書き込む方法
Binの用意の仕方① ArduinoIDEでバイナリコンパイル メニューから「スケッチ」→「コンパイル済みバイナリをエクスポート」 を選ぶとbin形式のファイルを生成することができます。 (Arduino1.8.xでは「コンパイルしたバイナリを出力」)
Binの用意の仕方② VSCode+PlatformIOからコピー Buildを実行すると、 .pio/build/(選択したenv名のフォルダ) の下にfirmware.binとファイルができます。 そのファイルをコピーして名前を変更して ください。
Binの用意の仕方③ アプリに書き込み機能を組み込む 多分これが一番楽です。 下記のようなコードをアプリに組み込みます。 例では、BtnAをダブルクリックをするとSPIFFSに書き込みます。
M5Stack-SD-Updaterの注意事項 binのファイル名は半角英数字のみで短めに。 あまり長すぎると、エラーが出て読み込めません。 SPIFFSを使う場合はフォーマットできてないとエラーになる場合がある。 その場合は一度Eraseしてから書き込んでみましょう。
ご清聴ありがとうございました。