3.1 KiB
3.1 KiB
title, date, draft, description, tags
| title | date | draft | description | tags | ||||
|---|---|---|---|---|---|---|---|---|
| Software | 2025-01-24 | false | Information about the PlantCtrl Firmware |
|
The PlantCtrl firmware is a modern, reliable, and efficient system designed specifically for the ESP32-C6 RISC-V microcontroller. It is written entirely in Rust, leveraging the power of asynchronous programming to ensure low power consumption and high responsiveness.
Core Technology Stack
- Language: Rust (no_std)
- Async Runtime: Embassy
- Hardware Abstraction:
esp-halfor ESP32-C6 - Filesystem: LittleFS2 for robust persistent storage
- Web Framework:
edge-httpfor the integrated web server
Key Features
Intelligent Watering
The software manages up to 8 independent watering zones.
- Moisture-Based Control: Automatically triggers pumps when soil moisture drops below a configurable threshold.
- Safety Limits: Includes pump time limits, volume limits (requires flow sensor), and mandatory cooldown periods.
- Scheduling: Define specific hours during which watering is allowed to occur.
- Pump Protection: Monitors pump current to detect dry running or blockages (using INA219).
Modular Sensor Integration
The firmware communicates with the new CAN bus-based sensor modules.
- Digital Accuracy: Receives precise moisture data over the robust CAN bus protocol.
- Multi-Sensor Support: Supports A and B sensor pairs for each plant to provide better averaging in large containers.
Networking & IoT
- WiFi: Supports both Station mode (connecting to your home network) and Access Point mode (for initial setup).
- MQTT & Home Assistant: Full integration with Home Assistant via the
mcutiecrate. Reports battery status, moisture levels, tank levels, and allows remote configuration. - Time Sync: Uses SNTP to keep the internal Real-Time Clock (RTC) accurate.
- OTA Updates: Firmware can be updated wirelessly via the web interface.
Power Management
- Solar Optimized: Works in tandem with the MPPT module to maximize solar charging.
- Battery Aware: Monitors battery State of Charge (SoC). It can automatically disable non-essential features (like the nightlight) or enter a deep-sleep "rescue mode" if the battery is critically low.
- Low Power: Uses ESP32-C6 power-saving features to ensure long autonomous operation.
Integrated Web Interface
The firmware hosts a comprehensive web dashboard built with TypeScript and Webpack.
- Real-time Monitoring: View current moisture, battery health, and solar production.
- Easy Configuration: Change all system settings (WiFi, MQTT, watering rules) directly from your browser.
- Diagnostics: Access system logs and hardware status information.
Emergency Rescue Mode
If the system detects a missing configuration or an invalid system time, it automatically enters Emergency Rescue Mode. In this mode, it opens a WiFi Access Point ("PlantCtrl Init") allowing you to perform initial setup or recover the system.