Skip to content

Commit

Permalink
Merge pull request #155 from BlueAndi/Development
Browse files Browse the repository at this point in the history
Pixelix v7.2.0
  • Loading branch information
BlueAndi authored Dec 23, 2023
2 parents 2454575 + ff492de commit 532221a
Show file tree
Hide file tree
Showing 257 changed files with 9,020 additions and 4,676 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/Development.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ jobs:
pip install --upgrade platformio
- name: Perform static checks on ${{ matrix.environment }}
run: platformio check --environment ${{ matrix.environment }}
run: platformio check --environment ${{ matrix.environment }} --fail-on-defect=medium --fail-on-defect=high

# Perform tests
test:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ jobs:
pip install --upgrade platformio
- name: Perform static checks on ${{ matrix.environment }}
run: platformio check --environment ${{ matrix.environment }}
run: platformio check --environment ${{ matrix.environment }} --fail-on-defect=medium --fail-on-defect=high

# Perform tests
test:
Expand Down
27 changes: 20 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Full RGB LED matrix, based on an ESP32 and WS2812B LEDs.
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://choosealicense.com/licenses/mit/)
[![Repo Status](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)
[![Release](https://img.shields.io/github/release/BlueAndi/esp-rgb-led-matrix.svg)](https://github.com/BlueAndi/esp-rgb-led-matrix/releases)
[![Build Status](https://github.com/BlueAndi/esp-rgb-led-matrix/workflows/PlatformIO%20CI/badge.svg?branch=master)](https://github.com/BlueAndi/esp-rgb-led-matrix/actions?query=workflow%3A%22PlatformIO+CI%22)
[![Build Status](https://github.com/BlueAndi/esp-rgb-led-matrix/actions/workflows/main.yml/badge.svg)](https://github.com/BlueAndi/esp-rgb-led-matrix/actions/workflows/main.yml)

[![pixelix](https://img.youtube.com/vi/dik8Rm6f3o0/0.jpg)](https://www.youtube.com/watch?v=dik8Rm6f3o0 "Pixelix")
[![pixelix](https://img.youtube.com/vi/UCjJCI5JShY/0.jpg)](https://www.youtube.com/watch?v=UCjJCI5JShY "Pixelix - Remote Button")
Expand Down Expand Up @@ -37,6 +37,7 @@ Full RGB LED matrix, based on an ESP32 and WS2812B LEDs.
* [Is it possible to use a font with 8px height?](#is-it-possible-to-use-a-font-with-8px-height)
* [How to configure the date/time format?](#how-to-configure-the-datetime-format)
* [How to configure my own list of plugins?](#how-to-configure-my-own-list-of-plugins)
* [Is there an easy way to rotate the display by 180° ? I need to turn the display when putting it into a housing.](#is-there-an-easy-way-to-rotate-the-display-by-180--i-need-to-turn-the-display-when-putting-it-into-a-housing)
* [Used Libraries](#used-libraries)
* [Issues, Ideas And Bugs](#issues-ideas-and-bugs)
* [License](#license)
Expand All @@ -55,7 +56,7 @@ The PIXELIX firmware is for ESP32 boards that controls a RGB LED matrix. It can
* Supports REST API and MQTT for remote control and integration with other systems, like [Home Assistant](https://www.home-assistant.io/).
* Can be extended with custom effects and animations. See list of [plugins](./doc/PLUGINS.md).

Please note, that not every feature might be available for all kind of development boards. E.g. for MQTT support you need 8 a development board with 8 MB flash or more. See the `config<variant>.ini` configuration files in [./config](./config) folder.
Please note, that not every feature might be available for all kind of development boards. E.g. for MQTT support you need a development board with 8 MB flash or more. See the `config<variant>.ini` configuration files in [./config](./config) folder.

| Some impressions | |
| - | - |
Expand Down Expand Up @@ -115,7 +116,7 @@ If the device starts the very first time, the wifi station SSID and passphrase s
2. Using a terminal connecting via usb.

## Variant 1: Configure wifi station SSID and passphrase with the browser
Restart the device and keep the button pressed until it shows the SSID of the wifi access point, spawned by PIXELIX. Search for it with your mobile device and connect.
Restart the device and **keep the button pressed** until it shows the SSID of the wifi access point, spawned by PIXELIX. Search for it with your mobile device and connect.
* SSID: **pixelix-&lt;DEVICE-ID&gt;**
* Passphrase: **Luke, I am your father.**

Expand All @@ -127,28 +128,30 @@ Use the following default credentials to get access to the PIXELIX web interface

## Variant 2: Configure wifi station SSID and passphrase with the terminal
Connect PIXELIX with your PC via usb and start a terminal. Use the following commands to set the wifi SSID and passphrase of your home wifi network:
* Test: ```ping```
* Write wifi passphrase: ```write wifi passphrase <your-passphrase>```
* Write wifi SSID: ```write wifi ssid <your-ssid>```
* Restart PIXELIX: ```reset```
* Get IP-address: ```get ip```

## PIXELIX Is Ready
After configuration, restart again and voila, PIXELIX will be available in your wifi network.

For changing whats displayed, go to its web interface. Use the same credentials than for the captive portal in variant 1. In the "Display" page you can change it according to your needs.

# User Interface
* Pixelix can be controlled with buttons. Most of the development are supported with just one user button.
* Pixelix can be controlled with buttons. Most of the development boards are supported with just one user button.
* One button control:
* 1 short pulse: Activates the next slot.
* 2 short pulses: Activates the previous slot.
* 3 short pulses: Activates next fade effect.
* 4 short pulses: IP address is shown.
* 5 short pulses: Switch device off.
* 5 short pulses: Toggle display power on/off.
* Long pressed: Increases the display brightness until maximum and then decreases until minimum. After that it will again increases it and so on.
* Two button control (LILYGO&reg; T-Display ESP32-S3):
* Left button:
* 1 short pulses: Activates the previous slot.
* 2 short pulses: Switch device off.
* 2 short pulses: Toggle display power on/off.
* Long pressed: Decreases the display brightness until minimum.
* Right button
* 1 short pulse: Activates the next slot.
Expand All @@ -162,7 +165,7 @@ For changing whats displayed, go to its web interface. Use the same credentials
* Ok button:
* 1 short pulses: Activates next fade effect.
* 2 short pulses: IP address is shown.
* Long pressed: Switch device off.
* Long pressed: Toggle display power on/off.
* Right button
* 1 short pulse: Activates the next slot.
* Long pressed: Increases the display brightness until maximum.
Expand Down Expand Up @@ -281,6 +284,16 @@ To handle there are several .ini files in the ```./config``` folder:

Update the one you use for your needs by commenting in or out.

## Is there an easy way to rotate the display by 180° ? I need to turn the display when putting it into a housing.
Change option CONFIG_DISPLAY_ROTATE180 in ```config/display.ini``` to 1 as shown below and rebuild.

Example:
```ini
[display:common]
build_flags =
-D CONFIG_DISPLAY_ROTATE180=1
```

# Used Libraries

| Library | Description | License |
Expand Down
9 changes: 9 additions & 0 deletions config/board.ini
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ build_flags =
-D CONFIG_BUTTON_CTRL=1
-D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout
-D CONFIG_SUPPLY_CURRENT=3500U
-D CONFIG_RTC=0
lib_deps =
${mcu:esp32.lib_deps_builtin}
${mcu:esp32.lib_deps_external}
Expand Down Expand Up @@ -77,6 +78,7 @@ build_flags =
-D CONFIG_BUTTON_CTRL=1
-D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout
-D CONFIG_SUPPLY_CURRENT=3500U
-D CONFIG_RTC=0
lib_deps =
${mcu:esp32.lib_deps_builtin}
${mcu:esp32.lib_deps_external}
Expand Down Expand Up @@ -124,6 +126,7 @@ build_flags =
-D CONFIG_BUTTON_CTRL=1
-D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout
-D CONFIG_SUPPLY_CURRENT=3500U
-D CONFIG_RTC=0
lib_deps =
${mcu:esp32.lib_deps_builtin}
${mcu:esp32.lib_deps_external}
Expand Down Expand Up @@ -171,6 +174,7 @@ build_flags =
-D CONFIG_BUTTON_CTRL=1
-D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout
-D CONFIG_SUPPLY_CURRENT=3500U
-D CONFIG_RTC=0
lib_deps =
${mcu:esp32.lib_deps_builtin}
${mcu:esp32.lib_deps_external}
Expand Down Expand Up @@ -218,6 +222,7 @@ build_flags =
-D CONFIG_SENSOR_LDR=SensorLdr::LDR_TYPE_GL5528
-D CONFIG_SENSOR_LDR_SERIES_RESISTANCE=1000.0F
-D CONFIG_BUTTON_CTRL=1
-D CONFIG_RTC=0
lib_deps =
${mcu:esp32.lib_deps_builtin}
${mcu:esp32.lib_deps_external}
Expand Down Expand Up @@ -266,6 +271,7 @@ build_flags =
-D CONFIG_SENSOR_LDR=SensorLdr::LDR_TYPE_GL5528
-D CONFIG_SENSOR_LDR_SERIES_RESISTANCE=1000.0F
-D CONFIG_BUTTON_CTRL=2
-D CONFIG_RTC=0
lib_deps =
${mcu:esp32.lib_deps_builtin}
${mcu:esp32.lib_deps_external}
Expand Down Expand Up @@ -311,6 +317,7 @@ build_flags =
-D CONFIG_BUTTON_CTRL=1
-D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout
-D CONFIG_SUPPLY_CURRENT=3500U
-D CONFIG_RTC=0
lib_deps =
${mcu:esp32.lib_deps_builtin}
${mcu:esp32.lib_deps_external}
Expand Down Expand Up @@ -357,6 +364,7 @@ build_flags =
-D CONFIG_SENSOR_LDR_SERIES_RESISTANCE=10000.0f
-D CONFIG_BUTTON_CTRL=3
-D CONFIG_SUPPLY_CURRENT=800U
-D CONFIG_RTC=1
lib_deps =
${mcu:esp32.lib_deps_builtin}
${mcu:esp32.lib_deps_external}
Expand Down Expand Up @@ -406,6 +414,7 @@ build_flags =
-D CONFIG_BUTTON_CTRL=1
-D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout
-D CONFIG_SUPPLY_CURRENT=3500U
-D CONFIG_RTC=0
lib_deps =
${mcu:esp32.lib_deps_builtin}
${mcu:esp32.lib_deps_external}
Expand Down
6 changes: 3 additions & 3 deletions config/configNormal.ini
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ lib_deps =
MqttService @ ~0.1.0
# ********** Topic handlers **********
RestApiTopicHandler @ ~0.1.0 # Mandatory, can not be removed. Used by webinterface.
MqttApiTopicHandler @ ~0.1.0
MqttApiTopicHandler @ ~0.1.0 # Requires MqttService
# ********** Plugins **********
;BatteryPlugin @ ~0.1.0
BTCQuotePlugin @ ~0.1.0
Expand All @@ -21,7 +21,8 @@ lib_deps =
DDPPlugin @ ~0.1.0
FirePlugin @ ~0.1.0
GameOfLifePlugin @ ~0.1.0
GithubPlugin @ ~0.1.0
GrabViaMqttPlugin @ ~0.1.0 # Requires MqttService
GrabViaRestPlugin @ ~0.1.0
GruenbeckPlugin @ ~0.1.0
IconTextLampPlugin @ ~0.1.0
IconTextPlugin @ ~0.1.0
Expand All @@ -30,7 +31,6 @@ lib_deps =
OpenWeatherPlugin @ ~0.1.0
RainbowPlugin @ ~0.1.0
SensorPlugin @ ~0.1.0
ShellyPlugSPlugin @ ~0.1.0
SignalDetectorPlugin @ ~0.1.0 # Requires AudioService
SoundReactivePlugin @ ~0.1.0 # Requires AudioService
SunrisePlugin @ ~0.1.0
Expand Down
8 changes: 4 additions & 4 deletions config/configSmall.ini
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ lib_deps =
;MqttService @ ~0.1.0
# ********** Topic handlers **********
RestApiTopicHandler @ ~0.1.0 # Mandatory, can not be removed. Used by webinterface.
;MqttApiTopicHandler @ ~0.1.0
;MqttApiTopicHandler @ ~0.1.0 # Requires MqttService
# ********** Plugins **********
;BatteryPlugin @ ~0.1.0
BTCQuotePlugin @ ~0.1.0
Expand All @@ -21,16 +21,16 @@ lib_deps =
;DDPPlugin @ ~0.1.0
FirePlugin @ ~0.1.0
;GameOfLifePlugin @ ~0.1.0
GithubPlugin @ ~0.1.0
;GrabViaMqttPlugin @ ~0.1.0 # Requires MqttService
GrabViaRestPlugin @ ~0.1.0
;GruenbeckPlugin @ ~0.1.0
IconTextLampPlugin @ ~0.1.0
;IconTextLampPlugin @ ~0.1.0
IconTextPlugin @ ~0.1.0
JustTextPlugin @ ~0.1.0
MatrixPlugin @ ~0.1.0
OpenWeatherPlugin @ ~0.1.0
;RainbowPlugin @ ~0.1.0
SensorPlugin @ ~0.1.0
ShellyPlugSPlugin @ ~0.1.0
;SignalDetectorPlugin @ ~0.1.0 # Requires AudioService
;SoundReactivePlugin @ ~0.1.0 # Requires AudioService
SunrisePlugin @ ~0.1.0
Expand Down
6 changes: 3 additions & 3 deletions config/configSmallNoI2s.ini
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ lib_deps =
;MqttService @ ~0.1.0
# ********** Topic handlers **********
RestApiTopicHandler @ ~0.1.0 # Mandatory, can not be removed. Used by webinterface.
;MqttApiTopicHandler @ ~0.1.0
;MqttApiTopicHandler @ ~0.1.0 # Requires MqttService
# ********** Plugins **********
;BatteryPlugin @ ~0.1.0
BTCQuotePlugin @ ~0.1.0
Expand All @@ -21,7 +21,8 @@ lib_deps =
;DDPPlugin @ ~0.1.0
FirePlugin @ ~0.1.0
GameOfLifePlugin @ ~0.1.0
GithubPlugin @ ~0.1.0
;GrabViaMqttPlugin @ ~0.1.0 # Requires MqttService
GrabViaRestPlugin @ ~0.1.0
;GruenbeckPlugin @ ~0.1.0
IconTextLampPlugin @ ~0.1.0
IconTextPlugin @ ~0.1.0
Expand All @@ -30,7 +31,6 @@ lib_deps =
OpenWeatherPlugin @ ~0.1.0
;RainbowPlugin @ ~0.1.0
SensorPlugin @ ~0.1.0
;ShellyPlugSPlugin @ ~0.1.0
;SignalDetectorPlugin @ ~0.1.0 # Requires AudioService
;SoundReactivePlugin @ ~0.1.0 # Requires AudioService
SunrisePlugin @ ~0.1.0
Expand Down
18 changes: 9 additions & 9 deletions config/configSmallUlanzi.ini
Original file line number Diff line number Diff line change
Expand Up @@ -9,36 +9,36 @@ lib_deps =
TopicHandlerService @ ~0.1.0 # Mandatory, can not be removed.
SettingsService @ ~0.1.0 # Mandatory, can not be removed.
;AudioService @ ~0.1.0 # No I2S interface available
;MqttService @ ~0.1.0
MqttService @ ~0.1.0
# ********** Topic handlers **********
RestApiTopicHandler @ ~0.1.0 # Mandatory, can not be removed. Used by webinterface.
MqttApiTopicHandler @ ~0.1.0
MqttApiTopicHandler @ ~0.1.0 # Requires MqttService
# ********** Plugins **********
BatteryPlugin @ ~0.1.0
;BTCQuotePlugin @ ~0.1.0
CountdownPlugin @ ~0.1.0
;CountdownPlugin @ ~0.1.0
DateTimePlugin @ ~0.1.0
;DDPPlugin @ ~0.1.0
FirePlugin @ ~0.1.0
;FirePlugin @ ~0.1.0
GameOfLifePlugin @ ~0.1.0
GithubPlugin @ ~0.1.0
GrabViaMqttPlugin @ ~0.1.0 # Requires MqttService
GrabViaRestPlugin @ ~0.1.0
;GruenbeckPlugin @ ~0.1.0
;IconTextLampPlugin @ ~0.1.0
IconTextPlugin @ ~0.1.0
JustTextPlugin @ ~0.1.0
MatrixPlugin @ ~0.1.0
OpenWeatherPlugin @ ~0.1.0
;RainbowPlugin @ ~0.1.0
SensorPlugin @ ~0.1.0
;ShellyPlugSPlugin @ ~0.1.0
;SensorPlugin @ ~0.1.0
;SignalDetectorPlugin @ ~0.1.0 # Requires AudioService
;SoundReactivePlugin @ ~0.1.0 # Requires AudioService
SunrisePlugin @ ~0.1.0
SysMsgPlugin @ ~0.1.0 # Mandatory, can not be removed.
TempHumidPlugin @ ~0.1.0
ThreeIconPlugin @ ~0.1.0
;ThreeIconPlugin @ ~0.1.0
;VolumioPlugin @ ~0.1.0
;WifiStatusPlugin @ ~0.1.0
WormPlugin @ ~0.1.0
;WormPlugin @ ~0.1.0
extra_scripts =
pre:./scripts/configure_small_ulanzi.py
Loading

0 comments on commit 532221a

Please sign in to comment.