Generic variable layer
The library should expose timers, thresholds, modes, calibration values and other settings as reusable variables instead of hardcoded values.
Library
The Elementic library side should make Arduino projects configurable rather than rigid. Its purpose is to support a project model built around generic variables, inputs, outputs and EEPROM-backed settings so the Android app can configure a project while the firmware stays structured and reusable.
The library should expose timers, thresholds, modes, calibration values and other settings as reusable variables instead of hardcoded values.
Inputs and outputs should be treated as configurable project elements, not only as raw pin numbers. Device and pin metadata from Laravel give the firmware useful structure.
EEPROM support makes it straightforward to load defaults, update settings and save them back safely so a project remembers its configuration.
Shared model
Laravel stores the supported devices, pin maps, controller relations and starter code. The library uses that structure on the firmware side, while the Android app uses it on the configuration side.