Install a prebuilt firmware version
Build your own firmware
Add this custom build environment to platformio_override.ini.
Standard WLED (16.0.x) ā MagWLED-1
[env:magwled_1_esp32c3]
extends = env:esp32c3dev
build_flags = ${common.build_flags} ${esp32c3.build_flags} -D WLED_RELEASE_NAME=\"MagWLED_1-ESP32C3\"
-D WLED_WATCHDOG_TIMEOUT=0
-D ARDUINO_USB_CDC_ON_BOOT=1 ;; for virtual CDC USB
-D BTNPIN=9
-D RLYPIN=5
-D I2S_SDPIN=10
-D I2S_WSPIN=8
-D I2S_CKPIN=7
-D MCLK_PIN=-1
-D SERVERNAME="\"MagWLED-1\""
lib_deps = ${env:esp32c3dev.lib_deps}
Standard WLED (0.15.x) ā MagWLED-1
[env:magwled_1_esp32c3]
extends = env:esp32c3dev
build_flags = ${env:esp32c3dev.build_flags}
-D BTNPIN=9
-D RLYPIN=5
-D I2S_SDPIN=10
-D I2S_WSPIN=8
-D I2S_CKPIN=7
-D MCLK_PIN=-1
-D SERVERNAME="\"MagWLED\""
-D WLED_DISABLE_ALEXA
-D ESPHTTPD_SINGLE_REQUEST
lib_deps = ${env:esp32c3dev.lib_deps}
MoonModules
; Mostly carbon copy from esp32c3dev_4MB_M, but inheriting in this config language is messy
[env:c3_magwled]
; Works on commit df55650c84b5affcde4226d963eb207f3773be73
extends = esp32_4MB_V4_S_base
;board_build.flash_mode = dout
platform = ${esp32.platformV4}
platform_packages = ${esp32.platformV4_packages}
board_build.flash_mode = qio
board = esp32-c3-devkitm-1
board_build.partitions = tools/WLED_ESP32_4MB_256KB_FS.csv ;; 1.8MB firmware, 256KB filesystem (esptool
erase_flash needed when changing from "standard WLED" partitions)
upload_speed = 921600
build_unflags = ${common.build_unflags}
-D USERMOD_DALLASTEMPERATURE ;; disabled because it hangs during usermod setup on -S2 (autodetect broken?)
-D USE_ALT_DISPLAY ;; four line display seems to have problems with I2C - it hangs during usermod setup
-D USERMOD_FOUR_LINE_DISPLAY ;; see above
-D USERMOD_ROTARY_ENCODER_UI ;; see above
-D WLED_ENABLE_DMX ;; disabled because it does not work with ESP-IDF 4.4.x (buggy driver in SparkFunDMX)
-D WLED_ENABLE_DMX_INPUT ;; needs more testing
;-D WLED_DEBUG_HOST='"192.168.x.x"' ;; to disable net print
-D USERMOD_ANIMARTRIX ;; Tips our memory usage over the limit
-DWLEDMM_FASTPATH ;; needs more testing on -C3
build_flags = ${common.build_flags} ${esp32c3.build_flags}
-D WLED_WATCHDOG_TIMEOUT=0 -D CONFIG_ASYNC_TCP_USE_WDT=0
${common_mm.build_flags_S} ${common_mm.build_flags_M}
-Wno-misleading-indentation -Wno-format-truncation
-D WLED_RELEASE_NAME=esp32c3dev_4MB_M
-D WLED_DISABLE_ADALIGHT ;; to disable serial protocols for boards with CDC USB (Serial RX will receive junk
commands, unless its pulled down by resistor)
-DARDUINO_USB_CDC_ON_BOOT=0 ;; disable CDC USB
; -D WLEDMM_WIFI_POWERON_HACK -DLOLIN_WIFI_FIX ;; use this _only_ if your device is not able to make a WiFI
connection!
;-D WLED_DISABLE_INFRARED ;; save flash space
;-D WLED_DISABLE_ALEXA ;; save flash space
-D WLEDMM_SAVE_FLASH
; -D LEDPIN=8 ;; onboard neopixel 5x5 Matrix. Attach your own LEDs to GPIO 20
; -D BTNPIN=9
; -D STATUSLED=10 ;; onboard LED
; -D RLYPIN=-1 -D IRPIN=-1
;-D HW_PIN_SDA=0 -D HW_PIN_SCL=1 ;; for I2C Qwiic connector
; -D SR_DMTYPE=1 -D I2S_SDPIN=5 -D I2S_WSPIN=6 -D I2S_CKPIN=4 -D MCLK_PIN=7
; -D WLED_USE_MY_CONFIG
; MagWLED-1 Specific
-D WLED_DISABLE_INFRARED
-D BTNPIN=9
-D RLYPIN=5
-D LEDPIN=2
-D IRPIN=-1
-D SR_DMTYPE=1
-D I2S_SDPIN=10
-D I2S_WSPIN=6
-D I2S_CKPIN=7
-D MCLK_PIN=-1
-D SR_ENABLE_DEFAULT ;; enable audioreactive at first start - no need to manually set "enable", then reboot
-D SERVERNAME='"MagWLED-1"'
Add this custom build environment to platformio_override.ini.
MagWLED-2 is an ESP32-S3 (4MB flash, 2MB PSRAM).
Current sensing uses the INA226 usermod. That work is merged to WLED
main but is not in a tagged WLED release yet.
Building from a stock release tag will not include these INA226 defaults
unless you cherry-pick that usermod (or use a tree that already has it).
Standard WLED (16.0.x) ā MagWLED-2
[env:magwled_2_0_16]
;; ESP32-S3-MINI-1-N4R2: 4MB Flash, 2MB Quad PSRAM
board = lolin_s3_mini
platform = ${esp32s3.platform}
platform_packages = ${esp32s3.platform_packages}
upload_speed = 921600
build_unflags = ${common.build_unflags}
build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME=\"MagWLED-2\"
-DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=1
-DBOARD_HAS_PSRAM
-DLOLIN_WIFI_FIX
-D SERVERNAME="\"MagWLED-2\""
; I2C (Stemma QT)
-D I2CSDAPIN=6 -D I2CSCLPIN=7
; Current sensing (3.073mΩ effective shunt)
-D USERMOD_INA226
-D INA226_ENABLED_DEFAULT=true
-D INA226_SHUNT_MICRO_OHMS=3073
-D INA226_CHECK_INTERVAL_MS=2000
-D INA226_DEFAULT_CURRENT_RANGE=10000
-D INA226_CURRENT_OFFSET_MA=0
; LED defaults
-D DATA_PINS=10,11 -D PIXEL_COUNTS=30,30
-D BTNPIN=0 -D RLYPIN=5
; Audio reactive (TDK T3902 PDM mic: DATA=IO17, CLK=IO18)
-D UM_AUDIOREACTIVE_ENABLE
-D SR_DMTYPE=5 -D I2S_SDPIN=17 -D I2S_WSPIN=18 -D I2S_CKPIN=-1
-D I2S_USE_16BIT_SAMPLES
-D I2S_USE_RIGHT_CHANNEL
${esp32.AR_build_flags}
-D WLED_WATCHDOG_TIMEOUT=0
${esp32.AR_build_flags}
lib_deps = ${esp32s3.lib_deps}
${esp32.AR_lib_deps}
board_build.partitions = ${esp32.default_partitions}
board_build.f_flash = 80000000L
board_build.flash_mode = qio
custom_usermods = audioreactive INA226_V2