-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
This is mostly for personal use.
I am collecting and abstracting some basic stuff I need to make quick widgets.
atm, i work mostly with esp8266 arduino, so that will be base, but can be easily changed.
I want to make a collection of libraries, then a collection of wrappers for those, not sure if I will use full blown classes for these, as I am new to C++ and dealing with the includes and management is a pain, not sure if there is a dependencies/package manager for this stuff like in the scripting world, such as bower etc.
Requirements
- Core Esp8266 stable
- LCD/i2c
- custom icons array, dynamic swapping of the 8
- big font support, conflicts with above, allow multiline still
- possible menu system, lightweight array of callbacks etc.
- Buttons input, 2 minimun
- support for at least one to allow held low during boot, GPIO0 and GPIO2 should be fine and usually already have pullups on dev boards.
- Detect multiple press durations and debounce, fast, short, long, medium presses, definable for speed, probably just loop detect, interrupts not needed.
- RGBW indicator support
- ws2812b/neopixel support, basic, for small graphs and indicators only, probably bitbang or small
asm looper, no library, basic animation helpers. - if using a single led and basic color updating now and then, I can get away with native digitalwrites
- if needing to do animations or breathe/fade effects or strips, then I have pulled out esp8266.c from the adafruit\neopoxel lib for raw gpio and timing controls ( this is needed because you will get interrupt glitches in the led output ( presents as bright flashes ) if using a slowed method.
- ws2812b/neopixel support, basic, for small graphs and indicators only, probably bitbang or small
- Rotary encoder support, optional
- Temperature / Humidity libs
- DHT11/22
- onewire/DS18B20 etc
- SHT11 ?
- LCD/i2c
- wifi manager
- httpd/websockets/mqtt/lightweight js framework
- smoothing
- average/sample select, basic methods, jitter rejection
- kalman filtering
- process control ?
- timer/scheduler
Functionality
- LCD field assignment, easily manage blocks of fixed width, with char padding, to prevent use of clear, or artifacts
- channel assignments for button states and digital/analog values, to easily assign track and submit values to places, maybe add a basic formatter.
Metadata
Metadata
Assignees
Labels
No labels