irrigation_system/docs/planning.en.md

3.8 KiB

🇩🇪 Deutsch | 🇬🇧 English | 🇫🇷 Français | 🇪🇸 Español

Project Plan: Modular Irrigation System

Done Task Date Remarks
Phase 0: Planning & Definition
Create and finalize concept 2025-06-30 Architecture, components and basic architecture are defined.
Define MODBUS Register Map 2025-06-30 The "API" of the slaves is defined and forms the basis for software development.
Phase 1: Slave Node Prototype (STM32 Eval-Board) Goal: A single slave is brought to life on the eval board.
1.1 Set up development environment for STM32/Zephyr 2025-06-30 Install toolchain, VS Code, Zephyr-SDK, MCUBoot etc. and get a "Hello World" running.
1.2 Create basic firmware for slave node Implement hardware abstraction (GPIOs, ADC, UART for RS485).
1.3 Implement MODBUS-RTU stack on the slave Based on the defined register map. Initially only read functions (status, version).
1.4 Implement core logic (e.g. valve control) Implementation of the VALVE_STATE_MOVEMENT logic, current measurement for end positions etc.
Phase 2: Verification of the Slave Firmware Goal: Prove that the slave adheres exactly to the MODBUS specification.
2.1 Test slave node with PC via USB-MODBUS adapter Critical milestone. Read & write the registers with tools like "QModMaster" or a Python script. The slave firmware is thus validated independently of the gateway.
2.2 Test firmware update mechanism Test the complete update process (chunking, CRC check) with a script from the PC. The slave initially only writes the firmware to an unused RAM area.
Phase 3: Hardware Design and Prototype Construction Goal: From development on the eval board to a customized PCB.
3.1 Design schematic and PCB layout for slave node Based on the experience with the eval board.
3.2 Order and assemble prototype boards E.g. at JLCPCB. Solder THT components (connectors etc.) yourself.
3.3 Hardware commissioning of the first prototype Check voltages, upload firmware and repeat the tests from phase 2 to validate the hardware.
3.4 Implement flash write routine for firmware update Apply the process validated in RAM in step 2.2 to the real flash memory.
Phase 4: Gateway Development (ESP32 Eval-Board) Goal: Build the bridge from the RS485 world to the home network.
4.1 Create gateway firmware (ESPHome) Set up a simple MODBUS TCP to RTU gateway on the ESP32C6 eval board.
4.2 Connect and test gateway with slave node prototype Test the chain: PC (as MODBUS TCP client) -> WLAN -> Gateway -> RS485 -> Slave.
Phase 5: System Integration in Home Assistant Goal: Make the system "smart".
5.1 Configure MODBUS integration in Home Assistant Create the sensors and entities for the slave node in configuration.yaml or via the UI.
5.2 Create dashboards and automations in HA Visualization of the states (valve, pump etc.) and creation of the actual irrigation logic.
5.3 Develop Python script for firmware update in HA Implementation of the chunk-based upload as a script that can be called from HA.
Phase 6: Setup and Commissioning Goal: Install the finished system.
6.1 Build and test all required slave nodes Test each slave individually with the PC via USB adapter and configure the MODBUS address.
6.2 Final installation and cabling of the system Installation of the components in the shed, cabling of the RS485 bus.
6.3 Overall system test and calibration Calibrate level sensor, check valve running times, test fail-safe behavior.