- app_net.c: replace bare httpd_req_recv with recv_body_capped/alloc helpers (TCP-safe, full-body reads); add OPTIONS/* CORS preflight handler; bump WS broadcast buffer to 2048; add CORS Allow-Methods - CMakeLists (net_service): add http_parser dep for HTTP_OPTIONS - nfc_engine/pn532_core: add nfc_access_lock/unlock mutex, board-RGB quiet helper, UL type detection, general-status improvements - pn532_transport: minor cleanup - main.c: call board_rgb_led_quiet() at boot to kill onboard LED - sdkconfig.defaults: add board RGB Kconfig defaults - README, docs/LIMITATIONS, docs/PINOUT: expand and correct Made-with: Cursor
1.5 KiB
Pinout notes (ESP32-S3-DevKitC-1)
Strapping and USB pins differ by revision — avoid GPIO 19–20 for PN532 when using USB-Serial/JTAG on many boards. Prefer SPI2 on free GPIOs from the DevKitC-1 user guide.
Kconfig defaults (examples only)
The firmware Kconfig ships example GPIOs:
- SPI: MOSI
11, MISO13, SCLK12, CS10 - I2C: SDA
8, SCL9
You must verify these against your PCB/breadboard and PN532 breakout (Adafruit / Elechouse / clones often label SPI and I2C jumpers).
PN532 wiring checklist
- SPI: connect
RSTO/RSTto MCU if exposed; some breakouts auto-reset via I2C/SPI activity. - I2C: set address pins per module (usually 0x24 7‑bit).
- Power: 3.3V logic on ESP32; ensure PN532 module is 3.3V compliant (level-shift if using a 5V Arduino-style shield).
Transport selection
Start with the bus your breakout is jumpered for — I2C is often simplest on ESP32 for bring-up; SPI may require lower clock initially (e.g. 100 kHz).
Common red module switch matrix
For the common Elechouse-style red PN532 board, the onboard two-position switch matrix is typically:
- HSU:
OFF/OFF - I2C:
ON/OFF - SPI:
OFF/ON
Many of these boards boot in HSU by default, and the I2C and HSU labels often refer to the same physical header pins from opposite sides of the PCB. If the bus looks dead, check the switches before changing firmware.