esp32-development

Document ESP32 firmware development for AutomationOne using PlatformIO and C++.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/Auto-one-Family/Automation-One --skill esp32-development
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: esp32-development
Source: https://github.com/Auto-one-Family/Automation-One/tree/main/.claude/skills/esp32-development
Command: npx skills add https://github.com/Auto-one-Family/Automation-One --skill esp32-development

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provides a focused, discoverable guide and API reference to implement, extend, and maintain ESP32 firmware for the AutomationOne project, reducing onboarding friction and preventing unsafe GPIO, initialization, and emergency handling mistakes.

Core Features & Use Cases

  • Manager API Registry: Centralized signatures and lifecycle guidance for core singletons like GPIOManager, SensorManager, ActuatorManager, MQTTClient and ConfigManager.
  • Sensor and Actuator Workflows: Step-by-step patterns for adding sensors, creating IActuatorDriver implementations, registering drivers in the factory, and configuring SensorConfig/ActuatorConfig.
  • Safety and Reliability Patterns: Explicit startup order, GPIO safe-mode and pin reservation rules, emergency-stop sequencing, circuit-breaker recommendations, and error-code ranges.
  • MQTT and Build Guidance: Topic patterns, QoS guidance, PlatformIO build and flash commands, and testing recommendations for validation.
  • Use Case Example: Add a new pump actuator driver, wire it to runtime protection and safety controller, extend TopicBuilder for telemetry, and validate via PlatformIO native tests and serial monitor.

Quick Start

Implement a new pump driver by creating an IActuatorDriver implementation, registering it in the ActuatorManager factory, and running the PlatformIO build from the El Trabajante folder.

Frequently Asked Questions about esp32-development

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

FAQPage Schema
How do I add a new actuator driver to ESP32 firmware using PlatformIO?

To add an ESP32 actuator driver, implement the IActuatorDriver interface, register it in the ActuatorManager factory, and run the PlatformIO build command. This workflow ensures your driver integrates safely with runtime protections and the safety controller.

What are the GPIO safe-mode and pin reservation rules for ESP32 development?

ESP32 development requires explicit GPIO safe-mode and pin reservation rules to prevent hardware conflicts. Following the specified startup order and reservation rules via the GPIOManager ensures safe pin allocation and avoids unsafe initialization mistakes.

How do I extend MQTT topics for ESP32 sensor telemetry?

Extend MQTT topics for ESP32 telemetry by applying the documented MQTT topic patterns and QoS guidance. You can update the TopicBuilder implementation to publish sensor data correctly through the centralized MQTTClient singleton.

Does ESP32 firmware development require specific initialization order for managers?

Yes, ESP32 firmware development requires a strict startup initialization order for core singletons like GPIOManager, SensorManager, and ActuatorManager. Adhering to this sequence ensures reliable configuration and prevents emergency handling failures.

What is the best way to configure circuit-breaker and emergency-stop controls for ESP32 actuators?

The best way to configure ESP32 circuit-breaker and emergency-stop controls is to follow the explicit safety and reliability patterns. Wiring your actuator driver to the runtime protection and safety controller ensures proper emergency-stop sequencing and error-code handling.

How do I update NVS keys and sensor configurations in ESP32 C++ projects?

Update ESP32 NVS keys and sensor configurations by interacting with the ConfigManager and SensorConfig structures. The centralized API registry provides the necessary signatures and lifecycle guidance for securely persisting and managing your device settings.