diff --git a/.clang-format b/.clang-format new file mode 100644 index 00000000..9d2cf5c2 --- /dev/null +++ b/.clang-format @@ -0,0 +1,69 @@ +# basics +UseTab: Never +IndentWidth: 4 +ColumnLimit: 0 +SortIncludes: Never + +PointerAlignment: Left +ReferenceAlignment: Left + +AlignAfterOpenBracket: DontAlign # Argument aligned by level not function name ISSUE: ");" is not on a new line + +# spaces +SpaceBeforeParens: Custom +SpaceBeforeParensOptions: + AfterControlStatements: true # ISSUE: only global for if/while/for/switch but don't want only for if + AfterFunctionDefinitionName: false + +#spaces +MaxEmptyLinesToKeep: 2 +KeepEmptyLinesAtEOF: false +EmptyLineAfterAccessModifier: Always + +BreakBeforeBinaryOperators: None + +AlignConsecutiveDeclarations: + Enabled: true + AcrossEmptyLines: true + AcrossComments: false +AlignConsecutiveAssignments: + Enabled: true + AcrossEmptyLines: true + AcrossComments: true + AlignCompound: true + PadOperators: true + +BinPackArguments: false +BinPackParameters: false + +# wrapping/combining +AllowShortFunctionsOnASingleLine: None +BreakBeforeBraces: Custom +BraceWrapping: + IndentBraces: False + AfterClass: true + AfterControlStatement: true + AfterEnum: True + AfterFunction: true + AfterNamespace: True + AfterObjCDeclaration: True + AfterStruct: True + AfterUnion: True + BeforeCatch: True + BeforeElse: True + BeforeWhile: True + SplitEmptyFunction: true + SplitEmptyRecord: true + +# C++ Constructor settings +BreakConstructorInitializers: AfterColon +PackConstructorInitializers: Never +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 + +# classes & templates +IndentAccessModifiers: false +AccessModifierOffset: -4 +SpacesInAngles: Leave # Don't change + +Cpp11BracedListStyle: false \ No newline at end of file diff --git a/.github/workflows/Development.yml b/.github/workflows/Development.yml index e18cd734..8056fec9 100644 --- a/.github/workflows/Development.yml +++ b/.github/workflows/Development.yml @@ -28,15 +28,15 @@ jobs: needs: intro strategy: matrix: - environment: ["adafruit_feather_esp32_v2", "esp32doit-devkit-v1", "lilygo-ttgo-t-display", "lilygo-t-display-s3", "ulanzi-tc001", "wemos_lolin_s2_mini"] + environment: ["adafruit_feather_esp32_v2-LED-32x8", "adafruit_matrixportal_s3-HUB75-64x64", "az-delivery-devkit-v4-LED-32x8", "esp32doit-devkit-v1-LED-32x8", "esp32doit-devkit-v1-HUB75-64x64", "esp32-s3-devkitc-1-n16r8v-LED-32x8", "esp32-s3-devkitc-1-n16r8v-LED-32x16", "esp32-nodemcu-LED-32x8", "lilygo-ttgo-t-display-TFT-32x8", "lilygo-t-display-s3-TFT-32x8", "m5stack_core-TFT-32x8", "ulanzi-tc001-LED-32x8", "wemos_lolin_s2_mini-LED-32x8"] # Steps represent a sequence of tasks that will be executed as part of the job. steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Cache pip - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} @@ -44,13 +44,13 @@ jobs: ${{ runner.os }}-pip- - name: Cache PlatformIO - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.platformio key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.9' @@ -72,14 +72,14 @@ jobs: needs: intro strategy: matrix: - environment: ["adafruit_feather_esp32_v2", "esp32doit-devkit-v1", "lilygo-ttgo-t-display", "lilygo-t-display-s3", "ulanzi-tc001", "wemos_lolin_s2_mini"] + environment: ["adafruit_feather_esp32_v2-LED-32x8", "adafruit_matrixportal_s3-HUB75-64x64", "az-delivery-devkit-v4-LED-32x8", "esp32doit-devkit-v1-LED-32x8", "esp32doit-devkit-v1-HUB75-64x64", "esp32-s3-devkitc-1-n16r8v-LED-32x8", "esp32-s3-devkitc-1-n16r8v-LED-32x16", "esp32-nodemcu-LED-32x8", "lilygo-ttgo-t-display-TFT-32x8", "lilygo-t-display-s3-TFT-32x8", "m5stack_core-TFT-32x8", "ulanzi-tc001-LED-32x8", "wemos_lolin_s2_mini-LED-32x8"] steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Cache pip - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} @@ -87,13 +87,13 @@ jobs: ${{ runner.os }}-pip- - name: Cache PlatformIO - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.platformio key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.9' @@ -113,10 +113,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Cache pip - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} @@ -124,13 +124,13 @@ jobs: ${{ runner.os }}-pip- - name: Cache PlatformIO - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.platformio key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.9' @@ -149,10 +149,10 @@ jobs: needs: intro steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Cache pip - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} @@ -160,13 +160,13 @@ jobs: ${{ runner.os }}-pip- - name: Cache PlatformIO - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.platformio key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.9' @@ -176,7 +176,7 @@ jobs: pip install --upgrade platformio - name: Set up graphviz - uses: ts-graphviz/setup-graphviz@v1.2.0 + uses: ts-graphviz/setup-graphviz@v2 - name: Set up doxygen and generate documentation uses: mattnotmitt/doxygen-action@v1.9.5 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8f2550d9..65cb1b4e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,15 +30,15 @@ jobs: needs: intro strategy: matrix: - environment: ["adafruit_feather_esp32_v2", "az-delivery-devkit-v4", "esp32doit-devkit-v1", "esp32-nodemcu", "lilygo-ttgo-t-display", "lilygo-t-display-s3", "m5stack_core", "ulanzi-tc001", "wemos_lolin_s2_mini"] + environment: ["adafruit_feather_esp32_v2-LED-32x8", "adafruit_matrixportal_s3-HUB75-64x64", "az-delivery-devkit-v4-LED-32x8", "esp32doit-devkit-v1-LED-32x8", "esp32doit-devkit-v1-HUB75-64x64", "esp32-s3-devkitc-1-n16r8v-LED-32x8", "esp32-s3-devkitc-1-n16r8v-LED-32x16", "esp32-nodemcu-LED-32x8", "lilygo-ttgo-t-display-TFT-32x8", "lilygo-t-display-s3-TFT-32x8", "m5stack_core-TFT-32x8", "ulanzi-tc001-LED-32x8", "wemos_lolin_s2_mini-LED-32x8"] # Steps represent a sequence of tasks that will be executed as part of the job. steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Cache pip - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} @@ -46,13 +46,13 @@ jobs: ${{ runner.os }}-pip- - name: Cache PlatformIO - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.platformio key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.9' @@ -90,14 +90,14 @@ jobs: needs: intro strategy: matrix: - environment: ["adafruit_feather_esp32_v2", "az-delivery-devkit-v4", "esp32doit-devkit-v1", "esp32-nodemcu", "lilygo-ttgo-t-display", "lilygo-t-display-s3", "m5stack_core", "ulanzi-tc001", "wemos_lolin_s2_mini"] + environment: ["adafruit_feather_esp32_v2-LED-32x8", "adafruit_matrixportal_s3-HUB75-64x64", "az-delivery-devkit-v4-LED-32x8", "esp32doit-devkit-v1-LED-32x8", "esp32doit-devkit-v1-HUB75-64x64", "esp32-s3-devkitc-1-n16r8v-LED-32x8", "esp32-s3-devkitc-1-n16r8v-LED-32x16", "esp32-nodemcu-LED-32x8", "lilygo-ttgo-t-display-TFT-32x8", "lilygo-t-display-s3-TFT-32x8", "m5stack_core-TFT-32x8", "ulanzi-tc001-LED-32x8", "wemos_lolin_s2_mini-LED-32x8"] steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Cache pip - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} @@ -105,13 +105,13 @@ jobs: ${{ runner.os }}-pip- - name: Cache PlatformIO - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.platformio key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.9' @@ -131,10 +131,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Cache pip - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} @@ -142,13 +142,13 @@ jobs: ${{ runner.os }}-pip- - name: Cache PlatformIO - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.platformio key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.9' @@ -167,10 +167,10 @@ jobs: needs: intro steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Cache pip - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} @@ -178,13 +178,13 @@ jobs: ${{ runner.os }}-pip- - name: Cache PlatformIO - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.platformio key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.9' @@ -194,7 +194,7 @@ jobs: pip install --upgrade platformio - name: Set up graphviz - uses: ts-graphviz/setup-graphviz@v1.2.0 + uses: ts-graphviz/setup-graphviz@v2 - name: Set up doxygen and generate documentation uses: mattnotmitt/doxygen-action@v1.9.5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7b4bc1f6..07147f37 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,17 +27,17 @@ jobs: needs: intro strategy: matrix: - environment: ["adafruit_feather_esp32_v2", "az-delivery-devkit-v4", "esp32doit-devkit-v1", "esp32-nodemcu", "lilygo-ttgo-t-display", "lilygo-t-display-s3", "m5stack_core", "ulanzi-tc001", "wemos_lolin_s2_mini"] + environment: ["adafruit_feather_esp32_v2-LED-32x8", "adafruit_matrixportal_s3-HUB75-64x64", "az-delivery-devkit-v4-LED-32x8", "esp32doit-devkit-v1-LED-32x8", "esp32doit-devkit-v1-HUB75-64x64", "esp32-s3-devkitc-1-n16r8v-LED-32x8", "esp32-s3-devkitc-1-n16r8v-LED-32x16", "esp32-nodemcu-LED-32x8", "lilygo-ttgo-t-display-TFT-32x8", "lilygo-t-display-s3-TFT-32x8", "m5stack_core-TFT-32x8", "ulanzi-tc001-LED-32x8", "wemos_lolin_s2_mini-LED-32x8"] # Steps represent a sequence of tasks that will be executed as part of the job. steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.tag_name }} - name: Cache pip - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} @@ -45,13 +45,13 @@ jobs: ${{ runner.os }}-pip- - name: Cache PlatformIO - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.platformio key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.9' diff --git a/LICENSE b/LICENSE index 6950fd31..ff9e7f8e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019 - 2023 Andreas Merkle +Copyright (c) 2019 - 2024 Andreas Merkle Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 8f3d1b3d..9dc1c992 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,14 @@ Full RGB LED matrix, based on an ESP32 and WS2812B LEDs. [![Release](https://img.shields.io/github/release/BlueAndi/Pixelix.svg)](https://github.com/BlueAndi/Pixelix/releases) [![Build Status](https://github.com/BlueAndi/Pixelix/actions/workflows/main.yml/badge.svg)](https://github.com/BlueAndi/Pixelix/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") +[![pixelix](https://img.youtube.com/vi/u1W9nlzJOI4/1.jpg)](https://youtu.be/u1W9nlzJOI4 "Pixelix & Friends") +[![pixelix](https://img.youtube.com/vi/dik8Rm6f3o0/1.jpg)](https://youtu.be/dik8Rm6f3o0 "Pixelix") +[![pixelix](https://img.youtube.com/vi/UCjJCI5JShY/1.jpg)](https://youtu.be/UCjJCI5JShY "Pixelix - Remote Button") + +Click on the preview to see the video. +___ + +# Table of Content * [Motivation](#motivation) * [Introduction](#introduction) @@ -51,7 +57,7 @@ The PIXELIX firmware is for ESP32 boards that controls a RGB LED matrix. It can # Features * Supports 32x8 LED matrix size out of the box. Its possible to cascade another matrix to have a longer display. -* Can display static or scrolling text, as well as static or animated icons. +* Can display static or scrolling text, as well as static (BMP and GIF) or animated icons (GIF). * Includes a web interface for configuring and controlling the LED matrix. * 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). @@ -83,6 +89,7 @@ The following shows the absolute minimal wiring setup e.g. for the ESP32 DevKitV # Supported Development Boards In the meantime several other boards are supported as well. You can find them in the [list of boards](./doc/boards/README.md). +If your board is not listed in the main branch, please have a look in the [Development branch](https://github.com/BlueAndi/Pixelix/tree/Development) too. With the [Ulanzi TC001 smart pixel clock](https://www.ulanzi.com/products/ulanzi-pixel-smart-clock-2882) you even don't need to assemble the electronic and mechanic together. @@ -94,6 +101,7 @@ If you assemble your own Pixelix hardware, its recommended to use a development Additional supported variants, which were original not in focus: * [LILYGO® TTGO T-Display ESP32 WiFi and Bluetooth Module Development Board For Arduino 1.14 Inch LCD](http://www.lilygo.cn/prod_view.aspx?TypeId=50033&Id=1126&FId=t3:50033:3) * [LILYGO® T-Display ESP32-S3 1.9 inch ST7789 LCD Display Touch Screen Development Board](https://www.lilygo.cc/products/t-display-s3) +* Limited HUB75 panel support, configured as an example for the ESP32-DoIt DevKit v1 development board. Although PIXELIX was designed to show information, that is pushed or pulled via REST API, the following sensors can be directly connected and evaluated: * Temperature and humidity sensors DHTx @@ -120,7 +128,7 @@ Restart the device and **keep the button pressed** until it shows the SSID of th * SSID: **pixelix-<DEVICE-ID>** * Passphrase: **Luke, I am your father.** -Depended on the type of device you are using for connecting to PIXELIX, you may get a notification that further information is necessary and automatically routed to the captive portal. In any other case enter the URL http://192.168.4.1 in the browser address field. +Depended on the type of device you are using for connecting to PIXELIX, you may get a notification that further information is necessary and automatically routed to the captive portal. In any other case enter the URL http://192.169.4.1 in the browser address field. Use the following default credentials to get access to the PIXELIX web interface: * User: **luke** @@ -128,11 +136,15 @@ 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 ``` * Write wifi SSID: ```write wifi ssid ``` * Restart PIXELIX: ```reset``` * Get IP-address: ```get ip``` +* Get status: ```get status``` + * A status of 0 means everything is ok. + * Other than 0, see their meaning in the low [low level error code table](#the-display-only-shows-a-error-code-like-e4-what-does-that-mean). Note, the status of 1 is equal to E1 in the error code table and etc. + +Enter ```help``` to get a list of all supported commands. ## PIXELIX Is Ready After configuration, restart again and voila, PIXELIX will be available in your wifi network. @@ -186,28 +198,30 @@ Adapt in ```./config/display.ini``` the _CONFIG_LED_MATRIX_WIDTH_ and _CONFIG_LE ## How to change text properties? Text properties can be changed using different keywords added to the string to be displayed. -In order to be able to use these keywords, they must be prefixed by a backslash, otherwise they will only be treated as text. +In order to be able to use these keywords, they must be inside curly braces, otherwise they will only be treated as text. The following keywords are available: Keyword | Description ----------|--------------------------------- -\\#RRGGBB | Change text color (RRGGBB in hex) -\lalign | Alignment left -\ralign | Alignment right -\calign | Alignment center - -**Note** -- If theses keywords are used within the sourcecode they have to be prefixed with two backslashes (one additional for escaping). -- If these keywords are used via the [REST API](https://app.swaggerhub.com/apis/BlueAndi/Pixelix/1.2.0) all unsafe ASCII characters must be replaced by the respective percent encoding (see also [ASCII Encoding Reference](https://www.w3schools.com/tags/ref_urlencode.ASP)). +{#RRGGBB} | Change text color (RRGGBB in hex) +{hl} | Horizontal alignment left +{hc} | Horizontal alignment right +{hr} | Horizontal alignment center +{vt} | Vertical alignment top +{vc} | Vertical alignment center +{vb} | Vertical alignment bottom + +**Notes** +- If these keywords are used via the [REST API](https://app.swaggerhub.com/apis/BlueAndi/Pixelix/1.5.0) all unsafe ASCII characters must be replaced by the respective percent encoding (see also [ASCII Encoding Reference](https://www.w3schools.com/tags/ref_urlencode.ASP)). - The keywords can be combined. **Examples** -Sourcecode | URL | Result -----------|--------------------|------------- -\\\lalign\\\\#ff0000Hi! | %5Clalign%23ff0000Hi! | IHi!        I -\\\calign\\#ff0000Hi! | %5Ccalign%23ff0000Hi! | I    Hi!    I -\\\ralign\\#ff0000Hi! | %5Cralign%23ff0000Hi!| I        Hi!I +Sourcecode | URL | Result +-----------------|-------------------|------------- +{hl}{#ff0000}Hi! | %7Bcl%7Dff0000Hi! | IHi!        I +{hc}{#ff0000}Hi! | %7Bhc%7Dff0000Hi! | I    Hi!    I +{hr}{#ff0000}Hi! | %7Bhr%7Dff0000Hi! | I        Hi!I ## The display only shows a error code, like "E4". What does that mean? @@ -222,9 +236,12 @@ This is a low level error code. Please have a look into the following table. | E5 | The display manager didn't start up. | | E6 | The system message handler didn't start up. | | E7 | The update manager didn't start up. | +| E8 | One of the services failed to start. | ## How can I use animated icons? -Upload **first** the bitmap texture image (.bmp) and **afterwards** the sprite sheet file (.sprite). See the details [here](./doc/SPRITESHEET.md). The order is important, because if a bitmap is uploaded, it is assumed that an existing spritesheet is obsolete and will be removed. +Use animated GIF images to get animated icons. The sprite sheet support (< v8.0.0) was replaced with the GIF images. + +If you like to create animated GIFs by yourself, the [Piskel](https://www.piskelapp.com/) editor is recommended. Piskel is a free online editor for animated sprites & pixel art. ## How do I know that my sensor is recognized? @@ -298,7 +315,8 @@ build_flags = | Library | Description | License | | - | - | - | -| [Arduino](https://github.com/platformio/platform-espressif32) | ESP32 Arduino framework | Apache-2.0 | +| [Arduino](https://github.com/platformio/platform-espressif32) | ESP32 Arduino framework v2.x.x | Apache-2.0 | +| [PlatformIO](https://platformio.org) | PlatformIO is a cross-platform, cross-architecture, multiple framework, professional tool for embedded systems engineers and for software developers who write applications for embedded products. | Apache-2.0 | | [NeoPixelBus](https://github.com/Makuna/NeoPixelBus) | Controlling the LED matrix with hardware support (I2S) | LGPL-3.0 | | [ESPAsyncWebServer](https://github.com/me-no-dev/ESPAsyncWebServer) | Webserver | LGPL-2.1 | | [AsyncTCPSock](https://github.com/yubox-node-org/AsyncTCPSock) | TCP library, Reimplementation of the API of me-no-dev/AsyncTCP using high-level BSD sockets | MIT | diff --git a/config/board.ini b/config/board.ini index c0686a52..9b86a1bb 100644 --- a/config/board.ini +++ b/config/board.ini @@ -1,7 +1,7 @@ ; ******************************************************************************** ; Adafruit ESP32 Feather V2 - LED matrix ; ******************************************************************************** -[board:adafruit_feather_esp32_v2] +[board:adafruit_feather_esp32_v2-LED-32x8] extends = mcu:esp32, display:led_matrix_column_major_alternating, config:normal board = adafruit_feather_esp32_v2 board_build.partitions = default_8MB.csv @@ -31,6 +31,11 @@ build_flags = -D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout -D CONFIG_SUPPLY_CURRENT=3500U -D CONFIG_RTC=0 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=0 lib_deps = ${mcu:esp32.lib_deps_builtin} ${mcu:esp32.lib_deps_external} @@ -46,13 +51,65 @@ extra_scripts = ${config:normal.extra_scripts} pre:./scripts/get_git_rev.py +; ******************************************************************************** +; Adafruit MatrixPortal S3 - HUB75 panel +; https://learn.adafruit.com/adafruit-matrixportal-s3 +; https://github.com/adafruit/Adafruit-MatrixPortal-S3-PCB +; ******************************************************************************** +[board:adafruit_matrixportal_s3-HUB75-64x64] +extends = mcu:esp32, display:hub75-adafruit-matrixportal-esp32s3, config:normal +board = adafruit_matrixportal_esp32s3 +board_build.filesystem = littlefs +build_flags = + ${mcu:esp32.build_flags} + ${display:hub75-adafruit-matrixportal-esp32s3.build_flags} + ${config:normal.build_flags} + -D CONFIG_PIN_ONBOARD_LED=LED_BUILTIN + -D CONFIG_PIN_BUTTON_OK=IoPin::NC + -D CONFIG_PIN_BUTTON_LEFT=6U + -D CONFIG_PIN_BUTTON_RIGHT=7U + -D CONFIG_PIN_DHT_IN=IoPin::NC + -D CONFIG_PIN_I2C_SDA=16U + -D CONFIG_PIN_I2C_SCL=17U + -D CONFIG_PIN_TEST=IoPin::NC + -D CONFIG_PIN_I2S_WS=IoPin::NC + -D CONFIG_PIN_I2S_SC=IoPin::NC + -D CONFIG_PIN_I2S_DI=IoPin::NC + -D CONFIG_PIN_LDR_IN=5U + -D CONFIG_PIN_BATTERY_IN=IoPin::NC + -D CONFIG_PIN_BUZZER_OUT=IoPin::NC + -D CONFIG_SENSOR_LDR=SensorLdr::LDR_TYPE_GL5528 + -D CONFIG_SENSOR_LDR_SERIES_RESISTANCE=10000.0F + -D CONFIG_BUTTON_CTRL=2 + -D CONFIG_SUPPLY_CURRENT=3500U + -D CONFIG_RTC=0 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=0 +lib_deps = + ${mcu:esp32.lib_deps_builtin} + ${mcu:esp32.lib_deps_external} + ${display:hub75-adafruit-matrixportal-esp32s3.lib_deps_builtin} + ${display:hub75-adafruit-matrixportal-esp32s3.lib_deps_external} + ${config:normal.lib_deps} +lib_ignore = + ${mcu:esp32.lib_ignore_builtin} + ${mcu:esp32.lib_ignore_external} + ${display:hub75-adafruit-matrixportal-esp32s3.lib_ignore_builtin} + ${display:hub75-adafruit-matrixportal-esp32s3.lib_ignore_external} +extra_scripts = + ${config:normal.extra_scripts} + pre:./scripts/get_git_rev.py + ; ******************************************************************************** ; AZ-Delivery ESP-32 Dev Kit C V4 - LED matrix ; ******************************************************************************** -[board:az-delivery-devkit-v4] +[board:az-delivery-devkit-v4-LED-32x8] extends = mcu:esp32, display:led_matrix_column_major_alternating, config:small board = az-delivery-devkit-v4 -board_build.partitions = ./partitionTables/custom_4MB.csv +board_build.partitions = ./partitionTables/custom_4MB_no_coredump.csv board_build.filesystem = littlefs build_flags = ${mcu:esp32.build_flags} @@ -79,6 +136,11 @@ build_flags = -D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout -D CONFIG_SUPPLY_CURRENT=3500U -D CONFIG_RTC=0 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=0 lib_deps = ${mcu:esp32.lib_deps_builtin} ${mcu:esp32.lib_deps_external} @@ -97,10 +159,10 @@ extra_scripts = ; ******************************************************************************** ; ESP32 DevKit v1 - LED matrix ; ******************************************************************************** -[board:esp32doit-devkit-v1] +[board:esp32doit-devkit-v1-LED-32x8] extends = mcu:esp32, display:led_matrix_column_major_alternating, config:small board = esp32doit-devkit-v1 -board_build.partitions = ./partitionTables/custom_4MB.csv +board_build.partitions = ./partitionTables/custom_4MB_no_coredump.csv board_build.filesystem = littlefs build_flags = ${mcu:esp32.build_flags} @@ -127,6 +189,11 @@ build_flags = -D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout -D CONFIG_SUPPLY_CURRENT=3500U -D CONFIG_RTC=0 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=0 lib_deps = ${mcu:esp32.lib_deps_builtin} ${mcu:esp32.lib_deps_external} @@ -142,13 +209,180 @@ extra_scripts = ${config:small.extra_scripts} pre:./scripts/get_git_rev.py +; ******************************************************************************** +; ESP32 DevKit v1 - HUB75 panel +; ******************************************************************************** +[board:esp32doit-devkit-v1-HUB75-64x64] +extends = mcu:esp32, display:hub75-esp32, config:tiny +board = esp32doit-devkit-v1 +board_build.partitions = ./partitionTables/custom_4MB_no_coredump.csv +board_build.filesystem = littlefs +build_flags = + ${mcu:esp32.build_flags} + ${display:hub75-esp32.build_flags} + ${config:tiny.build_flags} + -D CONFIG_PIN_ONBOARD_LED=LED_BUILTIN + -D CONFIG_PIN_BUTTON_OK=0U + -D CONFIG_PIN_BUTTON_LEFT=IoPin::NC + -D CONFIG_PIN_BUTTON_RIGHT=IoPin::NC + -D CONFIG_PIN_DHT_IN=IoPin::NC + -D CONFIG_PIN_I2C_SDA=21U + -D CONFIG_PIN_I2C_SCL=22U + -D CONFIG_PIN_TEST=IoPin::NC + -D CONFIG_PIN_I2S_WS=IoPin::NC + -D CONFIG_PIN_I2S_SC=IoPin::NC + -D CONFIG_PIN_I2S_DI=IoPin::NC + -D CONFIG_PIN_LDR_IN=34U + -D CONFIG_PIN_BATTERY_IN=IoPin::NC + -D CONFIG_PIN_BUZZER_OUT=IoPin::NC + -D CONFIG_SENSOR_LDR=SensorLdr::LDR_TYPE_GL5528 + -D CONFIG_SENSOR_LDR_SERIES_RESISTANCE=1000.0F + -D CONFIG_BUTTON_CTRL=1 + -D CONFIG_SUPPLY_CURRENT=3500U + -D CONFIG_RTC=0 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=0 +lib_deps = + ${mcu:esp32.lib_deps_builtin} + ${mcu:esp32.lib_deps_external} + ${display:hub75-esp32.lib_deps_builtin} + ${display:hub75-esp32.lib_deps_external} + ${config:tiny.lib_deps} +lib_ignore = + ${mcu:esp32.lib_ignore_builtin} + ${mcu:esp32.lib_ignore_external} + ${display:hub75-esp32.lib_ignore_builtin} + ${display:hub75-esp32.lib_ignore_external} +extra_scripts = + ${config:tiny.extra_scripts} + pre:./scripts/get_git_rev.py + +; ******************************************************************************** +; ESP32-S3 DevKitC-1-N16R8V - LED matrix +; https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html +; ******************************************************************************** +[board:esp32-s3-devkitc-1-n16r8v-LED-32x8] +extends = mcu:esp32, display:led_matrix_column_major_alternating, config:normal +board = esp32-s3-devkitc-1 +board_name = "ESP32-S3 DevKitC-1-N16R8V" +board_build.partitions = default_16MB.csv +board_build.filesystem = littlefs +board_upload.flash_size = 16MB +board_build.arduino.memory_type = qio_opi +build_flags = + ${mcu:esp32.build_flags} + ${display:led_matrix_column_major_alternating.build_flags} + ${config:normal.build_flags} + -D BOARD_HAS_PSRAM + -D CONFIG_PIN_ONBOARD_LED=IoPin::NC + -D CONFIG_PIN_BUTTON_OK=4U + -D CONFIG_PIN_BUTTON_LEFT=IoPin::NC + -D CONFIG_PIN_BUTTON_RIGHT=IoPin::NC + -D CONFIG_PIN_DHT_IN=5U + -D CONFIG_PIN_I2C_SDA=8U + -D CONFIG_PIN_I2C_SCL=9U + -D CONFIG_PIN_TEST=IoPin::NC + -D CONFIG_PIN_I2S_WS=10U + -D CONFIG_PIN_I2S_SC=12U + -D CONFIG_PIN_I2S_DI=13U + -D CONFIG_PIN_LED_MATRIX_OUT=47U + -D CONFIG_PIN_LDR_IN=6U + -D CONFIG_PIN_BATTERY_IN=IoPin::NC + -D CONFIG_PIN_BUZZER_OUT=IoPin::NC + -D CONFIG_SENSOR_LDR=SensorLdr::LDR_TYPE_GL5528 + -D CONFIG_SENSOR_LDR_SERIES_RESISTANCE=1000.0F + -D CONFIG_BUTTON_CTRL=1 + -D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout + -D CONFIG_SUPPLY_CURRENT=3500U + -D CONFIG_RTC=0 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=0 +lib_deps = + ${mcu:esp32.lib_deps_builtin} + ${mcu:esp32.lib_deps_external} + ${display:led_matrix_column_major_alternating.lib_deps_builtin} + ${display:led_matrix_column_major_alternating.lib_deps_external} + ${config:normal.lib_deps} +lib_ignore = + ${mcu:esp32.lib_ignore_builtin} + ${mcu:esp32.lib_ignore_external} + ${display:led_matrix_column_major_alternating.lib_ignore_builtin} + ${display:led_matrix_column_major_alternating.lib_ignore_external} +extra_scripts = + ${config:normal.extra_scripts} + pre:./scripts/get_git_rev.py + +; ******************************************************************************** +; ESP32-S3 DevKitC-1-N16R8V - LED matrix +; https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html +; ******************************************************************************** +[board:esp32-s3-devkitc-1-n16r8v-LED-32x16] +extends = mcu:esp32, display:led_matrix_32x16_column_major_alternating, config:normal +board = esp32-s3-devkitc-1 +board_name = "ESP32-S3 DevKitC-1-N16R8V" +board_build.partitions = default_16MB.csv +board_build.filesystem = littlefs +board_upload.flash_size = 16MB +board_build.arduino.memory_type = qio_opi +build_flags = + ${mcu:esp32.build_flags} + ${display:led_matrix_32x16_column_major_alternating.build_flags} + ${config:normal.build_flags} + -D BOARD_HAS_PSRAM + -D CONFIG_PIN_ONBOARD_LED=IoPin::NC + -D CONFIG_PIN_BUTTON_OK=4U + -D CONFIG_PIN_BUTTON_LEFT=IoPin::NC + -D CONFIG_PIN_BUTTON_RIGHT=IoPin::NC + -D CONFIG_PIN_DHT_IN=5U + -D CONFIG_PIN_I2C_SDA=8U + -D CONFIG_PIN_I2C_SCL=9U + -D CONFIG_PIN_TEST=IoPin::NC + -D CONFIG_PIN_I2S_WS=10U + -D CONFIG_PIN_I2S_SC=12U + -D CONFIG_PIN_I2S_DI=13U + -D CONFIG_PIN_LED_MATRIX_OUT=47U + -D CONFIG_PIN_LDR_IN=6U + -D CONFIG_PIN_BATTERY_IN=IoPin::NC + -D CONFIG_PIN_BUZZER_OUT=IoPin::NC + -D CONFIG_SENSOR_LDR=SensorLdr::LDR_TYPE_GL5528 + -D CONFIG_SENSOR_LDR_SERIES_RESISTANCE=1000.0F + -D CONFIG_BUTTON_CTRL=1 + -D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout + -D CONFIG_SUPPLY_CURRENT=3500U + -D CONFIG_RTC=0 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=0 +lib_deps = + ${mcu:esp32.lib_deps_builtin} + ${mcu:esp32.lib_deps_external} + ${display:led_matrix_32x16_column_major_alternating.lib_deps_builtin} + ${display:led_matrix_32x16_column_major_alternating.lib_deps_external} + ${config:normal.lib_deps} +lib_ignore = + ${mcu:esp32.lib_ignore_builtin} + ${mcu:esp32.lib_ignore_external} + ${display:led_matrix_32x16_column_major_alternating.lib_ignore_builtin} + ${display:led_matrix_32x16_column_major_alternating.lib_ignore_external} +extra_scripts = + ${config:normal.extra_scripts} + pre:./scripts/get_git_rev.py + ; ******************************************************************************** ; ESP32 NodeMCU - LED matrix ; ******************************************************************************** -[board:esp32-nodemcu] +[board:esp32-nodemcu-LED-32x8] extends = mcu:esp32, display:led_matrix_column_major_alternating, config:small board = nodemcu-32s -board_build.partitions = ./partitionTables/custom_4MB.csv +board_build.partitions = ./partitionTables/custom_4MB_no_coredump.csv board_build.filesystem = littlefs build_flags = ${mcu:esp32.build_flags} @@ -175,6 +409,11 @@ build_flags = -D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout -D CONFIG_SUPPLY_CURRENT=3500U -D CONFIG_RTC=0 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=0 lib_deps = ${mcu:esp32.lib_deps_builtin} ${mcu:esp32.lib_deps_external} @@ -193,7 +432,7 @@ extra_scripts = ; ******************************************************************************** ; LILYGO(R) TTGO T-Display ESP32 WiFi and Bluetooth Module Development Board ; ******************************************************************************** -[board:lilygo-ttgo-t-display] +[board:lilygo-ttgo-t-display-TFT-32x8] extends = mcu:esp32, display:lilygo_ttgo_tdisplay, config:normal board = nodemcu-32s board_name = "Lilygo(R) TTGO T-Display" @@ -223,6 +462,11 @@ build_flags = -D CONFIG_SENSOR_LDR_SERIES_RESISTANCE=1000.0F -D CONFIG_BUTTON_CTRL=1 -D CONFIG_RTC=0 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=0 lib_deps = ${mcu:esp32.lib_deps_builtin} ${mcu:esp32.lib_deps_external} @@ -244,7 +488,7 @@ extra_scripts = ; USB CDC: https://docs.espressif.com/projects/arduino-esp32/en/latest/api/usb_cdc.html ; USB CDC On Boot: https://docs.espressif.com/projects/arduino-esp32/en/latest/tutorials/cdc_dfu_flash.html#usb-cdc ; ******************************************************************************** -[board:lilygo-t-display-s3] +[board:lilygo-t-display-s3-TFT-32x8] extends = mcu:esp32, display:lilygo_tdisplay-s3, config:normal board = lilygo-t-display-s3 board_build.partitions = default_16MB.csv @@ -272,6 +516,11 @@ build_flags = -D CONFIG_SENSOR_LDR_SERIES_RESISTANCE=1000.0F -D CONFIG_BUTTON_CTRL=2 -D CONFIG_RTC=0 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=0 lib_deps = ${mcu:esp32.lib_deps_builtin} ${mcu:esp32.lib_deps_external} @@ -290,7 +539,7 @@ extra_scripts = ; ******************************************************************************** ; M5Stack Core ESP32 WiFi and Bluetooth Module Development Board ; ******************************************************************************** -[board:m5stack_core] +[board:m5stack_core-TFT-32x8] extends = mcu:esp32, display:m5stack_core, config:normal board = m5stack-grey board_build.partitions = default_16MB.csv @@ -318,6 +567,11 @@ build_flags = -D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout -D CONFIG_SUPPLY_CURRENT=3500U -D CONFIG_RTC=0 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=0 lib_deps = ${mcu:esp32.lib_deps_builtin} ${mcu:esp32.lib_deps_external} @@ -336,10 +590,10 @@ extra_scripts = ; ******************************************************************************** ; Ulanzi TC001 - LED matrix ; ******************************************************************************** -[board:ulanzi-tc001] +[board:ulanzi-tc001-LED-32x8] extends = mcu:esp32, display:led_matrix_row_major_alternating, config:smallUlanzi board = esp32dev -board_build.partitions = ./partitionTables/custom_4MB.csv +board_build.partitions = ./partitionTables/custom_4MB_no_coredump.csv board_build.filesystem = littlefs build_flags = ${mcu:esp32.build_flags} @@ -365,11 +619,21 @@ build_flags = -D CONFIG_BUTTON_CTRL=3 -D CONFIG_SUPPLY_CURRENT=800U -D CONFIG_RTC=1 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=0 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=1 lib_deps = ${mcu:esp32.lib_deps_builtin} ${mcu:esp32.lib_deps_external} ${display:led_matrix_row_major_alternating.lib_deps_builtin} ${display:led_matrix_row_major_alternating.lib_deps_external} + SPI + Adafruit/Adafruit BusIO @ ~1.14.1 + Adafruit/RTClib @ ~2.1.1 + Rtc1307 + Sensors ${config:smallUlanzi.lib_deps} lib_ignore = ${mcu:esp32.lib_ignore_builtin} @@ -383,10 +647,10 @@ extra_scripts = ; ******************************************************************************** ; WEMOS Lolin S2 Mini - LED matrix ; ******************************************************************************** -[board:wemos_lolin_s2_mini] +[board:wemos_lolin_s2_mini-LED-32x8] extends = mcu:esp32, display:led_matrix_column_major_alternating, config:smallNoI2s board = lolin_s2_mini -board_build.partitions = ./partitionTables/custom_4MB.csv +board_build.partitions = ./partitionTables/custom_4MB_no_coredump.csv board_build.filesystem = littlefs build_flags = ${mcu:esp32.build_flags} @@ -415,6 +679,11 @@ build_flags = -D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout -D CONFIG_SUPPLY_CURRENT=3500U -D CONFIG_RTC=0 + -D CONFIG_SENSOR_LDR_ENABLE=1 + -D CONFIG_SENSOR_SHT3X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_ENABLE=1 + -D CONFIG_SENSOR_DHT_X_TYPE=SensorDhtX::MODEL_DHT11 + -D CONFIG_SENSOR_BATTERY_ENABLE=0 lib_deps = ${mcu:esp32.lib_deps_builtin} ${mcu:esp32.lib_deps_external} diff --git a/config/buildMode.ini b/config/buildMode.ini index 1af1bee1..5bf1522d 100644 --- a/config/buildMode.ini +++ b/config/buildMode.ini @@ -11,6 +11,7 @@ build_flags = -D LOG_TRACE_ENABLE=0 -D CONFIG_LOG_SEVERITY=Logging::LOG_LEVEL_DEBUG -D CONFIG_ESP_LOG_SEVERITY=ESP_LOG_DEBUG + ;-D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG [mode:release] build_flags = @@ -19,6 +20,7 @@ build_flags = -D LOG_TRACE_ENABLE=0 -D CONFIG_LOG_SEVERITY=Logging::LOG_LEVEL_INFO -D CONFIG_ESP_LOG_SEVERITY=ESP_LOG_INFO + ;-D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_INFO [mode:trace] build_flags = @@ -27,3 +29,4 @@ build_flags = -D LOG_TRACE_ENABLE=1 -D CONFIG_LOG_SEVERITY=Logging::LOG_LEVEL_TRACE -D CONFIG_ESP_LOG_SEVERITY=ESP_LOG_VERBOSE + ;-D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_VERBOSE diff --git a/config/configNormal.ini b/config/configNormal.ini index b6f3ecea..264ecd5c 100644 --- a/config/configNormal.ini +++ b/config/configNormal.ini @@ -3,13 +3,16 @@ build_flags = -D CONFIG_FEATURE_IPERF=1 lib_deps = + # ********** Libraries which requires the HAL (Board) ********** + Sensors # ********** Features ********** Iperf @ ~0.1.0 - # ********** Services ********** - TopicHandlerService @ ~0.1.0 # Mandatory, can not be removed. + # ********** Services (keep the order) ********** SettingsService @ ~0.1.0 # Mandatory, can not be removed. - AudioService @ ~0.1.0 MqttService @ ~0.1.0 + TopicHandlerService @ ~0.1.0 # Mandatory, can not be removed. + FileMgrService @ ~0.1.0 # Mandatory, can not be removed. + AudioService @ ~0.1.0 # ********** Topic handlers ********** RestApiTopicHandler @ ~0.1.0 # Mandatory, can not be removed. Used by webinterface. MqttApiTopicHandler @ ~0.1.0 # Requires MqttService @@ -28,6 +31,7 @@ lib_deps = IconTextPlugin @ ~0.1.0 JustTextPlugin @ ~0.1.0 MatrixPlugin @ ~0.1.0 + MultiIconPlugin @ ~0.1.0 OpenWeatherPlugin @ ~0.1.0 RainbowPlugin @ ~0.1.0 SensorPlugin @ ~0.1.0 @@ -36,7 +40,6 @@ lib_deps = SunrisePlugin @ ~0.1.0 SysMsgPlugin @ ~0.1.0 # Mandatory, can not be removed. TempHumidPlugin @ ~0.1.0 - ThreeIconPlugin @ ~0.1.0 VolumioPlugin @ ~0.1.0 WifiStatusPlugin @ ~0.1.0 WormPlugin @ ~0.1.0 diff --git a/config/configSmall.ini b/config/configSmall.ini index 44942e92..c69e6c35 100644 --- a/config/configSmall.ini +++ b/config/configSmall.ini @@ -3,19 +3,22 @@ build_flags = -D CONFIG_FEATURE_IPERF=0 lib_deps = + # ********** Libraries which requires the HAL (Board) ********** + Sensors # ********** Features ********** ;Iperf @ ~0.1.0 - # Services - TopicHandlerService @ ~0.1.0 # Mandatory, can not be removed. + # ********** Services (keep the order) ********** SettingsService @ ~0.1.0 # Mandatory, can not be removed. - ;AudioService @ ~0.1.0 ;MqttService @ ~0.1.0 + TopicHandlerService @ ~0.1.0 # Mandatory, can not be removed. + FileMgrService @ ~0.1.0 # Mandatory, can not be removed. + ;AudioService @ ~0.1.0 # ********** Topic handlers ********** RestApiTopicHandler @ ~0.1.0 # Mandatory, can not be removed. Used by webinterface. ;MqttApiTopicHandler @ ~0.1.0 # Requires MqttService # ********** Plugins ********** ;BatteryPlugin @ ~0.1.0 - BTCQuotePlugin @ ~0.1.0 + ;BTCQuotePlugin @ ~0.1.0 CountdownPlugin @ ~0.1.0 DateTimePlugin @ ~0.1.0 ;DDPPlugin @ ~0.1.0 @@ -28,6 +31,7 @@ lib_deps = IconTextPlugin @ ~0.1.0 JustTextPlugin @ ~0.1.0 MatrixPlugin @ ~0.1.0 + MultiIconPlugin @ ~0.1.0 OpenWeatherPlugin @ ~0.1.0 ;RainbowPlugin @ ~0.1.0 SensorPlugin @ ~0.1.0 @@ -36,8 +40,7 @@ lib_deps = SunrisePlugin @ ~0.1.0 SysMsgPlugin @ ~0.1.0 # Mandatory, can not be removed. TempHumidPlugin @ ~0.1.0 - ThreeIconPlugin @ ~0.1.0 - VolumioPlugin @ ~0.1.0 + ;VolumioPlugin @ ~0.1.0 WifiStatusPlugin @ ~0.1.0 WormPlugin @ ~0.1.0 extra_scripts = diff --git a/config/configSmallNoI2s.ini b/config/configSmallNoI2s.ini index 5cb124db..e40fb047 100644 --- a/config/configSmallNoI2s.ini +++ b/config/configSmallNoI2s.ini @@ -3,13 +3,16 @@ build_flags = -D CONFIG_FEATURE_IPERF=0 lib_deps = + # ********** Libraries which requires the HAL (Board) ********** + Sensors # ********** Features ********** ;Iperf @ ~0.1.0 - # Services - TopicHandlerService @ ~0.1.0 # Mandatory, can not be removed. + # ********** Services (keep the order) ********** SettingsService @ ~0.1.0 # Mandatory, can not be removed. - ;AudioService @ ~0.1.0 # No I2S interface available ;MqttService @ ~0.1.0 + TopicHandlerService @ ~0.1.0 # Mandatory, can not be removed. + FileMgrService @ ~0.1.0 # Mandatory, can not be removed. + ;AudioService @ ~0.1.0 # ********** Topic handlers ********** RestApiTopicHandler @ ~0.1.0 # Mandatory, can not be removed. Used by webinterface. ;MqttApiTopicHandler @ ~0.1.0 # Requires MqttService @@ -24,10 +27,11 @@ lib_deps = ;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 + MultiIconPlugin @ ~0.1.0 OpenWeatherPlugin @ ~0.1.0 ;RainbowPlugin @ ~0.1.0 SensorPlugin @ ~0.1.0 @@ -36,7 +40,6 @@ lib_deps = SunrisePlugin @ ~0.1.0 SysMsgPlugin @ ~0.1.0 # Mandatory, can not be removed. TempHumidPlugin @ ~0.1.0 - ThreeIconPlugin @ ~0.1.0 ;VolumioPlugin @ ~0.1.0 ;WifiStatusPlugin @ ~0.1.0 WormPlugin @ ~0.1.0 diff --git a/config/configSmallUlanzi.ini b/config/configSmallUlanzi.ini index 7b326c9f..f3cc5705 100644 --- a/config/configSmallUlanzi.ini +++ b/config/configSmallUlanzi.ini @@ -3,13 +3,16 @@ build_flags = -D CONFIG_FEATURE_IPERF=0 lib_deps = + # ********** Libraries which requires the HAL (Board) ********** + Sensors # ********** Features ********** ;Iperf @ ~0.1.0 - # Services - TopicHandlerService @ ~0.1.0 # Mandatory, can not be removed. + # ********** Services (keep the order) ********** SettingsService @ ~0.1.0 # Mandatory, can not be removed. - ;AudioService @ ~0.1.0 # No I2S interface available MqttService @ ~0.1.0 + TopicHandlerService @ ~0.1.0 # Mandatory, can not be removed. + FileMgrService @ ~0.1.0 # Mandatory, can not be removed. + ;AudioService @ ~0.1.0 # ********** Topic handlers ********** RestApiTopicHandler @ ~0.1.0 # Mandatory, can not be removed. Used by webinterface. MqttApiTopicHandler @ ~0.1.0 # Requires MqttService @@ -20,23 +23,23 @@ lib_deps = DateTimePlugin @ ~0.1.0 ;DDPPlugin @ ~0.1.0 ;FirePlugin @ ~0.1.0 - GameOfLifePlugin @ ~0.1.0 + ;GameOfLifePlugin @ ~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 + ;MatrixPlugin @ ~0.1.0 + ;MultiIconPlugin @ ~0.1.0 OpenWeatherPlugin @ ~0.1.0 ;RainbowPlugin @ ~0.1.0 ;SensorPlugin @ ~0.1.0 ;SignalDetectorPlugin @ ~0.1.0 # Requires AudioService ;SoundReactivePlugin @ ~0.1.0 # Requires AudioService - SunrisePlugin @ ~0.1.0 + ;SunrisePlugin @ ~0.1.0 SysMsgPlugin @ ~0.1.0 # Mandatory, can not be removed. TempHumidPlugin @ ~0.1.0 - ;ThreeIconPlugin @ ~0.1.0 ;VolumioPlugin @ ~0.1.0 ;WifiStatusPlugin @ ~0.1.0 ;WormPlugin @ ~0.1.0 diff --git a/config/configTiny.ini b/config/configTiny.ini new file mode 100644 index 00000000..f7d05d35 --- /dev/null +++ b/config/configTiny.ini @@ -0,0 +1,47 @@ +; Configuration for development boards with a maximum of 4 MB flash, but because of HAL with less program space. +[config:tiny] +build_flags = + -D CONFIG_FEATURE_IPERF=0 +lib_deps = + # ********** Libraries which requires the HAL (Board) ********** + Sensors + # ********** Features ********** + ;Iperf @ ~0.1.0 + # ********** Services (keep the order) ********** + SettingsService @ ~0.1.0 # Mandatory, can not be removed. + FileMgrService @ ~0.1.0 # Mandatory, can not be removed. + ;MqttService @ ~0.1.0 + TopicHandlerService @ ~0.1.0 # Mandatory, can not be removed. + ;AudioService @ ~0.1.0 + # ********** Topic handlers ********** + RestApiTopicHandler @ ~0.1.0 # Mandatory, can not be removed. Used by webinterface. + ;MqttApiTopicHandler @ ~0.1.0 # Requires MqttService + # ********** Plugins ********** + ;BatteryPlugin @ ~0.1.0 + ;BTCQuotePlugin @ ~0.1.0 + ;CountdownPlugin @ ~0.1.0 + DateTimePlugin @ ~0.1.0 + ;DDPPlugin @ ~0.1.0 + ;FirePlugin @ ~0.1.0 + ;GameOfLifePlugin @ ~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 + MultiIconPlugin @ ~0.1.0 + OpenWeatherPlugin @ ~0.1.0 + ;RainbowPlugin @ ~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 + ;VolumioPlugin @ ~0.1.0 + ;WifiStatusPlugin @ ~0.1.0 + ;WormPlugin @ ~0.1.0 +extra_scripts = + pre:./scripts/configure_small_tiny.py diff --git a/config/display.ini b/config/display.ini index 33f40728..d9a5d1c0 100644 --- a/config/display.ini +++ b/config/display.ini @@ -3,7 +3,81 @@ ; ******************************************************************************** [display:common] build_flags = - -D CONFIG_DISPLAY_ROTATE180=0 ; set to 1 to rotate display 180° + -D CONFIG_DISPLAY_ROTATE180=0 ; set to 1 to rotate display 180° + +; ******************************************************************************** +; HUB75E panel running on ESP32 I2S/DMA +; See for more details: https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA +; ******************************************************************************** +[display:hub75-esp32] +build_flags = + ${display:common.build_flags} + -D CONFIG_LED_MATRIX_WIDTH=64U + -D CONFIG_LED_MATRIX_HEIGHT=64U + -D CONFIG_HUB75_CHAIN_LENGTH=1U + -D CONFIG_HUB75_DRIVER=HUB75_I2S_CFG::SHIFTREG + -D CONFIG_HUB75_CLOCK_PHASE=true + -D CONFIG_HUB75_PIXEL_COLOR_DEPTH_BITS=8U + -D CONFIG_HUB75_R1_PIN=25 + -D CONFIG_HUB75_G1_PIN=26 + -D CONFIG_HUB75_B1_PIN=27 + -D CONFIG_HUB75_R2_PIN=14 + -D CONFIG_HUB75_G2_PIN=12 + -D CONFIG_HUB75_B2_PIN=13 + -D CONFIG_HUB75_A_PIN=23 + -D CONFIG_HUB75_B_PIN=19 + -D CONFIG_HUB75_C_PIN=5 + -D CONFIG_HUB75_D_PIN=17 + -D CONFIG_HUB75_E_PIN=18 + -D CONFIG_HUB75_LAT_PIN=4 + -D CONFIG_HUB75_OE_PIN=15 + -D CONFIG_HUB75_CLK_PIN=16 + -D NO_GFX=1 + -D S3_LCD_DIV_NUM=20 +lib_deps_builtin = + HalHub75Esp32 +lib_deps_external = +lib_ignore_builtin = + HalLedMatrix + HalTftDisplay +lib_ignore_external = + +; ******************************************************************************** +; HUB75E panel running on Adafruit MatrixPortal ESP32-S3 I2S/DMA +; See for more details: https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA +; ******************************************************************************** +[display:hub75-adafruit-matrixportal-esp32s3] +build_flags = + ${display:common.build_flags} + -D CONFIG_LED_MATRIX_WIDTH=64U + -D CONFIG_LED_MATRIX_HEIGHT=64U + -D CONFIG_HUB75_CHAIN_LENGTH=1U + -D CONFIG_HUB75_DRIVER=HUB75_I2S_CFG::SHIFTREG + -D CONFIG_HUB75_CLOCK_PHASE=false + -D CONFIG_HUB75_PIXEL_COLOR_DEPTH_BITS=8U + -D CONFIG_HUB75_R1_PIN=42 + -D CONFIG_HUB75_G1_PIN=41 + -D CONFIG_HUB75_B1_PIN=40 + -D CONFIG_HUB75_R2_PIN=38 + -D CONFIG_HUB75_G2_PIN=39 + -D CONFIG_HUB75_B2_PIN=37 + -D CONFIG_HUB75_A_PIN=45 + -D CONFIG_HUB75_B_PIN=36 + -D CONFIG_HUB75_C_PIN=48 + -D CONFIG_HUB75_D_PIN=35 + -D CONFIG_HUB75_E_PIN=21 + -D CONFIG_HUB75_LAT_PIN=47 + -D CONFIG_HUB75_OE_PIN=14 + -D CONFIG_HUB75_CLK_PIN=2 + -D NO_GFX=1 + -D S3_LCD_DIV_NUM=20 +lib_deps_builtin = + HalHub75Esp32 +lib_deps_external = +lib_ignore_builtin = + HalLedMatrix + HalTftDisplay +lib_ignore_external = ; ******************************************************************************** ; LED matrix based on WS2812B (neopixels) @@ -17,8 +91,25 @@ build_flags = lib_deps_builtin = HalLedMatrix lib_deps_external = - makuna/NeoPixelBus @ ~2.8.0 lib_ignore_builtin = + HalHub75Esp32 + HalTftDisplay +lib_ignore_external = + +; ******************************************************************************** +; LED matrix 32x16 based on WS2812B (neopixels) +; ******************************************************************************** +[display:led_matrix_32x16_column_major_alternating] +build_flags = + ${display:common.build_flags} + -D CONFIG_LED_MATRIX_WIDTH=32U + -D CONFIG_LED_MATRIX_HEIGHT=16U + -D CONFIG_LED_TOPO=ColumnMajorAlternatingLayout +lib_deps_builtin = + HalLedMatrix +lib_deps_external = +lib_ignore_builtin = + HalHub75Esp32 HalTftDisplay lib_ignore_external = @@ -34,8 +125,8 @@ build_flags = lib_deps_builtin = HalLedMatrix lib_deps_external = - makuna/NeoPixelBus @ ~2.8.0 lib_ignore_builtin = + HalHub75Esp32 HalTftDisplay lib_ignore_external = @@ -47,6 +138,8 @@ lib_ignore_external = [display:lilygo_ttgo_tdisplay] build_flags = ${display:common.build_flags} + -D CONFIG_LED_MATRIX_WIDTH=32U + -D CONFIG_LED_MATRIX_HEIGHT=8U -D USER_SETUP_LOADED=1 -D ST7789_DRIVER -D TFT_WIDTH=135 @@ -63,8 +156,6 @@ build_flags = -D SPI_FREQUENCY=40000000 -D SPI_READ_FREQUENCY=6000000 -D DISABLE_ALL_LIBRARY_WARNINGS - -D TFT_MATRIX_WIDTH=32U - -D TFT_MATRIX_HEIGHT=8U -D TFT_PIXEL_WIDTH=6 -D TFT_PIXEL_HEIGHT=6 -D TFT_PIXEL_DISTANCE=1 @@ -72,8 +163,8 @@ build_flags = lib_deps_builtin = HalTftDisplay lib_deps_external = - bodmer/TFT_eSPI @ ~2.5.31 lib_ignore_builtin = + HalHub75Esp32 HalLedMatrix lib_ignore_external = @@ -84,6 +175,8 @@ lib_ignore_external = [display:lilygo_tdisplay-s3] build_flags = ${display:common.build_flags} + -D CONFIG_LED_MATRIX_WIDTH=32U + -D CONFIG_LED_MATRIX_HEIGHT=8U -D USER_SETUP_LOADED=1 -D ST7789_DRIVER -D TFT_PARALLEL_8_BIT @@ -112,8 +205,6 @@ build_flags = -D SPI_READ_FREQUENCY=2000000 -D SPI_TOUCH_FREQUENCY=2500000 -D DISABLE_ALL_LIBRARY_WARNINGS - -D TFT_MATRIX_WIDTH=32U - -D TFT_MATRIX_HEIGHT=8U -D TFT_PIXEL_WIDTH=8 -D TFT_PIXEL_HEIGHT=8 -D TFT_PIXEL_DISTANCE=1 @@ -121,8 +212,8 @@ build_flags = lib_deps_builtin = HalTftDisplay lib_deps_external = - bodmer/TFT_eSPI @ ~2.5.31 lib_ignore_builtin = + HalHub75Esp32 HalLedMatrix lib_ignore_external = @@ -134,6 +225,8 @@ lib_ignore_external = [display:m5stack_core] build_flags = ${display:common.build_flags} + -D CONFIG_LED_MATRIX_WIDTH=32U + -D CONFIG_LED_MATRIX_HEIGHT=8U -D USER_SETUP_LOADED=1 -D ILI9341_DRIVER -D M5STACK @@ -152,8 +245,6 @@ build_flags = -D SPI_READ_FREQUENCY=5000000 -D TFT_INVERSION_ON -D DISABLE_ALL_LIBRARY_WARNINGS - -D TFT_MATRIX_WIDTH=32U - -D TFT_MATRIX_HEIGHT=8U -D TFT_PIXEL_WIDTH=6 -D TFT_PIXEL_HEIGHT=6 -D TFT_PIXEL_DISTANCE=1 @@ -161,7 +252,7 @@ build_flags = lib_deps_builtin = HalTftDisplay lib_deps_external = - bodmer/TFT_eSPI @ ~2.5.31 lib_ignore_builtin = + HalHub75Esp32 HalLedMatrix lib_ignore_external = diff --git a/config/mcu.ini b/config/mcu.ini index 22339895..af9b47a3 100644 --- a/config/mcu.ini +++ b/config/mcu.ini @@ -2,7 +2,9 @@ ; MCU ESP32 configuration ; ******************************************************************************** [mcu:esp32] -platform = espressif32 @ ~6.4.0 +platform = espressif32 @ ~6.9.0 +platform_packages = + framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#release/v2.x framework = arduino build_flags = -I./src/Common @@ -21,14 +23,19 @@ build_flags = -D PIO_ENV="$PIOENV" -Wl,-Map,firmware.map lib_deps_external = - bblanchon/ArduinoJson @ ~6.21.3 - bblanchon/StreamUtils @ ~1.7.3 - muwerk/mufonts @ ~0.2.0 https://github.com/BlueAndi/AsyncTCPSock#feature/Arduino3.x.x https://github.com/BlueAndi/ESPAsyncWebServer#tilde2 lib_deps_builtin = Wire - LittleFS + FS + WiFi + FadeEffects + StateMachine + WiFiClientSecure + DNSServer + ESPmDNS + Update + ArduinoOTA lib_ignore_external = AsyncTCP lib_ignore_builtin = diff --git a/data/about.html b/data/about.html index fc032ddf..acf5647e 100644 --- a/data/about.html +++ b/data/about.html @@ -1,5 +1,5 @@ - + @@ -19,7 +19,7 @@ PIXELIX -