Skip to content

Commit

Permalink
Moved content to the controller page
Browse files Browse the repository at this point in the history
  • Loading branch information
BrentIO committed Mar 23, 2024
1 parent cf7c848 commit 6cf51f0
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 23 deletions.
24 changes: 24 additions & 0 deletions controller/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# FireFly Controller

The hardware consists of a custom PCB with RJ45 inputs that connect to FireFly clients, an Ethernet controller, OLED display, front panel selection button, and outputs. An ESP32 is the core computing module. In a typical home, one FireFly Controller should be used per floor; in a small home a single controller may suffice.

FireFly Controller is designed to be operational all by itself. The "other half" will appreciate this fail-safe, because it's as dependable as what they've used everywhere else:
- ✅ You still have local control of all circuits when your home automation is offline
- ✅ You still have local control of all circuits when your LAN or WiFi is having trouble
- ✅ You still have local control of all circuits when your Internet is offline
- 🚫 May not work during a zombie apocalypse 🧟

## Application Software
FireFly Controller features two applications contained within this repository, the Hardware Registration and Configuration application, and the main Controller application.

## Hardware Registration and Configuration Application
The Hardware Registration and Configuration is for use with new, unprogrammed boards -- essentially factory use. The application provides both a web interface and underlying API calls used by the web interface.

The application's primary functions are:
- Set the device's [partition scheme](/controller/development_environment#partitions)
- Set the external EEPROM with identity information
- Hardware quality assurance
- Register the hardware with the cloud service for remote backup of configuration data <Badge type="warning" text="TODO" />

## Controller Application
The main application for production use that accepts input from a physical switch and can, optionally, send PWM voltage to an output. It also supports HTTP <Badge type="warning" text="TODO" /> and MQTT <Badge type="warning" text="TODO" /> for inputs from external sources, such as a home automation system. Inputs sensed will raise events via MQTT for use in a home automation system. FireFly Controller is designed to be paired with FireFly Clients.
24 changes: 1 addition & 23 deletions getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,30 +17,8 @@ HTTP and MQTT work right out of the box, so you can integrate lighting controls
FireFly was designed from the ground-up to work with Home Assistant and can be easily integrated into other home automation systems. From self discovery <Badge type="warning" text="TODO" /> to daily operation via MQTT <Badge type="warning" text="TODO" />, you can make your lighting controls work 100% locally.

## FireFly Controller
FireFly Controller is the heart of the system. It is the central hub for accepting inputs -- from a human touching a button to an automation signaling a change is necessary -- and processing outputs to the [high voltage relays](/hardware/relays) that make our lives more enjoyable.
FireFly Controller is the heart of the system. It is the central hub for accepting inputs -- from a human touching a button to an automation signaling a change is necessary -- and processing outputs to the [high voltage relays](/controller/hardware/relays) that make our lives more enjoyable.

The hardware consists of a custom PCB with RJ45 inputs that connect to FireFly clients, an Ethernet controller, OLED display, front panel selection button, and outputs. An ESP32 is the core computing module. In a typical home, one FireFly Controller should be used per floor; in a small home a single controller may suffice.

FireFly Controller is designed to be operational all by itself. The "other half" will appreciate this fail-safe, because it's as dependable as what they've used everywhere else:
- ✅ You still have local control of all circuits when your home automation is offline
- ✅ You still have local control of all circuits when your LAN or WiFi is having trouble
- ✅ You still have local control of all circuits when your Internet is offline
- 🚫 May not work during a zombie apocalypse 🧟

### Application Software
FireFly Controller features two applications contained within this repository, the Hardware Registration and Configuration application, and the main Controller application.

### Hardware Registration and Configuration Application
The Hardware Registration and Configuration is for use with new, unprogrammed boards -- essentially factory use. The application provides both a web interface and underlying API calls used by the web interface.

The application's primary functions are:
- Set the device's [partition scheme](ide_configuration#partitions)
- Set the external EEPROM with identity information
- Hardware quality assurance
- Register the hardware with the cloud service for remote backup of configuration data <Badge type="warning" text="TODO" />

### Controller Application
The main application for production use that accepts input from a physical switch and can, optionally, send PWM voltage to an output. It also supports HTTP <Badge type="warning" text="TODO" /> and MQTT <Badge type="warning" text="TODO" /> for inputs from external sources, such as a home automation system. Inputs sensed will raise events via MQTT for use in a home automation system. FireFly Controller is designed to be paired with FireFly Clients.

## FireFly Client <Badge type="tip" text="Coming Soon" />
FireFly Clients are devices that usually replace one or more lightswitches. A Client can support multiple LED-illuminated buttons for feedback when they are pressed. They communicate directly with the FireFly controller over Category 5 or Category 6 Ethernet cable but _do not_ use IP to communicate. Clients connect to MQTT via WiFi and subscribe to certain messages to know when to provide visual feedback of a button press. Because a blinking LED isn't essential to use the system, they still function even during those offline moments.
Expand Down

0 comments on commit 6cf51f0

Please sign in to comment.