Merge branch 'MoonModules:mdev' into DMX-Input-esp_dmx

This commit is contained in:
netmindz
2023-03-30 19:05:19 +01:00
committed by GitHub
15 changed files with 1729 additions and 1682 deletions

View File

@@ -58,7 +58,7 @@ default_envs =
wemos_shield_esp32_16MB_SPM1423_XL
wemos_shield_esp32_16MB_LineIn_M
esp32_pico_4MB_M
esp32_4MB_PSRAM_M
esp32_4MB_PSRAM_S
esp32S3_8MB_M
esp32s2_tinyUF2_PSRAM_M ;; experimental - only for adafruit -S2 boards with tinyUF2 bootloader !!!
esp32c3dev_4MB_M ;; experimental
@@ -476,7 +476,7 @@ build_flags = ${common.build_flags} ${esp32c3.build_flags} -D WLED_RELEASE_NAME=
-D CONFIG_LITTLEFS_FOR_IDF_3_2 ; WLEDMM
-D WLED_USE_MY_CONFIG ; WLEDMM
; -D USERMOD_AUDIOREACTIVE ; WLEDMM
-D USERMOD_CUSTOMEFFECTS ; WLEDMM
-D USERMOD_ARTIFX ; WLEDMM
upload_speed = 460800
build_unflags = ${common.build_unflags}
lib_deps = ${esp32c3.lib_deps}
@@ -495,7 +495,7 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -D CONFIG_LITTLEFS_F
-D WLED_RELEASE_NAME=ESP32-S3
-D WLED_USE_MY_CONFIG
-D USERMOD_AUDIOREACTIVE
-D USERMOD_CUSTOMEFFECTS
-D USERMOD_ARTIFX
lib_deps = ${esp32s3.lib_deps}
https://github.com/blazoncek/arduinoFFT.git
board_build.partitions = tools/WLED_ESP32_8MB.csv
@@ -612,7 +612,7 @@ build_flags = ${common.build_flags} ${esp32s2.build_flags} -D WLED_RELEASE_NAME
; -D STATUSLED=15
-D WLED_USE_MY_CONFIG
-D USERMOD_AUDIOREACTIVE
-D USERMOD_CUSTOMEFFECTS
-D USERMOD_ARTIFX
lib_deps = ${esp32s2.lib_deps}
https://github.com/blazoncek/arduinoFFT.git
@@ -803,7 +803,7 @@ build_flags_S =
; -D WLED_USE_CIE_BRIGHTNESS_TABLE ;; experimental: use different color / brightness lookup table
-D USERMOD_AUDIOREACTIVE
-D UM_AUDIOREACTIVE_USE_NEW_FFT ; use latest (upstream) FFTLib, instead of older library modified by blazoncek. Slightly faster, more accurate, needs 2KB RAM extra
-D USERMOD_CUSTOMEFFECTS ; WLEDMM usermod
-D USERMOD_ARTIFX ; WLEDMM usermod
; -D WLED_DISABLE_LOXONE
; -D WLED_DISABLE_ALEXA
; -D WLED_DISABLE_HUESYNC
@@ -1064,7 +1064,7 @@ build_flags = ${common.build_flags_esp8266}
-D WLED_DISABLE_HUESYNC
-D WLED_DISABLE_LOXONE
; -D USERMOD_AUDIOREACTIVE
; -D USERMOD_CUSTOMEFFECTS ; to be done
; -D USERMOD_ARTIFX ; to be done
; -UWLED_USE_MY_CONFIG
-D USERMOD_PIRSWITCH
-D USERMOD_DALLASTEMPERATURE ;; disabled because it hangs during usermod setup on -S3 (autodetect broken?)
@@ -1129,7 +1129,7 @@ build_flags = ${common.build_flags_esp8266}
; -D WLED_DEBUG
; -D WLED_DISABLE_2D
; -D USERMOD_AUDIOREACTIVE
; -D USERMOD_CUSTOMEFFECTS ; to be done
; -D USERMOD_ARTIFX ; to be done
; -UWLED_USE_MY_CONFIG
monitor_filters = esp8266_exception_decoder
; RAM: [====== ] 59.3% (used 48616 bytes from 81920 bytes)
@@ -1152,7 +1152,7 @@ build_flags = ${common.build_flags_esp8266}
-D WLED_DISABLE_HUESYNC
-D WLED_DISABLE_LOXONE
; -D USERMOD_AUDIOREACTIVE
; -D USERMOD_CUSTOMEFFECTS ; to be done
; -D USERMOD_ARTIFX ; to be done
-D USERMOD_PIRSWITCH
-D USERMOD_DALLASTEMPERATURE ;; disabled because it hangs during usermod setup on -S3 (autodetect broken?)
-D USERMOD_MULTI_RELAY
@@ -1258,31 +1258,52 @@ monitor_filters = esp32_exception_decoder
; Flash: [======== ] 78.1% (used 1638193 bytes from 2097152 bytes) WLEDMM: Earlier 76.9
;; experimental environment for boards with PSRAM (needs ESP-IDF 4.4.1).
[env:esp32_4MB_PSRAM_M]
extends = esp32_4MB_V4_M_base
[env:esp32_4MB_PSRAM_S]
extends = esp32_4MB_V4_S_base
board = lolin_d32_pro
;board = esp32cam
build_flags = ${esp32_4MB_V4_M_base.build_flags}
-D WLED_RELEASE_NAME=esp32_4MB_PSRAM_M
build_flags = ${esp32_4MB_V4_S_base.build_flags}
-D WLED_RELEASE_NAME=esp32_4MB_PSRAM_S
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
-D ARDUINO_USB_CDC_ON_BOOT=0 ; needed for arduino-esp32 >=2.0.4; avoids errors on startup
-D WLED_USE_PSRAM
; RAM: [== ] 24.8% (used 81424 bytes from 327680 bytes)
; Flash: [==========] 99.8% (used 1570457 bytes from 1572864 bytes)
; 99.8% !!!!
-D WLED_DISABLE_LOXONE ; FLASH 1272 bytes
-D WLED_DISABLE_ALEXA ; RAM 116 bytes; FLASH 13524 bytes
-D WLED_DISABLE_MQTT ; RAM 216 bytes; FLASH 16496 bytes
-D WLED_DISABLE_HUESYNC ;RAM 122 bytes; FLASH 6308 bytes
; RAM: [== ] 24.7% (used 80948 bytes from 327680 bytes)
; Flash: [==========] 97.4% (used 1532485 bytes from 1572864 bytes)
-D WLED_USE_PSRAM
-D WLED_DISABLE_LOXONE ; FLASH 1272 bytes
-D WLED_DISABLE_HUESYNC ; RAM 122 bytes; FLASH 6308 bytes
-D WLED_DISABLE_ALEXA ; RAM 116 bytes; FLASH 13524 bytes
-D WLED_DISABLE_MQTT ; RAM 216 bytes; FLASH 16496 bytes
-D WLED_DISABLE_INFRARED ;RAM 136 bytes; FLASH 24492 bytes ewowi: disabled to stay below 100%
; RAM: [== ] 24.7% (used 81000 bytes from 327680 bytes)
; Flash: [==========] 98.6% (used 1550569 bytes from 1572864 bytes)
; -D WLED_ENABLE_DMX
; -D WLED_DEBUG
; -D SR_DEBUG
; -D MIC_LOGGER
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
;; RAM: [== ] 24.3% (used 79524 bytes from 327680 bytes)
;; Flash: [========= ] 93.2% (used 1466389 bytes from 1572864 bytes)
;; PSRAM build env that only leaves 300Kb for filesystem (instead of 1MB), but adds 300kB for program space
[env:esp32_4MB_PSRAM_M]
extends = esp32_4MB_V4_M_base
board = lolin_d32_pro
;board = esp32cam
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)
build_flags = ${esp32_4MB_V4_M_base.build_flags}
-D WLED_RELEASE_NAME=esp32_4MB_PSRAM_M
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
-D ARDUINO_USB_CDC_ON_BOOT=0 ; needed for arduino-esp32 >=2.0.4; avoids errors on startup
-D WLED_USE_PSRAM
-D WLED_DISABLE_LOXONE ;; FLASH 1272 bytes
-D WLED_DISABLE_HUESYNC ;; RAM 122 bytes; FLASH 6308 bytes
-D WLED_DISABLE_ALEXA ;; RAM 116 bytes; FLASH 13524 bytes
; -D WLED_DISABLE_MQTT ;; RAM 216 bytes; FLASH 16496 bytes
; -D WLED_DISABLE_INFRARED ;;RAM 136 bytes; FLASH 24492 bytes
; -D WLED_ENABLE_DMX
; -D WLED_DEBUG
; -D SR_DEBUG
; -D MIC_LOGGER
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
;monitor_filters = esp32_exception_decoder
;; RAM: [== ] 24.9% (used 81484 bytes from 327680 bytes)
;; Flash: [======== ] 84.6% (used 1607857 bytes from 1900544 bytes)
[env:esp32S3_8MB_M]
extends = esp32_4MB_V4_M_base

View File

@@ -93,7 +93,7 @@ function populateCEEditor(name, segID)
{
fetchAndExecute((loc?`http://${locip}`:'.') + "/", name + ".wled", function(text)
{
var cn=`Custom Effects Editor<br>
var cn=`ARTI-FX Editor<br>
<i>${name}.wled</i><br>
<textarea class="ceTextarea" id="ceProgramArea">${text}</textarea><br>
<button class="btn infobtn" onclick="toggleCEEditor()">Close</button>
@@ -102,8 +102,8 @@ function populateCEEditor(name, segID)
<button class="btn infobtn" onclick="loadCETemplate('${name}')">Load template</button><br>
<button class="btn infobtn" onclick="downloadGHFile('CE','wledv033.json',true,true)">Download wled json</button>
<button class="btn infobtn" onclick="downloadGHFile('CE','presets.json',true,true)">Download presets.json</button><br>
<button class="btn infobtn" onclick="location.href='https://github.com/MoonModules/WLED-Effects/tree/master/CustomEffects/wled'" type="button">Custom Effects Library</button>
<button class="btn infobtn btn-xs" onclick="location.href='https://mm.kno.wled.ge/moonmodules/custom-effects'" type="button">?</button><br>
<button class="btn infobtn" onclick="location.href='https://github.com/MoonModules/WLED-Effects/tree/master/ARTIFX/wled'" type="button">ARTI-FX Library</button>
<button class="btn infobtn btn-xs" onclick="location.href='https://mm.kno.wled.ge/moonmodules/arti-fx'" type="button">?</button><br>
<br><i>Compile and Run Log</i><br>
<textarea class="ceTextarea" id="ceLogArea"></textarea><br>
<i>Run log > 3 seconds is send to Serial Ouput.</i><br>
@@ -124,7 +124,7 @@ function populateCEEditor(name, segID)
}
function downloadGHFile(url, name, save=false, warn=false) { //Githubfile
if (url == "CE") url = "https://raw.githubusercontent.com/MoonModules/WLED-Effects/master/CustomEffects/wled/";
if (url == "CE") url = "https://raw.githubusercontent.com/MoonModules/WLED-Effects/master/ARTIFX/wled/";
if (url == "HBB") url = "https://raw.githubusercontent.com/MoonModules/WLED-Effects/master/Presets/HB_PresetPack210808_32x32_16seg/Base%20pack/";
if (url == "HBE") url = "https://raw.githubusercontent.com/MoonModules/WLED-Effects/master/Presets/HB_PresetPack210808_32x32_16seg/Effects%20pack/";
if (url == "LM") url = "https://raw.githubusercontent.com/MoonModules/WLED-Effects/master/Ledmaps/";
@@ -167,7 +167,7 @@ function downloadGHFile(url, name, save=false, warn=false) { //Githubfile
function loadCETemplate(name) {
var ceProgramArea = d.getElementById("ceProgramArea");
ceProgramArea.value = `/*
Custom Effects Template
ARTIFX Template
*/
program ${name}
{

View File

@@ -1,6 +1,6 @@
/*
@title Usermod Custom Effects (CE)
@file usermod_v2_customeffects.h
@title Usermod ARTIFX (AF)
@file usermod_v2_artifx.h
@date 20220818
@author Ewoud Wijma
@Copyright (c) 2023 Ewoud Wijma
@@ -17,7 +17,7 @@
ARTI * arti;
//effect function
uint16_t mode_customEffect(void) {
uint16_t mode_ARTIFX(void) {
//tbd: move statics to SEGMENT.data
static bool succesful;
static bool notEnoughHeap;
@@ -99,9 +99,9 @@ uint16_t mode_customEffect(void) {
return FRAMETIME;
}
static const char _data_FX_MODE_CUSTOMEFFECT[] PROGMEM = "⚙️ Custom Effect ☾@Speed,Intensity,Custom 1, Custom 2, Custom 3;!;!;1;mp12=0";
static const char _data_FX_MODE_ARTIFX[] PROGMEM = "⚙️ ARTI-FX ☾@Speed,Intensity,Custom 1, Custom 2, Custom 3;!;!;1;mp12=0";
class CustomEffectsUserMod : public Usermod {
class ARTIFXUserMod : public Usermod {
private:
// strings to reduce flash memory usage (used more than twice)
static const char _name[]; //usermod name
@@ -115,7 +115,7 @@ class CustomEffectsUserMod : public Usermod {
void setup() {
if (!initDone)
strip.addEffect(FX_MODE_CUSTOMEFFECT, &mode_customEffect, _data_FX_MODE_CUSTOMEFFECT);
strip.addEffect(FX_MODE_ARTIFX, &mode_ARTIFX, _data_FX_MODE_ARTIFX);
initDone = true;
enabled = true;
}
@@ -200,9 +200,9 @@ class CustomEffectsUserMod : public Usermod {
*/
uint16_t getId()
{
return USERMOD_ID_CUSTOMEFFECTS;
return USERMOD_ID_ARTIFX;
}
};
// strings to reduce flash memory usage (used more than twice)
const char CustomEffectsUserMod::_name[] PROGMEM = "CustomEffects";
const char ARTIFXUserMod::_name[] PROGMEM = "ARTIFX";

View File

@@ -330,9 +330,9 @@ class GamesUsermod : public Usermod {
strip.addEffect(255, &mode_pongGame, _data_FX_MODE_PONGGAME);
#ifdef USERMOD_MPU6050_IMU
IMU = (MPU6050Driver *)usermods.lookup(USERMOD_ID_IMU);
// #ifdef WLED_DEBUG
#ifdef WLED_DEBUG
strip.addEffect(255, &mode_IMUTest, _data_FX_MODE_IMUTest);
// #endif
#endif
#endif
strip.addEffect(255, &mode_3DIMUCube, _data_FX_MODE_3DIMUCube); //works also without IMU
}

View File

@@ -316,7 +316,7 @@
#define FX_MODE_WAVESINS 184
#define FX_MODE_ROCKTAVES 185
#define FX_MODE_2DAKEMI 186
#define FX_MODE_CUSTOMEFFECT 187 //WLEDMM Custom Effects
#define FX_MODE_ARTIFX 187 //WLEDMM ARTIFX
#define MODE_COUNT 188

View File

@@ -133,7 +133,7 @@
#define USERMOD_ID_SHT 39 //Usermod "usermod_sht.h
#define USERMOD_ID_KLIPPER 40 // Usermod Klipper percentage
//WLEDMM
#define USERMOD_ID_CUSTOMEFFECTS 90 //Usermod "usermod_v2_customeffects.h"
#define USERMOD_ID_ARTIFX 90 //Usermod "usermod_v2_artifx.h"
#define USERMOD_ID_WEATHER 91 //Usermod "usermod_v2_weather.h"
#define USERMOD_ID_GAMES 92 //Usermod "usermod_v2_games.h"

View File

@@ -52,7 +52,7 @@
setTimeout(()=>{h.appendChild(l)},100);
</script>
<link rel="stylesheet" href="index.css">
<link rel="stylesheet" href="../../usermods/customeffects/customeffects.css"> <!--WLEDMM Custom Effects -->
<link rel="stylesheet" href="../../usermods/artifx/artifx.css"> <!--WLEDMM ARTIFX -->
</head>
<body>
@@ -66,7 +66,7 @@
<button id="buttonPower" onclick="togglePower()" class="tgl"><i class="icons">&#xe08f;</i><p class="tab-label">Power</p></button>
<button id="buttonNl" onclick="toggleNl()"><i class="icons">&#xe2a2;</i><p class="tab-label">Timer</p></button>
<button id="buttonSync" onclick="toggleSync()"><i class="icons">&#xe116;</i><p class="tab-label">Sync</p></button>
<button id="buttonSr" onclick="toggleLiveview()"><i class="icons">&#xe410;</i><p class="tab-label">GFX</p></button>
<button id="buttonSr" onclick="toggleLiveview()"><i class="icons">&#xe410;</i><p class="tab-label">GFX</p></button>
<button id="buttonI" onclick="toggleInfo()"><i class="icons">&#xe066;</i><p class="tab-label">Info</p></button>
<button id="buttonNodes" onclick="toggleNodes()"><i class="icons">&#xe22d;</i><p class="tab-label">Nodes</p></button>
<button onclick="window.location.href='/settings';"><i class="icons">&#xe0a2;</i><p class="tab-label">Config</p></button>
@@ -210,7 +210,7 @@
<div id="effectGFX"> <!--WLEDMM-->
<!-- <p class="labels hd">Peek ☾ <button class="btn infobtn btn-xs" onclick="eandp(this,gId('canvasPeek'));">v</button></p> -->
<br>
<canvas id="canvasPeek"></canvas><br>
<canvas id="canvasPeek" onclick="bigPeek(true)"></canvas><br>
<br>
</div>
<div id="fx">
@@ -393,7 +393,7 @@
</div>
</div>
<!-- WLEDMM Custom Effects -->
<!-- WLEDMM ARTIFX -->
<div id="ceEditor" class="modal">
<div id="kceEditor">Loading...</div><br>
</div>
@@ -413,6 +413,6 @@
</div>
<i id="roverstar" class="icons huge" onclick="setLor(0)">&#xe410;</i><br>
<script src="index.js"></script>
<script src="../../usermods/customeffects/customeffects.js"></script> <!--WLEDMM Custom Effects-->
<script src="../../usermods/artifx/artifx.js"></script> <!--WLEDMM ARTIFX-->
</body>
</html>

View File

@@ -771,9 +771,9 @@ function populateSegments(s)
<option value="3" ${inst.si==3?' selected':''}>U14_3</option>
</select></div>
</div>`;
//WLEDMM Custom Effects
//WLEDMM ARTIFX
let fxName = eJson.find((o)=>{return o.id==selectedFx}).name;
let cusEff = `<button class="btn" onclick="toggleCEEditor('${inst.n?inst.n:"default"}', ${i})">Custom Effect Editor ☾</button><br>`;
let cusEff = `<button class="btn" onclick="toggleCEEditor('${inst.n?inst.n:"default"}', ${i})">ARTI-FX Editor ☾</button><br>`;
cn += `<div class="seg lstI ${i==s.mainseg ? 'selected' : ''} ${exp ? "expanded":""}" id="seg${i}">
<label class="check schkl">
<input type="checkbox" id="seg${i}sel" onchange="selSeg(${i})" ${inst.sel ? "checked":""}>
@@ -821,7 +821,7 @@ function populateSegments(s)
${!(isM&&staX<mw*mh)?rvXck:''}
${isM&&staX<mw*mh&&stoY-staY>1&&stoX-staX>1?map2D:''}
${s.AudioReactive && s.AudioReactive.on ? "" : sndSim}
${s.CustomEffects && s.CustomEffects.on && fxName.includes("Custom Effect") ? cusEff : ""}
${s.ARTIFX && s.ARTIFX.on && fxName.includes("ARTI-FX") ? cusEff : ""}
<label class="check revchkl" id="seg${i}lbtm">
${isM&&staX<mw*mh?'Transpose':'Mirror effect'}${isM&&staX<mw*mh?
'<input type="checkbox" id="seg'+i+'tp" onchange="setTp('+i+')" '+(inst.tp?"checked":"")+'>':
@@ -1963,6 +1963,22 @@ function toggleLiveview()
if (ws && ws.readyState === WebSocket.OPEN) ws.send(`{"lv":${isLv}}`);
}
//WLEDMM create and delete iFrame for peek (isLv is true if create)
function bigPeek(doCreate)
{
let lvID = "liveview2D"
if (doCreate) {
var cn = '<iframe id="liveview2D" src="about:blank" onload="this.contentWindow.document.body.onclick=function(){bigPeek(false);}"></iframe>';
gId('kliveview2D').innerHTML = cn;
}
gId('mliveview2D').style.transform = (doCreate) ? "translateY(0px)":"translateY(100%)";
gId(lvID).style.display = (doCreate) ? "block":"none";
var url = (loc?`http://${locip}`:'') + "/" + lvID;
gId(lvID).src = (doCreate) ? url:"about:blank";
}
function toggleInfo()
{
if (isNodes) toggleNodes();

File diff suppressed because it is too large Load Diff

View File

@@ -182,7 +182,7 @@ bool deserializeSegment(JsonObject elem, byte it, byte presetId)
if (elem["on"].is<const char*>() && elem["on"].as<const char*>()[0] == 't') on = !on;
seg.setOption(SEG_OPTION_ON, on); // use transition
//WLEDMM Custom Effects (but general usable)
//WLEDMM ARTIFX (but general usable)
bool reset = elem["reset"];
if (reset)
seg.markForReset();

View File

@@ -58,7 +58,7 @@
#endif
#ifdef USERMOD_FOUR_LINE_DISPLAY
#ifdef USE_ALT_DISPLAY
#if defined(USE_ALT_DISPLAY) || defined(USE_ALT_DISPlAY)
#include "../usermods/usermod_v2_four_line_display_ALT/usermod_v2_four_line_display_ALT.h"
#else
#include "../usermods/usermod_v2_four_line_display/usermod_v2_four_line_display.h"
@@ -66,7 +66,7 @@
#endif
#ifdef USERMOD_ROTARY_ENCODER_UI
#ifdef USE_ALT_DISPLAY
#if defined(USE_ALT_DISPLAY) || defined(USE_ALT_DISPlAY)
#include "../usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.h"
#else
#include "../usermods/usermod_v2_rotary_encoder_ui/usermod_v2_rotary_encoder_ui.h"
@@ -190,9 +190,9 @@
#endif
//WLEDMM Custom Effects
#ifdef USERMOD_CUSTOMEFFECTS
#include "../usermods/customeffects/usermod_v2_customeffects.h"
//WLEDMM ARTIFX
#ifdef USERMOD_ARTIFX
#include "../usermods/artifx/usermod_v2_artifx.h"
#endif
#ifdef USERMOD_WEATHER
@@ -374,9 +374,9 @@ void registerUsermods()
usermods.add(new ShtUsermod());
#endif
//WLEDMM Custom Effects
#ifdef USERMOD_CUSTOMEFFECTS
usermods.add(new CustomEffectsUserMod());
//WLEDMM ARTIFX
#ifdef USERMOD_ARTIFX
usermods.add(new ARTIFXUserMod());
#endif
#ifdef USERMOD_WEATHER

View File

@@ -8,7 +8,7 @@
*/
// version code in format yymmddb (b = daily build)
#define VERSION 2303280
#define VERSION 2303300
//uncomment this if you have a "my_config.h" file you'd like to use
//#define WLED_USE_MY_CONFIG