View Source Changelog

v0-4-0-2022-10-14

v0.4.0 - 2022-10-14

This is a big update that improves program playback timing to compensate for the Linux kernel's HZ configuration and implementation of LED pattern triggers. This affects all programs, but you probably won't notice it unless you're creating Morse code patterns or measuring LED output with a logic analyzer.

  • Backwards incompatible changes

    • "Priority" is now called "slot". If you have custom priorities defined in your configurations, you will need to change them to slot. This change was made to make the use of this feature easier to explain. I.e. programs are put in slots, one program per slot per indicator, slots have an order.
  • Changes

    • Added :backend parameters and specifically the :hz parameter to support better playback timing. If unset, HZ=1000 is assumed. This results in almost the same timings as earlier versions. See the README for more information.
    • Added Delux.Effects.number_blink/3 for blinking out a number. This is for things like error codes - like error 1, 2, 3, etc.
    • Added Delux.Effects.timing_test/2 to debug timing precision issues with a logic analyzer.
    • Removed unnecessary writes to the filesystem when using multiple indicators. This fixes an issue where a change on one indicator restarts a program on a second indicator.
    • Reorganized the backend code to support future alternative backends. This is currently unplanned work, but it's now easier to think about adding a way to run Delux using Circuits.GPIO or a simulated LED.

v0-3-1-2022-09-26

v0.3.1 - 2022-09-26

  • Changes
    • Support dimming arbitrary patterns to off. The dimming feature still doesn't dim all patterns, but dimming to off works for everything now.

v0-3-0-2022-09-07

v0.3.0 - 2022-09-07

  • Changes
    • Favor singleton use of Delux with default arguments to render/3 and info/2. Now that Delux is being used more frequently as a singleton, this makes the API more convenient. This is backwards incompatible if you had been taking advantage of default arguments, but you should get compile-time and dialyzer errors. If you do name your Delux GenServers, you'll have to specify all arguments to render/3 and info/2.
    • Improve argument error messages by reporting what the valid options are in addition to what you passed.

v0-2-0-2022-08-26

v0.2.0 - 2022-08-26

  • Changes
    • Register the Delux GenServer with a default name so that pids or names don't need to be passed to all APIs. Since Delux is almost always used as a singleton, this simplifies the API.

v0-1-3-2022-08-11

v0.1.3 - 2022-08-11

  • Changes
    • Fix typespecs to remove warnings found by Dialyzer
    • Update Delux.Effects.waveform/3 to support color atom names and check RGB tuples for range. The latter fixes errors that get detected later on and are more confusing to figure out.

v0-1-2-2022-08-11

v0.1.2 - 2022-08-11

  • Changes
    • Improve Delux.Effects.waveform/3 so that it's easier to use and produces shorter patterns. It now has examples in the docs and unit tests.

v0-1-1-2022-08-10

v0.1.1 - 2022-08-10

  • Changes
    • Adjust timed pattern playback to minimize trimming LED programs. Unfortunately, LED programs still get cut off at the end with this release. If you're using Morse code, you'll see this. We plan on fixing this completely in a future release.
    • Support empty LED setups to simplify configuration of multi-target projects and unit tests.

v0-1-0-2022-08-08

v0.1.0 - 2022-08-08

Initial release