Skip to main content

Software

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-hal for ESP32-C6
  • Filesystem: LittleFS2 for robust persistent storage
  • Web Framework: edge-http for 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 mcutie crate. 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.

2025