DoESLiverpool / somebody-should

A place to document practices on the wiki and collect issues/suggestions/to-do items for the physical space at DoES Liverpool
31 stars 11 forks source link

Install and run xlights on a hackspace computer to control the xmas lights #1269

Open goatchurchprime opened 4 years ago

goatchurchprime commented 4 years ago

Xlights is free software for scheduling lighting effects and synchronizing it with music. It can generate DMX and E1.31 protocols. There are E1.31 sketches for the Arduino that can control strings of neopixels.

The Xlights software even has a capture mode where it can watch a video of the lights on the wall as it controls the individual lights to identify where each pixel lies in the array. It looks like it can receive mqtt messages as controls (eg from buttons to set off a new sequence).

There are a huge number of tutorial videos.

If we did this process for the Liverbird, then issue #1193 becomes doable for normal people using a proper GUI for designing the lights and animations, especially as you can design the patterns in a preview window and replay them on your computer screen.

This tech is being deployed by a visitor who was laser cutting snowflakes for inserting lighting effects run from 8 arduinos and an Rpi (running xlights) for his xmas decorations near Speke.

JackiePease commented 4 years ago

Maybe this would be good to try with the Geometric Lights first - I was going to try mapping each bauble as an xy matrix and then map the location of each wrt to the others, but this sounds as though it could be a lot easier.


From: Julian Todd notifications@github.com Sent: Thursday, October 3, 2019 12:28:29 PM To: DoESLiverpool/somebody-should somebody-should@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [DoESLiverpool/somebody-should] Install and run xlights on a hackspace computer to control the xmas lights (#1269)

Xlightshttp://xlights.org/ is free software for scheduling lighting effects and synchronizing it with music. It can generate DMX and E1.31 protocols. There are E1.31 sketches for the Arduinohttps://github.com/forkineye/E131 that can control strings of neopixels.

The Xlights software even has a capture mode where it can watch a video of the lights on the wall as it controls the individual lights to identify where each pixel lies in the array. It looks like it can receive mqtt messages as controls (eg from buttons to set off a new sequence).

There are a huge number of tutorial videoshttp://videos.xlights.org/.

If we did this process for the Liverbird, then issue #1193https://github.com/DoESLiverpool/somebody-should/issues/1193 becomes doable for normal people using a proper GUI for designing the lights and animations, especially as you can design the patterns in a preview window and replay them on your computer screen.

This tech is being deployed by a visitor who was laser cutting snowflakes for inserting lighting effects run from 8 arduinos and an Rpi (running xlights) for his xmas decorations near Speke.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/DoESLiverpool/somebody-should/issues/1269?email_source=notifications&email_token=ADBVRUAHCTB5D7V6N4FZUDTQMXJN3A5CNFSM4I5B2IP2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HPMBJQA, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADBVRUBIDDYWK4FWDC3PEHLQMXJN3ANCNFSM4I5B2IPQ.

goatchurchprime commented 4 years ago

https://github.com/forkineye/E131

goatchurchprime commented 4 years ago

I can now flash wled onto spare ESP8266s from here: https://github.com/Aircoookie/WLED/wiki You need to plug the data line of the neopixel string into pin D4 (GPIO2).

You can then connect to the access point WLED-AP and provision the wifi connection, and also set the number of pixels under config -> LED preferences.

Sync interfaces allows you to set the E1.31 universe (each universe can page 510 lights or 510/3 neopixels).

Then you get xlights running, and connect as an _ethernet type, start placing the arrangements for the lights (as a sequential series of straight lines on the page, usually), and then you can program effects over this group of sequences.

Currently wled-0f263f.local 10.0.36.143 does the 9x9 neopixel array, and wled-4a3aa3.local 10.0.36.143 does the bit xmas star.

To make this work on the Xmas lights in the events room, we need this issue to be fixed: https://github.com/Aircoookie/WLED/issues/104

goatchurchprime commented 4 years ago

We have some xlights and its video pixel referencing done and recorded here: https://github.com/jesshannon/does-xlightsconfig

goatchurchprime commented 3 years ago

In spite of a huge amount of activity on WLED issue 104, the latest version still doesn't have multiple wires yet, so we've got to wait.
I've shown I can wire a cat-5 cable and plug it into the events room and run a single Xmas decoration panel (not 4) for one ESP8266. The wiring is the solid colours are data, and the white/striped ones all go to the same ground (so only one of them needs to be connected).

goatchurchprime commented 3 years ago

It's now in operation with 3 ESP32s running the peacepenguin fork of WLED whose build instructions are described as a comment to wled-issue 104.

define NUM_STRIPS 2

define STRIP1_PIN 2

define STRIP2_PIN 13

define STRIP3_PIN 12

define STRIP4_PIN 14

define STRIP1_LEDCOUNT 350

define STRIP2_LEDCOUNT 350

define STRIP3_LEDCOUNT 350

define STRIP4_LEDCOUNT 350

Flash the code up, then plug in, go to WLED-AP and then ipnumber 1.2.3.4 (if necessary). Go to config -> LED preferences, set LED count: 1400 and Maximum current 10000 mA. Then go to Wifi Setup, note down the mDNS value (eg wled-0509b0) before you set the ssid and password (as DoESLiverpool) and reboot, otherwise you will never find it again on your network.

In sync interfaces set network dmx input, tick multicast, set the start universe number accordingly (1-9, 10-18, etc, except by universe start and number.)

Box mDNS IPnumber universe
A wled-07f73c.local 10.0.34.110 1-9
B wled-cfb538.local 10.0.34.109 10-18
C wled-0509b0.local 10.0.34.100 19-27

The WLED devices have a quick and easy UI that works through a webpage with lots of effects (Noise3 is best) and settings and capability of connecting to MQTT. But we want to use xLights.

Download xLights

Controllers Add Ethernet (the GUI is dodgy and the value text boxes are in the wrong place when you select them)

Set vendor to WLED Model to WLED Set IPnumber. Input in the universe count (9 because 9*510/3 > 1400)

Try Tools -> Test to see everything is connected (eg Twinkle 50%)

In Layout, create about 5 matrixes to cover enough of the lights <-- this is the part that will be set using the video camera to identify the locations of the pixels.

In Sequencer, do File -> New Sequence, select Illumination Wizard, fps 25, import all models, which will list the matrix arrays.

Select Settings (to the right of + - magnifying glasses), sequence duration: 5 seconds.

Drag in Bars sequence into the different timelines.

On the right hand after the stop symbol there is a lightbulb icon. Tick this so it uploads to lights when you press play

amcewen commented 3 years ago

Annoyingly, the xLights software works lots better on Windows. @JackiePease has checked in a couple of model files into a new xlights folder in the Geometric Lights repo

JackiePease commented 3 years ago

@goatchurchprime Could you take a look at the model files in the Geometric Lights repo to see if there is an easier way to create / amend these (although as @amcewen points out, using Windows is a vast improvement)