#ifndef BOARD_CONFIG_H #define BOARD_CONFIG_H /* Matches adapter/code.py — W5500 on SPI1, WS2812 on GP27 */ #define PIN_LED_STATUS 25 #define SPI_PORT spi1 #define SPI_CLK_MHZ 20 #define PIN_CS 9 #define PIN_SCK 10 #define PIN_MOSI 11 #define PIN_MISO 12 #define PIN_RST 13 #ifndef PIN_WS2812 #define PIN_WS2812 27 #endif #ifndef NUM_LEDS #define NUM_LEDS 405 #endif #define LED_RGB_BYTES (NUM_LEDS * 3) /* W5500 socket assignments */ #define SOCKET_DHCP 0 #define SOCKET_UDP 1 /* UDP port (same as CircuitPython adapter) */ #define UDP_PORT 50007 /* Compile-time panel index for filtered frames (0–4). 255 = accept all. */ #ifndef PANEL_ID #define PANEL_ID 255 #endif /* 1 = DHCP, 0 = static IP below */ #ifndef USE_DHCP #define USE_DHCP 0 #endif #define STATIC_IP_OCT4 ((PANEL_ID) == 255 ? 19u : (10u + (unsigned)(PANEL_ID))) #define STATIC_IP {10, 1, 1, (uint8_t)STATIC_IP_OCT4} #define STATIC_SN {255, 255, 255, 0} #define STATIC_GW {10, 1, 1, 1} #define STATIC_DNS {10, 1, 1, 1} /* Locally administered; last byte = PANEL_ID (unique per panel 0–4). */ #define MAC_ADDR {0x02, 0x50, 0x52, 0x54, 0x4C, (uint8_t)PANEL_ID} #endif