SlideShare a Scribd company logo
1 of 27
Download to read offline
Embedded Development
on
ESP32
2022-11-29
FEKT VUT - Brno
Juraj Michálek - Espressif Systems
wokwi.com
Quick start
Contribute: https://github.com/wokwi
EDC22 Day 1 Talk 9: Your browser is
ESP32 - Wokwi -
https://youtu.be/TKe4MgD6O8o
OSes and integration
ESP-IDF (OS based on FreeRTOS) - https://github.com/esp-rs/esp-idf-hal (full feature)
no_std a.k.a. bare metal with Rust - https://github.com/esp-rs/esp-hal (minimalistic)
Zephyr - https://zephyrproject.org/
- EDC22 Day 1 Talk 10: Applications of Asymmetric Multiprocessing with ESP32 Devices -
including Rust on one core - https://youtu.be/oble9ObAqxM
NuttX - https://nuttx.apache.org/ (as app, Linux-like OS)
SVD files: https://github.com/espressif/svd
Further languages and frameworks
Arduino - Maker choice
- warning: limitation on production due to licenses!
VM based:
- CircuitPython and MicroPython - Python-like language
- Toit - Toit language
- Nanoframework - C# language
- downside: bigger VM
- upside: more robust, comes with OTA and monitoring
Many chips, many boards - quick help
https://products.espressif.com/
Development options
- Local
- bootstrap whole env with “espup install” - https://github.com/esp-rs/espup#installation (written in Rust)
- bootstrap with sh/pwsh (older method) - https://github.com/esp-rs/rust-build#download-installer
- Local in container
- Podman, Docker, Lima
- with VS Code Remote Container extension
- Cloud in GitPod.io or CodeSpaces
- EDC22 Day 2 Talk 11 Just Few dot files in Repo or Paradigm Shift to Cloud-based Embedded Development -
https://youtu.be/WAwfRyOy7N8
- Wokwi.com
ESP-IDF
Windows
- idf-installer - includes drivers - https://dl.espressif.com/dl/esp-idf/
- https://github.com/espressif/idf-installer
Linux, macOS
- git clone --depth 1 --shallow-submodules https://github.com/espressif/esp-idf.git
- cd esp-idf
- ./install.sh
- . ./export.sh
- cd examples/get-started/blinky
- idf.py build flash monitor
IDE
Supported by Espressif:
- VS Code with Espressif Extension -
https://docs.espressif.com/projects/esp-idf/en/stable/esp32/get-started/vscode-setup.html
- Espressif IDE - https://dl.espressif.com/dl/esp-idf/
Supported by 3rd party and community:
- Visual Studio with VisualGDB - https://visualgdb.com/
- CLion - https://www.jetbrains.com/clion/
Rust language support
Talk: Embedded Rust on ESP32 - Juraj Michálek - Rust Linz November 2022
https://youtu.be/0PPPdqoDBQs
Create new project Rust project
Bare metal:
cargo generate https://github.com/esp-rs/esp-template
STD with ESP-IDF:
cargo generate --vcs none --git https://github.com/esp-rs/esp-idf-template cargo
Build, flash, monitor
cargo espflash --release --monitor
-note: always flash with release due to size and other limitations
Examples:
- https://github.com/esp-rs/awesome-esp-rust
- https://github.com/georgik/esp32-buddy-rs
- https://github.com/playfulFence?tab=repositories
- https://github.com/sambenko/esp32s3-box-examples
Embedded Graphics (e.g. ESP32-S3-BOX)
https://github.com/espressif/esp-box
ESP32-Sooky-Maze (PoC):
https://github.com/georgik/esp32-spooky-maze-game
Simple bare metal branch: main
WASM | ESP32-S3 Xtensa targets: feature/multiplatform
Big advantage of Rust:
shared business logic over multiple platforms!
Explore STD + ESP-IDF
cargo generate --vcs none --git https://github.com/esp-rs/esp-idf-template cargo
Embuild: https://github.com/esp-rs/embuild
- Rust build system integrating with ESP-IDF
- Big thanks to N3xed, ivmarkov and whole open source community
Designing Open Hardware - esp-rust-board
KiCad templates
https://github.com/esp-rs/esp-rust-board
ESP32-C3-DevKit-RUST-1 (available at Mouser, AliExpress)
https://www.espressif.com/en/products/devkits
ESP-RS organisation https://github.com/esp-rs
Rust ESP32 Community meeting
Regular meeting every two weeks
https://github.com/esp-rs/rust/discussions/
Training Embedded for ESP32-C3 by Ferrous Systems
Training: https://ferrous-systems.com/training/#package-espressif-beginner-training
Material: https://espressif-trainings.ferrous-systems.com/
GitHub: https://github.com/ferrous-systems/espressif-trainings/
GitPod.io + Wokwi.com
https://github.com/playfulFence/esp-clock#dev-containers
Some links
The Rust on ESP Book - https://esp-rs.github.io/book/
Awesome ESP Rust - https://github.com/esp-rs/awesome-esp-rust
- submit your project :-)
Some Inspiration
(not necessary in Rust)
Espressif Developer Conference 2022 - recording
https://www.youtube.com/playlist?list=PLOzvoM7_Knrc6o-n25jYuXRB2T8UKk1NU
CTAG-TBD
CTAG TBD >>to be determined<< an extendible
open source Eurorack sound module
https://github.com/ctag-fh-kiel/ctag-tbd
Wearables
The Ultimate Guide to Informed Wearable Technology
- book: https://packt.link/01VBv
Time-O-Mat - built at summer camp
https://github.com/vedatori/Time-O-Mat
Grafana
https://grafana.com/blog/2020/06/17/how-to-monitor-a-sourdough-starter-with-grafana/
https://github.com/grafana/diy-iot - Arduino now. We’re not Rust yet :)
Visit us in Brno
Espressif Systems (Czech) s.r.o.
Přízova 3, 602 00 Brno
Czechia, Europe
See you in Linz in 2023. We’re planning ESP32 Rust Workshop ;-)

More Related Content

What's hot

Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Opersys inc.
 
Embedded System Tools ppt
Embedded System Tools  pptEmbedded System Tools  ppt
Embedded System Tools ppt
Halai Hansika
 
Linux Porting to a Custom Board
Linux Porting to a Custom BoardLinux Porting to a Custom Board
Linux Porting to a Custom Board
Patrick Bellasi
 

What's hot (20)

Introduction to Embedded System
Introduction to Embedded SystemIntroduction to Embedded System
Introduction to Embedded System
 
[ZigBee 嵌入式系統] ZigBee 應用實作 - 使用 TI Z-Stack Firmware
[ZigBee 嵌入式系統] ZigBee 應用實作 - 使用 TI Z-Stack Firmware[ZigBee 嵌入式系統] ZigBee 應用實作 - 使用 TI Z-Stack Firmware
[ZigBee 嵌入式系統] ZigBee 應用實作 - 使用 TI Z-Stack Firmware
 
A practical guide to buildroot
A practical guide to buildrootA practical guide to buildroot
A practical guide to buildroot
 
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Using and Customizing the Android Framework / part 4 of Embedded Android Work...
Using and Customizing the Android Framework / part 4 of Embedded Android Work...
 
Embedded linux
Embedded linuxEmbedded linux
Embedded linux
 
Introduction of Arduino Uno
Introduction of Arduino UnoIntroduction of Arduino Uno
Introduction of Arduino Uno
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
Embedded systems basics
Embedded systems basicsEmbedded systems basics
Embedded systems basics
 
Embedded System Tools ppt
Embedded System Tools  pptEmbedded System Tools  ppt
Embedded System Tools ppt
 
USB Drivers
USB DriversUSB Drivers
USB Drivers
 
Aurdino presentation
Aurdino presentationAurdino presentation
Aurdino presentation
 
Linux Porting to a Custom Board
Linux Porting to a Custom BoardLinux Porting to a Custom Board
Linux Porting to a Custom Board
 
What is Bootloader???
What is Bootloader???What is Bootloader???
What is Bootloader???
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
Arduino course
Arduino courseArduino course
Arduino course
 
Introduction to AVR Microcontroller
Introduction to AVR Microcontroller Introduction to AVR Microcontroller
Introduction to AVR Microcontroller
 
Introduction to embedded systems
Introduction to embedded systemsIntroduction to embedded systems
Introduction to embedded systems
 
Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded Systems
 
Esp32 cam arduino-123
Esp32 cam arduino-123Esp32 cam arduino-123
Esp32 cam arduino-123
 

Similar to Embedded Development on ESP32 - FEKT VUT - UREL

OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
Paris Open Source Summit
 
Porting C++ apps to FLASCC
Porting C++ apps to FLASCCPorting C++ apps to FLASCC
Porting C++ apps to FLASCC
Pavel Nakaznenko
 

Similar to Embedded Development on ESP32 - FEKT VUT - UREL (20)

Embedded Rust on ESP2 - Rust Linz
Embedded Rust on ESP2 - Rust LinzEmbedded Rust on ESP2 - Rust Linz
Embedded Rust on ESP2 - Rust Linz
 
How Open Source Community and Espressif made it possible to use Rust language...
How Open Source Community and Espressif made it possible to use Rust language...How Open Source Community and Espressif made it possible to use Rust language...
How Open Source Community and Espressif made it possible to use Rust language...
 
How to run Linux on RISC-V (FOSS North 2020)
How to run Linux on RISC-V (FOSS North 2020)How to run Linux on RISC-V (FOSS North 2020)
How to run Linux on RISC-V (FOSS North 2020)
 
How to run Linux on RISC-V
How to run Linux on RISC-VHow to run Linux on RISC-V
How to run Linux on RISC-V
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
Linux on RISC-V (ELC 2020)
Linux on RISC-V (ELC 2020)Linux on RISC-V (ELC 2020)
Linux on RISC-V (ELC 2020)
 
Rapid IoT prototyping with mruby
Rapid IoT prototyping with mrubyRapid IoT prototyping with mruby
Rapid IoT prototyping with mruby
 
Berlin Embedded Linux meetup: How to Linux on RISC-V
Berlin Embedded Linux meetup: How to Linux on RISC-VBerlin Embedded Linux meetup: How to Linux on RISC-V
Berlin Embedded Linux meetup: How to Linux on RISC-V
 
Linux on RISC-V
Linux on RISC-VLinux on RISC-V
Linux on RISC-V
 
Fedora on risc-v_tokyo_30_sep_2019_v4
Fedora on risc-v_tokyo_30_sep_2019_v4Fedora on risc-v_tokyo_30_sep_2019_v4
Fedora on risc-v_tokyo_30_sep_2019_v4
 
OpenOCD-K3
OpenOCD-K3OpenOCD-K3
OpenOCD-K3
 
C language in our world 2019
C language in our world 2019C language in our world 2019
C language in our world 2019
 
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
OWF12/PAUG Conf Days Alternative to google's android emulator, daniel fages, ...
 
App container rkt
App container rktApp container rkt
App container rkt
 
Porting C++ apps to FLASCC
Porting C++ apps to FLASCCPorting C++ apps to FLASCC
Porting C++ apps to FLASCC
 
Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
 
carrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIcarrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-API
 
RISC-V and open source chip design
RISC-V and open source chip designRISC-V and open source chip design
RISC-V and open source chip design
 
ESP32_LABVIEW.pdf
ESP32_LABVIEW.pdfESP32_LABVIEW.pdf
ESP32_LABVIEW.pdf
 

More from Juraj Michálek

More from Juraj Michálek (20)

C language in our world 2017
C language in our world 2017C language in our world 2017
C language in our world 2017
 
Continuous Delivery - FIT VUT
Continuous Delivery - FIT VUTContinuous Delivery - FIT VUT
Continuous Delivery - FIT VUT
 
C language in our world 2016
C language in our world 2016C language in our world 2016
C language in our world 2016
 
Story behind PF 2016
Story behind PF 2016Story behind PF 2016
Story behind PF 2016
 
C++ and Software Engineering 2015
C++ and Software Engineering 2015C++ and Software Engineering 2015
C++ and Software Engineering 2015
 
C language in our world 2015
C language in our world 2015C language in our world 2015
C language in our world 2015
 
C++ in our world
C++ in our worldC++ in our world
C++ in our world
 
Bigger & Better RnD - GeeCON.cz 2014
Bigger & Better RnD - GeeCON.cz 2014Bigger & Better RnD - GeeCON.cz 2014
Bigger & Better RnD - GeeCON.cz 2014
 
Gradle and build systems for C language
Gradle and build systems for C languageGradle and build systems for C language
Gradle and build systems for C language
 
The story behind PF2014 - Cordova
The story behind PF2014 - CordovaThe story behind PF2014 - Cordova
The story behind PF2014 - Cordova
 
There is more to C 2013
There is more to C 2013There is more to C 2013
There is more to C 2013
 
PowerShell UIAtomation
PowerShell UIAtomationPowerShell UIAtomation
PowerShell UIAtomation
 
PowerShell from *nix user perspective
PowerShell from *nix user perspectivePowerShell from *nix user perspective
PowerShell from *nix user perspective
 
Ať se z kódu nepráší! 2013
Ať se z kódu nepráší! 2013Ať se z kódu nepráší! 2013
Ať se z kódu nepráší! 2013
 
Libraries and tools for C++
Libraries and tools for C++Libraries and tools for C++
Libraries and tools for C++
 
There is more to C
There is more to CThere is more to C
There is more to C
 
Git, Jenkins & Chuck
Git, Jenkins & ChuckGit, Jenkins & Chuck
Git, Jenkins & Chuck
 
Startup Camp - Git, Python, Django session
Startup Camp - Git, Python, Django sessionStartup Camp - Git, Python, Django session
Startup Camp - Git, Python, Django session
 
Ať se z kódu nepráší!
Ať se z kódu nepráší!Ať se z kódu nepráší!
Ať se z kódu nepráší!
 
There is much more to C
There is much more to CThere is much more to C
There is much more to C
 

Recently uploaded

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Recently uploaded (20)

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 

Embedded Development on ESP32 - FEKT VUT - UREL

  • 1. Embedded Development on ESP32 2022-11-29 FEKT VUT - Brno Juraj Michálek - Espressif Systems
  • 2. wokwi.com Quick start Contribute: https://github.com/wokwi EDC22 Day 1 Talk 9: Your browser is ESP32 - Wokwi - https://youtu.be/TKe4MgD6O8o
  • 3. OSes and integration ESP-IDF (OS based on FreeRTOS) - https://github.com/esp-rs/esp-idf-hal (full feature) no_std a.k.a. bare metal with Rust - https://github.com/esp-rs/esp-hal (minimalistic) Zephyr - https://zephyrproject.org/ - EDC22 Day 1 Talk 10: Applications of Asymmetric Multiprocessing with ESP32 Devices - including Rust on one core - https://youtu.be/oble9ObAqxM NuttX - https://nuttx.apache.org/ (as app, Linux-like OS) SVD files: https://github.com/espressif/svd
  • 4. Further languages and frameworks Arduino - Maker choice - warning: limitation on production due to licenses! VM based: - CircuitPython and MicroPython - Python-like language - Toit - Toit language - Nanoframework - C# language - downside: bigger VM - upside: more robust, comes with OTA and monitoring
  • 5. Many chips, many boards - quick help https://products.espressif.com/
  • 6. Development options - Local - bootstrap whole env with “espup install” - https://github.com/esp-rs/espup#installation (written in Rust) - bootstrap with sh/pwsh (older method) - https://github.com/esp-rs/rust-build#download-installer - Local in container - Podman, Docker, Lima - with VS Code Remote Container extension - Cloud in GitPod.io or CodeSpaces - EDC22 Day 2 Talk 11 Just Few dot files in Repo or Paradigm Shift to Cloud-based Embedded Development - https://youtu.be/WAwfRyOy7N8 - Wokwi.com
  • 7. ESP-IDF Windows - idf-installer - includes drivers - https://dl.espressif.com/dl/esp-idf/ - https://github.com/espressif/idf-installer Linux, macOS - git clone --depth 1 --shallow-submodules https://github.com/espressif/esp-idf.git - cd esp-idf - ./install.sh - . ./export.sh - cd examples/get-started/blinky - idf.py build flash monitor
  • 8. IDE Supported by Espressif: - VS Code with Espressif Extension - https://docs.espressif.com/projects/esp-idf/en/stable/esp32/get-started/vscode-setup.html - Espressif IDE - https://dl.espressif.com/dl/esp-idf/ Supported by 3rd party and community: - Visual Studio with VisualGDB - https://visualgdb.com/ - CLion - https://www.jetbrains.com/clion/
  • 9. Rust language support Talk: Embedded Rust on ESP32 - Juraj Michálek - Rust Linz November 2022 https://youtu.be/0PPPdqoDBQs
  • 10. Create new project Rust project Bare metal: cargo generate https://github.com/esp-rs/esp-template STD with ESP-IDF: cargo generate --vcs none --git https://github.com/esp-rs/esp-idf-template cargo
  • 11. Build, flash, monitor cargo espflash --release --monitor -note: always flash with release due to size and other limitations Examples: - https://github.com/esp-rs/awesome-esp-rust - https://github.com/georgik/esp32-buddy-rs - https://github.com/playfulFence?tab=repositories - https://github.com/sambenko/esp32s3-box-examples
  • 12. Embedded Graphics (e.g. ESP32-S3-BOX) https://github.com/espressif/esp-box ESP32-Sooky-Maze (PoC): https://github.com/georgik/esp32-spooky-maze-game Simple bare metal branch: main WASM | ESP32-S3 Xtensa targets: feature/multiplatform Big advantage of Rust: shared business logic over multiple platforms!
  • 13. Explore STD + ESP-IDF cargo generate --vcs none --git https://github.com/esp-rs/esp-idf-template cargo Embuild: https://github.com/esp-rs/embuild - Rust build system integrating with ESP-IDF - Big thanks to N3xed, ivmarkov and whole open source community
  • 14. Designing Open Hardware - esp-rust-board KiCad templates https://github.com/esp-rs/esp-rust-board ESP32-C3-DevKit-RUST-1 (available at Mouser, AliExpress) https://www.espressif.com/en/products/devkits
  • 16. Rust ESP32 Community meeting Regular meeting every two weeks https://github.com/esp-rs/rust/discussions/
  • 17. Training Embedded for ESP32-C3 by Ferrous Systems Training: https://ferrous-systems.com/training/#package-espressif-beginner-training Material: https://espressif-trainings.ferrous-systems.com/ GitHub: https://github.com/ferrous-systems/espressif-trainings/
  • 19. Some links The Rust on ESP Book - https://esp-rs.github.io/book/ Awesome ESP Rust - https://github.com/esp-rs/awesome-esp-rust - submit your project :-)
  • 21. Espressif Developer Conference 2022 - recording https://www.youtube.com/playlist?list=PLOzvoM7_Knrc6o-n25jYuXRB2T8UKk1NU
  • 22.
  • 23. CTAG-TBD CTAG TBD >>to be determined<< an extendible open source Eurorack sound module https://github.com/ctag-fh-kiel/ctag-tbd
  • 24. Wearables The Ultimate Guide to Informed Wearable Technology - book: https://packt.link/01VBv
  • 25. Time-O-Mat - built at summer camp https://github.com/vedatori/Time-O-Mat
  • 27. Visit us in Brno Espressif Systems (Czech) s.r.o. Přízova 3, 602 00 Brno Czechia, Europe See you in Linz in 2023. We’re planning ESP32 Rust Workshop ;-)