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
Growing PicoRuby's Ecosystem on ESP32
Search
Y_uuu
October 31, 2026
Programming
92
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Growing PicoRuby's Ecosystem on ESP32
2026-10-31(Sat)
PicoRubyKaigi 2026 Assemble
https://picorubykaigi.org/schedule/yuuu/
Y_uuu
October 31, 2026
More Decks by Y_uuu
See All by Y_uuu
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
990
Porting filesystem-fat to Another Microcontroller: ESP32
yuuu
2
480
Porting PicoRuby to Another Microcontroller: ESP32
yuuu
4
1.2k
RubyKaigi 2025でプロポーザルが初めて採択されるまでにやったこと
yuuu
1
840
地方企業の強みを活かす!AWSを活用したIoTシステムの開発事例とその裏側
yuuu
0
210
あの重機は今どこにある?- 重機管理IoTプロダクトのバックエンドをAWSで構築した話 -
yuuu
0
1.1k
mruby-esp32におけるペリフェラルAPIの実装検討
yuuu
1
950
育成力 - エンジニアの才能を引き出す環境とチューターの立ち回り -
yuuu
4
5.3k
committee-railsとOpenAPI Generatorでスキーマ駆動なAPI開発をする
yuuu
0
1.1k
Other Decks in Programming
See All in Programming
Claude Code ハーネスDeep Dive – 君はどこまで制御する? -
takateeen_knj
3
1.3k
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
360
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
630
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
170
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
6
1.4k
Crash Auto Pipelines
veronikapj
1
390
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
15
11k
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
240
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.8k
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
5
800
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
410
小さなアプリを作って公開するまで
onozaty
0
140
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
30 Presentation Tips
portentint
PRO
1
460
Deep Space Network (abreviated)
tonyrice
0
410
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.7k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
290
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.3k
Scaling GitHub
holman
464
140k
Docker and Python
trallard
47
4.3k
Producing Creativity
orderedlist
PRO
348
41k
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Into the Great Unknown - MozCon
thekraken
41
2.8k
Transcript
Growing PicoRuby's Ecosystem on ESP32 October 31, 2026 / PicoRubyKaigi
2026 Assemble Yuhei Okazaki(@Y_uuu)
self.inspect • Yuhei Okazaki • @Y_uuu(X), @y-uuu.net(BlueSky) • @yuuu(GitHub) •
IoT Cloud Engineer at Fusic Co., Ltd. • Mentor at Fjord Boot Camp • Contributor to PicoRuby ◦ Author of R2P2-ESP32 (today's topic) 2
PicoRuby、やったことある人 ✋ 3
PicoRuby、始めたくなった人 ✋ 4
R2P2-ESP32 Docs そんなあなたにぜひ見てほしい! https://picoruby.org/R2P2-ESP32-docs/ja/ 5
ESP32とは Wi-FiやBluetooth機能を内蔵している、 IoTに適したマイコン。 次のような製品で使われている。 • M5Stack • XIAO • ESPr
• etc... 6
R2P2-ESP32とは ESP32版R2P2です。誕生の過程はRubyKaigi 2025の資料・動画を参照。 https://rubykaigi.org/2025/presentations/Y_uuu.html 7
ESP32でPicoRubyをはじめる 3つの障壁 • 1 - ファームウェアの書き込み方法がわかりにくい ◦ _ • 2
- ビルドのために開発環境(ESP-IDF)が必要 ◦ _ • 3 - 実機上でのデバッグが難しい ◦ _ 8
障壁を解決する 3つの取り組み • 1 - ファームウェアの書き込み方法がわかりにくい ◦ R2P2-ESP32 Web Installer
• 2 - ビルドのために開発環境(ESP-IDF)が必要 ◦ Dockerベースのビルドサポート • 3 - 実機上でのデバッグが難しい ◦ 実機上で動作するデバッガの開発 9
1. R2P2-ESP32 Web Installer 10
R2P2-ESP32 Web Installerとは • ブラウザから直接ESP32へ ファームウェアを書き込むツール • R2P2-ESP32 Docsからアクセス可能 https://picoruby.org/R2P2-ESP32-docs/installer/
11
利用方法 1. デバイスをPCとUSBケーブルで接続 2. Targetを選択 3. VM(PicoRuby or FemtoRuby)を選択 4.
「Connect and Flash」をクリック 12
利用方法 1. Webターミナルで接続 13
実現方法 • ESP Web Toolsを使って実現 https://esphome.github.io/esp-web-tools/ • GitHub ActionsでR2P2-ESP32の最新イメージを定期取得 •
画面から書き込み操作をしたらWebシリアルで書き込み 14
リリースフロー • R2P2-ESP32側で動作チェック&リリース ◦ QEMUを用いたCIでの起動確認 ◦ ターゲットごとのビルド 15
参考: QEMUとは • CPU/ハードウェアを模擬するエミュレータ • Espressif Systemsが提供しているESP32のエミュレータを利用 16
リリースフロー • productionへのpushをトリガにビルド 17
リリースフロー • GitHub Releaseでイメージを公開 18
リリースフロー • 前述の通り、Docs側がポーリングして最新 バージョンを取り込む 19
はじめての人は Web Installerから • ブラウザとデバイスがあれば3分で始められる • 「高度な使い方」(後述)をしないならこれで十分 20
2. Dockerベースのビルドサポート 21
次のステップの壁 : ESP-IDF • Web Installerでひとまず始める際の障壁は下がった • 「高度な使い方」をするためにはCのビルド環境(ESP-IDF)が必要 ◦ mrbgemsを追加・削除したい
◦ SPI RAMの設定などRubyから直接変更できない設定を変えたい ◦ Cのソースコードを書いて動かしたい ◦ etc... 22
ESP-IDFの環境構築は初心者にはハードルが高い Pythonやさまざまなライブラリのインストールが必要 https://docs.espressif.com/projects/esp-idf/en/stable/esp32/get-started/macos-setup.html 23
ESP-IDFはDockerイメージが提供されている • Espressif社が公開しているDockerイメージ(espressif/idf) https://hub.docker.com/r/espressif/idf 24
技術スタックの比較 25
技術スタックの比較 デバイスに対するflash, monitorをシリアル経由で行 うため、コンテナの外側に必要 26
技術スタックの比較 esptool, esp-idf-monitor相当の処理をRakeタスクと して実装し、Pythonとの依存をなくす 27
Dockerを使ったビルド • 従来のタスク名に docker: を付与するだけ ◦ Rakefileに docker というnamespaceを設け、 既存のRakeタスクをコンテナ上で実行するラッパーを定義
28
書き込み・モニタリング • これまでと同様のRakeタスクを実行 ◦ 今後はidf.py flash, monitorを使用せずRubyプログラムとして シリアル経由の書き込み・モニタリングを実行する 29
Dockerを使ったビルドを標準とするか • Dockerの方が便利なのでこちらを標準にしていいのでは? と思っています。 ◦ 近々変更するかもしれません。 ◦ 要望や意見があれば後でこっそり教えてください。 30
コマンドを覚えられない人へ • R2P2-ESP32はMCPサーバーを内包している • MCPサーバーを使わないときより出力トークンを節約できる 31
3. yuuu/mruby-debug 32
実機上でデバッグしたい • 物理デバイスを制御するプログラムを動かすとき • irbやprintでは原因の特定が難しいとき 33
mrubyやPicoRubyのデバッガ • mruby-bin-debugger(mrdb): mrubyリポジトリに同梱 • picoruby-wasm: PicoRuby.wasm向けのデバッガ https://www.kyutech.ac.jp/whats-new/t opics/archive/id3968.html#prettyPhoto https://chromewebstore.google.com/detail/picoruby-debugg
er/emcgkebdbnphflfcdkbjnkcmekidlabi 34
次のようなデバッガはおそらくなかった • case1. 実機上でデバッグできる • case2. ホストPCから実機に対して接続してデバッグできる • case3. VS
Code等のエディタから接続してデバッグできる 35
作った • yuuu/mruby-debug ◦ mruby対応 ◦ PicoRuby対応 ◦ デバイス上での実行に対応 https://github.com/yuuu/mruby-debug
36
デモ - 実機上でデバッグ 37
デモ - ホストPCから接続してデバッグ 38
デモ - VS Codeと連携してデバッグ 39
利用方法 • build_configに追記してビルドするだけで利用可能 ◦ a • ソースコード中に binding.debugger と書く 40
実現方法 : mrubyのコールバック機構 • mrubyにはバイトコードを1つ読み取るごとに 任意のC関数をコールバックさせる仕組みが実装済み • mruby-debugが提供する関数をコールバックさせる 41
実現方法 : リモートデバッグ • ホストPCとTCP通信することで実現 • RubyKaigi 2026で話したWi-Fi/TCP-IP通信の仕組みを活用 42
実現方法 : VS Codeとの連携 • vscode-rdbgはCRubyをデバッグするとき次の構成で動作する rdbg sample.rbのように起動してデバッグ VS CodeとrdbgはDAPでやりとり
43
実現方法 : VS Codeとの連携 mrdbgを起動してデバッグ。mrdbgの先にデバイスが あることをvscode-rdbgは知らない。 • vscode-rdbgをそのまま使いつつ、起動対象をmrdbgに差し替え ユーザーは別途VS CodeのExtensionをインストールしなくてよい
44
10年越しの宿題 • 自分がRubyやmrubyに触れたきっかけ ◦ 約10年前のmruby-bin-debuggerの開発 • 当時から 「ホストPCから接続させたり、IDEと連携したりできれば...」 という声はあった •
10年越しの宿題をようやく実現できた 45
おわりに 46
障壁を解決する 3つの取り組み • 1 - ファームウェアの書き込み方法がわかりにくい ◦ R2P2-ESP32 Web Installer
• 2 - ビルドのために開発環境(ESP-IDF)が必要 ◦ Dockerベースのビルドサポート • 3 - 実機上でのデバッグが難しい ◦ 実機上で動作するデバッガの開発 https://rubykaigi.org/2026/presentations/Y_uuu.html 47
一番のエコシステムは「コミュニティ」 • PicoPicoRubyコミュニティ • Discordで多くの人が日々進捗を投稿 • みんなでエコシステムを育てる https://picopicoruby.github.io/ 48
ぜひESP32でPicoRubyライフを楽しんでください • R2P2-ESP32 Docs https://picoruby.org/R2P2-ESP32-docs/ja/ 49
Thank you! 50