
RTK GPS V2
Besix2/Flight-Controller-companion-board
A finished prototype companion board.

ESP32-S3 smart fan retrofit with custom KiCad hardware and ESPHome firmware. Wi-Fi + Home Assistant control, OTA updates, and UART protocol support for upgrading legacy fan controllers.
Smart fan is an open-source printed circuit board by ben-willis, from the ben-willis/smart-fan repository on GitHub. It is a 2-layer board of 109.3 × 80 mm with 40 parts on 53 nets, routed with 179 tracks and 17 vias.
It is built around the ESP32-S3-MINI-1U-N8 and AP7361C-33E. Its parts include 11 resistors, 10 diodes, 3 capacitors, 3 ICs and 2 connectors. It belongs with the home automation and IoT and radio and wireless boards and the ESP32 boards of this library.
A WiFi-enabled smart fan controller built on ESP32-S3 with Home Assistant integration, using ESPHome for firmware management.
This project transforms a traditional fan into a smart, connected device with the following capabilities:
If you are new to this repository, start with Project Story, then use UART Protocol while reviewing firmware behavior.
smart-fan/
├── README.md # Project documentation
├── secrets.yaml # WiFi and API credentials (not in git)
│
├── firmware/ # ESPHome firmware configuration
│ └── smart-fan.yml # Main ESPHome configuration
│
├── hardware/ # KiCad PCB design files
│ ├── smart-fan.kicad_sch # Schematic
│ ├── smart-fan.kicad_pcb # PCB layout
│ ├── smart-fan.kicad_pro # Project file
│ ├── Gerber/ # Manufacturing files
│ │ ├── smart-fan-F_Cu.gbr
│ │ ├── smart-fan-B_Cu.gbr
│ │ ├── smart-fan-*.gbr # Additional layers
│ │ ├── smart-fan-PTH.drl
│ │ └── smart-fan-NPTH.drl
│ └── production/ # Production data
│ ├── bom.csv # Bill of materials
│ ├── designators.csv
│ ├── positions.csv # Pick & place
│ └── netlist.ipc
│
├── docs/ # Project docs, protocol notes, and hardware references
│
└── venv/ # Python virtual environmentCreate secrets.yaml with the following variables:
api_encryption_key: "your_api_key_here"
ota_password: "your_ota_password"
wifi_ssid: "your_wifi_ssid"
wifi_password: "your_wifi_password"
ap_password: "fallback_hotspot_password"Create a virtual environment and install dependencies:
python -m venv venv
source venv/Scripts/activate
python -m pip install -r requirements.txtBuild and Upload Firmware:
esphome run firmware/smart-fan.ymlFirst Flash:
Once configured, the Smart Fan will appear in Home Assistant with:
Add to Home Assistant configuration.yaml:
esphome:
- firmware/smart-fan.ymlhardware/The fan communicates via UART at 334 baud. Commands are 5-byte packets with checksums:
[0x5a, SPEED_BITS, MODE_BITS, OSCILLATION_BITS, CHECKSUM]docs/uart-protocol.md for protocol detailsAfter initial programming, update firmware wirelessly:
esphome run firmware/smart-fan.ymlesphome logs firmware/smart-fan.ymlUART debugging is enabled with bidirectional logging. Connect to the serial monitor to see raw commands sent to the fan:
esphome logs firmware/smart-fan.yml[Specify your license here]
| Qty | Value | Footprint | References |
|---|---|---|---|
| 10 | 100 | Resistor_SMD:R_1206_3216Metric | R3, R4, R5, R6, R7, R8, R9, R10, R11, R12 |
| 2 | 1uF | Capacitor_SMD:C_1206_3216Metric | C2, C4 |
| 1 | 0.5H | LED_THT:LED_D3.0mm | LED1 |
| 1 | 10k | Resistor_SMD:R_1206_3216Metric | R1 |
| 1 | 1H | LED_THT:LED_D3.0mm | LED2 |
| 1 | 2H | LED_THT:LED_D3.0mm | LED3 |
| 1 | 3.3V | TestPoint:TestPoint_Pad_D2.0mm | TP1 |
| 1 | 4.7uF | Capacitor_SMD:C_1206_3216Metric | C3 |
| 1 | 4H | LED_THT:LED_D3.0mm | LED4 |
| 1 | 5V | TestPoint:TestPoint_Pad_D2.0mm | TP2 |
| 1 | AP7361C-33E | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U2 |
| 1 | Conn_01x02 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Horizontal | J3 |
| 1 | Conn_01x04_Pin | Connector_JST:JST_XH_S4B-XH-A_1x04_P2.50mm_Horizontal | J1 |
| 1 | ESP32-S3-Mini-1U | PCM_Espressif:ESP32-S2-MINI-1U | U1 |
| 1 | GND | TestPoint:TestPoint_Pad_D2.0mm | TP3 |
| 1 | H | LED_THT:LED_D3.0mm | LED10 |
| 1 | L | LED_THT:LED_D3.0mm | LED8 |
| 1 | M | LED_THT:LED_D3.0mm | LED9 |
| 1 | MODE | Button_Switch_THT:SW_PUSH_6mm_H9.5mm | KEY4 |
| 1 | NOR | LED_THT:LED_D3.0mm | LED5 |
| 1 | ON/OFF | Button_Switch_THT:SW_PUSH_6mm_H9.5mm | KEY6 |
| 1 | RHY | LED_THT:LED_D3.0mm | LED6 |
| 1 | SLP | LED_THT:LED_D3.0mm | LED7 |
| 1 | SPEED | Button_Switch_THT:SW_PUSH_6mm_H9.5mm | KEY5 |
| 1 | SW | Button_Switch_THT:SW_PUSH_6mm_H9.5mm | KEY3 |
| 1 | TIMER | Button_Switch_THT:SW_PUSH_6mm_H9.5mm | KEY2 |
| 1 | TSOP382xx | OptoDevice:Vishay_MINICAST-3Pin | U3 |
The 37 most common of 40 parts.
It measures 109.3 × 80 mm and has 2 copper layers, 1.6 mm thick.
40 parts, built around the ESP32-S3-MINI-1U-N8 and AP7361C-33E. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the ben-willis/smart-fan repository on GitHub, at the commit this page was made from: the board is hardware/smart-fan.kicad_pcb and its schematic hardware/smart-fan.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask ben-willis before reusing the design.

Besix2/Flight-Controller-companion-board
A finished prototype companion board.

jobitjoseph/ESP32-AI-SmartGlass
The ESP32 AI Smartglass is an innovative wearable device that blends the power of artificial intelligence with the convenience of home automation.

AndreiVladescu/LibrePLC32
The goal of the project is to create a compact, hackable, and well-documented PLC platform for industrial automation experiments, prototyping, education, and open hardware development.

nasheed-x/aether
Aether is a versatile flight computer for testing flight hardware and software, focusing on sensor fusion to monitor rocket states and interface with on-board systems.



DevKiDCosmo/SATELLITE-EDGE-MODULE
A satellite edge module ready for competition
