ESP
ESP
ESP8266 and ESP32 is a series of low-cost, low-power system-on-chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth.
created and developed by Espressif Systems, a Shanghai-based Chinese company
Feature List of the board
- Good processor! (240 MHZ)
- Enough memory!! (520 KB but context)
- Wifi + Bluetooth
- Base feature set - Secureboot, Standard Security features, Cryptographic hardware accelerations, Power management!!!!!
Programming/Interfacing
We have a few options here now. As mentioned, The ESP community has a thriving ecosystem of developers!
- Arduino IDE
- ESP Easy
- Official Espressif Development Frameworks - They also have one dedicated for Mesh Systems
- Esprunio
- Mongoose OS
- Lua
- RToS
- MicroPython
Then we also have a bunch of tools that were created in this ecosystem.
Small intro to firmware
Brief description about by taking Arduino Stack as an example
Code that we write -> Building - > Firmware Bootloader + Firmware - Goes to chip
A good rule of thumb to categorize something as firmware: is it part of the layer, which also provides API for interacting with GPIO ports
In the basic ino files we observe, the breakdown is something like: The parts
- Arduino IDE - The building and uploading tool used
- Arduino C - The language used for logic building
- Arduino Framework - The OS/Firmware type
Time to choose
Choice of ecosystems:
-
Standard Arduino Stack
-
Arduino Framework with C++ We structure our code better. Instead of using Arduino’s version of C. we take more control of the running logic. Note here that the underlying framework is Arduino.
-
MicroPython MicroPython is a vibrant community of enthusiasts that have to build this implementation of CPython Specs, tailored for these class of Processors Python on device Micropython
-
Esprunio JS on device Esprunio
Choose your Board
- ESP8266
- ESP32
- ARM based
- Framework native boards - PyBoard, Pixl.js, etc
OTA
- We can wrap the entire “sketch” inside an OTA version management system so to say.
- Each device is subbed to unique channel to listen for OTA installation instructions.
ideally maintained using the UID of the device
. - Compiled Byte code hosted on shared services like
S3
.
Good reads on ESP32
- https://www.exploreembedded.com/wiki/Overview_of_ESP32_features._What_do_they_practically_mean%3F