feat(01-01): PlatformIO scaffold + config.h
- platformio.ini with -DESP32_ARDUINO_NO_RGB_BUILTIN, NeoPixelBus ^2.8.0, ArduinoJson ^7.4.0 - config.h defines all pin, LED count, brightness, timing, and FreeRTOS constants
This commit is contained in:
14
firmware/platformio.ini
Normal file
14
firmware/platformio.ini
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
[env:esp32c3_supermini]
|
||||||
|
platform = espressif32
|
||||||
|
board = esp32-c3-devkitm-1
|
||||||
|
framework = arduino
|
||||||
|
monitor_speed = 115200
|
||||||
|
|
||||||
|
build_flags =
|
||||||
|
-DARDUINO_USB_CDC_ON_BOOT=1
|
||||||
|
-DARDUINO_USB_MODE=1
|
||||||
|
-DESP32_ARDUINO_NO_RGB_BUILTIN
|
||||||
|
|
||||||
|
lib_deps =
|
||||||
|
makuna/NeoPixelBus @ ^2.8.0
|
||||||
|
bblanchon/ArduinoJson @ ^7.4.0
|
||||||
49
firmware/src/config.h
Normal file
49
firmware/src/config.h
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
// GPIO6/GPIO7 for WS2801 SPI — validate on hardware, fallback: GPIO0/GPIO1 if JTAG conflict
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <freertos/FreeRTOS.h>
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// Pin assignments (ESP32-C3 SuperMini safe GPIOs)
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
constexpr uint8_t PIN_SK6812 = 3; // RMT channel 0, confirmed safe
|
||||||
|
constexpr uint8_t PIN_WS2801_MOSI = 7; // Hardware SPI MOSI
|
||||||
|
constexpr uint8_t PIN_WS2801_CLK = 6; // Hardware SPI CLK
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// LED strip lengths
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
constexpr uint16_t LED_COUNT_SCHRANK = 160; // WS2801 strip (Schrank, U-turn)
|
||||||
|
constexpr uint16_t LED_COUNT_WAND = 300; // SK6812 strip (Wand, RGBW)
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// Brightness limits (per D-09: peak 27A at full brightness, cap at 40%)
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
constexpr float BRIGHTNESS_CAP = 0.40f; // 40% hardware max (per D-09)
|
||||||
|
constexpr float BRIGHTNESS_MAX = 0.60f; // 60% user-settable ceiling
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// Network
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
constexpr uint16_t UDP_PORT = 4210; // Pi-to-ESP command port
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// Animation engine (per D-04: 50fps tick rate)
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
constexpr uint8_t ANIM_FPS = 50; // 50fps tick rate
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// FreeRTOS task priorities (higher number = higher priority on single core)
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
constexpr UBaseType_t PRIORITY_LED_OUTPUT = 3;
|
||||||
|
constexpr UBaseType_t PRIORITY_ANIM_TICK = 2;
|
||||||
|
constexpr UBaseType_t PRIORITY_WIFI_RECV = 1;
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
// FreeRTOS stack sizes (bytes)
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
constexpr uint32_t STACK_WIFI = 8192;
|
||||||
|
constexpr uint32_t STACK_ANIM = 4096;
|
||||||
|
constexpr uint32_t STACK_LED = 2048;
|
||||||
Reference in New Issue
Block a user