Commit Graph

6122 Commits

Author SHA1 Message Date
Frank
086ae216c8 partitions file for boards with 32MB flash, buildenv for WROOM-2 32MB 2025-11-23 01:09:52 +01:00
Frank
f4d890c584 adding "-D SR_DMTYPE=254" to classic esp32 builds with HUB75 support
on classic esp32, the HUB75 driver uses the I2S unit. Set AR default to "receive only", to prevent driver conflicts.
2025-11-23 00:53:38 +01:00
Frank
d8e07d1609 partition files for use with ADAFRUIT boards
these partition files preserve the special "UF2" bootloader that is necessary for adafruit -S2 and -S3 boards.
2025-11-22 18:06:43 +01:00
Frank
ec97f4903f don't include any font when building with WLED_DISABLE_2D
saves up to 12Kb program space in flash
2025-11-22 16:30:16 +01:00
Will Tatam
2c0510b5b9 Merge pull request #284 from netmindz/deviceId-MM
Add deviceId
2025-11-22 12:31:16 +00:00
Frank
cf999286a8 Merge pull request #282 from MoonModules/high_ascii (implements #281)
* Compile with -D WLED_ENABLE_FULL_FONTS to use all character defined in the font files (including EU spechial cars, line art, and some symbols and icons) -> increases flash size by ~8KBytes
* Unicode support added for scrolling text - allows to use all characters of the font
* Conversion from UTF-8 to "codepage 437" - can be extended to other codepages if you have a font that needs another codepage
* Support added for WLED_MAX_SEGNAME_LEN (default:48) - needs more testing
* Segment names > WLED_MAX_SEGNAME_LEN will be truncated, instead of silently deleting
* Preparations for future additions like user-defined font files and font width > 8 pixels
2025-11-21 17:45:00 +01:00
Frank
e38c2b32c8 finishing touches
* replace strlen with strnlen
* avoid static variable in getFontInfo
* remove legacy code in drawCharacter (new code works well)

it works for me, let's ship it ;-)
2025-11-21 17:26:04 +01:00
Frank
e6676372d8 refactor / cleanup font selection logic
* centralize font selection logic into  getFontInfo()
* removed unneeded parameter "numberOfChars" from drawText()
* new file: wled_fonts.hpp to centralize font management logic (inline)
* only compile wchar16ToCodepage437 when WLED_ENABLE_FULL_FONTS
* minor cleanup
2025-11-21 17:04:08 +01:00
Frank
213cd185b5 explanations for CP437 translations, some cleanups, bugfix for drawString
* explanation for CP437 glyph groups
* translation for MonnModules symbol
* "smiley" replacement for 4-bytes and overlong unicode codes
* always compile unicodetool.cpp (codepage translation still depends on WLED_ENABLE_UNICODE)
* bugfix: DrawString now skips over glyphs that would be rejected by DrawCharacter
* minor cleanup
2025-11-21 13:48:38 +01:00
Will Tatam
d047ee0984 Add deviceId 2025-11-21 08:39:50 +00:00
Frank
527acefdea improvement for UTF-8 safe string trucation of segment name
did I mention already that this is complicated stuff? oh yes, it is.
2025-11-21 02:52:01 +01:00
Frank
aea83a352f bugfix: incomplete time/date in full font mode
maxLen = numberOfChars
2025-11-21 00:55:03 +01:00
Frank
053551d61d scrolling text blur moved to where it should be
accidentally put it into the "full font" ifdef
2025-11-21 00:36:09 +01:00
Frank
c36e493b47 Fix strlcpy destination size parameters 2025-11-21 00:16:25 +01:00
Frank
415aadc6e0 removing dead code 2025-11-21 00:10:33 +01:00
Frank
7ef94bc6c7 use strlcpy instead of strcpy 2025-11-21 00:08:15 +01:00
Frank
c3dce1353c fix font shadow code
stupid mistake ... it must still be "i>0" because its about the scanline, not the character code
2025-11-21 00:01:13 +01:00
Frank
e63dc7e71e longer segment names
* introducing WLED_MAX_SEGNAME_LEN from upstream
* default: max name length = 48
* hopefully found all places where the segment name length was hardcoded (32, 33, 34)
* some comments still refer to "32" but wtf
2025-11-20 23:49:26 +01:00
Frank
dcdc05b592 unicode-related robustness improvements
* enable ARDUINOJSON_DECODE_UNICODE (otherwise unicode needs 6(!) bytes for encoding)
* robustness: increase a few tiny string buffers for some extra margin
* Web UI: allow entering up to 64 chars as segment name
2025-11-20 22:36:46 +01:00
Frank
2f48f03e44 truncate long segment name, instead of discarding
UX improvement: when segment names are too long (esp. with unicode), truncate it instead of deleting the name completely
2025-11-20 22:33:42 +01:00
Frank
2c3592c3f3 fix off-by-one array violation, debug message wghen segment name is too long
* fix possible off-by-one array overflow in drawText
* debug message when too-long segment name was dropped
2025-11-20 18:43:15 +01:00
Frank
3738735c84 engage
make it so
2025-11-20 18:28:42 +01:00
Frank
207b197d04 scrolling text minor exhancements
* scroll faster !
* add softening (=blur) option
2025-11-20 18:08:18 +01:00
Frank
4a4887aaba scrolling text scrolling, unicode-aware strlen 2025-11-20 18:05:53 +01:00
Frank
45f793b338 first light 👍😅
* idea seems to work
* scrolling is broken, probably I need to create a unicode-aware ``strlen``
2025-11-20 13:57:55 +01:00
Frank
0a593b4d39 codepage update 2025-11-20 11:41:26 +01:00
Frank
a3ccc5a8eb work in progress
it just compiles, don't ship it !
2025-11-20 02:36:12 +01:00
Frank
c3b8e0182b plan: next steps
just an empty framework
2025-11-20 02:07:30 +01:00
Frank
29e0afc0d7 align error characters
always use "small dot" for unsupported char, "bigger dot" to indicate unicode error
2025-11-20 01:42:04 +01:00
Frank
c2b87f863f minor update 2025-11-20 00:54:25 +01:00
Frank
e4f4294233 strlen => strnlen 2025-11-20 00:41:21 +01:00
Frank
0b1d22b8f1 error codes 2025-11-20 00:34:33 +01:00
Frank
6a4716e490 decoder robustness improvements, and some nitpick 2025-11-20 00:12:26 +01:00
Frank
5597695865 UFT-8 to UTF-16 decoder
* should properly decode all unicodes that fit into 2bytes UTF-16
* with error handling for well-known "malformed UTF-8" expoits
* puh, this stuff looks simple but the details are CRAZY 😝
2025-11-19 23:48:30 +01:00
Frank
8219feb41e more dummies
just to sketch out the final implementation
2025-11-19 18:04:09 +01:00
Frank
55c9741f01 new functions prototypes, minor fixes
* prototypes for UTF-8 ==> wchar16 conversion
* minor fixes
2025-11-19 17:40:11 +01:00
Frank
43ab0dd468 Full Codepage 437 support
part1:

* enable all bitmaps already defined in the font files (increases firmware by ~7KB)
* add traslation for unicode -> codepage437 (as used by font files)
2025-11-19 17:07:30 +01:00
Frank
219355d047 AR audio sync: improved sequence check for audio packet handling
currently just a comment so I don't forget about it :-) needs some testing but very sure this will work.
2025-11-18 23:57:44 +01:00
Frank
0a0ca506eb Add WLEDMM_FASTPATH definition for all esp32 builds
force all esp32 builds to use WLEDMM_FASTPATH.
The code is proven in use, while non-fastpath is becoming obsolete.
2025-11-18 23:35:15 +01:00
Frank
1583452c86 oops
fixes a mistake in previous commit
2025-11-18 23:19:25 +01:00
Frank
bc7a96d7d4 strip wait function: increase idle wait time to 120ms
Updated strip wait function to use longer idle wait time (similar to the timeout used by upstream WLED 0.16)
2025-11-18 23:13:47 +01:00
Frank
872c38f3c2 (experimental) HUB75 small speedups
* removed unnecessary sanity checks from sPC and gPC
* gPC: use  inline color_fade() instead of FastLED .scale8()
in my tests on -S3 this gives a small speedup, 2% up to 6%
2025-11-17 19:30:52 +01:00
Frank
deaee37559 (experimental) 2D drawPixel optimizations
* add a dedicated callback for 2D downscaling only (no nested for loop)
   -> up to 10% faster
* minor optimizations for 2D up/downscale drawpixel - move repeated calculations out of the inner loop
  -> small speedup
2025-11-17 14:30:29 +01:00
Frank
d6ee51841b image loader: avoid message flood on error
in case that several "bad" image effect segments competing to use the GIF decoder, we had a flood of repeating user_print messages
2025-11-17 14:27:08 +01:00
Frank
eab946ea87 image loader: allow graceful takeover after error
Allow decoder "takeover" by another segment
a) when last segment has decoding error (unsupported file, etc.)
b) when last segment became inactive
2025-11-17 12:29:47 +01:00
Damian Schneider
e5ab0b6077 Bugfix for gif player WRT inactive segment and bugfix in copy FX
- if a segment is destroyed or turned inactive, disable the gif player: only one gif player instance can run at a time, if a inactive or destroyed segment uses it, the effect is broken for other segments.

- copy FX ironically copied the source segment on each call, should use reference not a copy!
2025-11-16 20:48:27 +01:00
Frank
47153baa0c brackets (typo)
does the same thing as before, but looks clearer.
2025-11-16 19:30:34 +01:00
Frank
16540f58b3 (experimental) adjust image scaling when segment options change during playback
* move scaling calculation and decoder.setDrawPixelCallback() into a separate function
*re-calculate scaling before decoding a new frame
* reset gifWidth and gifHeight to zero in endplayback
2025-11-16 19:18:21 +01:00
Frank
2a120e81f8 image effect: flicker fixer for WS2812b leds driven by RMT
Large file read operations can cause RMT stall leading to flicker.
* wait for RMT driver when lading a new gif, and when decoding a new frame.
2025-11-16 16:08:16 +01:00
Frank
b443c13ad8 revert safety check in cfg.cpp
this leads to UI problems in the LEDs setting page.
2025-11-16 15:28:57 +01:00