Files
PlantCtrl/website/content/Software/_index.md

3.1 KiB

title, date, draft, description, tags
title date draft description tags
Software 2025-01-24 false Information about the PlantCtrl Firmware
software
rust
esp32-c6
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-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.