Skip to content

Releases: vortigont/FireLamp_JeeUI

Inroducing Even loop BUS

27 Feb 03:23
5756ca7
Compare
Choose a tag to compare

This release implements Event loop bus and decoupling componets from calling each other via class methods and operate via event bus

  • implement run-time configuration for address leds RGB color order option for WS2812, Closes #54
  • update windows batch installer
  • add font Awesome icons to UI buttons
  • reworked LOG macros, updated macro will allow to set severity level and component tag
  • DFPlayer adapter
    • use forked DFMiniMp3 lib
    • keep cfg in json file
    • add effect track loop function
  • Button - reimplement button control
    • use new ESPAsyncButton library for button handling
    • implement event-based button<>lamp communication
    • implement UI configuration for button, gpio, logic level, etc...
    • implement UI configuration for button events, i.e. mapping actions to button events
    • implement UI configuration for button timings
  • Effects
    • removed rudiment "individual brightness" from effect configs
    • EffectFlags add control to randomly switch flags
    • fix TetrisClock orientation
    • исправлен эффект "Узоры" на широких экранах
    • fix fireworks running on large screens. Closes #47
  • TM1637 rework
    • tm's options are kept in a display.json file
    • modified 1637 driver to handle appended messages
    • TMDisplay class now handles events from a message bus
      • show IP on WiFi connect
      • show power On/Off
      • show Brightness change
      • tm display track brightness control from button events
  • Lamp class refactoring
    • replace EFFSWITCH enum with enum class effswitch_t
    • rename Lamp::effects member to Lamp::effwrkr
    • remove long obsolete sync_parameters()
    • rename overloaded Lamp::switcheffect to private Lamp::_switcheffect
  • add IPC to EmbUI.feeders event publisher
  • Implement ESP32 event loop bus for exchangind control messages between lamp's componets
    • control matrix MOSFET via event bus
    • power on/off events via event loop bus
    • brightness control events
    • effect switch events
  • remove obsolete code
    • RTC module related libs and code
    • DS temp sensor related
    • E131 related code
    • remove MP3PLAYER define
    • remove obsolete ESP_USE_BUTTON define and related code
    • убрана кнопка "калибровка микрофона"
    • remove button actions from interfaces.cpp
    • remove old tm methood calls from encoder and rtc
    • alarm
    • events
    • gauge
    • some webui related code
    • code related to pending/current effect switching from EffectWorker
  • Other
    • восстанавливать статус активности микрофона после перезагрузки. Closes #19
    • removed build_time define MIC_EFFECTS

Feat. HUB75

01 Dec 08:30
Compare
Choose a tag to compare
  • Update EmbUI resources
  • Update Builder scripts
  • refactoring MQTT/HTTP API
    • make API for MQTT/HTTP compatible with WebSocket data messages format.
    • Integrate message exchange between APIs.
    • Removed obsolete code, i.e. sync_parameters(), http callback actions etc...
  • refactoring code related to EmbUI API changes
    • deprecate old-style weak functions, replaced with assignable action handlers
    • sting literals refactoring to match EmbUI api change
    • major refactoring for interface function names, const literals, etc...
  • avoid reboot on led stripe reconfig, when saving matrix config if gpio has not changed then avoid useless reboot
  • external devices
    • removed TM1637_CLOCK define from config files, tm1637 suport is built-in by default, module is enabled if it's pins are defined through webui config
  • WebUI
    • implement WebUI configuration page for HUB75 parameters setup
    • add tiled configuration setup for ws2812 matrixes
    • run-time switch between ws2812 and HUB75 panel output
    • hide obsolete functionality "Text", "Events"
    • removed "Кол-во файлов в папке MP3" setting from UI
  • HUB75 panels output
    • implement HUB75 backend engine for HUB75 panels via HUB75-I2S-DMA lib
    • hub75 configuration via API
    • add NO_CIE1931 option for HUB75 I2S lib
  • LedFB libarary
    • implement LEDDisplay class
      output device access is now hidden behind LEDDisplay class,
      which provides methods to access canvas/overlay as memory-backed buffers.
      Output device specific implementation and overlay mixing is of no dependency on other components.
    • OverlayEngine class that manages canvas buffer binding to end device and overlay operations such as allocation, blending, back-buffering
    • introduce 'persistence' flag for effect indicating that it uses canvas buffer as pixel data storage and it should persist on ovelay operations (using back-buffer for this)
    • add support for LedTiles transformations.
      • Led matrixes or stripes of same topology could be combined into tiles
      • same kind of topology transformations supported for tiles as for Led stripe
  • reworkied "Drawing" feature using OverlayEngine, simplified packet data structures for pixel data
  • segregate effect calculation into sepparate Taks
    • a Task is created on-demand to run effect calculations and render result via OverlayEngine
  • Effects fixes
    • Noise3dMap::fillNoise was using wrong x,y mapping
    • refactoring for EffectRadialFire, make it dimension agnostic
    • removed old "Clock Effect"
    • EffectPacific removed static vars, fixed color application
    • EffectSinusoid3 clear buffer on load
    • EffectBBalls limit num of balls to panel width
    • 3DNoise effect running on non-square panels
    • EffectComet runnning on non sq pane
    • EffectRingsLock - fix crashing when running on panel, some internal restructuring
    • EffectNoise crash on non rectangular canvas
    • EffectMaze was crashing on non-rect canvas
    • EffectBBalls changing number of balls could crash some times
    • refine EffectSmokeballs
      • максимальное число огней оганиченно ширина/4
      • огни бегают по всей ширине широкоформатной матрицы
      • добавлен контрол высоты огней
      • мелкие оптимизации
    • EffectLiquidLamp fix sporadic crashes on filter change
  • platformio.ini - update libs definitions, set SemVers for known external libs

Release v3.3.0 - Run-time configurations

30 Aug 13:41
Compare
Choose a tag to compare
  • removed lamp configurations editor
  • adjust UI related code to match EmbUI BAPI changes
  • removed 8266 legacy - F() macro, FPSTR macro, PROGMEM
  • fader changes
    • adjust lower fader brightness with FADE_LOWBRTFRACT parameter,
    • fixed brightness for fast fading
  • use run-time tunable for save/restore on/off/demo state on power-up, Closes #24
  • fix fire2018 dependence on 'brightness' variable, Closes #28
  • reworked brightness control, add luma curves lib
    • removed Global/Individual brightness for effects, using only Global brightness from now on
    • ignore first "special" control for brightness in the code
    • introduce selectable luma curve correction for brightness, applies globally, could be overriden per each effect config
    • adjusted API/actions to work with global brightness only
    • brightness could be scaled to any range, i.e. 0%-100%, or 1-20 (default)
  • includes alignment
  • tm1637 fix for blinking dots
  • add thread safety WA for effect switching via '<<','>>' UI buttons
  • fix race condition in EffectShadows
  • DFPlayer - fix crash on start with undefined pins
  • LAMP power ON/OFF consistency
    • EffectWorker will reset active effect on switch-on
    • LAMP object will force-wipe the matrix when shutting OFF
      • when led fader is done
      • when switch-off without fader
      • when LAMP::frameShow() has been called but lamp is no state for drawing anything (it fixes issues with leftover artifacts when not using fader)
      • when LAMP::effectsTick() ended up in a no rerun state for effectsTimer scheduler
  • fix potential out-of-bound access crash in GradientPaletteList::[] operator
  • implement EffectWorker::switchEffect
    • regression when switching effects without fader
    • controls settings were not saved on switch
    • sometimes lamp crashed on switch
    • removed EffectCalc::pre_init()
    • replaced several similar methods for delayed effect switching with a single EffectWorker::switchEffect()
  • all in a run-time matrix configuration
    • настройка вывода подключения матрицы из WebUI
    • настройка размеров матрицы из WebUI
    • настройка ориентации/топологии матрицы из WebUI
  • LedFB - implement run-time topology transformation
  • other fixes
    • fixed crash when accessin non-existing speedfactor control on empty controls list
    • fixed wrong loading of controls for non-fading effect switch
    • fix potential issue with dirty sleds buffer
    • fix argument reodreding Noise3dMap::lxy()
  • rework drawing feature
    • adopted drawing functionality for my framework (js and mcu code)
    • drastically simplified backend side code, removed strings deserialization, parsing and processing
    • removed extra actions for drawing, using one callback for all data
    • adjusted front-end code to do most string conversion and serialize formatted data for backend
  • implement additional 404 handler for WLED that does not break Captive Portal detection
  • bye bye 8266!

Rel v3.2.0 - Last release with esp8266 support

23 Aug 12:45
Compare
Choose a tag to compare

Last release with esp8266 support

  • disable WLED announce for 8266 (it crashes in sys context if adding mDNS announce for wled), won't fix
  • annouce manifest for WLED mobile app
  • removed most of _remote_action::RA* calls based on variadics and pointers, it's UB in C++
    reimplemented remote_action features with templated functions and EmbUI callback injection,
    making data/events flow in proper way reusing registered actions for WebUI
  • rework AUX pin control actions, made it run-time ping configurable
  • fix LOG macro warnings
  • removed ace_editor from FS
  • remove code related to WHITE_LAMP_MODE
  • fix tm display dots blink

Rel v3.1.1

29 May 14:05
Compare
Choose a tag to compare

Корректирующий выпуск с исправлением проблем и ошибок

  • исправлена сборка с TM1637 display
  • для энкодера упрощены вызовы из обработчика прерываний, длинные опеции вынесены в loop()
  • fix issue with incorrect brightness on effect save
  • fix FIre2018 - last column is always off
  • fix in EffectMaze
  • EffectPuzzles random fix
  • fixed an issue buffer switch if effect tries to clear canvas on initialization
  • EffectBBalls - aligh balls
  • fix boolean controls

Full Changelog: v3.1.0...v3.1.1

Rel v3.1.0

16 May 08:03
3c04479
Compare
Choose a tag to compare

v3.1.0 (2023-05-16)

  • исправлены проблемы сборки под обновленный фреймворк есп32 и платформу есп32 v6.1.7
  • введен класс кадрового CRGB буфера абстрагирующий топологию и тип устройства вывода
    • буфер допускает привязку/отвязку от FastLED, копирование, атомарный обмен и общие операции над RGB массивом
    • методы обращения к буферу и транляции под топологию матрицы из EffectMath упразднены в пользу работы через LedFB
    • буфера лампы под слои текста/рисовалки переведены на использование экземпляров LedFB, часть операций копирования заменена атомарной заменой
    • убраны флаги зеркалирования из объекта лампы, топология определяеся конфигурацией буфера
  • изменения в коде эффектов
    • множество эффектов переработанно с использованием структур сущностей и стандартных контейнеров
    • оптимизация использования памяти для эффектов
      • для части эффектов убраны излишние буфера и промежуточное копирование
      • эффекты с переменным числом объектов, вместе с изменением числа сущностей растет/уменьшается их контейнер вместо использования фиксированных массивов
    • промежуточные двумерные массивы для эффектов унифицированы в абстрактный шаблон Vector2D
    • переработаны эффекты на основе Noise3D Map
      • Noise3D Map выделен в отдельный класс с собственным буфером
      • унифицирован метод регенерации шума
    • переработан класс Boid и зависимые от него эффекты, убраны зависимость от статических макросов WIDTH/HEIGHT, добавлен контейнер для объектов стаи
    • все эффекты переведены на работу через фреймбуфер
      • убраны зависимости от макросов WIDTH/HEIGHT
      • убраны зависимости от статических констант/макросов производных WIDTH/HEIGHT
      • убраны все прямые обращения к глобальному экземпляру класса FastLED
    • весь код кроме объекта LedFB избавлен от зависимости на статические макросы WIDTH/HEIGHT и их производные

Full Changelog: v3.0.0...v3.1.0

Rel v3.0.0

07 Apr 06:08
Compare
Choose a tag to compare

Первый выпуск ответвлённого проекта.
Основная цель - зафиксировать корректную сборку и работу базовых компонентов работы с эффектами

список изменений