Dear testers,
First of all, thank you for agreeing to test the pxlBlck plugin. 🙂
In the following I try to list everything that you need for the installation and operation of the plugin. If something is missing, please just mention it in the comment function at the bottom of the page. 🙂
Safety instructions
I know the following notes are always kind of annoying and seem unnecessary. Unfortunately, many people who knew "better" have lost eyes, fingers or other things due to carelessness or injured themselves. Data loss is almost negligible in comparison, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Because even the coolest project is not worth injury or other trouble.
https://www.nerdiy.de/sicherheitshinweise/
Affiliate links/advertising links
The links to online shops listed here are so-called affiliate links. If you click on such an affiliate link and make a purchase via this link, Nerdiy.de will receive a commission from the relevant online shop or provider. The price does not change for you. If you make your purchases via these links, you support Nerdiy.de in being able to offer other useful projects in the future. 🙂
Requirements
Helpful articles:
To have the pxlBlck plugin on your ….
Required tool:
vs. soldering iron
Required material:
In the following list you will find all the parts you need to implement this article.
wemos
LED matrix
5V power supply
Installing the plugin
As already mentioned, the pxlBlck plugin is a plugin for the ESPEasy Framework. So you would first have to flash ESPEasy on your ESP8266 or ESP32. Of course, the PxlBlck plugin should also be included. From now on, I will simply call the combination of EspEasy framework including plugin “firmware”.
In principle, there are two ways to get the firmware onto your microcontroller. One would be the one described here: https://nerdiy.de/howto-espeasy-firmware-flashen/
The second way is the only possible one for the test phase. Since I don't want to publish the source code yet, I will make the firmware available as a ready-compiled binary, which you then only have to program on the ESP. As said, this is described here: https://nerdiy.de/howto-esp8266-mit-dem-esptool-bin-dateien-unter-windows-flashen/
The current binary can be found in the next section. 🙂
Binaries or precompiled firmware files
Here I will list all firmware versions during the testing period. I always try to write about what has changed. 🙂
Version 0.0.2:
binary: Download
Changelog:
- Added “Generic – MQTT Import” modules
Version 0.0.1:
binary: Download
Changelog:
- Initial release
Configure WiFi access data
After you have transferred the firmware to your ESP, the next step is to configure the WiFi access data. This is described here: https://www.nerdiy.de/howto-espeasy-firmware-flashen/ I find the way via the serial interface to be the easiest. Info here: https://nerdiy.de/howto-espeasy-firmware-flashen/#WLAN-Zugangsdaten_ueber_die_serielle_Schnittstelle_konfigurieren
Please let me know if something is not adequately described there. 🙂
Plugin Options / Plugin Web Menu
A very convenient way to configure the pxlBlck plugin is the web menu. To achieve this, you simply have to enter the IP address of your EPS in the address bar of your browser. Then click through the menu to the settings of the pxlBlck.
- Name: Here you can configure the name of the device
- Enabled: The plugin is only activated if the check mark is set here
- GPIO/DigitalIn: Here you have to specify the GPIO that is connected to the LED matrix
- Help: Doesn't work yet or leads to nothing. A page will soon be created here where users can then click through to help topics
- Display Enabled: With this tick the display can be deactivated or the content is no longer displayed. This option can be used, for example, to switch off the display at night or when nobody is at home.
- Matrix type: Here you can configure the dimensions of your LED matrix. In the example above, a matrix is configured that is 32 LEDs wide and 8 LEDs high
- Led type: Here you can configure the type of your LED. Most Neopixel or WS2812 LEDs have the sequence green, red, blue. So GRB.
- Start positions: Here you can specify in which corner of your matrix the first LED is located. You can also find information about this here: https://learn.adafruit.com/adafruit-neopixel-uberguide/neomatrix-library
- LED arrangement: With this, the arrangement of your LED matrix can be configured. You can also find information about this here: https://learn.adafruit.com/adafruit-neopixel-uberguide/neomatrix-library
- Tile arrangement & Matrix tiles in X-direction & Matrix tiles in Y-direction: These functions do not work yet. :/ Please just leave it set to “OneTileOnly”.
- Matrix rotation: This allows the matrix to be rotated by 90° steps
- Dial version: This option configures the dial or animation that is displayed during normal operation. More on that below.
- Leading zeros enabled: With this function you can activate leading zeros. For example, the time 8:15 a.m. becomes 8:15 a.m
- Display brightness: This specifies the screen brightness of the displayed content in 15 steps
- Minimum brightness: With this option, a specific absolute value can be set for the lowest brightness. Is a bit difficult to explain. I will also add a separate descriptive text here. 🙂
- Hour & Minute & Background: The color for each group can be set here. These groups also change depending on the dial set under “Dial version”.
Available Commands
In addition to the possibility of configuring the above option via the web menu, you can also configure these options by entering the commands directly. There are several options to enter these commands, all of which are described here: https://nerdiy.de/howto-espeasy-befehle-ausfuehren/
The following commands are available to configure the pxlBlck plugin via command and to change its appearance/behavior during operation.
The structure of the commands is mostly similar. The parameters are passed after the actual command name, each separated by a comma. So the shape looks something like this:
commandname,parameter1,parameter2,…,parameterX,
It is important that the last parameter ends with a comma. Without a comma, this parameter is ignored.
The following commands are written in such a way that you can get a quick overview of the command and its attached parameters. The parameters are separated from each other and summarized in square brackets. In addition, the permitted value range of the respective parameter is also given in the square brackets.
Example:
Command Name,[Parameter1 0-1],[Parameter2 0-15],[ParameterX 0-255],
In this example, Parameter1 has a permitted value range of 0-1, Parameter2 a permitted value range of 0-15 and ParameterX a permitted value range of 0-255.
It is also important here that values that are outside of this permitted value range lead to the complete parameter setting for this parameter being ignored.
If you would like to configure ParameterX in the example given above, but want to leave the rest unchanged, you can send the following command.
commandname,2,16,133,
This specification causes the first two values entered to be ignored because they are outside the permitted value range. Only the last value “133” is adopted because it is within the permitted value range for “ParameterX”.
Command: General Settings
To make general settings, you can use the “pb” command. You can use this to configure the general behavior and display of your pxlBlck.
Command overview:
pb,[display_enabled 0-1],[brightness 0-15],[rc_mark_brightness 0-15],[matrix_rotation 0-3],[selected_dial 0-15],[wc_it_is_enabled 0-1],[wc_o_clock_enabled 0-1] ,[rc_dir_inversed 0-1],[wc_language_id 0-15],[minimal_brightness 0-255],
Parameter Description:
- display_enabled: Enables(1) or disables(0) the display output. This can be used, for example, to save electricity when nobody is present. See also pxlBlck - Turn off the display when you're away
- brightness: Brightness of the display in 16 steps from 0-15, whereby the display is not completely deactivated with a value of 0. In this case, the (absolute) value specified in minimal_brightness is set as the brightness.
- rc_mark_brightness: Brightness of the hour markers in ring clock mode in 16 steps from 0-15.
- matrix_rotation: display orientation of the displayed matrix from 0-3. Increasing this value causes a clockwise rotation of 90°.
- selected_dial: Selected dial. This allows you to select which dial is regularly shown on the display. This can be a simple animation but also a time display.
- wc_it_is_enabled: Enables(1) or disables(0) the display of the letters “It is” in word clock mode.
- wc_o_clock_enabled: Enables(1) or disables(0) the display of the letters “clock” in word clock mode.
- rc_dir_inversed: Inverted(1) or non-inverted(0) the running direction of the hands in ring clock mode. With this setting, the ring clock face is basically mirrored on the vertical axis.
- wc_language_id: Selects the desired language in word clock mode. So you can display the time on the word clock in different languages.
- minimal_brightness: The value specified with minimal_brightness is the value that is set as the brightness value when the normal display brightness is set to zero. The difference, however, is that specifying the minimal_brightness has a larger setting range. Here you can set the brightness not only in the range 0-15 but in the range 0-255. The big advantage of this is that much darker levels of brightness can be set. You can find more information about this in the article pxlBlck - Switch the display to night mode when it's dark (which of course I still have to create) 🙂
TODO: Examples
Commands: Colors
The assignment of the colors changes depending on the selected dial. However, there are a maximum of four possible colors that can be configured as follows.
Command overview:
pbclr,[color1_red 0-255],[color1_green 0-255],[color1_blue 0-255],[color2_red 0-255],[color2_green 0-255],[color2_blue 0-255],[color3_red 0-255] ,[color3_green 0-255],[color3_blue 0-255],[color4_red 0-255],[color4_green 0-255],[color4_blue 0-255],
Parameter Description:
- color1_red: Red color portion of the first color
- color1_green: Green color portion of the first color
- color1_blue: Blue color portion of the first color
- color2_red: Red color portion of the second color
- color2_green: Green color portion of the second color
- color2_blue: Blue color portion of the second color
- color3_red: Red color portion of the third color
- color3_green: Green color portion of the third color
- color3_blue: Red color portion of the third color
- color4_red: Red color portion of the fourth color
- color4_green: Green color component of the fourth color
- color4_blue: Blue color portion of the fourth color
TODO: Examples
Command: Boolean values:
With this option, truth values can be set absolutely or toggled. This command works a little differently. The structure is as follows.
Command overview:
pbbo,[value_id 1-6], [value 0-2]
“Value_id” enters the value you want to configure here. You can find an overview below
“Value” can have the values zero to three. Zero sets the selected truth value to “false”, one sets it to “true” and two toggles the value in question. Toggle here means that it changes the value to the opposite. (So zero becomes one and vice versa).
Parameter Description:
- displayEnabled=1
- wordclockShowOClockEnabled=2
- wordclockShowItIsEnabled=3
- ringclockThick12markEnabled=4
- ringclockClockDirInversed=5
- diallLeadingZerosEnabled=6
TODO: Examples
Command: brightness
The different brightness levels can be configured with the command described here.
Command overview:
pbbr,[brightnessId 0-2], [brightness 1-15], [absolute 1-15], [bottom border 1-15], [topBorder 1-15],
TODO: Explain and Examples
Command: Set color via color wheel
With this command, the colors can be set using the angle of a color wheel. For example, color changes can be implemented at the push of a button, where all colors can be controlled.
Command overview:
pbclrwhl,[colorId 0-4], [degree 1-15], [absolute 1-15], [bottom border 1-15], [topBorder 1-15],
TODO: Explain and Examples
Command: scrolling text
Command overview:
pbrntxt,[txt_color_red 0-255],[txt_color_green 0-255],[txt_color_blue 0-255],[bg_color_red 0-255],[bg_color_green 0-255],[bg_color_blue 0-255],[delay_time 0-1000] ,[start_pos 0-MATRIX_WIDTH],
Parameter Description:
- txt_color_red: Red part of the text color
- txt_color_green: Green part of the text color
- txt_color_blue: Blue color portion of the text color
- bg_color_red: Red part of the background color
- bg_color_green: Green part of the background color
- bg_color_blue: Blue color part of the background color
- delay_time: The amount of time the text takes to scroll through the display. This allows you to specify how fast the Lafu text runs through the display.
- start_pos: The horizontal start position on the display in pixels. The pixel at the bottom left is the 1st pixel.
TODO: Explain and Examples
Command: Icon display
With the help of the icon display, you can display self-designed icons on the display of your pxlBlck.
Various show and hide options are available to you. The following article contains more detailed information on how to design your own icons, transfer them to your pxlBlck and display them there pxlBlck - Design your own icons, transfer them to the pxlBlck and display them (Article has yet to be created)
Command overview:
pbicon,[txt_color_red 0-255],
Parameter Description:
Command: FakeTV simulation
TODO: Explain and Examples
Command overview:
pbfaketv,[enabled 0-1],
Parameter Description:
- enabled: This parameter can be used to enable or disable the fakeTV function.
Command: Matrix/Color Test
Command overview:
pbtest
Parameter Description:
-no parameters available-
Command: Animations
You can use animation to signal an event. For example, they are perfect for displaying an event on the slot/ring clock or on other models that do not support icon display.
Command overview:
pbani,[animation type 0-5],
Parameter Description:
klökjlö
TODO: Explain and Examples
Command: demo mode
TODO: Explain and Examples
pbdemo
Command: Configure watch faces
TODO: Explain and Examples
pbdia
TODO: Information is still missing everywhere
Dial overview:
Available watch faces:
Unfortunately, the adjustable dials differ depending on the type of matrix used. Unfortunately, this is the case because different matrix sizes enable or do not enable different representations.
In order to give you a small overview of which dial types are possible with which matrix, here is an idea of the adjustable dials and the information under which matrix types they are available.
Bare:
No clock face is displayed.
TODO: Information is missing
Running clock:
The time is displayed as scrolling text at adjustable intervals.
Options:
- Hour, minute and background color adjustable
- Text scrolling speed adjustable
Available for:
- pxlBlck8x8
- pxlBlck10x10
- pxlBlckCarousel (16×8)
- pxlBlck16x16
- pxlBlck32x8
- pxlBlckCassette (uses a 12×8 matrix)
TODO: Information is missing
“HrNum&MntPoints”: Hour number and minute points
Hour is represented as a number. Minute as a proportional number of enabled background pixels. Hour, minute and background colors adjustable.
Options:
- Hour, minute and background color adjustable
- Text scrolling speed adjustable
Available for:
- pxlBlck8x8
- pxlBlck10x10
RandPxls: Show random pixels
WndrngPxl
TvSmltr
fiboClck
horizNmbrs: Horizontal numbers as time:
Hours and minutes are next to each other as usual.
Options:
- Hours, minutes and background color adjustable.
Available for:
- pxlBlck10x10
- pxlBlckCarousel (16×8)
- pxlBlck16x16
- pxlBlck32x8
- pxlBlckCassette (uses a 12×8 matrix)
horizMiniNmbrs:
vertMiniNmbrs: Vertical clock:
Hours and minutes are superimposed.
Options:
- Hour, minute, hour background and minute background color adjustable.
Available for:
- pxlBlck10x10
- pxlBlckCarousel (16×8)
- pxlBlck16x16
- pxlBlck32x8
- pxlBlckCassette (uses a 12×8 matrix)
wordClock: word clock
The time is displayed according to the word clock principle with illuminated or non-illuminated letters.
Options:
- Hour, minute and background color adjustable
- “It is” and “Clock” can be activated/deactivated
Available for:
- pxlBlck Wordclock (uses a modified 11×11 matrix)
Ring: Ring watch
The time is displayed like a pointer clock. The pointers are illuminated pixels of an LED strip in different colors.
Colors adjustable for hour, minute, second and hour markers.
Options:
- Hour, minute and background color adjustable
- The direction of rotation of the clock is reversible
- Offset adjustable to shift the zero point on the LED strip
Available for:
- pxlBlckRingClock
- pxlBlckSlotClock
- pxlBlckLinearClock?
always surprising what possibilities are in the watch! I still have one question: can these commands also be imported via MQTT, how?
Hey Werner,
yes that should work. I described it here: https://nerdiy.de/howto-espeasy-befehle-ausfuehren/#Befehle_ueber_MQTT_ausfuehren
I agree the paragraph could use some more explanation/examples. Please let me know if that worked for you. 🙂
Best regards
Fabian
But in the binary there is no 'Generic – MQTT Import' module under Device. As an example, I published the topic 'Home/wordclock/Display/cmd' and the payload 'pbclr,color1_red 155', but nothing happened. This works wonderfully with other ESPEasy modules.
Hey Werner,
To execute the commands you don't need (as far as I know) a generic MQTT import module. Only the controller has to be configured. Just like in the picture behind the link I copied into the previous comment. 🙂
But apart from that, I'm surprised that the MQTT import module isn't available either. I check the time and upload a new binary again. 🙂