How toptubby/csharpe-relaycontrol works
This repository pairs a Windows Forms controller with ESP firmware for an eight-channel relay setup. The primary workflow is: an operator selects a COM port and toggles GUI channels; the application exchanges checksum-framed state commands with firmware over USB serial; firmware applies the bitmask to relay GPIOs and reports the commanded state back to the GUI. README documents ESP32-C3 and ESP8266 firmware variants and flash restoration. Form and firmware excerpts are partial, so only documented variant behavior and supported interactions are shown.
Main entry points: ESP32C3_RelayControl.ino ESP32-C3 firmware · ESP8266_RelayControl.ino ESP8266 firmware · Form1.cs Control form · Program.cs App entry
Components 12
Windows controller
- App entry
RelayControl/RelayControl/Program.cs - Control form
RelayControl/RelayControl/Form1.cs - Channel controls
RelayControl/RelayControl/Form1.Designer.cs - Frame handling
RelayControl/RelayControl/Form1.cs - Status display
RelayControl/RelayControl/Form1.Designer.cs
ESP firmware
- ESP32-C3 firmware
firmware/ESP32C3_RelayControl/ESP32C3_RelayControl.ino - ESP8266 firmware
firmware/ESP8266_RelayControl/ESP8266_RelayControl.ino - Saved relay state
firmware/ESP32C3_RelayControl/ESP32C3_RelayControl.ino - Relay GPIO outputs
firmware/ESP32C3_RelayControl/ESP32C3_RelayControl.ino
Relay hardware
- Eight relay channels
Other components
- Operator
- USB serial
Connections 18
- Operator → App entry: launches
- App entry → Control form: opens
- Operator → Channel controls: selects channels
- Channel controls → Control form: raises events
- Control form → Frame handling: requests frames
- Control form → USB serial: opens port
- Frame handling → USB serial: writes frames
- USB serial → ESP32-C3 firmware: delivers frames
- USB serial → ESP8266 firmware: delivers frames
- ESP32-C3 firmware → Relay GPIO outputs: sets outputs
- ESP8266 firmware → Relay GPIO outputs: sets outputs
- Relay GPIO outputs → Eight relay channels: drives channels
- ESP32-C3 firmware → Saved relay state: restores and saves
- ESP8266 firmware → Saved relay state: restores and saves
- ESP32-C3 firmware → USB serial: returns state
- ESP8266 firmware → USB serial: returns state
- USB serial → Frame handling: delivers response
- Frame handling → Status display: updates display