Add PN532 toolkit firmware, web UI, and embedded SPIFFS assets

Includes ESP-IDF NFC stack (deep capture, 4K Classic geometry, UL write API,
open SoftAP), React dashboard with live tag diagnostics, and docs. README
updated for APIs and lab Wi-Fi defaults.

Made-with: Cursor
This commit is contained in:
drjones
2026-03-29 09:32:55 -07:00
parent d1068d965b
commit 8968560565
73 changed files with 8802 additions and 28 deletions

View File

@@ -0,0 +1,37 @@
#include "sdkconfig.h"
#include "board_rgb_off.h"
#include "esp_log.h"
#if CONFIG_BOARD_RGB_LED_ENABLE
#include "esp_err.h"
#include "led_strip.h"
#endif
void board_rgb_led_quiet(void)
{
#if CONFIG_BOARD_RGB_LED_ENABLE
led_strip_handle_t strip = NULL;
const led_strip_config_t strip_config = {
.strip_gpio_num = CONFIG_BOARD_RGB_LED_GPIO,
.max_leds = 1,
.led_pixel_format = LED_PIXEL_FORMAT_GRB,
.led_model = LED_MODEL_WS2812,
.flags = {.invert_out = false},
};
const led_strip_rmt_config_t rmt_config = {
.clk_src = RMT_CLK_SRC_DEFAULT,
.resolution_hz = 10 * 1000 * 1000,
.flags = {.with_dma = false},
};
esp_err_t err = led_strip_new_rmt_device(&strip_config, &rmt_config, &strip);
if (err != ESP_OK) {
ESP_LOGW("board_rgb", "RGB init failed (%s), leaving LED as-is", esp_err_to_name(err));
return;
}
err = led_strip_clear(strip);
if (err != ESP_OK) {
ESP_LOGW("board_rgb", "RGB clear failed (%s)", esp_err_to_name(err));
}
led_strip_del(strip);
#endif
}