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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Y_uuu
October 31, 2026
Programming
25
1
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
980
Porting filesystem-fat to Another Microcontroller: ESP32
yuuu
2
470
Porting PicoRuby to Another Microcontroller: ESP32
yuuu
4
1.2k
RubyKaigi 2025でプロポーザルが初めて採択されるまでにやったこと
yuuu
1
830
地方企業の強みを活かす!AWSを活用したIoTシステムの開発事例とその裏側
yuuu
0
200
あの重機は今どこにある?- 重機管理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
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
1k
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
3
620
contenteditable と日本語入力に向き合う
colorful12
0
230
最近”作らせてる” ローカルAIアプリの話
akit37
0
510
AI Augmentation Techniques with Liberty
ivargrimstad
0
120
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.1k
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
240
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
230
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
1.2k
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
160
R8 の設定見直しでアプリサイズ削減
andpad
0
230
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
170
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
930
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Docker and Python
trallard
47
4.2k
Amusing Abliteration
ianozsvald
1
370
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
560
Typedesign – Prime Four
hannesfritz
42
3.2k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Marketing to machines
jonoalderson
1
5.9k
Statistics for Hackers
jakevdp
799
230k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
430
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
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