prism-k1-firmware

Align firmware specifications with PRISM K1 ESP32-S3 LED controller implementation.

15|1|Updated Oct 23, 2025
One-click install
npx skills add https://github.com/synqing/K1.hardware --skill prism-k1-firmware
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: prism-k1-firmware
Source: https://github.com/synqing/K1.hardware/tree/main/.claude/skills/PRISM.k1-Firmware
Command: npx skills add https://github.com/synqing/K1.hardware --skill prism-k1-firmware

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developing real-time embedded firmware for LED controllers involves intricate hardware constraints, precise timing, and robust communication protocols. This Skill provides the complete technical specification for the PRISM K1 ESP32-S3 LED controller firmware, enabling developers to understand, debug, and extend the system with confidence, ensuring stable and high-performance LED animations.

Core Features & Use Cases

  • Real-time LED Control: Understand the 120 FPS LED refresh rate, I2S DMA output, and FreeRTOS task prioritization for smooth animations.
  • WebSocket TLV Protocol: Learn the binary Type-Length-Value protocol for efficient communication and pattern uploads from a web editor.
  • Memory Management: Dive into the custom memory pool architecture and flash layout for reliable operation on ESP32-S3.
  • Use Case: Develop custom LED patterns that integrate seamlessly with the K1 device, debug unexpected firmware behavior, or implement new communication features for the controller.

Quick Start

Example: Logging from firmware

#include "esp_log.h" static const char *TAG = "MY_MODULE"; ESP_LOGI(TAG, "Starting playback: %d pixels at 120 FPS", led_count); ESP_LOGE(TAG, "Memory pool init failed: %d", ret);

Frequently Asked Questions about prism-k1-firmware

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement real-time LED control at 120 FPS on ESP32-S3?

Real-time LED control at 120 FPS on ESP32-S3 requires I2S DMA output paired with FreeRTOS task prioritization. This Skill specifies the exact timing constraints, memory pool architecture, and playback task configuration (priority 10) needed to achieve smooth animations on 320 WS2812B LEDs without frame drops or memory fragmentation.

What's the best way to handle WebSocket communication for LED pattern uploads?

The WebSocket TLV (Type-Length-Value) binary protocol provides efficient pattern uploads from a web editor to the K1 controller. This Skill defines the complete protocol specification, memory layout for pattern storage, and FreeRTOS integration required to process incoming commands without blocking the 120 FPS playback thread.

How do I partition flash memory and manage OTA updates on ESP32-S3?

ESP32-S3 with 8MB flash requires dual-image OTA partitions and LittleFS storage rules to enable safe firmware updates without downtime. This Skill enforces the exact partition layout, memory constraints, and update sequencing needed to maintain dual bootable images while preserving LED animation state.

Can I use custom memory pools to optimize heap fragmentation on embedded LED controllers?

Custom memory pool architecture prevents heap fragmentation during continuous LED pattern playback on resource-constrained ESP32-S3. This Skill provides the pool configuration, allocation strategies, and FreeRTOS integration patterns that ensure deterministic memory behavior and eliminate malloc failures during real-time rendering.

What hardware constraints do I need to enforce when developing K1 LED firmware?

K1 LED firmware must strictly enforce ESP32-S3 hardware limits: 8MB flash, 320 WS2812B LEDs, and 120 FPS frame rate. This Skill validates and documents these constraints, plus RTOS task configuration, WebSocket protocol requirements, and dual OTA partitions to ensure firmware stability and performance.