294 Commits

Author SHA1 Message Date
netmindz
e979c58c98
Merge pull request #4609 from willmmiles/usermod-cfg-live
Use live cfg json instead of file for usermod settings page
2025-04-06 09:28:45 +00:00
Will Miles
e21a09cec9 Separate FS write from serializeConfig
Break the actual JSON assembly apart from the file writing code.  This
permits calling it in other contexts, allowing us to pull the live
config data even if the filesystem is out of date.
2025-03-23 15:15:52 -04:00
Damian Schneider
d2b7e474d6 add legacy defines for compatibility, reverted test changes in rotozoomer 2025-03-14 06:48:18 +01:00
Damian Schneider
494b72c287 Merge remote-tracking branch 'upstream/main' into perlin_noise 2025-03-12 20:15:40 +01:00
Damian Schneider
95dcb03f6d updated scaling 2025-03-12 06:56:33 +01:00
Will Tatam
0ba80ce61e Merge branch 'main' into usermod-libs 2025-03-11 22:31:52 +00:00
Blaž Kristan
2b666ab9f7 Merge branch 'master' into multifix 2025-03-08 12:59:15 +01:00
Damian Schneider
4ecc531998 updated scaling, improved hashing, updated rotozoomer to not use a buffer 2025-03-08 12:48:27 +01:00
Damian Schneider
2012317bc9 initial version, basically working but repetitive patterns, work in progress 2025-03-03 06:57:16 +01:00
Will Miles
e00789f838 Merge remote-tracking branch 'upstream/main' into usermod-libs 2025-03-01 20:32:12 +00:00
Blaž Kristan
dd80919ed6
Merge pull request #4429 from blazoncek/use-bssid
Add ability to enter desired BSSID
2025-02-19 13:46:49 +01:00
Blaž Kristan
d7103cd75c
Merge pull request #4262 from blazoncek/large-ledmap
Large ledmap support
2025-02-19 13:43:52 +01:00
Blaž Kristan
7b56e53c47 Nested playlist 2025-02-19 11:19:59 +01:00
Will Tatam
1dc7647bb9 Merge branch 'main' into usermod-libs 2025-02-16 10:40:30 +00:00
Blaž Kristan
a0c55c6406
Merge pull request #4484 from blazoncek/parallel-I2S
WWA strip support & parallel I2S for S2/S3 (bumping outputs from 5/4 to 12)
2025-02-13 19:10:37 +01:00
Will Miles
a5b972d87e Merge remote-tracking branch 'upstream/main' into usermod-libs 2025-01-31 02:51:56 +00:00
Will Tatam
35624ab998 Merge branch 'main' into gif-fix 2025-01-26 15:19:56 +00:00
Blaž Kristan
24082d169b
Merge branch 'main' into parallel-I2S 2025-01-20 22:19:49 +01:00
Blaž Kristan
3debaf0f41
Merge branch 'main' into use-bssid 2025-01-20 17:46:56 +01:00
Blaž Kristan
3a426e258b
Merge branch 'main' into blending-styles 2025-01-20 11:19:43 +01:00
Blaž Kristan
b062d1ee3e
Merge branch 'main' into large-ledmap 2025-01-20 09:03:55 +01:00
Blaž Kristan
ebc171d405 Const update
- removed erroneous DEBUGFX
2025-01-20 08:59:35 +01:00
Damian Schneider
a421a90e0a
replacement for fastled sqrt16() (#4426)
* added bitwise operation based sqrt16

- replacement for fastled, it is about 10% slower for numbers smaller 128 but faster for larger numbers. speed difference is irrelevant to WLED but it saves some flash.

* updated to 32bit, improved for typical WLED use

- making it 32bits allows for larger numbers
- added another initial condition check for medium sized numbers
- increased the "small number" optimization to larger numbers: the function is currently only used to calculate sqrt(x^2+y^2) which even for small segments is larger than the initially used 64, so optimizing for 1024 makes more sense, although the value is arbitrarily chosen
2025-01-20 05:51:04 +01:00
Blaž Kristan
0c84235a95 Bus rework
- Implement vector in bus manager
- Memory calculation according to explanation from @Makuna
- Prefer 8 RMT before 8 I2S on ESP32 (fixes #4380)
- speed improvements in ABL
- verbose debugging
- get bus size from NPB (prototype)
- Parallel I2S output bugfix
- automatic selection of appropriate I2S bus (`X1xxxxxxMethod`)
- removed I2S0 on ESP32 (used by AudioReactive)
- renumbered internal bus numbers (iType)
- added buffer size reporting
2025-01-19 10:17:33 +01:00
Frank
cd52d7bcf6 align some function declariations with their implementation
This is purely a "clean code" thing, no impact on function -  it helps to avoid confusion when reading the code.

C++ allows declaration and implementation to use different variable names.
2025-01-19 07:35:46 +01:00
Blaž Kristan
01c463c8e8 More tuning
- replaced POD new/delete with malloc/free
- some more SEGLEN <= 1
- some gnu::pure
- more const attributes
- some static attributes
2025-01-19 07:35:46 +01:00
Frank
013684b5ca making some parameters const, plus minor improvements
* changed some parameters to "pointer to const", so compiler can better optimize code size and performance -  because data behind a const pointer will never be modified by the called function.
* made setPixelColor `const`

* fixed a few potentially uninitialized local vars (the may have random values if not initialized)

* avoid shadowing "state" in handleSerial()
* plus a few very minor improvements
2025-01-19 07:35:46 +01:00
Frank
90c2955a71 avoid using keywords for variables: module, final
these are reserved names and future compilers may reject them.
2025-01-19 07:35:46 +01:00
netmindz
48f5099646
Merge pull request #4495 from netmindz/DMX-Input-AC
Add Wired DMX Input support
2025-01-17 19:31:25 +00:00
netmindz
b2aac9f991
Merge pull request #4386 from DedeHai/ESPNow_glitchfix
Fix for ESPNow remote causing output glitches
2025-01-16 13:01:00 +00:00
Will Tatam
a582786655 Port over remaining WLEDMM part of DMX Input and adapt for AC 2025-01-16 12:48:36 +00:00
Arne
67e8a00b6d rename initDmx() -> initDmxOutput() 2025-01-16 12:11:21 +00:00
Arne
11b48bc374 rename handleDMX() handleDMXOutput() 2025-01-16 12:10:13 +00:00
Arne
f06a1e8b49 Extract dmx_input from dmx.cpp into dmx_input.cpp.
This greatly improves readability because it gets rid of most of the
ifdefs.
2025-01-16 11:21:41 +00:00
Blaž Kristan
a65f97ac75 Merge branch 'main' into blending-styles 2025-01-14 22:39:20 +01:00
Will Tatam
56b8af86d7 Swap to WLED_ENABLE_GIF 2025-01-14 18:40:41 +00:00
Will Tatam
deb0306347 Merge branch 'main' into gif-fix 2025-01-14 18:26:41 +00:00
Will Miles
b8685f2c39 Convert usermods to static libraries
Redesign the usermod system so that usermods are implemented as
PlatformIO libraries instead of headers.  This permits them to call for
dependencies, and eliminates the compiler flags for enabling each one,
allowing the build cache to behave better.

The usermod list is built using some linker magic to construct a static
list in ROM memory.  This eliminates the need for wasting SRAM on
something fixed at build time.
2025-01-11 12:08:29 -05:00
Will Miles
204e72e9eb
Merge pull request #4213 from willmmiles/static-class-to-namespace
Complete transition of UsermodManager and PinManager away from classes
2025-01-08 21:38:10 -05:00
Blaž Kristan
272129f66c Add ability to enter desired BSSID
- add event handling (debug)
- fixes #2151
2024-12-25 15:54:50 +01:00
Damian Schneider
5f77478841
Replace PRNG with hardware RNG (#4225)
Both ESP8266 and ESP32 have a hardware random register. This update makes use of that. It is slightly faster than the fastled variants but mostly it is truly random, even when the timing limitations stated in the datasheet are disregarded. Also saves a bit on code size.

- Replaced all random8() and random16() calls with new hw_random() versions
- Not replaced in FX where PRNG is required
2024-12-20 19:12:29 +01:00
Damian Schneider
cae98451e3 Merge remote-tracking branch 'upstream/main' into 0_15__speed_improvements 2024-12-20 09:12:01 +01:00
Damian Schneider
26397ee8ad
Optimization: color_blend() (#4245)
Removing the bool saves on code size and makes the function a tiny bit faster. Also this is a cleaner solution IMHO.

-updated blend function to optimized 8bit calculation
- efficient color blend calculation in fews operations possible
- omitting min / max checks makes it faster on average
- using 8bit for "blend" variable does not significantly influence the resulting color, just transition points are slightly shifted but yield very good results (and better than the original 16bit version using the old fastled math with improper rounding)
- updated drawCircle and drawLine to use 8bit directly instead of 16bit with a shift
2024-12-19 18:20:56 +01:00
Damian Schneider
fd3b47908b renamed functions, changed timeout to 24ms 2024-12-19 17:41:44 +01:00
Damian Schneider
e16d3bf040 Fix: output-glitching on ESPNow remote command reception
Processing of received button command is no longer processed in the callback, instead the value is saved to a variable and processed in the main loop.
The actual fix is to not access the file system while data is being sent out: even just trying to open a non-existing file causes glitches on the C3. Waiting for the bus to finish fixes this BUT it causes a frame-delay which is the lesser evil than random color flashes.
2024-12-13 07:40:04 +01:00
Blaž Kristan
4758b5efe8 Proper fix for #3605 & #4346
- allow incrementing/decrementing as specified in API
2024-12-07 10:11:25 +01:00
Damian Schneider
a0a46850f5 Merge remote-tracking branch 'upstream/0_15' into 0_15_trig_math 2024-11-27 22:22:50 +01:00
Blaž Kristan
9fa53ccf05 Large ledmap support
- add filtering support for readObjectFromFile()
2024-11-09 11:22:38 +01:00
Blaž Kristan
5c2bac4b9d Merge branch '0_15' into 0_15__speed_improvements 2024-11-09 10:53:27 +01:00
Blaž Kristan
4cc2cc4ad4 Multiple fixes
- increase WLED_MAX_BUSSES for C3 (fixes #4215)
- fix for #4228
- fix for very long running effect (strip.now, strip.timebase)
- C++ API change to allow `seg.setColor().setOpacity()`
2024-10-26 15:16:11 +02:00