

RaffstoreController
Web enabled relay board with hardware button support for easy smart home integration
- Size
- 208.3 × 119.4 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 180
- Nets
- 180
- Pads
- 594
- Tracks, vias
- 805, 46
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 25 Sep 2022
- Updated
- 27 Jul 2026
Overview
RaffstoreController is an open-source printed circuit board by Rhynaz, from the Rhynaz/RaffstoreControlSystem repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 208.3 × 119.4 mm with 180 parts on 180 nets, routed with 805 tracks and 46 vias.
It is built around the ESP32-S3-MINI-1-N8, LM2576T-3.3 and LM2576T-5.0, with the SFH6286-3T, S202S02F and USB6B1 among its other parts. Its parts include 62 resistors, 33 capacitors, 26 ICs, 15 diodes and 12 connectors. It belongs with the home automation and IoT boards and the ESP32 boards of this library.
Main components
8ESP32-S3-MINI-1-N8
SMD-104.5dBm -40℃~+85℃ 2.4GHz 20.5dBm 330mA 3V~3.6V 97mA Bluetooth5.0 ESP32-S3FN8 Chip On-board PCB Antenna UART、SPI、I2C、I2S、USB SMD WiFi Modules ROHSEspressif SystemsWiFi ModulesLM2576T-3.3
TO-220-5-40℃~+125℃@(TJ) 1 3.3V 3A 40V 52kHz 5mA Buck Buck Built-in Fixed TO-220-5 DC-DC Converters ROHSHGSEMIDC-DC ConvertersLM2576T-5.0
TO-220-5-40℃~+125℃@(TJ) 1 3A 40V 52kHz 5V 5mA Buck Buck Built-in Fixed TO-220-5 DC-DC Converters ROHSHGSEMIDC-DC ConvertersSFH6286-3T
SMD-4P-55℃~+100℃ 1 1.1V 100% 250mV@0.8mA,1mA 3.5us@2mA,100Ω 320% 5.3kV 50mA 50mA 55V 5us AC,DC Phototransistor SMD-4P Transistor, Photovoltaic Output Optoisolators ROHSVishay IntertechnologyTransistor, Photovoltaic Output OptoisolatorsS202S02F
SIP-4SIP-4 Solid State Relays (Triac Output) ROHSSharp MicroelectronicsSolid State Relays (Triac Output)USB6B1
SO-8-40℃~+85℃ 10uA 15pF、25pF 2 25A@8/20us 5.25V 500W@8/20us 6V IEC 61000-4-2 TVS SO-8 ESD and Surge Protection (TVS/ESD) ROHSSTMicroelectronicsESD And Surge Protection (TVS/ESD)W5500
LQFP-48_7x7-40℃~+85℃ 10BASE-T、100BASE-TX 3.3V 32KB SPI SPI Wake-up function、Programmable LED indication、Low-power mode Yes LQFP-48(7x7) Ethernet Controllers ROHSWIZNETEthernet ControllersBC337
TO-92-31 NPN 100 100MHz 100nA 45V 5V 625mW 700mV 800mA NPN TO-92-3 Bipolar (BJT) ROHSFoshan Blue Rocket ElecBipolar (BJT)
README
README.mdRaffstore Control System (RCS)
Web enabled relay board with hardware button support for easy smart home integration
Features
Hardware:
- 9 - 30 VDC power supply
- ESP32-S3 Microcontroller
- 7 channels with two inputs and two outputs each
- inputs and outputs rated for 230 VAC / 325DC
- inputs and outputs galvanically isolated
- outputs fused
- outputs mutually exclusive (both off, only one on)
- 10-100 Mbps Ethernet connection
- 2.4 GHz 802.11 b/g/n Wi-Fi connection
- UART connection
- UART and JTAG over USB-B
Software:
- simple HTTP API with per and all channel controls
- Wi-Fi fallback if no Ethernet connection
- web interface based on simple HTTP API (See Web Interface and HTTP API)
- time based automatic output disabling (See Stop Timeout)
- hardware button pattern recognition
- simple profile based configuration
- OTA update support
Repository Layout
| Path | Description |
|---|---|
hardware/ | KiCad 6 schematics and pcb layout |
software/ | ESP-IDF component directory |
software/config/ | firmware config system |
software/controller/ | relay and switch controller handling hardware I/O |
software/http/ | web server serving the web interface and HTTP API |
software/main/ | firmware entrypoint |
software/network/ | background network service |
software/update/ | OTA update service |
partitions.csv | partition table for ESP32-S3 with 8 MB flash |
sdkconfig.defaults | ESP-IDF project config for generating the full config |
thunder.json | Thunder Client config for OTA update |
Usage
Web Interface and HTTP API
The web interface and HTTP API is served on port 80. Every channel can be opened (1st output on), closed (2nd output on) and stopped (both outputs off).
This can be done though the API by sending a POST request to /actions/<action>/<channel_num> where <action> is either open, close or stop, and channel_num is between including 0 and excluding the configured number of channels. Additionally channels can be controlled all at once by omiting the /<channel_num>. This is also possible in the web interface.
Stop Timeout
Each channel has a configurable stop timeout, which is the longest time a channel has one of its output on. The timeout starts / resets with each open or close request. After reaching the timeout the channel is stopped. This ensures minimal idle power usage and stress on the motor.
Hardware Buttons
Two buttons are supported per channel and are used one for opening and the other for closing. Each button supports basic pattern matching to accommodate three different control modes:
- Press and hold to move the channel until the button is released.
- Single click the button move the channel until the button is pressed again or the stop timeout is reached.
- Double click the button to move all channel at the same time until the button is pressed again or the stop timeout is reached.
Project Configuration
The configuration system utilizes #define statements from the currently active profile. A profile consists of a single header file in software/config/include/config/profiles/ and an entry in config/Kconfig. It is recommended to create a copy of the default profile and start tweaking from there. The active config profile can be selected with ESP-IDF menuconfig under Component Config > Raffstore Control System.
Firmware Upgrade
The firmware can be upgraded either over UART, USB or over-the-air (OTA) with HTTP over Ethernet or Wi-Fi. For the wired approaches use the ESP-IDF flashing tool and flash build/RaffstoreControlSystem.elf. The OTA update requires the use of a HTTP client (e.g. Thunder Client). To start the update, send a POST request to /flash with the firmware image as the body. Do not use multipart form data file upload, instead just put the raw binary data in the body. Use build/RaffstoreControlSystem.bin for OTA updates. The server will not send a response, it will apply the update and reboot. If the image gets corrupted during upload or flashing, the update is invalidated and the previous firmware will be used.
License
RaffstoreControlSystem - Web enabled relay board with hardware button support for easy smart home integration
Copyright (C) 2022 Elias*
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Parts
180| Qty | Value | Footprint | References |
|---|---|---|---|
| 15 | 1µF | Capacitor_SMD:C_0402_1005Metric | C6, C20, C21, C22, C23, C24, C25, C26, C27, C28, C29, C30, C31, C32, C33 |
| 14 | 1kΩ | Resistor_SMD:R_0402_1005Metric | R24, R25, R30, R31, R36, R37, R42, R43, R48, R49, R54, R55, R60, R61 |
| 14 | 430kΩ | Resistor_THT:R_Axial_DIN0414_L11.9mm_D4.5mm_P15.24mm_Horizontal | R21, R22, R27, R28, R33, R34, R39, R40, R45, R46, R51, R52, R57, R58 |
| 14 | SFH6286-3T | Package_DIP:SMDIP-4_W9.53mm_Clearance8mm | U6, U7, U9, U10, U12, U13, U15, U16, U18, U19, U21, U22, U24, U25 |
| 9 | 10kΩ | Resistor_SMD:R_0402_1005Metric | R2, R3, R23, R29, R35, R41, R47, R53, R59 |
| 7 | 100Ω | Resistor_SMD:R_0402_1005Metric | R26, R32, R38, R44, R50, R56, R62 |
| 7 | 1N4001 | Diode_THT:D_DO-41_SOD81_P7.62mm_Horizontal | D9, D10, D11, D12, D13, D14, D15 |
| 7 | BC337 | Package_TO_SOT_THT:TO-92_Inline | Q1, Q2, Q3, Q4, Q5, Q6, Q7 |
| 7 | FINDER-36.11.9.005 | Relay_THT:Relay_SPDT_Finder_36.11 | K1, K2, K3, K4, K5, K6, K7 |
| 7 | Raffstore | TerminalBlock_RND:TerminalBlock_RND_205-00014_1x04_P5.00mm_Horizontal | J6, J7, J8, J9, J10, J11, J12 |
| 7 | S10K275 | Varistor:RV_Disc_D12mm_W5mm_P7.5mm | RV1, RV2, RV3, RV4, RV5, RV6, RV7 |
| 7 | S202S02 | Package_SIP:SIP4_Sharp-SSR_P7.62mm_Straight | U8, U11, U14, U17, U20, U23, U26 |
| 5 | 62Ω | Resistor_SMD:R_0603_1608Metric | R4, R5, R8, R19, R20 |
| 4 | 100nF | Capacitor_SMD:C_0402_1005Metric | C1, C2, C9, C10 |
| 4 | 33Ω | Resistor_SMD:R_0603_1608Metric | R10, R11, R12, R13 |
| 4 | Mounting Hole | MountingHole:MountingHole_3.5mm_Pad | H1, H2, H3, H4 |
| 3 | 1N5822 | Diode_THT:D_DO-201AD_P12.70mm_Horizontal | D1, D7, D8 |
| 2 | 1000µF | Capacitor_THT:CP_Radial_D16.0mm_P7.50mm | C17, C18 |
| 2 | 100µF | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | C15, C16 |
| 2 | 100µH | Inductor_THT:L_Toroid_Vertical_L26.7mm_W14.0mm_P10.16mm_Pulse_D | L1, L2 |
| 2 | 10nF | Capacitor_SMD:C_0402_1005Metric | C7, C13 |
| 2 | 18pF | Capacitor_SMD:C_0402_1005Metric | C4, C5 |
| 2 | 20Ω | Resistor_SMD:R_0603_1608Metric | R6, R7 |
| 2 | 49.9Ω | Resistor_SMD:R_0603_1608Metric | R15, R17 |
| 2 | 6.8nF | Capacitor_SMD:C_0402_1005Metric | C11, C12 |
| 2 | 82Ω | Resistor_SMD:R_0603_1608Metric | R14, R16 |
| 1 | 10µF | Capacitor_SMD:C_0603_1608Metric | C19 |
| 1 | 10Ω | Resistor_SMD:R_0402_1005Metric | R18 |
| 1 | 12.4kΩ | Resistor_SMD:R_0402_1005Metric | R9 |
| 1 | 1MΩ | Resistor_SMD:R_0402_1005Metric | R1 |
| 1 | 1nF | Capacitor_SMD:C_1206_3216Metric | C3 |
| 1 | 22nF | Capacitor_SMD:C_0402_1005Metric | C14 |
| 1 | 250V 3A | 0PTF0078P:0PTF0078P | F1 |
| 1 | 25MHz | Oscillator:Oscillator_SMD_EuroQuartz_XO32-4Pin_3.2x2.5mm | Y1 |
| 1 | 4.7µF | Capacitor_SMD:C_0402_1005Metric | C8 |
| 1 | 7499010121A | Connector_RJ:RJ45_Wuerth_7499010121A_Horizontal | J5 |
| 1 | AC 230V | TerminalBlock_RND:TerminalBlock_RND_205-00012_1x02_P5.00mm_Horizontal | J2 |
| 1 | DC 7-30V | TerminalBlock_RND:TerminalBlock_RND_205-00012_1x02_P5.00mm_Horizontal | J1 |
| 1 | Download Mode | Button_Switch_SMD:SW_SPST_TL3342 | SW1 |
| 1 | ESP32-S3-MINI-1 | ESP32-S3-MINI-1:ESP32-S3-MINI-1 | U1 |
| 1 | Ethernet Activity | LED_SMD:LED_0603_1608Metric | D6 |
| 1 | Ethernet Duplex | LED_SMD:LED_0603_1608Metric | D5 |
| 1 | Ethernet Link | LED_SMD:LED_0603_1608Metric | D3 |
| 1 | Ethernet Speed | LED_SMD:LED_0603_1608Metric | D4 |
| 1 | Ferrite Bead | Inductor_SMD:L_0402_1005Metric | L3 |
| 1 | LM2576T-3.3 | Package_TO_SOT_THT:TO-220-5_Vertical | U5 |
| 1 | LM2576T-5 | Package_TO_SOT_THT:TO-220-5_Vertical | U4 |
| 1 | Main Power | LED_SMD:LED_0603_1608Metric | D2 |
| 1 | Main Reset | Button_Switch_SMD:SW_SPST_TL3342 | SW2 |
| 1 | Serial | Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical | J3 |
| 1 | USB | Connector_USB:USB_B_TE_5787834_Vertical | J4 |
| 1 | USB6B1 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U2 |
| 1 | W5500 | Package_QFP:LQFP-48_7x7mm_P0.5mm | U3 |
Questions
How big is the RaffstoreController PCB?
It measures 208.3 × 119.4 mm and has 2 copper layers, 1.6 mm thick.
What parts does the RaffstoreController use?
180 parts, built around the ESP32-S3-MINI-1-N8, LM2576T-3.3, LM2576T-5.0 and SFH6286-3T. 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.
Where can I download the RaffstoreController KiCad files?
From the Rhynaz/RaffstoreControlSystem repository on GitHub, at the commit this page was made from: the board is hardware/RaffstoreController.kicad_pcb and its schematic hardware/RaffstoreChannel.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the RaffstoreController design in my own project?
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers209.9 × 135.9 mm

- 2 layers

Pcb layout
johnffred/TarjetaSalidasESP32
Proyecto de control de salidas con ESP32, pantalla LCD y relés. Esquemático en KiCad.
39 parts - 2 layers68 × 76.8 mm

- 4 layers100 × 75 mm

Freedo radio
CappyT/freedo
Local coordinator for tado V3+ heating devices, with a Home Assistant integration and add-on
135 parts33Apache-2.0 - 2 layers150 × 100 mm

Home automation final
ginomcfino/home-automation-controller
STM32 home automation controller with Ethernet, Zigbee, relay control, and sensor interfaces. Designed in KiCad.
95 parts - 4 layers215 × 150 mm

Mackerel-30-proto
crmaykish/mackerel-68k
A series of single-board Motorola 68k computers with support for modern Linux
133 parts96MIT - 2 layers65 × 56 mm

- 2 layers150 × 100 mm

FuenteRegulable
EmanuelDecima/Fuente-Variable-con-Microcontrolador
Este proyecto consiste en el desarrollo de una fuente de alimentación variable controlada digitalmente mediante un microcontrolador, permitiendo ajustar el voltaje de salida de forma precisa y programable.
56 parts1