449 Commits

Author SHA1 Message Date
Blaž Kristan 882b804205 Delayed malloc (#911)
* Postpone memory allocations until Initialize is called.
TODO: Add return value to Begin() and Initialize() to check for successful allocations.

* Add success return to Begin()/Initialize()

* Add IsValid() method to prevent issues with unallocated buffers.

* code style update

* More code style update

* Fix return type

* Remove erroneous Destruct call
2026-02-16 09:22:39 -07:00
Blaž Kristan 1d7ff38f14 Use ClearTo(0) for transmit buffers if they exist. (#910)
* Use ClearTo(0) for transmit buffers if they exist.

* Code style
2026-02-15 09:36:05 -07:00
Will Miles a0919d1c10 Fix off-by-one in 8266 DMA translation (#894)
* Fix off-by-one in 8266 DMA translation

* Apply 3-step cadence fix to ESP32
2025-12-01 08:51:16 -07:00
Michael Miller fd670ee534 inc version (#888) 2.8.4 2025-04-29 08:38:17 -07:00
Michael Miller 0c397853a5 merge changes from CORE3 branch to fix compile issues for H2/P4 (#887) 2025-04-29 08:19:52 -07:00
Michael Miller 44d9572d5c MISO unused (#883) 2025-03-05 13:09:56 -08:00
Michael Miller 8665476832 PIO2 support (#880) 2025-02-21 14:28:43 -08:00
Michael Miller 59a98027cb Update NeoRp2040PioMonoProgram.h (#873) 2025-01-20 10:04:22 -08:00
Michael Miller 3dabc2ee82 STM32WLE5xx support (#867) 2024-12-26 17:04:36 -08:00
Michael Miller 16a1eb1923 fix (#864) 2024-12-03 10:29:59 -05:00
Dimitre 7c2a3437f7 typo fix: KINETISK (#850) 2.8.3 2024-09-24 11:54:17 -07:00
Dimitre 54b49bc3c4 Support for Teensy 4.0 / 4.1 (#849) 2024-09-23 22:14:45 -07:00
Michael Miller b99c595084 inc version (#846) 2024-09-23 13:13:40 -07:00
Michael Miller bc9f1dbf59 Fixed (#845) 2024-09-23 09:07:46 -07:00
Michael Miller 67a79fe74e missing include (#844) 2024-09-21 09:30:14 -07:00
lolimpol 773613a1c5 Update Tlc59711RgbFeatures.h (#839) 2024-09-14 12:39:28 -07:00
Markus Kovero 3deb46d0ae Hd108 bare minimal for me (#838) 2024-09-10 13:08:05 -07:00
Michael Miller f3df677c8a inc version (#835) 2.8.2 2024-09-05 06:37:26 -07:00
Michael Miller 149379958e Update NeoEspBitBangMethod.cpp (#834) 2024-09-04 08:51:27 -07:00
Michael Miller 0aa3d11aab inc version (#832) 2.8.1 2024-09-01 21:12:30 -07:00
Michael Miller 2360904727 Esp8266 3 step to reduce memory (#830)
Esp8266 3 step

plus xMethods with examples
2024-08-29 10:58:48 -07:00
Michael Miller 3bd63bffce Esp32 bit bang pins above 31 are supported (#829)
must be output pins.
caveat, there seems to be a GCC bug cause the compiler to incorrectly produce code around one of the changes, due to union with a 32bit and 8:24 bit.  The IO registers must be written as 32 bits but the compiler keeps short circuit the code even though it is written to write the whole 32 bits.
The official pinMode() code has a work around in it for this but that doesn't fit into the bitbang code.  This issue maybe already fixed with newer IDF with a newer GCC as this has been reported to work from others.
2024-08-25 20:19:51 -07:00
Michael Miller 8a13d6f0f4 Three four cadences (#827)
i2s x1, x8, x16 now use a 3 step cadence (33% & 66% pulse width) by default saving 25% memory in DMA buffer.
ESP32 & ESP32S2
2024-08-25 19:59:32 -07:00
Michael Miller 4b96e0d666 Esp32 s3 LCD Parallel (#824)
Co-authored-by: Colin Iuliano <colin@coliniuliano.ca>
Co-authored-by: Colin <cholin@gmail.com>
2024-08-18 11:44:48 -07:00
Michael Miller bf72b6ecc9 inc version (#802) 2.8.0 2024-04-27 20:35:38 -07:00
Michael Miller 89a6a8b019 Add silent timeout macro for ESP32 debug error check (#801) 2024-04-25 14:07:38 -07:00
Michael Miller e40289f89c CONFIG_IDF_TARGET not a compile flag anymore (#799) 2024-04-24 11:06:33 -07:00
Michael Miller 2e88d03c4e Hd108 (#798) 2024-04-23 08:44:56 -07:00
Michael Miller b8f33709aa WS2805 WS2814 (#794) 2024-04-06 21:49:54 -07:00
Michael Miller a56929531e Esp32 i2s parallel uses a single back buffer (#793) 2024-04-04 09:30:29 -07:00
Michael Miller 539433a433 Grbwc and Rgbwc 2024-03-29 11:11:21 -07:00
Daniel Brall 30295b0577 Fixed and improved HtmlColor::ToNumericalString (#792)
* Fixed and improved HtmlColor::ToNumericalString which decremented bufLen twice and returned wrong results

* Strictly expect least 8 characters

---------

Co-authored-by: Daniel Brall <git@bradan.eu>
2024-03-25 12:13:08 -07:00
Michael Miller 22746479f6 Compiles with IDF5 (#789) 2024-03-22 11:38:45 -07:00
Michael Miller d95a8d2522 Update NeoPixel_RP2040_PioX4.ino
fix comment
2.7.9
2024-03-19 09:00:18 -07:00
Michael Miller 5157c1259d v2.7.9 (#786) 2024-03-19 08:57:00 -07:00
Michael Miller 8062b3a7ce Tlc59711 tune (#785)
* a little duplication of constants

* Update Tlc59711GenericMethod.h

remove temp buffer and just send words reversed
add custom default speed that works without flicker
2024-03-18 17:20:10 -07:00
Michael Miller 07ae6cf4b3 formating 2024-03-18 11:25:39 -07:00
Michael Miller 5563ee0e42 Ws2805Methods and warning fixes (#784) 2024-03-16 21:53:57 -07:00
Michael Miller 3417f1e5bf Tlc59711 (#783)
* 2Mhz max due to timing requirements with a clock based signal?!
2024-03-16 11:21:56 -07:00
Michael Miller 7c6744da4f Rp2040 (#779)
Support x4 on each PIO
2024-03-11 09:36:13 -07:00
Michael Miller f700889c5c Fix API Change (#777)
Used to state just use 0x100, but this is incorrect on some platforms.  Recommened now to just use SIG_GPIO_OUT_IDX.
2024-03-07 09:02:50 -08:00
Michael Miller 4a11e1c7ec RgbwColor supported (#775) 2024-02-29 17:12:30 -08:00
Michael Miller 99b6db904b support for template GetPixelColor method (#774) 2024-02-29 14:20:20 -08:00
Michael Miller 1a715a56b8 Common WS2814f strip order (#773) 2024-02-25 10:57:17 -08:00
Michael Miller 35910a2376 corrections (#769) 2024-02-16 11:08:37 -08:00
Michael Miller 3119b8a7df NeoRgbww80Feature (#768) 2024-02-10 20:41:32 -08:00
Michael Miller 0320ae01f9 FiveByteFeature (#765) 2024-02-07 16:55:32 -08:00
Michael Miller 30fbdd8788 style cleanup 2024-02-07 16:36:41 -08:00
Will Miles 64958ad743 Esp bitbang interrupt workaround (#759)
* Move interrupt handling in EspBitBangMethod

Move the interrupt enable/disable in to the common
neoEspBitBangWriteSpacingPixels function.

* Check interrupts during ESP bit-banging

Rather than leave interrupts completely disabled, check in between
elements.  If interrupted for long enough to complete an update, retry
from the beginning.  We don't yield to the system context, so only
interrupt processing goes on.

This is intended to stave off interrupt related crashes (hard WDT
resets) experienced when a too-long strand is used with a too-busy
network.  Essentially it trades off correctness for stability.

This logic is inspired by the workaround used in FastLED.

* Replace TInterPixel with TLatch when bit-banging

In NeoESPBitBangMethod, remove the minimum time between pixels, and
replace it with a maximum time between pixels.  Use the outer function
to handle the retry logic.

* Support no interrupt mode when bit-banging

* Add no-interrupt bit-banging method typedefs
2024-01-28 15:18:19 -08:00
Michael Miller 0203319f60 inc version (#757) 2.7.8 2024-01-19 10:19:06 -08:00