Skip to content

Overview #1

@tablatronix

Description

@tablatronix

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.
    • Rotary encoder support, optional
    • Temperature / Humidity libs
      • DHT11/22
      • onewire/DS18B20 etc
      • SHT11 ?
  • 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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions