From b0d99800231f71b35df4e3970dabd476355dfe55 Mon Sep 17 00:00:00 2001 From: whowechina Date: Sun, 25 Feb 2024 10:29:27 +0800 Subject: [PATCH] Support up to 64 RGB LEDs --- Production/Firmware/aic_pico.uf2 | Bin 120832 -> 120832 bytes README.md | 2 +- firmware/src/light.c | 2 +- firmware/src/main.c | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Production/Firmware/aic_pico.uf2 b/Production/Firmware/aic_pico.uf2 index b6557ce975a0ab76271e7f221989b35989491f80..70a2141fed1f7af99688fd43122e37e4f4c18331 100644 GIT binary patch delta 14188 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 #### Notes -* The firmware supports up to 16 LEDs on the WS2812B LED strip. I personally used 3 as shown in main title image. But you can experiment with different LED numbers, as long as they fit within the housing. +* The firmware supports up to 64 LEDs on the WS2812B LED strip. I personally used 3 as shown in main title image. But you can have different LED number, as long as they fit within the housing. * LED might be excessively bright even at low settings, consider covering it with some filter tape. * The mode switch on PN532 must be in "I2C" mode, picture below shows the correct settings. diff --git a/firmware/src/light.c b/firmware/src/light.c index c7f5cac..9c5c79d 100644 --- a/firmware/src/light.c +++ b/firmware/src/light.c @@ -21,7 +21,7 @@ #include "board_defs.h" #include "config.h" -static uint32_t rgb_buf[16]; +static uint32_t rgb_buf[64]; static uint8_t led_gpio[] = LED_DEF; #define RGB_NUM (sizeof(rgb_buf) / sizeof(rgb_buf[0])) #define LED_NUM (sizeof(led_gpio)) diff --git a/firmware/src/main.c b/firmware/src/main.c index 2b0bc56..623d788 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -103,7 +103,7 @@ static void core1_loop() mutex_exit(&core1_io_lock); } cli_fps_count(1); - sleep_ms(1); + sleep_us(500); } }