You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/moonbase/module/drivers.md
+42-23Lines changed: 42 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,18 +29,17 @@ The Drivers module defines layers and drivers.
29
29
30
30
| Name | Controls | Preview | Remarks
31
31
| ---- | ----- | ---- | ---- |
32
-
| ArtNet ||| listens to audio sent over the local network by WLED-AC or WLED-MM and allows sound reactive effects (♫) to use audio data (volume and bands (FFT)) |
33
-
| FastLED Driver | * Switch off to see the effect framerate in System Status/Metrics
34
-
* Switch on to see the effect framerate throttled by a LED driver in System Status/Metrics (800KHz, 256 LEDs, 24 bits is 130 fps theoretically - 120 practically)
35
-
***Chipset**: FastLED chipset defined (for FastLED hardcoded in the firmware ...)
36
-
***FastLED**: FastLED version used (301001 is 3.10.1)
37
-
***FastLED I2S**: Is the I2S driver used: Used on ESP32-S3 boards (temporary, will move to Physical driver), other boards use RMT5
38
-
***Color order**: FastLED color order (for FastLED hardcoded in the firmware ...), will not work on I2S, see [FastLED issue 1966](https://github.com/FastLED/FastLED/issues/1966) | | Sends LED output to ESP32 gpio pins |
* 🚨: Currently, if using multiple drivers, all drivers need the same Light preset !!
41
-
* 🚨: Only the first 4 channels of the DMX type light presets will be shown (🚧)
42
-
|| Sends led signals to the pins / outputs as defined in the layout nodes. This is an alternative to the FastLED driver and uses I2S as the protocol / perephiral to drive the pins. It does not need LED specifications defined at compile time, all can be controlled via UI. |
43
-
| AudioSync | * **Max Power**: max amount of power in watts to send to LEDs. Default 10: 5V * 2A = 10W (so it runs fine on USB)
32
+
| ArtNet ||||
33
+
| FastLED Driver ||| Sends LED output to ESP32 gpio pins |
34
+
| Physical Driver ||| Sends led signals to the pins / outputs as defined in the layout nodes. |
35
+
| AudioSync || listens to audio sent over the local network by WLED-AC or WLED-MM and allows sound reactive effects (♫) to use audio data (volume and bands (FFT)) |
36
+
| HUB75 ||| Not implemented yet |
37
+
| Virtual driver ||| The virtual driver is another beast and with the help of shift registers allows for driving 48 panels of 256 LEDs each at 100 FPS!. Not implemented yet |
38
+
| Parlio ||| Not implemented yet |
39
+
40
+
### Max Power and Light Preset
41
+
42
+
***Max Power**: max amount of power in watts to send to LEDs. Default 10: 5V * 2A = 10W (so it runs fine on USB)
44
43
***Light preset**: Defines the channels per light and color order
45
44
* RGB to BGR for 3 lights per channel, RGB lights, GRB is default
46
45
* GRBW for LEDs with white channel like SK6812.
@@ -52,6 +51,36 @@ The Drivers module defines layers and drivers.
* 🚨: Currently, if using multiple drivers, all drivers need the same Light preset !!
54
+
55
+
### FastLED Driver ☸️
56
+
57
+
sends LED output to ESP32 gpio pins.
58
+
59
+
* Switch off to see the effect framerate in System Status/Metrics
60
+
* Switch on to see the effect framerate throttled by a LED driver in System Status/Metrics (800KHz, 256 LEDs, 24 bits is 130 fps theoretically - 120 practically)
61
+
***Chipset**: FastLED chipset defined (for FastLED hardcoded in the firmware ...)
62
+
***FastLED**: FastLED version used (301001 is 3.10.1)
63
+
***FastLED I2S**: Is the I2S driver used: Used on ESP32-S3 boards (temporary, will move to Physical driver), other boards use RMT5
64
+
***Color order**: FastLED color order (for FastLED hardcoded in the firmware ...), will not work on I2S, see [FastLED issue 1966](https://github.com/FastLED/FastLED/issues/1966)
65
+
66
+
### Physical driver ☸️
67
+
68
+
Sends led signals to the pins / outputs as defined in the layout nodes. This is an alternative to the FastLED driver and uses I2S as the protocol / perephiral to drive the pins.
69
+
70
+
***Max Power**and **Light preset**: See Art-Net driver.
71
+
* 🚨: Currently, if using multiple drivers, all drivers need the same Light preset !!
72
+
* 🚨: Only the first 4 channels of the DMX type light presets will be shown (🚧)
73
+
74
+
### Art-Net ☸️
75
+
76
+
This node sends the content of the Lights array in Art-Net compatible packages to an Art-Net controller specified by the IP address provided.
77
+
The following devices have been tested and are recommended:
78
+
79
+
* Driving DMX fixtures: [PKNight ArtNet2-CR021R](https://s.click.aliexpress.com/e/_ExRrKe4): 2 universes, max 512 channels per universe. Used to drive the Light Presets for DMX lights / moving heads (see below)
80
+
* Driving LEDs: [Club Lights 12 Pro Artnet Controller - CL12P](https://s.click.aliexpress.com/e/_Ex9uaOk): 12 output leds controller, max 8 universes per channel. Max 512 channels per universe. Select IC-Type UCS2903
81
+
82
+
Controls:
83
+
55
84
***Controller IP**: The last segment of the IP address within your local network, of the the hardware Art-Net controller.
56
85
***Port**: The network port added to the IP address, 6454 is the default for Art-Net.
57
86
***FPS Limiter**: set the max frames per second Art-Net packages are send out (also all the other nodes will run at this speed).
@@ -66,14 +95,4 @@ The Drivers module defines layers and drivers.
66
95
* CR021R: 512 channels
67
96
* CL12P: max 8 * 512. Each color in a LED is one channel: For RGB max 170 LEDs is 510 channels per universe, for RGBW max 128 LEDs per universe is 512 channels per universe => max 1360 RGB LEDs and 1024 RGBW LEDs per output. 🚨: Set channels per universe to 510 for RGB and 512 for RGBW (no proof yet it makes a difference ...) on the controller. The real number of channels per output can be less then the amount of universes available. e.g. if each output drives one 256 LED RGB panel, channels per output is 768. One package (= one universe) sends 170 LEDs (510 channels) and the second 86 LEDs / 256 channels. The next package for the next panel on the next output will then be in the first universe for that output (so unused universes for a channel will be skipped)
68
97
69
-
🚨: Dmx channels count from 1 to 512. At the moment we start counting from 0..511. | | This node sends the content of the Lights array in Art-Net compatible packages to an Art-Net controller specified by the IP address provided.
70
-
The following devices have been tested and are recommended:
71
-
72
-
* Driving DMX fixtures: [PKNight ArtNet2-CR021R](https://s.click.aliexpress.com/e/_ExRrKe4): 2 universes, max 512 channels per universe. Used to drive the Light Presets for DMX lights / moving heads (see below)
73
-
* Driving LEDs: [Club Lights 12 Pro Artnet Controller - CL12P](https://s.click.aliexpress.com/e/_Ex9uaOk): 12 output leds controller, max 8 universes per channel. Max 512 channels per universe. Select IC-Type UCS2903
74
-
|
75
-
| HUB75 ||| Not implemented yet |
76
-
| Virtual driver | | | The virtual driver is another beast and with the help of shift registers allows for driving 48 panels of 256 LEDs each at 100 FPS!.
77
-
78
-
Not implemented yet |
79
-
| Parlio ||||
98
+
🚨: Dmx channels count from 1 to 512. At the moment we start counting from 0..511.
Copy file name to clipboardExpand all lines: docs/moonbase/module/effects.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -70,9 +70,7 @@ Precompiled effects can be found in [effects](https://github.com/MoonModules/Moo
70
70
| Random ||||
71
71
| Ripples ||||
72
72
| RubiksCube ||||
73
-
| ScrollingText | Speed: scrolling speed if the text is wider then the display width
74
-
* Font: Different font sizes
75
-
* Preset: one of the following: Auto, IP (.ddd), FPS (ddds), Time (HHMM), Uptime (s/m/h), Status 🛜 (AP/STA), Clients 🛜 (dC), Connected 🛜 (dCC) | | Shows system info on leds. You need at least 16*6 pixels for that (Panel 16x16 recommended) |
73
+
| ScrollingText | Speed: scrolling speed if the text is wider then the display width, Font: Different font sizes, Preset: one of the following: Auto, IP (.ddd), FPS (ddds), Time (HHMM), Uptime (s/m/h), Status 🛜 (AP/STA), Clients 🛜 (dC), Connected 🛜 (dCC) || Shows system info on leds. You need at least 16*6 pixels for that (Panel 16x16 recommended) |
76
74
| Sinus ||||
77
75
| SphereMove ||||
78
76
| StarField ||||
@@ -82,6 +80,8 @@ Precompiled effects can be found in [effects](https://github.com/MoonModules/Moo
Copy file name to clipboardExpand all lines: docs/moonlight/layouts.md
+21-19Lines changed: 21 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,13 +2,13 @@
2
2
3
3
A layout (🚥) defines what lights are connected to MoonLight. It defines the coordinates of all lights (addLight) and assigns lights to the GPIO pins of the ESP32 (addPin) and how many channels each light has (normal LEDs 3: Red, Green and Blue).
4
4
5
-
* The **coordinates** of each light are defined in a 3D coordinate space where each coordinate range between 1 and 255. Currently a strip until 255 LEDs is supported, a panel until 128x96 LEDS and a cube max 20x20x20.
6
-
* Coordinates needs to be specified in the order the lights are wired so MoonLight knows which light is first, which is second etc.
7
-
* If a 1D strip is longer, you can address more LEDs by pretending it is a 2D fixture, e.g. 32x32 to address a strip of 1024 LEDs.
8
-
* In the future we might look at redefining Coord3D where width is 12 bytes, height is 7 bytes and depth is 5 bytes allowing for max 4096 x 128 x 32 ...
9
-
* Currently **pins** are by default driven by FastLED.show. FastLED needs all LEDs specifications be defined at compile time, e.g. LED type, color order, etc. Normally also the pin(s) need to be defined beforehand but all pins are predefined in the code to avoid this (at a cost of larger firmware). As we want to be able to define all LED specs in the UI instead of during compile, we need to see how / if this can be done.
10
-
* **Multiple layout nodes** can be defined which will execute one after the other
11
-
* MoonLight will use the layout definition to generate a **mapping** of a virtual coordinate space to a physical coordinate space. Most simple example is a panel which has a snake layout. The mapping will create a virtual layer where the snake layout is hidden.
5
+
* The **coordinates** of each light are defined in a 3D coordinate space where each coordinate range between 1 and 255. Currently a strip until 255 LEDs is supported, a panel until 128x96 LEDS and a cube max 20x20x20.
6
+
* Coordinates needs to be specified in the order the lights are wired so MoonLight knows which light is first, which is second etc.
7
+
* If a 1D strip is longer, you can address more LEDs by pretending it is a 2D fixture, e.g. 32x32 to address a strip of 1024 LEDs.
8
+
* In the future we might look at redefining Coord3D where width is 12 bytes, height is 7 bytes and depth is 5 bytes allowing for max 4096 x 128 x 32 ...
9
+
* Currently **pins** are by default driven by FastLED.show. FastLED needs all LEDs specifications be defined at compile time, e.g. LED type, color order, etc. Normally also the pin(s) need to be defined beforehand but all pins are predefined in the code to avoid this (at a cost of larger firmware). As we want to be able to define all LED specs in the UI instead of during compile, we need to see how / if this can be done.
10
+
***Multiple layout nodes** can be defined which will execute one after the other
11
+
* MoonLight will use the layout definition to generate a **mapping** of a virtual coordinate space to a physical coordinate space. Most simple example is a panel which has a snake layout. The mapping will create a virtual layer where the snake layout is hidden.
12
12
13
13
## Layout 🚥 Nodes
14
14
🚧
@@ -18,22 +18,24 @@ A layout (🚥) defines what lights are connected to MoonLight. It defines the c
18
18
19
19
| Name | Controls | Preview | Remarks
20
20
| ---- | ----- | ---- | ---- |
21
-
| Panel | * width and height
22
-
* orientation XY or YX: Vertical or horizontal
23
-
* X++ and Y++: X++: starts at Top or bottom, Y++: starts left or right
24
-
* snake: is the first axis in snake / serpentine layout?
25
-
* pin: to do add more pins | | Defines a 2D panel with width and height |
21
+
| Panel | pin: to do add more pins || Defines a 2D panel with width and height |
26
22
| Panels ||||
27
-
| Cube | * width and height and depth
28
-
* orientation XYZ or YXZ, XZY or YZX, ZXY or ZYX: Vertical or horizontal or depth
29
-
* X++ and Y++ and Z++: Z++ starts front or back
30
-
* snake X, Y, Z: multidimensional snaking, good luck 😜
31
-
* pin: to do add more pins | | Panel layout + depth |
23
+
| Cube | pin: to do add more pins || Panel layout + depth |
32
24
| Rings ||||
33
25
| Wheel ||||
34
26
| HumanSizedCube ||||
35
27
| SingleLine ||||
36
28
| SingleRow ||||
37
-
| SE16 | * ledsPerPin: the number of LEDs connected to one pin
29
+
| SE16 ||| Layout(s) for Stephan Electronics 16-Pin ESP32-S3 board, using the pins used on the board |
30
+
31
+
### Panels and cubes
32
+
33
+
* orientation XYZ or YXZ, XZY or YZX, ZXY or ZYX: Vertical or horizontal or depth
34
+
* X++ and Y++ (and Z++): X++: starts at Top or bottom, Y++: starts left or right (Z++ starts front or back)
35
+
* snake X, Y (Z): is the first axis in snake / serpentine layout?, (multidimensional snaking, good luck 😜)
36
+
37
+
### SE16
38
+
39
+
* ledsPerPin: the number of LEDs connected to one pin
38
40
* pinsAreColumns: are the LEDs on a pin a row of the effect (width is 1 (or 2) x ledsPerPin). If not set the LEDs are a column (height is 1 (or 2) x ledsPerPin)
39
-
* mirroredPins: If set it is assumed that LEDs are connected with increasing positions on 8 pins on one side of the board and decreasing positions on the 8 pins of the other side of the board. The resulting size will have a width of 8 and the height (or width) will be 2 * ledsPerPin. If not set, the width will be 16 and the height (or width) = ledsPerPin | | Layout(s) for Stephan Electronics 16-Pin ESP32-S3 board, using the pins used on the board |
41
+
* mirroredPins: If set it is assumed that LEDs are connected with increasing positions on 8 pins on one side of the board and decreasing positions on the 8 pins of the other side of the board. The resulting size will have a width of 8 and the height (or width) will be 2 * ledsPerPin. If not set, the width will be 16 and the height (or width) = ledsPerPin
Copy file name to clipboardExpand all lines: docs/moonlight/modifiers.md
+2-9Lines changed: 2 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,14 +17,7 @@ Modifier
17
17
| Circle ||||
18
18
| Mirror ||||
19
19
| Multiply ||||
20
-
| RippleYZ | * shrink: shrinks the original size to towardsY and Z
21
-
* towardsY: copies X into Y
22
-
* towardsZ: copies XY into Z | | Takes lights of an effect and copies them to other lights. E.g. 1D effect will be rippled to 2D, 2D effect will be rippled to 3D |
23
-
| Pinwheel | * **Swirl** option to bend the pinwheel.
24
-
***Reverse** option.
25
-
***Rotation Symmetry**: Controls the rotational symmetry of the pattern.
26
-
***Petals** option to adjust the number of petals.
27
-
***Ztwist** option for 3D fixtures to twist the pattern along the z-axis.
28
-
* The virtual layer width is the number of petals. The height is the distance from center to corner | | Projects 1D/2D effects onto 2D/3D fixtures in a pinwheel pattern. |
20
+
| RippleYZ | shrink: shrinks the original size to towardsY and Z, towardsY: copies X into Y, towardsZ: copies XY into Z || Takes lights of an effect and copies them to other lights. E.g. 1D effect will be rippled to 2D, 2D effect will be rippled to 3D |
21
+
| Pinwheel |**Swirl**: option to bend the pinwheel., **Reverse** option., **Rotation Symmetry**: Controls the rotational symmetry of the pattern., **Petals** option to adjust the number of petals., **Ztwist** option for 3D fixtures to twist the pattern along the z-axis. || Projects 1D/2D effects onto 2D/3D fixtures in a pinwheel pattern. The virtual layer width is the number of petals. The height is the distance from center to corner |
0 commit comments