Demonstration.mov
(working title, latest hardware uses Trinamic stepper drivers for near-silent operation)
Erou is a secure IoT enabled pill dispenser, and this is the firmware for it.
Written in C++ , requires FreeRTOS and builds with ESP-IDF.
Firmware attempts to be non-opinionated towards what is being dispensed, which allows it to be used for non-medical purposes.
Also avoids dependency on external backend services, device needs to be able to operate independantly of any backend service.
Matching app should be able to provide configuration via local network.
main/src
contains main project code. Some important directories:api
: contains HTTP server callbacksdebug
: a websocket based debug library (TODO: Breakout into standalone library)storedSettings
: A generalized SPIFFS backed k-v storemotion
: Controls for hardware kinematicsconfig_constants.h / pins.h
: Constant values that define device operation
main/lib
contains pure CMake modules. Each one must be added tomain/CmakeLists.txt
components
contains ESP-IDF compatible modules.
For more information on structure and contents of ESP-IDF projects, please refer to Section Build System of the ESP-IDF Programming Guide.
Use idf.py build
Requires C++17, included with ESP-IDF 4.x and up
- Audio
- LED indicators
- Touch sensor
- Prefer ETL containers and strings
- Avoid using Arduino APIs, Arduino is mainly included for library dependencies
- clang-tidy configuration included in home directory