Commit graph

60 commits

Author SHA1 Message Date
Thomas Kolb 2b72d6c95b Remember last animation set by user and restart next time 2020-04-14 22:30:44 +02:00
Thomas Kolb 320268ca14 After showing the IP for 1 Minute, switch animation 2020-04-14 21:32:47 +02:00
Thomas Kolb dc8bc98193 Circumvent problems with UDP fragmentation
The ESP’s IP stack seems not to support UDP packet fragmentation and
drops such packets silently which is problematic for setups with many
LEDs and huge updates.

With this patch, the UDP server processes up to 3 full UDP packets per
frame, allowing much larger updates. Additionally, the new END_OF_UPDATE
flag allows to signal when a update sequence is finished. If this flag
is encountered, no further UDP packets are processed in the current
frame.
2020-04-14 21:03:39 +02:00
Thomas Kolb da37f32096 Global strip offset in fader 2020-02-21 20:15:39 +01:00
Thomas Kolb 905c3fce7b Added Fireworks animation – Happy new year! 2019-12-31 23:44:07 +01:00
Thomas Kolb 6a71074b4b UDPProto: added "ack request" + response packets
The ACK request packet contains a sequence number which is echoed back
to the client in a simple UDP packet. By evaluating the difference
between sent and received sequence number, the client can control how
much data is buffered on the way to the ESP.
2019-12-30 12:19:00 +01:00
Thomas Kolb a9cfcb16d9 Added "Matrix Code"-style animation 2019-12-30 12:18:04 +01:00
Thomas Kolb 2b8d75a475 WebServer: API for colored scrolling text messages 2019-12-24 18:11:09 +01:00
Thomas Kolb f28de024d8 Added animation test framework
This framework provides the same animation interface as the ESP
firmware, but sends commands to the ESP via UDP. Therefore animations
can be tested without re-flashing the firmware for every tiny tuning
change.
2019-12-24 17:32:15 +01:00
Thomas Kolb ae2eb2a25f ImageScrollerAnimation: faster stop by default
Waiting until the text has scrolled by completely is still possible, but
must be activated on object construction by a special argument.
2019-12-24 17:30:52 +01:00
Thomas Kolb 96e29061a2 font: added conversion verification program 2019-12-24 17:28:13 +01:00
Thomas Kolb f1e7c46a65 Font: fixed order of '?!' characters 2019-12-24 17:27:36 +01:00
Thomas Kolb 0111e645c7 Fixed font conversion script 2019-12-23 21:53:36 +01:00
Thomas Kolb d5357b2021 Show IP address on startup
To accomplish this, the following changes were made:

- Added an image-scrolling animation
- Implemented a bitmap font engine to generate an image from text
- On startup, an image-scrolling animation is set up with an image
  generated from the local IP address
2019-12-23 19:56:33 +01:00
Thomas Kolb c2a96747b9 Added bitmap font generator 2019-12-23 19:55:40 +01:00
Thomas Kolb 8bd87c4d3d Implement static color via special animation type 2019-12-16 23:31:15 +01:00
Thomas Kolb 127b8d6dca Animation robustness improvements
- Check if animation is valid in all methods of AnimationController
- Fixed timing (+crash) for quick loops of LED task
2019-12-16 23:29:05 +01:00
Thomas Kolb ecf296a1fc Removed debug output on serial 2019-12-16 22:33:00 +01:00
Thomas Kolb 4d2c61782b Only auto-activate FireAnimation once on startup 2019-12-16 22:32:28 +01:00
Thomas Kolb 9d60afe1fb htdocs: change animation from the index page 2019-12-16 22:12:09 +01:00
Thomas Kolb aa56e36f3f Added snowfall animation 2019-12-15 21:39:03 +01:00
Thomas Kolb 8e9124c884 Avoid LED update glitches caused by flash access
Now any access to the flash, either through update writing or SPIFFS
access, is blocked while the LED stripes are written. This is
accomplished using a FreeRTOS semaphore.
2019-12-15 18:03:23 +01:00
Thomas Kolb 9ddb2063bb Swap cores to reduce glitches during SPI flash access 2019-12-14 23:56:38 +01:00
Thomas Kolb bdd8ebd123 AnimationController: added missing declaration 2019-12-14 23:55:30 +01:00
Thomas Kolb af3adf99db WebServer: fixed 404 handling and listanim 2019-12-14 23:54:42 +01:00
Thomas Kolb 1410124e49 WebServer: Added /api/listanim to list animations 2019-12-14 23:12:57 +01:00
Thomas Kolb b1f1647260 WebServer: moved non-static endpoints to /api/ 2019-12-14 23:09:37 +01:00
Thomas Kolb 917627c0d0 Smoother transitions between UDP and animation
- stop() animation before changing state and wait for completion
- additionally fade to black (in case animation does not stop at black
  or when UDP stream ends)
- reset() the animation when changing back to the animation state
2019-12-10 22:41:11 +01:00
Thomas Kolb c33a5fcade Dynamically switch between animation framework and UDP control 2019-12-09 23:25:04 +01:00
Thomas Kolb 1bfee92aec Stability improvements for FireAnimation and AnimationController 2019-12-09 22:22:51 +01:00
Thomas Kolb b78313d2e0 Webserver: cooperative multitasking! 2019-12-09 22:21:27 +01:00
Thomas Kolb 154ed66174 Pin Tasks to cores 2019-12-09 22:21:01 +01:00
Thomas Kolb f91b3c8cfb Allow to switch animations via HTTP 2019-12-08 22:58:50 +01:00
Thomas Kolb 2c4f310395 FireAnimation: fixed top row 2019-12-08 22:58:09 +01:00
Thomas Kolb 13a758b01f WebServer: serve static files from SPIFFS 2019-12-08 22:56:59 +01:00
Thomas Kolb 642ce82144 main: removed "debug green" 2019-12-05 01:15:23 +01:00
Thomas Kolb 368c5bec72 Added fire animation; better transitions 2019-12-05 01:11:37 +01:00
Thomas Kolb 1db57ca62d Added connection-established animation on startup 2019-12-03 23:12:14 +01:00
Thomas Kolb 6131e6a687 Implement Animation-specific fadeout 2019-12-03 22:09:55 +01:00
Thomas Kolb e4a8c86180 Manage animations via a central controller 2019-12-02 23:06:04 +01:00
Thomas Kolb 862ad18d24 Started Animation framework 2019-12-02 22:42:31 +01:00
Thomas Kolb bb524d03dd Update: implement update of the SPIFFS image 2019-12-02 21:21:13 +01:00
Thomas Kolb 49c39184b9 ota_update script: nicer progress display 2019-12-02 20:56:16 +01:00
Thomas Kolb 1c899c1f24 Update: don't block the system during the Update
Too much traffic triggered the Task watchdog before under good WLAN conditions.
2019-12-02 20:53:21 +01:00
Thomas Kolb 72d0233f52 main: run UDP loop also in access point mode 2019-12-02 20:41:29 +01:00
Thomas Kolb 48089dd526 ota_update: read password invisibly 2019-12-02 20:40:47 +01:00
Thomas Kolb 832b30f485 First version of at TCP-based OTA updater 2019-11-27 00:22:04 +01:00
Thomas Kolb 24ba2242a4 Load sensitive data from the SPIFFS
Sensitive data are WiFi Logins and authentication data. This is done in
preparation for the OTA update, where the firmware image will be
transferred unencrypted and therefore passwords could be extracted from
a dumped image.
2019-11-26 22:03:44 +01:00
Thomas Kolb 8a1a17bb07 WebServer: use /htdocs as root directory 2019-11-26 21:11:36 +01:00
Thomas Kolb 1337a7e231 Integrated authentication test in WebServer 2019-11-25 22:45:01 +01:00