* Avoid redundant localIP calls, each call takes 0.700 us on ESP32 240Mhz
* Fall through to check Wifi local ip if not connected to ETH
* Changed local var from ipAddress to localIP to better reflect content
* Added UDP sync groups.
* Shortened string.
* Changed sync default to group 1 only.
* Make packets with version < 9 group 1
* Send sync group options as bytes, parse in JS
Co-authored-by: cschwinne <dev.aircoookie@gmail.com>
* Improved pin manager, ethernet config
* Ethernet is configured prior even to LED pins
* Pin Manager allocation / deallocation functions
now take an "ownership" tag parameter, helping
avoid accidentally free'ing pins that were allocated
by other code
* Pin Manager now has ability to allocate multiple
pins at once; Simplifies error handling
* Fix operator precedence error
Bitwise AND has lower precedence than the
relational "greater than" operator.
* PinManager update for some user modules
* don't build everything...
* Final step to reduce RAM overhead
* update comment
* remove macros
* Remove leftover allocated
* Init ethernet after settings saved
Co-authored-by: Christian Schwinne <dev.aircoookie@gmail.com>
* added ui changes for saturation in sync
* added setters/getters for hsv settings
* added color correction logic
* faster algorithm for color conversion
* added save/load config to fs
* adjusted value scale
* move color functions to colors.cpp
* remove unchecked file
* Various small changes
Moved settings location in sync settings
Changed wording from hyperion to live
Moved code into setRealtimePixel(), reducing duplication and enabling the functionality for DMX streams
Co-authored-by: Christian Schwinne <dev.aircoookie@gmail.com>
Version bump to 0.13.0-b2 "Toki"
Fixed transition property not applying unless power/bri/color changed next
Moved transition field below segments (temporarily)
* Fix 2063 - Do not free pins unless allocated
* Fix 2064: Allocate pins used for Ethernet
* Fix obvious compilation errors.
* Fix multiple bugs...
* pinsAllocated[2] set twice due to copy/paste bug.
* wrong pin allocated for ETH_CLOCK_GPIO17_OUT due to copy/paste bug
* Stylistic change per PR review
* Stylistic change per PR review
* attempt to allocate pin for "default" button
* remove extra local variable
* check return value from ETH.begin()
Co-authored-by: Christian Schwinne <dev.aircoookie@gmail.com>
* Testing new wrapper functions to read Usermod config
* Usermod Settings polishing
- remove getBoolFromJsonKey() (no longer needed), fix getValueFromJsonKey(element, destination, defaultvalue)
- Update Usermod Settings html "number" field to use step="any", and make wider to make maximum values fully visible
- step="any" allows viewing/submitting full 7/8-digit float values, and the arrow buttons step by 1 now, instead of .00001 (which wasn't good for integers or floats)
- html wasn't generated/compressed yet
* Update usermod_v2_example.h with more complete example and documentation for Usermod Settings
- readFromConfig() has three options for how to load values from the config JSON, we need to pick one
* Update/rename usermode_rotary_brightness_color, to be used as an example of more robust parsing Usermod Settings values
* Update Usermod example, rename getValueFromJsonKey() to getJsonValue()
- chose single readFromConfig() pattern
- demonstrating 3-argument getJsonValue()
- remove leftover printf in getJsonValue()
Co-authored-by: Louis Beaudoin <louis@embedded-creations.com>
* add decodeIRJson and JSON remote option
* handle JSON API commands also
* removed code that forced IR codes in a certain range to be decoded by decodeIR24. Generate default ir.json files for currently supported remotes.
* comment out printing API commands in IR handling
* refactor decodeIRJson to change how ir.json is loaded add support for calling several c functions
* Handle setting palette when effect is still on default solid and will not display it
* remove colorUpdated notifier that was pasted in accidentally
* Update to handle both 24-key and 24-key old remotes (#1969)
* Update readme.md
* Update ir.cpp
Handle both 24-key and 24-key old in decodeIR switch statement
* Re-add JSON remote option
Co-authored-by: Scott Bailey <scottrbailey@gmail.com>
Co-authored-by: Artacus <40248830+scottrbailey@users.noreply.github.com>
Settings cosmetic changes (spaces, smaller pin inputs, moved analog legend to wiki)
Uncommented STATUSPIN code (still defined out by default)
Removed adalight pin 3 lock
Added define for PSRAM
Fixed potential out-of-bounds write in MQTT
Fixed IR pin not changeable if IR disabled
Fixed XML API <wv> containing -1 on Manual only RGBW mode (see #888, #1783)
* Per strip "skip first LED".
Moved skip first led into bus manager.
* Update cfg.cpp
* Do not display Skip 1st on analog types
Rename skipFirstLed() to clarify what it does
Remove RGBW override
Co-authored-by: Aircoookie <dev.aircoookie@gmail.com>
Co-authored-by: Aircoookie <cschwinne@gmail.com>
- Utilizing addToConfig() & readFromConfig()
- UM configuration Settings page
- MQTT support for usermods
- A few sample usermods including rewritten Temparature and new Multi-Relay
* Add IP Address to JsonInfo
The value is added to the JSON only if the device is connected to the network, and uses the JSON key `"sip"` to match [wled00/xml.cpp](wled00/xml.cpp#L249). The overarching goal of this is to expose the IP Address to the Home Assistant WLED Integration, so that Home Assistant can provide a link to the WLED device (either directly through the Integration/Device page 🤞 or *ad hoc* in Lovelace).
* IP in JSON info
Empty string if not connected
Co-authored-by: Aircoookie <cschwinne@gmail.com>
* version set from package.json and release bin names
* support direnv virtualenv
* versioned PlatformIO environment
* matrix support for parralel CI
* gather artifacts
* release on tagging
* minor scripts formatting
* Better handling for TM1814 strips
* Call SetPixelSettings after Begin as described on the NeoPixelBus wiki
* Use NeoTm1814Settings::MaxCurrent constant
* Fix swipe behavior on firefox when clicking on palette selection input
When clicking on the palette select element on firefox, it would often swipe to the next tab due to a bug in firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1410816
* Update UI .h files and remove console log
* Fix indentation in requestJson
* Add palette preview
Add palette and effects search
* Add palette preview
Add palette and effects search
* Add palette preview
Add palette and effects search
* Add palette preview
Add palette and effects search
* Fix error with background image
* Add missing palettes
* Add expiration to cached palette data
* Remove extra console.log
* bug fixes for palettes
* Rename "Default" effect back to "Solid"
* Fix scrolling issue when selecting an effect
* Add sticky default and sticky selected item
* Change checkboxes for radio button
* build html .h files
* Design Iteration 1
* Palette preview style changes
* Add button for clearing search field
* Use version ID for caching palette data rather than 24h expiration
Co-authored-by: Aircoookie <dev.aircoookie@gmail.com>
* Remove -w (Suppress all warnings, including those which GNU CPP issues by default.) and add back in -Wall (Turn on all optional warnings which are desirable for normal code.) from build_flags
* Fixes warning: suggest parentheses around '+' in operand of '&' [-Wparentheses]
* Fixes warning: "CONFIG_LITTLEFS_FOR_IDF_3_2" redefined
* Fixes warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'uint64_t {aka long long unsigned int}' [-Wformat=]
* Fixes warning: enumeration value 'onoff' not handled in switch [-Wswitch]
* Fixes warning: "ntohl" redefined, warning: "ntohs" redefined, warning: "htonl" redefined, warning: "htons" redefined
- Original fix: 858f8f4ee9
* Fixes warning: unused variable 'mainSeg' [-Wunused-variable]
* Fixes warning: unused variable 'start' [-Wunused-variable]
* (untested!) Fixes warning: operation on '...' may be undefined [-Wsequence-point]
* Fixes warning: unused variable
* Fixes warning: unused variable and warning: narrowing conversion
* Fixes warning: unused variable
* Fixes warning: unused variable
* (untested!) Fixes warning: statement has no effect [-Wunused-value]
* Fixes warning: control reaches end of non-void function
* Fixes warning: unused variable
* Fixes warning: left operand of comma operator has no effect
* Fixes warning: no return statement in function returning non-void
* (untested!) Fixes warning: ISO C++ forbids converting a string constant to 'char*' and fixes warning: unused variable 'nPins'
* Fixes warning: deleting array 'dmxData'
* Fixes warning: unused variable
* Remove all warning suppression buildflags
Co-authored-by: Louis Beaudoin <louis@embedded-creations.com>
Co-authored-by: Aircoookie <dev.aircoookie@gmail.com>
* Initial version of the PIR Staircase wipe up/down.
* Add pulldown reminder
* Workaround for missing D6 and D7 definitions on esp32dev
* Add pinouts for d1 mini (esp8266 and esp32) and NodeMCU (and Arduino)
* These IO pins on all these boards... NodeMCU and d1_mini esp32 supported. The others? Fingers crossed.
* Changed to not collide with led strip pins
* PIR on GPIO 15 and 16 on esp32 d1 mini
* Removed PIN number ifdefs, it is impossible to match all boards
* Settings in flash, info and API
* Update README.md
* Small doc changes
* Improved README
* Fixed error in reading configuration
* Add API documentation
* Documentation and code cleanup
* Add enable/disable to API settings
* Restore segment state when disabling plugin
* Add debounce
* Set segments in animation mode
* Set segments in animation mode
* Add support for HR04 sensors
* Add preliminary description for using an HR04 sensor
* Fixed typenumber and linked to datasheet
* Moved config away from defines to prevent user error
* Trigger Sensors through API
* Rename scripts folder so that it's name doesn't clash with the `pio` command (prevents platformIO in VSCode to work properly on Mac)
* Bugfix for detection problems
* Separated config from code
* Renamed Signal to Trigger pin
* Filename adjusted
* Clarifications and additions to README
* Fixed references to pio scripts
* Fixed API trigger bug
* Adjustments to README.md
* More efficient use of flash cycles, better naming
* Bugfix: bottom sensor was not read properly
* Renamed to Animated_Staircase
* Add note on ultrasonic sensor and esp32
* Better naming of defines
* Bugfix: Swipe down started with two steps.
* Removed upload port in nodemcuv2 section
Co-authored-by: Rolf <rolf@phobos.local>
Co-authored-by: Rolf <>
* Very incomplete work toward sorting.
* Sort modes and palettes upon startup so I don't have to maintain the static index array.
* Remove cpp test file I used for development
* Added ModeSortUsermod, modified the other two usermods to use it.
* Update platformio_override.ini.sample and readme for ModeSortUsermod
* restore methods accidentally removed.
- Identifying ESP32 hardware SPI by pin number is broken and flawed, replace with temporary hack instead until a better method of assigned resources can be devised
- NeoPixelBus doesn't support HSPI, only VSPI right now, so matching HSPI pins to enable a non-existent VSPI driver is broken
- ESP32 SPI peripherals can use alternate pins, so choosing to use hardware SPI only on the default pins is flawed
- Specify pins during Begin() call to allow for alternate pins and avoid driving the chip select signal
- Dotstar Software/Hardware output tested on ESP32, other SPI protocols and ESP8266 support was not tested
Prior Incrementing/decrementing by fixed steps (typically 10) means large
perceptual jumps at low brightness and small jumps at high brightness. This
change moves to a geometric progression, closer at the bottom of the range and
widely spaced at the top.
While it could be done as a relative jump (incrementing by bri/4 and
decrementing bri/5 works quite well), it makes for irregular behavior when
moving back and forth.
* Ability to lookup Usermod by id so Usermods can use other Usermods.
* Rotary Encoder UI using two Usermods
* Updates. More to come, probably.
* Updated rotary usermod to honor USE_FOUR_LINE_DISPLAY if you want to use four line display. It should be truly optional, now.
* minor logic improvement to showing the current time in clock mode.
* improved 24 hour display foratting and ability to use the FourLineDisplayUsermod without the RotaryEncoderUIUsermod (option disable sleep and clock modes).
* Improved ordering of defines in the FourLineDisplayUsermod to put options people might need to change together toward the top.
* relocate plugins. add mention of the Wire requirement.
* usermod filenames changed, updating comment in const.h
* fix usermod locations.
* fix usermods_list to include changed folder.
* Improved for both usermods: install, config, and docs. Included sample platform_override.ini.
* Updated name of SDA and SCL defines for config of display
* update docs.
* Wrong year. Fixed.
* Fix youtube link, improve config of sleep/clock when the rotary usermod isn't installed.
* Minor fixes to four line display. Addition of Auto Save v2 usermod.
* Allow config for auto-save to set the preset number to use. Load preset at startup (so brightness is set correctly).
* Updated docs for Auto Save.
* Updated docs for Auto Save.
Co-authored-by: Kevin Dorff <kevin@macbookpro-kevin-wifi.local>