Artnet integration for flow3r (https://flow3r.garden), the badge of the Chaos Communication Camp 2023.
- Python 100%
| doc/static | Rename .doc -> doc | |
| flow3rtnet | Move application files to flow3rtnet subdirectory | |
| README.md | Rename .doc -> doc | |
Flow3rtNet
Artnet integration for flow3r, the badge of the Chaos Communication Camp 2023.
Usage
- Copy the flow3r.toml, the stupidArtned-folder and the init.py into a folder called
flow3rtnet(or something else) under/flash/sys/apps/on your flow3r. For example, use the "Mount Flash" option from the flow3r system menu to access your flow3r like a USB device. - Create a WiFi AP with SSID
flow3rtnetand PSKartnet11(at the moment, the credentials are hardcoded) as Camp WiFi does not allow broadcast traffic. For example usingcreate_ap:sudo create_ap wlo1 eno1 flow3rtnet artnet11 - Launch the
flow3rtnetapp from the app menu of your flow3r - (Optional) Connect to the repl of your flow3r using
mpremote replto see debug output, e.g. connection status - Wait for your flow3r to connect to your WiFi network. For example,
create_aplog will look like this:Config dir: /tmp/create_ap.wlo1.conf.AecrfSNV PID: 107239 Network Manager found, set ap0 as unmanaged device... DONE Creating a virtual WiFi interface... ap0 created. Sharing Internet using method: nat hostapd command-line interface: hostapd_cli -p /tmp/create_ap.wlo1.conf.AecrfSNV/hostapd_ctrl WARN: Low entropy detected. We recommend you to install `haveged' ap0: interface state UNINITIALIZED->ENABLED ap0: AP-ENABLED ap0: STA 34:85:18:78:0b:c4 IEEE 802.11: authenticated ap0: STA 34:85:18:78:0b:c4 IEEE 802.11: associated (aid 1) ap0: AP-STA-CONNECTED 34:85:18:78:0b:c4 ap0: STA 34:85:18:78:0b:c4 RADIUS: starting accounting session 736E23F53A8FD74C ap0: STA 34:85:18:78:0b:c4 WPA: pairwise key handshake completed (RSN) ap0: EAPOL-4WAY-HS-COMPLETED 34:85:18:78:0b:c4 - Send artnet packages to the IP address of your flow3r, or the broadcast address of your WiFi network, e.g. by using the stupidArtnet Python library:
Now all your LEDs should light up>>> from stupidArtnet import StupidArtnet >>> a = StupidArtnet('192.168.12.255', 0, 255, 30, True, True) >>> a.flash_all() - ???
- Profit!
Channel layout
Currently, the flow3r listens on ArtNet universe 1 channel 0 hardcoded. The channels are as follows:
| Channel No. | Feature |
|---|---|
| 0 | Global Dimmer (0=off, 255=max brightness) |
| 1 - 3 | RGB values for all LEDs, ignored if all are 0 |
| 4 - 6 | RGB values for LED 0 (0=off, 255=max brightness) |
| 7 - 9 | RGB values for LED 1 |
| ... | ... |
| 121 - 123 | RGB values for LED 39 |
Usage with QLC+
QLC+ is a popular open source light mixing software with built-in ArtNet support. It is possible to control the flow3r from QLC+ along with other (DMX, ArtNet, ...) lights.
Example video showing the flow3r badge being controlled by QLC+
- Follow steps 1-5 from usage
- Open QLC+ on a computer connected to the
flow3rtnetWiFi network (machine runningcreate_apworks as well)
QLC+ showing the Input/Output configuration screen
- Select "Inputs/Outputs" at the bottom of the QLC+ window
- Make sure the first universe is selected
- Tick the "output" box next to the ArtNet plugin listing the IP address of the wireless network your flow3r is in
- Select the tool icon (4) to change settings for this ArtNet plugin.
QLC+ showing the ArtNet plugin configuration screen
- In the "Universes Configuration" tab (selected by default), make sure the correct IP address is listed under "Outputs".
- In that row, Universe should be 1, as you selected the first universe in step 2 of the previous screen.
- IP Address should show either the IP address of your flower, or the broadcast IP address of that network (
.255for a/24network) - ArtNet Universe must be 0, as this is currently hardcoded in
flow3rtnet - Transmission mode should be set to partial to increase performance and reduce WiFi traffic.
QLC+ showing the basic mixing interface
- Open the basic mixing interface by clicking "Simple Desk" at the bottom of the screen
- Make sure the "Grand Master" fader is set to 100%
- Use the other faders to control the channels as described in the channel table above, e.g. set the first 5 faders to 100% to light up all LEDs in white.
Enjoy!
Upcoming
Ideas for the future:
- Make ArtNet universe id customizable
- Make WiFi credentials customizable
- Status output on the flow3r display
- Use display as one big RGB LED
- How to trigger display updates from thread?
- Add menu to enter WiFi credentials, ArtNet universe id or channel.
- Custom user defined channel mapping
- Animations
- Color wheel
- User customizable animations
- Strobe channel