Skip to content

Releases: kinsaurralde/ws_281x-lights

Simulated Pixels in Webassembly

09 May 03:35
Compare
Choose a tag to compare

Connection Manager

  • Move connection between webapp and controllers to new class
  • Standardized RequestResponse

Simulated Pixels in Webrowser

  • Run pixel simulation in browser instead of webapp server
  • Uses emsdk to compile c++ controller code into wasm
    • Uses same animation code as actual controllers so easier to test

Logging

  • Using logging library
  • Multiple levels and colors for different types of messages
  • Save log to file

Sequencer and Scheduler

24 Dec 21:45
Compare
Choose a tag to compare

Add Sequencer and Scheduler

  • Prewrite sequences of animations
  • Schedule sequences to run

Add new Animations

  • randomCycle: cycle between random colors
  • reverser: reverse animation direction and/or static pixels

Pixel Display

29 Oct 04:12
1ed3658
Compare
Choose a tag to compare

Add Pixel Simulation and Display

  • Option for webapp to simulate pixel animation functions
    • -s command line option to enable
    • changed some makefile targets to use simulation
  • Use SocketIO to send generated pixels to display on website
  • GRB option
  • Add helper functions to linter globals
  • Label option for version info
  • Bug Fixes:
    • Reverse arg from webpage now boolean type (was string which caused it to always equal true)
    • Pulse animation can have 0 spacing

2.0.0

25 Sep 19:04
Compare
Choose a tag to compare

2.0.0

Rewrote entire project

Description:

This project uses a webapp and either ESP8266s or raspberrypis to controll ws2812 or ws2815 LEDs.
The webapp is hosted on a Flask webserver. It recieves commands from the website it hosts and uses
its config information to send these commands to the correct controller. The webapp also uses
SocketIO to communicate with the website clients which is used to update connected status and
make changes to brightness broadcasted to all.

Full documentation here

Socketio Info

01 Apr 22:36
Compare
Choose a tag to compare

New:

  • New info page
    • Pixel info uses socketio
    • Brightness and power usage shown
  • Testing mode for non pi devices
  • Argparse handles command line arguments

Websockets / JSON Functions / Webpage Functions

23 Dec 19:32
Compare
Choose a tag to compare

New:

  • Websockets for secondary controllers
  • JSON Functions
    • Can run function stored in JSON format
      • Has loops and variables
  • Webpage Functions
    • Table with each function and parameters that can be changed
  • Lights Functions:
    • Pattern
    • Blend
    • Fade
    • Pulse Pattern
    • Twinkle
  • Ping / Power usage in info page
  • Auto Light/Dark theme

Changed:

  • Brightness on secondary controllers can be changed
  • Small start delay to offset network latency
  • Full colors has white and black as defaults
  • Full colors starts minimized
  • Quick buttons
  • Arguments for various light functions
  • Defaults for various light functions

Removed:

  • Operations, Switch, Pulse, Chase, Wipe, Random web page sections

Tools / Multi Controller / Remote App

20 Aug 02:12
Compare
Choose a tag to compare

New:

  • Tools:
    • gen_config.py: This python script asks questions to generate a config file
    • send_json.py: This python script sends to given json file to the given url in a POST request
    • secondary.py: This python script makes the folder containing the files the remote controllers use
    • put_files.py: This python script updates remote controllers through sftp
  • Remote App
    • Runs webserver on other devices to control multiple strips
    • remote_app.py:
      • No web page
    • RemoteController class to handle sending JSON from primary device
  • Multi Controller
    • Send commands to correct controller
  • Functions:
    • bounce: sends pulse back and forth across strip

Changes:

  • config file format

Info

22 Jul 02:33
Compare
Choose a tag to compare

New:

  • Info page
    • Show current settings
    • Show current power use
    • Show color of all LEDs on all strips and controllers
  • Setup script
  • Config file name can be provided as command line option

Changes:

  • Pulse
    • Will deactivate itself if overlapping virtual strips cover entire pulse range

Keys

06 Jul 19:14
Compare
Choose a tag to compare

New:

  • Key required to change specific strips
  • Keys class
    • Contains current keys and their data (which strips allowed)
    • Can check if key is valid for specific strip and throw assertion error if invalid
    • Can Add/Remove/Change keys
    • Can Add/Remove strips for each key
    • Can return key data for web page
  • Web panel has options to change key or strip
  • New web page to access/modify keys and their data
  • Config file
    • Initial Virtual strips
    • Initial Keys

Return Data

06 Jul 19:03
Compare
Choose a tag to compare

New:

  • All functions that change pixels return status info in json format
    • Contains:
      • Color of all pixels on current strip
      • Current strip data
      • Function that was just run
      • Error and message if necessary
  • Web panel shows errors, warnings, and messages if exception thrown due to invalid parameters, functions, connection errors, etc
  • Web panel has sender class which handles sending and receiving requests and their response
  • Max milliamps for power supply set, brightness lowered if power usage will be greater