Giter Site home page Giter Site logo

jfixlib's People

Contributors

jildertviet avatar

Watchers

 avatar

jfixlib's Issues

fabgl canvas is 8 bit

So a fade out won't benefit from the 16-bit leds.
Although the curve will be better.

otaServer update

Currently depending on external Modes etc.

Create a class? Let JFixture inherit.
JOtaServer

Wireless issues

Fix: handshake? ...
Double send.

Check lines in minimal2: are they all send individual? If T. Check if grouping is an option.

Raspberry Pi Master

Should have 2 wireless interfaces.
1 for ESPNOW.
1 for SSH. Trigger sequences from here.
Or use as remote SC-server?

How to give visual feedback? (OTA / boot / ping)

          How to link visual feedback of the update?

For example: green led brightness.
This is different on each fixture...
Use virtual function.
Dimmer fixtures: use green channel.
Addressable: use first led.
LCD: use a pixel?

Something like that.
Always override the function.

Originally posted by @jildertviet in #1 (comment)

Bitdepth limits

Currently brightnessCurve[] limits the possibilities to 256.

Only use float for brightness?
@ static RGBW color is 32-bit.
@ n RGBW color is 16-bit.
Brightness is always 32 bit.

So avoid brightnessCurve @ ESP32. Use curves in SC synth.

Group msgs

// addEvent
// addEnv

Group them
New msg type: groupedMsg: 0x43
[msgType, address, numMsg, len1, len2, len3, etc
Split the data.
Parse each block as unique msg.

Only add relevant stuff into msg...
So: not the address (already in the grouped msg).

However, we need these bytes for parsing.
1.) Add them anyway โŸต
2.) Add them on the ESP side (copying and allocating data...)

ESPNOW lib

Branch test 32b47d3 works @ ESP8266.
w/ ESPNOW_lib main

GUI for JFixture in SC

  • Set color

  • Set brightness

  • LagTime

  • Sleep

  • OTA

  • Test sequence

  • Synth side:

  • Envelope: A, S, R

  • Brightness

  • BrightessAdd

  • Run as 4 channel RGBW or 1 channel Brightness (16-bit possible)

lastAdded ptr in Event should be set to null

When an Event is deleted, it should set this pointer to null.
Also: when a new Event is added, make sure it is the only one pointing to this.
(Otherwise, Event A may set the pointer to null, when B is newer and still alive)

Mixing colors w/ brightness curve

When mixing colors the color read is .pow(2), while the compared color (toWrite) isn't.

Optional fix:

  • Sqrt when checking current value.
  • Copy of LEDs array. Do .pow(2) only before FasteLED.show();

JOsc: improvements

  • Negative frequency
  • Don't use sin(millis()), but increment a phase value.
  • More wavetables. Square, saw.
  • Msg to sync oscillator (reset phase).

Battery support notes

  • 3S 18650 pack (7.5V - 12.6V).
  • 3x 3.5Ah: 10,5A / u
  • The DC PSU has 7A @ 5V.
  • At @ 50% operation (3.5Ah): 3 hours.
  • Use XL4016 IC (8A).
  • Is USB-C suitable? (35W). Seems limited @ 3A.
  • Use DC barrel jack.

Option to send 16-bit PWM data?

It is currently not implemented @ dimmers, because of the ESPNOW-msg size when send as broadcast to multiple fixtures.

rgbw * numFixtures = 4 * 30 = 120.
Doubling this from 8-bit to 16-bit would cost 240 bytes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.