32 #ifdef ARDUINO_ARCH_ESP32
48 #include <driver/rmt.h>
51 #if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 3, 0)
52 #define LUMITRONIX_IFLEX_BUS_RMT_INT_FLAGS (ESP_INTR_FLAG_LOWMED)
54 #define LUMITRONIX_IFLEX_BUS_RMT_INT_FLAGS (ESP_INTR_FLAG_IRAM | ESP_INTR_FLAG_LEVEL1)
57 class NeoEsp32RmtSpeed
63 const static uint8_t RmtClockDivider = 2;
65 inline constexpr
static uint32_t FromNs(uint32_t ns)
67 return ns / NsPerRmtTick;
71 const static uint32_t RmtCpu = 80000000L;
72 const static uint32_t NsPerSecond = 1000000000L;
73 const static uint32_t RmtTicksPerSecond = (RmtCpu / RmtClockDivider);
74 const static uint32_t NsPerRmtTick = (NsPerSecond / RmtTicksPerSecond);
76 static void IRAM_ATTR _translate(
const void* src,
80 size_t* translated_size,
82 const uint32_t rmtBit0,
83 const uint32_t rmtBit1,
84 const uint16_t rmtDurationReset);
88 class NeoEsp32RmtSpeedBase :
public NeoEsp32RmtSpeed
93 inline constexpr
static uint32_t Item32Val(uint16_t nsHigh, uint16_t nsLow)
95 return (FromNs(nsLow) << 16) | (1 << 15) | (FromNs(nsHigh));
98 const static rmt_idle_level_t IdleLevel = RMT_IDLE_LEVEL_LOW;
101 class NeoEsp32RmtInvertedSpeedBase :
public NeoEsp32RmtSpeed
106 inline constexpr
static uint32_t Item32Val(uint16_t nsHigh, uint16_t nsLow)
108 return (FromNs(nsLow) << 16) | (1 << 31) | (FromNs(nsHigh));
111 const static rmt_idle_level_t IdleLevel = RMT_IDLE_LEVEL_HIGH;
114 class NeoEsp32RmtSpeedWs2811 :
public NeoEsp32RmtSpeedBase
117 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(300, 950);
118 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(900, 350);
119 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(300000);
121 static void IRAM_ATTR Translate(
const void* src,
125 size_t* translated_size,
129 class NeoEsp32RmtSpeedWs2812x :
public NeoEsp32RmtSpeedBase
132 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(400, 850);
133 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(800, 450);
134 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(300000);
136 static void IRAM_ATTR Translate(
const void* src,
140 size_t* translated_size,
144 class NeoEsp32RmtSpeedSk6812 :
public NeoEsp32RmtSpeedBase
147 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(400, 850);
148 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(800, 450);
149 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(80000);
151 static void IRAM_ATTR Translate(
const void* src,
155 size_t* translated_size,
160 class NeoEsp32RmtSpeedTm1814 :
public NeoEsp32RmtInvertedSpeedBase
163 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(360, 890);
164 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(720, 530);
165 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(200000);
167 static void IRAM_ATTR Translate(
const void* src,
171 size_t* translated_size,
176 class NeoEsp32RmtSpeedTm1829 :
public NeoEsp32RmtInvertedSpeedBase
179 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(300, 900);
180 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(800, 400);
181 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(200000);
183 static void IRAM_ATTR Translate(
const void* src,
187 size_t* translated_size,
192 class NeoEsp32RmtSpeedTm1914 :
public NeoEsp32RmtInvertedSpeedBase
195 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(360, 890);
196 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(720, 530);
197 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(200000);
199 static void IRAM_ATTR Translate(
const void* src,
203 size_t* translated_size,
207 class NeoEsp32RmtSpeed800Kbps :
public NeoEsp32RmtSpeedBase
210 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(400, 850);
211 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(800, 450);
212 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(50000);
214 static void IRAM_ATTR Translate(
const void* src,
218 size_t* translated_size,
222 class NeoEsp32RmtSpeed400Kbps :
public NeoEsp32RmtSpeedBase
225 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(800, 1700);
226 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(1600, 900);
227 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(50000);
229 static void IRAM_ATTR Translate(
const void* src,
233 size_t* translated_size,
237 class NeoEsp32RmtSpeedApa106 :
public NeoEsp32RmtSpeedBase
240 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(350, 1350);
241 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(1350, 350);
242 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(50000);
244 static void IRAM_ATTR Translate(
const void* src,
248 size_t* translated_size,
252 class NeoEsp32RmtSpeedTx1812 :
public NeoEsp32RmtSpeedBase
255 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(300, 600);
256 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(600, 300);
257 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(80000);
259 static void IRAM_ATTR Translate(
const void* src,
263 size_t* translated_size,
267 class NeoEsp32RmtInvertedSpeedWs2811 :
public NeoEsp32RmtInvertedSpeedBase
270 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(300, 950);
271 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(900, 350);
272 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(300000);
274 static void IRAM_ATTR Translate(
const void* src,
278 size_t* translated_size,
282 class NeoEsp32RmtInvertedSpeedWs2812x :
public NeoEsp32RmtInvertedSpeedBase
285 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(400, 850);
286 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(800, 450);
287 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(300000);
289 static void IRAM_ATTR Translate(
const void* src,
293 size_t* translated_size,
297 class NeoEsp32RmtInvertedSpeedSk6812 :
public NeoEsp32RmtInvertedSpeedBase
300 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(400, 850);
301 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(800, 450);
302 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(80000);
304 static void IRAM_ATTR Translate(
const void* src,
308 size_t* translated_size,
313 class NeoEsp32RmtInvertedSpeedTm1814 :
public NeoEsp32RmtSpeedBase
316 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(360, 890);
317 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(720, 530);
318 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(200000);
320 static void IRAM_ATTR Translate(
const void* src,
324 size_t* translated_size,
329 class NeoEsp32RmtInvertedSpeedTm1829 :
public NeoEsp32RmtSpeedBase
332 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(300, 900);
333 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(800, 400);
334 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(200000);
336 static void IRAM_ATTR Translate(
const void* src,
340 size_t* translated_size,
345 class NeoEsp32RmtInvertedSpeedTm1914 :
public NeoEsp32RmtSpeedBase
348 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(360, 890);
349 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(720, 530);
350 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(200000);
352 static void IRAM_ATTR Translate(
const void* src,
356 size_t* translated_size,
360 class NeoEsp32RmtInvertedSpeed800Kbps :
public NeoEsp32RmtInvertedSpeedBase
363 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(400, 850);
364 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(800, 450);
365 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(50000);
367 static void IRAM_ATTR Translate(
const void* src,
371 size_t* translated_size,
375 class NeoEsp32RmtInvertedSpeed400Kbps :
public NeoEsp32RmtInvertedSpeedBase
378 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(800, 1700);
379 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(1600, 900);
380 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(50000);
382 static void IRAM_ATTR Translate(
const void* src,
386 size_t* translated_size,
390 class NeoEsp32RmtInvertedSpeedApa106 :
public NeoEsp32RmtInvertedSpeedBase
393 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(350, 1350);
394 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(1350, 350);
395 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(50000);
397 static void IRAM_ATTR Translate(
const void* src,
401 size_t* translated_size,
405 class NeoEsp32RmtInvertedSpeedTx1812 :
public NeoEsp32RmtInvertedSpeedBase
408 const static DRAM_ATTR uint32_t RmtBit0 = Item32Val(300, 600);
409 const static DRAM_ATTR uint32_t RmtBit1 = Item32Val(600, 300);
410 const static DRAM_ATTR uint16_t RmtDurationReset = FromNs(80000);
412 static void IRAM_ATTR Translate(
const void* src,
416 size_t* translated_size,
420 class NeoEsp32RmtChannel0
423 NeoEsp32RmtChannel0() {};
425 const static rmt_channel_t RmtChannelNumber = RMT_CHANNEL_0;
428 class NeoEsp32RmtChannel1
431 NeoEsp32RmtChannel1() {};
433 const static rmt_channel_t RmtChannelNumber = RMT_CHANNEL_1;
436 class NeoEsp32RmtChannel2
439 NeoEsp32RmtChannel2() {};
441 const static rmt_channel_t RmtChannelNumber = RMT_CHANNEL_2;
444 class NeoEsp32RmtChannel3
447 NeoEsp32RmtChannel3() {};
449 const static rmt_channel_t RmtChannelNumber = RMT_CHANNEL_3;
452 #if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3)
454 class NeoEsp32RmtChannel4
457 NeoEsp32RmtChannel4() {};
459 const static rmt_channel_t RmtChannelNumber = RMT_CHANNEL_4;
462 class NeoEsp32RmtChannel5
465 NeoEsp32RmtChannel5() {};
467 const static rmt_channel_t RmtChannelNumber = RMT_CHANNEL_5;
470 class NeoEsp32RmtChannel6
473 NeoEsp32RmtChannel6() {};
475 const static rmt_channel_t RmtChannelNumber = RMT_CHANNEL_6;
478 class NeoEsp32RmtChannel7
481 NeoEsp32RmtChannel7() {};
483 const static rmt_channel_t RmtChannelNumber = RMT_CHANNEL_7;
489 class NeoEsp32RmtChannelN
493 RmtChannelNumber(static_cast<rmt_channel_t>(channel))
496 NeoEsp32RmtChannelN() =
delete;
498 const rmt_channel_t RmtChannelNumber;
501 template<
typename T_SPEED,
typename T_CHANNEL>
class NeoEsp32RmtMethodBase
506 NeoEsp32RmtMethodBase(uint8_t pin, uint16_t pixelCount,
size_t elementSize,
size_t settingsSize) :
507 _sizeData(pixelCount * elementSize + settingsSize),
513 NeoEsp32RmtMethodBase(uint8_t pin, uint16_t pixelCount,
size_t elementSize,
size_t settingsSize,
NeoBusChannel channel) :
514 _sizeData(pixelCount* elementSize + settingsSize),
521 ~NeoEsp32RmtMethodBase()
525 ESP_ERROR_CHECK_WITHOUT_ABORT(rmt_wait_tx_done(_channel.RmtChannelNumber, 10000 / portTICK_PERIOD_MS));
527 ESP_ERROR_CHECK(rmt_driver_uninstall(_channel.RmtChannelNumber));
529 gpio_matrix_out(_pin, 0x100,
false,
false);
530 pinMode(_pin, INPUT);
537 bool IsReadyToUpdate()
const
539 return (ESP_OK == rmt_wait_tx_done(_channel.RmtChannelNumber, 0));
544 rmt_config_t config = {};
546 config.rmt_mode = RMT_MODE_TX;
547 config.channel = _channel.RmtChannelNumber;
548 config.gpio_num =
static_cast<gpio_num_t
>(_pin);
549 config.mem_block_num = 1;
550 config.tx_config.loop_en =
false;
552 config.tx_config.idle_output_en =
true;
553 config.tx_config.idle_level = T_SPEED::IdleLevel;
555 config.tx_config.carrier_en =
false;
556 config.tx_config.carrier_level = RMT_CARRIER_LEVEL_LOW;
558 config.clk_div = T_SPEED::RmtClockDivider;
560 ESP_ERROR_CHECK(rmt_config(&config));
561 ESP_ERROR_CHECK(rmt_driver_install(_channel.RmtChannelNumber, 0, LUMITRONIX_IFLEX_BUS_RMT_INT_FLAGS));
562 ESP_ERROR_CHECK(rmt_translator_init(_channel.RmtChannelNumber, T_SPEED::Translate));
565 void Update(
bool maintainBufferConsistency)
570 if (ESP_OK == ESP_ERROR_CHECK_WITHOUT_ABORT(rmt_wait_tx_done(_channel.RmtChannelNumber, 10000 / portTICK_PERIOD_MS)))
573 ESP_ERROR_CHECK_WITHOUT_ABORT(rmt_write_sample(_channel.RmtChannelNumber, _dataEditing, _sizeData,
false));
575 if (maintainBufferConsistency)
580 memcpy(_dataSending, _dataEditing, _sizeData);
584 std::swap(_dataSending, _dataEditing);
594 uint8_t* getData()
const
599 size_t getDataSize()
const
604 void applySettings([[maybe_unused]]
const SettingsObject& settings)
609 const size_t _sizeData;
611 const T_CHANNEL _channel;
614 uint8_t* _dataEditing;
615 uint8_t* _dataSending;
620 _dataEditing =
static_cast<uint8_t*
>(malloc(_sizeData));
623 _dataSending =
static_cast<uint8_t*
>(malloc(_sizeData));
629 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2811, NeoEsp32RmtChannelN> NeoEsp32RmtNWs2811Method;
630 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannelN> NeoEsp32RmtNWs2812xMethod;
631 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannelN> NeoEsp32RmtNWs2816Method;
632 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedSk6812, NeoEsp32RmtChannelN> NeoEsp32RmtNSk6812Method;
633 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1814, NeoEsp32RmtChannelN> NeoEsp32RmtNTm1814Method;
634 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1829, NeoEsp32RmtChannelN> NeoEsp32RmtNTm1829Method;
635 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1914, NeoEsp32RmtChannelN> NeoEsp32RmtNTm1914Method;
636 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedApa106, NeoEsp32RmtChannelN> NeoEsp32RmtNApa106Method;
637 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTx1812, NeoEsp32RmtChannelN> NeoEsp32RmtNTx1812Method;
638 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed800Kbps, NeoEsp32RmtChannelN> NeoEsp32RmtN800KbpsMethod;
639 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed400Kbps, NeoEsp32RmtChannelN> NeoEsp32RmtN400KbpsMethod;
641 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2811, NeoEsp32RmtChannel0> NeoEsp32Rmt0Ws2811Method;
642 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel0> NeoEsp32Rmt0Ws2812xMethod;
643 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel0> NeoEsp32Rmt0Ws2816Method;
644 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedSk6812, NeoEsp32RmtChannel0> NeoEsp32Rmt0Sk6812Method;
645 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1814, NeoEsp32RmtChannel0> NeoEsp32Rmt0Tm1814Method;
646 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1829, NeoEsp32RmtChannel0> NeoEsp32Rmt0Tm1829Method;
647 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1914, NeoEsp32RmtChannel0> NeoEsp32Rmt0Tm1914Method;
648 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedApa106, NeoEsp32RmtChannel0> NeoEsp32Rmt0Apa106Method;
649 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTx1812, NeoEsp32RmtChannel0> NeoEsp32Rmt0Tx1812Method;
650 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed800Kbps, NeoEsp32RmtChannel0> NeoEsp32Rmt0800KbpsMethod;
651 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed400Kbps, NeoEsp32RmtChannel0> NeoEsp32Rmt0400KbpsMethod;
653 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2811, NeoEsp32RmtChannel1> NeoEsp32Rmt1Ws2811Method;
654 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel1> NeoEsp32Rmt1Ws2812xMethod;
655 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel1> NeoEsp32Rmt1Ws2816Method;
656 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedSk6812, NeoEsp32RmtChannel1> NeoEsp32Rmt1Sk6812Method;
657 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1814, NeoEsp32RmtChannel1> NeoEsp32Rmt1Tm1814Method;
658 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1829, NeoEsp32RmtChannel1> NeoEsp32Rmt1Tm1829Method;
659 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1914, NeoEsp32RmtChannel1> NeoEsp32Rmt1Tm1914Method;
660 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedApa106, NeoEsp32RmtChannel1> NeoEsp32Rmt1Apa106Method;
661 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTx1812, NeoEsp32RmtChannel1> NeoEsp32Rmt1Tx1812Method;
662 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed800Kbps, NeoEsp32RmtChannel1> NeoEsp32Rmt1800KbpsMethod;
663 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed400Kbps, NeoEsp32RmtChannel1> NeoEsp32Rmt1400KbpsMethod;
665 #if !defined(CONFIG_IDF_TARGET_ESP32C3)
667 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2811, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2811Method;
668 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2812xMethod;
669 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2816Method;
670 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedSk6812, NeoEsp32RmtChannel2> NeoEsp32Rmt2Sk6812Method;
671 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1814, NeoEsp32RmtChannel2> NeoEsp32Rmt2Tm1814Method;
672 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1829, NeoEsp32RmtChannel2> NeoEsp32Rmt2Tm1829Method;
673 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1914, NeoEsp32RmtChannel2> NeoEsp32Rmt2Tm1914Method;
674 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedApa106, NeoEsp32RmtChannel2> NeoEsp32Rmt2Apa106Method;
675 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTx1812, NeoEsp32RmtChannel2> NeoEsp32Rmt2Tx1812Method;
676 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed800Kbps, NeoEsp32RmtChannel2> NeoEsp32Rmt2800KbpsMethod;
677 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed400Kbps, NeoEsp32RmtChannel2> NeoEsp32Rmt2400KbpsMethod;
679 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2811, NeoEsp32RmtChannel3> NeoEsp32Rmt3Ws2811Method;
680 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel3> NeoEsp32Rmt3Ws2812xMethod;
681 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel3> NeoEsp32Rmt3Ws2816Method;
682 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedSk6812, NeoEsp32RmtChannel3> NeoEsp32Rmt3Sk6812Method;
683 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1814, NeoEsp32RmtChannel3> NeoEsp32Rmt3Tm1814Method;
684 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1829, NeoEsp32RmtChannel3> NeoEsp32Rmt3Tm1829Method;
685 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1914, NeoEsp32RmtChannel3> NeoEsp32Rmt3Tm1914Method;
686 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedApa106, NeoEsp32RmtChannel3> NeoEsp32Rmt3Apa106Method;
687 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTx1812, NeoEsp32RmtChannel3> NeoEsp32Rmt3Tx1812Method;
688 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed800Kbps, NeoEsp32RmtChannel3> NeoEsp32Rmt3800KbpsMethod;
689 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed400Kbps, NeoEsp32RmtChannel3> NeoEsp32Rmt3400KbpsMethod;
691 #if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32S3)
693 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2811, NeoEsp32RmtChannel4> NeoEsp32Rmt4Ws2811Method;
694 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel4> NeoEsp32Rmt4Ws2812xMethod;
695 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel4> NeoEsp32Rmt4Ws2816Method;
696 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedSk6812, NeoEsp32RmtChannel4> NeoEsp32Rmt4Sk6812Method;
697 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1814, NeoEsp32RmtChannel4> NeoEsp32Rmt4Tm1814Method;
698 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1829, NeoEsp32RmtChannel4> NeoEsp32Rmt4Tm1829Method;
699 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1914, NeoEsp32RmtChannel4> NeoEsp32Rmt4Tm1914Method;
700 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedApa106, NeoEsp32RmtChannel4> NeoEsp32Rmt4Apa106Method;
701 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTx1812, NeoEsp32RmtChannel4> NeoEsp32Rmt4Tx1812Method;
702 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed800Kbps, NeoEsp32RmtChannel4> NeoEsp32Rmt4800KbpsMethod;
703 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed400Kbps, NeoEsp32RmtChannel4> NeoEsp32Rmt4400KbpsMethod;
705 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2811, NeoEsp32RmtChannel5> NeoEsp32Rmt5Ws2811Method;
706 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel5> NeoEsp32Rmt5Ws2812xMethod;
707 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel5> NeoEsp32Rmt5Ws2816Method;
708 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedSk6812, NeoEsp32RmtChannel5> NeoEsp32Rmt5Sk6812Method;
709 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1814, NeoEsp32RmtChannel5> NeoEsp32Rmt5Tm1814Method;
710 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1829, NeoEsp32RmtChannel5> NeoEsp32Rmt5Tm1829Method;
711 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1914, NeoEsp32RmtChannel5> NeoEsp32Rmt5Tm1914Method;
712 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedApa106, NeoEsp32RmtChannel5> NeoEsp32Rmt5Apa106Method;
713 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTx1812, NeoEsp32RmtChannel5> NeoEsp32Rmt5Tx1812Method;
714 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed800Kbps, NeoEsp32RmtChannel5> NeoEsp32Rmt5800KbpsMethod;
715 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed400Kbps, NeoEsp32RmtChannel5> NeoEsp32Rmt5400KbpsMethod;
717 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2811, NeoEsp32RmtChannel6> NeoEsp32Rmt6Ws2811Method;
718 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel6> NeoEsp32Rmt6Ws2812xMethod;
719 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel6> NeoEsp32Rmt6Ws2816Method;
720 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedSk6812, NeoEsp32RmtChannel6> NeoEsp32Rmt6Sk6812Method;
721 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1814, NeoEsp32RmtChannel6> NeoEsp32Rmt6Tm1814Method;
722 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1829, NeoEsp32RmtChannel6> NeoEsp32Rmt6Tm1829Method;
723 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1914, NeoEsp32RmtChannel6> NeoEsp32Rmt6Tm1914Method;
724 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedApa106, NeoEsp32RmtChannel6> NeoEsp32Rmt6Apa106Method;
725 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTx1812, NeoEsp32RmtChannel6> NeoEsp32Rmt6Tx1812Method;
726 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed800Kbps, NeoEsp32RmtChannel6> NeoEsp32Rmt6800KbpsMethod;
727 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed400Kbps, NeoEsp32RmtChannel6> NeoEsp32Rmt6400KbpsMethod;
729 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2811, NeoEsp32RmtChannel7> NeoEsp32Rmt7Ws2811Method;
730 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel7> NeoEsp32Rmt7Ws2812xMethod;
731 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel7> NeoEsp32Rmt7Ws2816Method;
732 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedSk6812, NeoEsp32RmtChannel7> NeoEsp32Rmt7Sk6812Method;
733 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1814, NeoEsp32RmtChannel7> NeoEsp32Rmt7Tm1814Method;
734 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1829, NeoEsp32RmtChannel7> NeoEsp32Rmt7Tm1829Method;
735 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTm1914, NeoEsp32RmtChannel7> NeoEsp32Rmt7Tm1914Method;
736 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedApa106, NeoEsp32RmtChannel7> NeoEsp32Rmt7Apa106Method;
737 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTx1812, NeoEsp32RmtChannel7> NeoEsp32Rmt7Tx1812Method;
738 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed800Kbps, NeoEsp32RmtChannel7> NeoEsp32Rmt7800KbpsMethod;
739 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed400Kbps, NeoEsp32RmtChannel7> NeoEsp32Rmt7400KbpsMethod;
745 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2811, NeoEsp32RmtChannelN> NeoEsp32RmtNWs2811InvertedMethod;
746 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannelN> NeoEsp32RmtNWs2812xInvertedMethod;
747 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannelN> NeoEsp32RmtNWs2816InvertedMethod;
748 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedSk6812, NeoEsp32RmtChannelN> NeoEsp32RmtNSk6812InvertedMethod;
749 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1814, NeoEsp32RmtChannelN> NeoEsp32RmtNTm1814InvertedMethod;
750 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1829, NeoEsp32RmtChannelN> NeoEsp32RmtNTm1829InvertedMethod;
751 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1914, NeoEsp32RmtChannelN> NeoEsp32RmtNTm1914InvertedMethod;
752 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedApa106, NeoEsp32RmtChannelN> NeoEsp32RmtNApa106InvertedMethod;
753 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTx1812, NeoEsp32RmtChannelN> NeoEsp32RmtNTx1812InvertedMethod;
754 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed800Kbps, NeoEsp32RmtChannelN> NeoEsp32RmtN800KbpsInvertedMethod;
755 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChannelN> NeoEsp32RmtN400KbpsInvertedMethod;
757 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2811, NeoEsp32RmtChannel0> NeoEsp32Rmt0Ws2811InvertedMethod;
758 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel0> NeoEsp32Rmt0Ws2812xInvertedMethod;
759 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel0> NeoEsp32Rmt0Ws2816InvertedMethod;
760 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedSk6812, NeoEsp32RmtChannel0> NeoEsp32Rmt0Sk6812InvertedMethod;
761 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1814, NeoEsp32RmtChannel0> NeoEsp32Rmt0Tm1814InvertedMethod;
762 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1829, NeoEsp32RmtChannel0> NeoEsp32Rmt0Tm1829InvertedMethod;
763 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1914, NeoEsp32RmtChannel0> NeoEsp32Rmt0Tm1914InvertedMethod;
764 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedApa106, NeoEsp32RmtChannel0> NeoEsp32Rmt0Apa106InvertedMethod;
765 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTx1812, NeoEsp32RmtChannel0> NeoEsp32Rmt0Tx1812InvertedMethod;
766 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed800Kbps, NeoEsp32RmtChannel0> NeoEsp32Rmt0800KbpsInvertedMethod;
767 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChannel0> NeoEsp32Rmt0400KbpsInvertedMethod;
769 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2811, NeoEsp32RmtChannel1> NeoEsp32Rmt1Ws2811InvertedMethod;
770 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel1> NeoEsp32Rmt1Ws2812xInvertedMethod;
771 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel1> NeoEsp32Rmt1Ws2816InvertedMethod;
772 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedSk6812, NeoEsp32RmtChannel1> NeoEsp32Rmt1Sk6812InvertedMethod;
773 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1814, NeoEsp32RmtChannel1> NeoEsp32Rmt1Tm1814InvertedMethod;
774 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1829, NeoEsp32RmtChannel1> NeoEsp32Rmt1Tm1829InvertedMethod;
775 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1914, NeoEsp32RmtChannel1> NeoEsp32Rmt1Tm1914InvertedMethod;
776 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedApa106, NeoEsp32RmtChannel1> NeoEsp32Rmt1Apa106InvertedMethod;
777 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTx1812, NeoEsp32RmtChannel1> NeoEsp32Rmt1Tx1812InvertedMethod;
778 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed800Kbps, NeoEsp32RmtChannel1> NeoEsp32Rmt1800KbpsInvertedMethod;
779 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChannel1> NeoEsp32Rmt1400KbpsInvertedMethod;
781 #if !defined(CONFIG_IDF_TARGET_ESP32C3)
783 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2811, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2811InvertedMethod;
784 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2812xInvertedMethod;
785 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2816InvertedMethod;
786 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedSk6812, NeoEsp32RmtChannel2> NeoEsp32Rmt2Sk6812InvertedMethod;
787 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1814, NeoEsp32RmtChannel2> NeoEsp32Rmt2Tm1814InvertedMethod;
788 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1829, NeoEsp32RmtChannel2> NeoEsp32Rmt2Tm1829InvertedMethod;
789 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1914, NeoEsp32RmtChannel2> NeoEsp32Rmt2Tm1914InvertedMethod;
790 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedApa106, NeoEsp32RmtChannel2> NeoEsp32Rmt2Apa106InvertedMethod;
791 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTx1812, NeoEsp32RmtChannel2> NeoEsp32Rmt2Tx1812InvertedMethod;
792 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed800Kbps, NeoEsp32RmtChannel2> NeoEsp32Rmt2800KbpsInvertedMethod;
793 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChannel2> NeoEsp32Rmt2400KbpsInvertedMethod;
795 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2811, NeoEsp32RmtChannel3> NeoEsp32Rmt3Ws2811InvertedMethod;
796 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel3> NeoEsp32Rmt3Ws2812xInvertedMethod;
797 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel3> NeoEsp32Rmt3Ws2816InvertedMethod;
798 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedSk6812, NeoEsp32RmtChannel3> NeoEsp32Rmt3Sk6812InvertedMethod;
799 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1814, NeoEsp32RmtChannel3> NeoEsp32Rmt3Tm1814InvertedMethod;
800 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1829, NeoEsp32RmtChannel3> NeoEsp32Rmt3Tm1829InvertedMethod;
801 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1914, NeoEsp32RmtChannel3> NeoEsp32Rmt3Tm1914InvertedMethod;
802 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedApa106, NeoEsp32RmtChannel3> NeoEsp32Rmt3Apa106InvertedMethod;
803 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTx1812, NeoEsp32RmtChannel3> NeoEsp32Rmt3Tx1812InvertedMethod;
804 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed800Kbps, NeoEsp32RmtChannel3> NeoEsp32Rmt3800KbpsInvertedMethod;
805 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChannel3> NeoEsp32Rmt3400KbpsInvertedMethod;
807 #if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32S3)
809 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2811, NeoEsp32RmtChannel4> NeoEsp32Rmt4Ws2811InvertedMethod;
810 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel4> NeoEsp32Rmt4Ws2812xInvertedMethod;
811 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel4> NeoEsp32Rmt4Ws2816InvertedMethod;
812 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedSk6812, NeoEsp32RmtChannel4> NeoEsp32Rmt4Sk6812InvertedMethod;
813 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1814, NeoEsp32RmtChannel4> NeoEsp32Rmt4Tm1814InvertedMethod;
814 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1829, NeoEsp32RmtChannel4> NeoEsp32Rmt4Tm1829InvertedMethod;
815 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1914, NeoEsp32RmtChannel4> NeoEsp32Rmt4Tm1914InvertedMethod;
816 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedApa106, NeoEsp32RmtChannel4> NeoEsp32Rmt4Apa106InvertedMethod;
817 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTx1812, NeoEsp32RmtChannel4> NeoEsp32Rmt4Tx1812InvertedMethod;
818 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed800Kbps, NeoEsp32RmtChannel4> NeoEsp32Rmt4800KbpsInvertedMethod;
819 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChannel4> NeoEsp32Rmt4400KbpsInvertedMethod;
821 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2811, NeoEsp32RmtChannel5> NeoEsp32Rmt5Ws2811InvertedMethod;
822 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel5> NeoEsp32Rmt5Ws2812xInvertedMethod;
823 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel5> NeoEsp32Rmt5Ws2816InvertedMethod;
824 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedSk6812, NeoEsp32RmtChannel5> NeoEsp32Rmt5Sk6812InvertedMethod;
825 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1814, NeoEsp32RmtChannel5> NeoEsp32Rmt5Tm1814InvertedMethod;
826 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1829, NeoEsp32RmtChannel5> NeoEsp32Rmt5Tm1829InvertedMethod;
827 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1914, NeoEsp32RmtChannel5> NeoEsp32Rmt5Tm1914InvertedMethod;
828 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedApa106, NeoEsp32RmtChannel5> NeoEsp32Rmt5Apa106InvertedMethod;
829 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTx1812, NeoEsp32RmtChannel5> NeoEsp32Rmt5Tx1812InvertedMethod;
830 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed800Kbps, NeoEsp32RmtChannel5> NeoEsp32Rmt5800KbpsInvertedMethod;
831 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChannel5> NeoEsp32Rmt5400KbpsInvertedMethod;
833 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2811, NeoEsp32RmtChannel6> NeoEsp32Rmt6Ws2811InvertedMethod;
834 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel6> NeoEsp32Rmt6Ws2812xInvertedMethod;
835 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel6> NeoEsp32Rmt6Ws2816InvertedMethod;
836 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedSk6812, NeoEsp32RmtChannel6> NeoEsp32Rmt6Sk6812InvertedMethod;
837 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1814, NeoEsp32RmtChannel6> NeoEsp32Rmt6Tm1814InvertedMethod;
838 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1829, NeoEsp32RmtChannel6> NeoEsp32Rmt6Tm1829InvertedMethod;
839 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1914, NeoEsp32RmtChannel6> NeoEsp32Rmt6Tm1914InvertedMethod;
840 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedApa106, NeoEsp32RmtChannel6> NeoEsp32Rmt6Apa106InvertedMethod;
841 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTx1812, NeoEsp32RmtChannel6> NeoEsp32Rmt6Tx1812InvertedMethod;
842 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed800Kbps, NeoEsp32RmtChannel6> NeoEsp32Rmt6800KbpsInvertedMethod;
843 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChannel6> NeoEsp32Rmt6400KbpsInvertedMethod;
845 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2811, NeoEsp32RmtChannel7> NeoEsp32Rmt7Ws2811InvertedMethod;
846 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel7> NeoEsp32Rmt7Ws2812xInvertedMethod;
847 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel7> NeoEsp32Rmt7Ws2816InvertedMethod;
848 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedSk6812, NeoEsp32RmtChannel7> NeoEsp32Rmt7Sk6812InvertedMethod;
849 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1814, NeoEsp32RmtChannel7> NeoEsp32Rmt7Tm1814InvertedMethod;
850 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1829, NeoEsp32RmtChannel7> NeoEsp32Rmt7Tm1829InvertedMethod;
851 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTm1914, NeoEsp32RmtChannel7> NeoEsp32Rmt7Tm1914InvertedMethod;
852 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedApa106, NeoEsp32RmtChannel7> NeoEsp32Rmt7Apa106InvertedMethod;
853 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTx1812, NeoEsp32RmtChannel7> NeoEsp32Rmt7Tx1812InvertedMethod;
854 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed800Kbps, NeoEsp32RmtChannel7> NeoEsp32Rmt7800KbpsInvertedMethod;
855 typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChannel7> NeoEsp32Rmt7400KbpsInvertedMethod;
861 #if defined(LUMITRONIX_IFLEX_ESP32_RMT_DEFAULT) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3)
867 #if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3)
870 typedef NeoEsp32Rmt1Ws2812xMethod NeoWs2813Method;
871 typedef NeoEsp32Rmt1Ws2812xMethod NeoWs2812xMethod;
872 typedef NeoEsp32Rmt1800KbpsMethod NeoWs2812Method;
873 typedef NeoEsp32Rmt1Ws2812xMethod NeoWs2811Method;
874 typedef NeoEsp32Rmt1Ws2812xMethod NeoWs2816Method;
875 typedef NeoEsp32Rmt1Sk6812Method NeoSk6812Method;
876 typedef NeoEsp32Rmt1Tm1814Method NeoTm1814Method;
877 typedef NeoEsp32Rmt1Tm1829Method NeoTm1829Method;
878 typedef NeoEsp32Rmt1Tm1914Method NeoTm1914Method;
879 typedef NeoEsp32Rmt1Sk6812Method NeoLc8812Method;
880 typedef NeoEsp32Rmt1Apa106Method NeoApa106Method;
881 typedef NeoEsp32Rmt1Tx1812Method NeoTx1812Method;
883 typedef NeoEsp32Rmt1Ws2812xMethod Neo800KbpsMethod;
884 typedef NeoEsp32Rmt1400KbpsMethod Neo400KbpsMethod;
886 typedef NeoEsp32Rmt1Ws2812xInvertedMethod NeoWs2813InvertedMethod;
887 typedef NeoEsp32Rmt1Ws2812xInvertedMethod NeoWs2812xInvertedMethod;
888 typedef NeoEsp32Rmt1Ws2812xInvertedMethod NeoWs2811InvertedMethod;
889 typedef NeoEsp32Rmt1800KbpsInvertedMethod NeoWs2812InvertedMethod;
890 typedef NeoEsp32Rmt1Ws2812xInvertedMethod NeoWs2816InvertedMethod;
891 typedef NeoEsp32Rmt1Sk6812InvertedMethod NeoSk6812InvertedMethod;
892 typedef NeoEsp32Rmt1Tm1814InvertedMethod NeoTm1814InvertedMethod;
893 typedef NeoEsp32Rmt1Tm1829InvertedMethod NeoTm1829InvertedMethod;
894 typedef NeoEsp32Rmt1Tm1914InvertedMethod NeoTm1914InvertedMethod;
895 typedef NeoEsp32Rmt1Sk6812InvertedMethod NeoLc8812InvertedMethod;
896 typedef NeoEsp32Rmt1Apa106InvertedMethod NeoApa106InvertedMethod;
897 typedef NeoEsp32Rmt1Tx1812InvertedMethod NeoTx1812InvertedMethod;
899 typedef NeoEsp32Rmt1Ws2812xInvertedMethod Neo800KbpsInvertedMethod;
900 typedef NeoEsp32Rmt1400KbpsInvertedMethod Neo400KbpsInvertedMethod;
905 typedef NeoEsp32Rmt6Ws2812xMethod NeoWs2813Method;
906 typedef NeoEsp32Rmt6Ws2812xMethod NeoWs2812xMethod;
907 typedef NeoEsp32Rmt6800KbpsMethod NeoWs2812Method;
908 typedef NeoEsp32Rmt6Ws2812xMethod NeoWs2811Method;
909 typedef NeoEsp32Rmt6Ws2812xMethod NeoWs2816Method;
910 typedef NeoEsp32Rmt6Sk6812Method NeoSk6812Method;
911 typedef NeoEsp32Rmt6Tm1814Method NeoTm1814Method;
912 typedef NeoEsp32Rmt6Tm1829Method NeoTm1829Method;
913 typedef NeoEsp32Rmt6Tm1914Method NeoTm1914Method;
914 typedef NeoEsp32Rmt6Sk6812Method NeoLc8812Method;
915 typedef NeoEsp32Rmt6Apa106Method NeoApa106Method;
916 typedef NeoEsp32Rmt6Tx1812Method NeoTx1812Method;
918 typedef NeoEsp32Rmt6Ws2812xMethod Neo800KbpsMethod;
919 typedef NeoEsp32Rmt6400KbpsMethod Neo400KbpsMethod;
921 typedef NeoEsp32Rmt6Ws2812xInvertedMethod NeoWs2813InvertedMethod;
922 typedef NeoEsp32Rmt6Ws2812xInvertedMethod NeoWs2812xInvertedMethod;
923 typedef NeoEsp32Rmt6Ws2812xInvertedMethod NeoWs2811InvertedMethod;
924 typedef NeoEsp32Rmt6800KbpsInvertedMethod NeoWs2812InvertedMethod;
925 typedef NeoEsp32Rmt6Ws2812xInvertedMethod NeoWs2816InvertedMethod;
926 typedef NeoEsp32Rmt6Sk6812InvertedMethod NeoSk6812InvertedMethod;
927 typedef NeoEsp32Rmt6Tm1814InvertedMethod NeoTm1814InvertedMethod;
928 typedef NeoEsp32Rmt6Tm1829InvertedMethod NeoTm1829InvertedMethod;
929 typedef NeoEsp32Rmt6Tm1914InvertedMethod NeoTm1914InvertedMethod;
930 typedef NeoEsp32Rmt6Sk6812InvertedMethod NeoLc8812InvertedMethod;
931 typedef NeoEsp32Rmt6Apa106InvertedMethod NeoApa106InvertedMethod;
932 typedef NeoEsp32Rmt6Tx1812InvertedMethod NeoTx1812InvertedMethod;
934 typedef NeoEsp32Rmt6Ws2812xInvertedMethod Neo800KbpsInvertedMethod;
935 typedef NeoEsp32Rmt6400KbpsInvertedMethod Neo400KbpsInvertedMethod;
NeoBusChannel
Definition: NeoBusChannel.h:12
Definition: NeoSettings.h:29