IndicatorDisplay drives the 480x480 ST7701S through LovyanGFX's Bus_RGB and Panel_ST7701 on the stock core; the CrowPanel 5.0 drives its RGB panel through the same Bus_RGB. The panel's CS and RESET sit on the TCA9535, so LovyanGFX gets pin_cs/pin_rst = -1 and begin() drives them through IndicatorIo: reset pulse, CS low, lcd.init(), CS high. The bus lock is held from CS low to CS high because the panel's 3-wire init shares GPIO41/48 with the radio SPI, and no other task may move the radio's NSS meanwhile. The second init list is Meshtastic device-ui's Indicator list (GPL-3.0, credited in NOTICE): MADCTL 0x10 and SDIR 0x04 in BK0 flip both axes, and the closing 0xFF,0xFF terminator keeps the colours from coming up inverted. The pixel clock is INDICATOR_PCLK_HZ, 12 MHz by default. The RGB bus reads its frame buffer out of PSRAM continuously and this core has no bounce buffers, so PSRAM bandwidth under Wi-Fi and flash traffic sets the limit, not the panel; 12 MHz leaves margin for that, and the value is a build flag. The backlight is Light_PWM on GPIO45, LEDC channel 7; brightness 0 writes duty 0, so it goes dark. begin() returns false with the backlight off when lcd.init() or any expander write in the sequence fails, since the panel may then have missed its reset or init. UITask keeps driving the backlight through the global display even when begin() failed, so setBrightness() and turnOn() do nothing until the panel has come up; otherwise the first brightness or wake request would light a blank panel. UITask: a 480 px draw band in internal DMA RAM (with LVGL told its full size), because the RGB panel scans its frame buffer out of PSRAM all the time and an internal band makes the flush a single PSRAM write. The resolution is 480x480 with no UI rotation, and the board shares the Wio L2's brightness, screen-sleep and no-keyboard-rotate branches. Signed-off-by: Confituurke <9595028+Confituurke@users.noreply.github.com>
118 lines
5.3 KiB
Plaintext
118 lines
5.3 KiB
Plaintext
wadamesh
|
|
Copyright (c) 2026 Kaj Schittecat and the wadamesh contributors
|
|
|
|
This program is free software: you can redistribute it and/or modify it under
|
|
the terms of the GNU General Public License as published by the Free Software
|
|
Foundation, either version 3 of the License, or (at your option) any later
|
|
version. See the LICENSE file for the full text.
|
|
|
|
================================================================================
|
|
Third-party components and their licenses
|
|
================================================================================
|
|
|
|
wadamesh incorporates and/or depends on the components below. Their own licenses
|
|
are preserved and apply to those portions. MIT and Apache-2.0 are compatible with
|
|
GPL-3.0; the combined work is distributed under GPL-3.0-or-later.
|
|
|
|
MeshCore
|
|
Copyright (c) 2025 Scott Powell / rippleradios.com
|
|
MIT License — https://github.com/meshcore-dev/MeshCore
|
|
wadamesh derives its companion-radio application and core hooks from
|
|
MeshCore. The MeshCore-derived source files retain their MIT license
|
|
notices. The separate MeshCore fork that wadamesh builds against (the
|
|
Wi-Fi/BLE/UI hooks) is published under MIT, not GPL, so those hooks remain
|
|
upstreamable to MeshCore.
|
|
|
|
LVGL
|
|
Copyright (c) LVGL Kft and contributors
|
|
MIT License — https://lvgl.io
|
|
|
|
NimBLE-Arduino
|
|
Copyright (c) h2zero and contributors
|
|
Apache License 2.0 — https://github.com/h2zero/NimBLE-Arduino
|
|
|
|
CayenneLPP
|
|
Copyright (c) Electronic Cats
|
|
MIT License — https://github.com/ElectronicCats/CayenneLPP
|
|
|
|
RadioLib
|
|
Copyright (c) Jan Gromeš
|
|
MIT License — https://github.com/jgromes/RadioLib
|
|
|
|
Noto Color Emoji (emoji glyph artwork, baked to image data)
|
|
Copyright (c) Google, Inc.
|
|
SIL Open Font License 1.1 — https://github.com/googlefonts/noto-emoji
|
|
Used as bundled image data with attribution.
|
|
|
|
Touch UI bitmap fonts (generated LVGL font data)
|
|
Montserrat Project Authors and Noto Project Authors
|
|
SIL Open Font License 1.1 — see src/ui-touch/FONT_LICENSES.md
|
|
Generated reproducibly by scripts/build/gen-touch-fonts.sh from pinned,
|
|
hash-verified Montserrat and Noto font releases.
|
|
|
|
ed25519 (bundled in lib/ed25519)
|
|
Orson Peters / orlp — public domain (Creative Commons Zero / zlib)
|
|
https://github.com/orlp/ed25519
|
|
|
|
minimp3 (bundled in lib/minimp3)
|
|
lieff/minimp3 contributors — CC0 1.0 Universal
|
|
https://github.com/lieff/minimp3
|
|
Pinned at ea99364f61c14656440e8d77e9c233ccf3124633. The bundled header has
|
|
a small opt-in scratch-storage hook so the decoder workspace can live in
|
|
PSRAM; default upstream behavior is unchanged when that hook is not used.
|
|
|
|
AsyncElegantOTA (vendored in arch/esp32/AsyncElegantOTA)
|
|
Copyright (c) Ayush Sharma — MIT License
|
|
|
|
TFT_eSPI (T-LoRa Pager display backend)
|
|
Copyright (c) Bodmer — MIT / FreeBSD License — https://github.com/Bodmer/TFT_eSPI
|
|
|
|
Adafruit GFX / ST7735_ST7789 (T-Deck / Heltec V4 display backend)
|
|
Copyright (c) Adafruit Industries — BSD License
|
|
|
|
chsc6x (Heltec V4 CHSC6x cap-touch driver)
|
|
Quency-D — https://github.com/Quency-D/chsc6x
|
|
|
|
SensorLib (T-LoRa Pager XL9555/BQ27220/AW9364 drivers)
|
|
Copyright (c) Lewis He — MIT License — https://github.com/lewisxhe/SensorLib
|
|
|
|
ES8311 register sequence and clock-divider coefficients (T-LoRa Pager audio
|
|
codec driver, variants/lilygo_tlora_pager/Es8311Codec.cpp; T-Display P4 audio
|
|
driver, variants/tdisplay_p4/P4Audio.cpp)
|
|
Copyright (c) 2023-2026 Espressif Systems (Shanghai) CO LTD
|
|
Apache License 2.0 — https://github.com/espressif/esp-adf-libs and
|
|
https://github.com/espressif/esp-bsp (components/es8311)
|
|
wadamesh's drivers are original code (not copies of esp_codec_dev's
|
|
plugin/HAL architecture) but their ES8311 register addresses, startup/
|
|
power sequences, and MCLK clock-divider coefficients are derived from
|
|
Espressif's public es8311.c/es8311_reg.h; P4Audio.cpp additionally
|
|
re-bases the esp-bsp init flow onto Arduino Wire.
|
|
|
|
ST7701S panel init list (SenseCAP Indicator display driver,
|
|
variants/sensecap_indicator/IndicatorDisplay.cpp)
|
|
Copyright (c) Meshtastic
|
|
GPL-3.0 License — https://github.com/meshtastic/device-ui
|
|
The panel's second init command list (MADCTL vertical flip, SDIR
|
|
horizontal flip) is taken from Meshtastic device-ui's
|
|
include/graphics/LGFX/LGFX_INDICATOR.h (Panel_Indicator::getInitCommands).
|
|
The rest of the driver is original code on LovyanGFX's Panel_ST7701.
|
|
|
|
LovyanGFX (display backend: RAK WisMesh Tap V2, SenseCAP Indicator and others)
|
|
Copyright (c) lovyan03 — FreeBSD License — https://github.com/lovyan03/LovyanGFX
|
|
|
|
Camillia-MT (CrowPanel Advance 3.5 software-SPI microSD backend)
|
|
Copyright (c) 2025-2026 Michael A. Cojocari and contributors
|
|
GNU General Public License v3.0 or later
|
|
Adapted from src/sd_soft_spi.cpp; integrated with WadaMesh's filesystem
|
|
API and concurrent storage consumers.
|
|
|
|
Camillia-MT (CrowPanel Advance 5.0 display, backlight and touch bring-up)
|
|
Copyright (c) 2025-2026 Michael A. Cojocari and contributors
|
|
GNU General Public License v3.0 or later
|
|
The RGB panel configuration, revision detection, backlight controller and
|
|
GT911 reset in variants/crowpanel_50/CrowPanel50Display.cpp are adapted
|
|
from src/hal/crowpanel_50_display.h and src/hal/hw_crowpanel_50.h.
|
|
|
|
This list is not exhaustive and is expanded as dependencies are vendored or
|
|
added.
|