"Handling failure is much cheaper than never failing" - The Robusto paradigm
The easiest way is to:
- Clone this repository,
- Open it in PlatformIO
- See if any of your MCU:s match the platform.ini ones (can also try using platform.ini.all)
- Run the examples.
...or.. use ESP-IDF- or PlatformIO-dependency management and start with a blank project. A little harder, so please check out the examples. Bare bones projects will be added soon™.
For more general information, the Robusto web site will hold everything together. (bit of a work in progress currently)
More conceptual information:
The more technical documentation on features are in their README:s:
If you want to help out developing Robusto:
Robusto is a framework that in some ways tries to rethink IoT development to produce cheap and robust networks, applications and services on microcontrollers.
Features include:
- Communication
- redundant communication
- central in/out queues and independent queues per media
- I2C, ESP-NOW, LoRa, BLE, CAN bus (TWAI) (and a UMTS/Cellular gateway)
- scoring media
- peer management
- presentation, information exchange
- problem solving
- retries over multple medias
- fragmentation large messages
- redundant communication
- Management
- energy
- sleeping
- synchronized sleep patterns
- KConfig/Menuconfig (not only for ESP-IDF, but also for Arduino, STM32)
- monitoring / reporting / statistics
- services
- runlevels
- energy
- Input handling
- Resistor array
- Binary ladder decoder
- ADC monitor and code generator utility
- Technical
- flash support
- logging
- Misc
- UMTS/GSM gateway
- Publisher subscriber (Pub sub)
..and other things typically only associated with "big" computer systems. But obviously without their memory footprint and power consumption.
Robusto is not designed to provide high-speed streaming communications for high definition video.
Instead, it is about reliably connecting sensors, actuators, controls, microcontrollers and similar components, and while it can transfer security footage and lower-grade live feeds, much more than that veers out its focus and is typically beyond the abilities and needs of the involved components1. It is also a matter of positioning.
Obviously that may change, but currently, if you want to do these things using cheap MCU:s please visit the ESP32-Camera project, bringing tempered expectations.
Microcontroller | Framework | Comments |
---|---|---|
ESP32-DevKit V4 | ESP-IDF | Works |
ESP32-SIM7000G | ESP-IDF | Works |
TTGO T-BEAM SX1262 | ESP-IDF | Works |
LoRa32 V1 SX1278 | ESP-IDF | Works |
RaspberryPi Pico | Arduino | Works |
STM32 F407VE | Arduino | Builds, uploads, boots, but untested |
Arduino UNO* | Arduino | Too little RAM/Flash |
Atmel ATtiny85* | Arduino | Way too little RAM/Flash |
STM32 F03C8* | Arduino | Too little RAM/Flash |
* Note that these chips may still communicate with Robusto peers via I2C using the Fletch16 checksum library.
- Tell users about problems
This will help them take the proper corrective action before problems escalate.2 - Provide almost unbreakable wireless information security
This is achieved by using Out-of-band (OOB) communication to transfer OTP encryption keys, which can be done either continuously when devices are permanently wired, or for mobile devices; while charging.3
Footnotes
-
Netflix or other high definition streaming services provide a pleasant viewing experience not only by using a lot bandwidht, but power-consuming real-time processing. ↩
-
Sometimes that information, for example about radio interference may even help you troubleshoot other issues, like your WiFi network. ↩
-
Perhaps using a 4-pin charger connector (I2C + 5V). ↩