Skip to the content
PCBKitNew board
2 layers208.3 × 119.4 mmRaffstoreController, the printed circuit board in 3D

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

8

README

README.md

Raffstore 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:

Repository Layout

PathDescription
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.csvpartition table for ESP32-S3 with 8 MB flash
sdkconfig.defaultsESP-IDF project config for generating the full config
thunder.jsonThunder 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:

  1. Press and hold to move the channel until the button is released.
  2. Single click the button move the channel until the button is pressed again or the stop timeout is reached.
  3. 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
QtyValueFootprintReferences
151µFCapacitor_SMD:C_0402_1005MetricC6, C20, C21, C22, C23, C24, C25, C26, C27, C28, C29, C30, C31, C32, C33
141kΩResistor_SMD:R_0402_1005MetricR24, R25, R30, R31, R36, R37, R42, R43, R48, R49, R54, R55, R60, R61
14430kΩResistor_THT:R_Axial_DIN0414_L11.9mm_D4.5mm_P15.24mm_HorizontalR21, R22, R27, R28, R33, R34, R39, R40, R45, R46, R51, R52, R57, R58
14SFH6286-3TPackage_DIP:SMDIP-4_W9.53mm_Clearance8mmU6, U7, U9, U10, U12, U13, U15, U16, U18, U19, U21, U22, U24, U25
910kΩResistor_SMD:R_0402_1005MetricR2, R3, R23, R29, R35, R41, R47, R53, R59
7100ΩResistor_SMD:R_0402_1005MetricR26, R32, R38, R44, R50, R56, R62
71N4001Diode_THT:D_DO-41_SOD81_P7.62mm_HorizontalD9, D10, D11, D12, D13, D14, D15
7BC337Package_TO_SOT_THT:TO-92_InlineQ1, Q2, Q3, Q4, Q5, Q6, Q7
7FINDER-36.11.9.005Relay_THT:Relay_SPDT_Finder_36.11K1, K2, K3, K4, K5, K6, K7
7RaffstoreTerminalBlock_RND:TerminalBlock_RND_205-00014_1x04_P5.00mm_HorizontalJ6, J7, J8, J9, J10, J11, J12
7S10K275Varistor:RV_Disc_D12mm_W5mm_P7.5mmRV1, RV2, RV3, RV4, RV5, RV6, RV7
7S202S02Package_SIP:SIP4_Sharp-SSR_P7.62mm_StraightU8, U11, U14, U17, U20, U23, U26
562ΩResistor_SMD:R_0603_1608MetricR4, R5, R8, R19, R20
4100nFCapacitor_SMD:C_0402_1005MetricC1, C2, C9, C10
433ΩResistor_SMD:R_0603_1608MetricR10, R11, R12, R13
4Mounting HoleMountingHole:MountingHole_3.5mm_PadH1, H2, H3, H4
31N5822Diode_THT:D_DO-201AD_P12.70mm_HorizontalD1, D7, D8
21000µFCapacitor_THT:CP_Radial_D16.0mm_P7.50mmC17, C18
2100µFCapacitor_THT:CP_Radial_D8.0mm_P3.50mmC15, C16
2100µHInductor_THT:L_Toroid_Vertical_L26.7mm_W14.0mm_P10.16mm_Pulse_DL1, L2
210nFCapacitor_SMD:C_0402_1005MetricC7, C13
218pFCapacitor_SMD:C_0402_1005MetricC4, C5
220ΩResistor_SMD:R_0603_1608MetricR6, R7
249.9ΩResistor_SMD:R_0603_1608MetricR15, R17
26.8nFCapacitor_SMD:C_0402_1005MetricC11, C12
282ΩResistor_SMD:R_0603_1608MetricR14, R16
110µFCapacitor_SMD:C_0603_1608MetricC19
110ΩResistor_SMD:R_0402_1005MetricR18
112.4kΩResistor_SMD:R_0402_1005MetricR9
11MΩResistor_SMD:R_0402_1005MetricR1
11nFCapacitor_SMD:C_1206_3216MetricC3
122nFCapacitor_SMD:C_0402_1005MetricC14
1250V 3A0PTF0078P:0PTF0078PF1
125MHzOscillator:Oscillator_SMD_EuroQuartz_XO32-4Pin_3.2x2.5mmY1
14.7µFCapacitor_SMD:C_0402_1005MetricC8
17499010121AConnector_RJ:RJ45_Wuerth_7499010121A_HorizontalJ5
1AC 230VTerminalBlock_RND:TerminalBlock_RND_205-00012_1x02_P5.00mm_HorizontalJ2
1DC 7-30VTerminalBlock_RND:TerminalBlock_RND_205-00012_1x02_P5.00mm_HorizontalJ1
1Download ModeButton_Switch_SMD:SW_SPST_TL3342SW1
1ESP32-S3-MINI-1ESP32-S3-MINI-1:ESP32-S3-MINI-1U1
1Ethernet ActivityLED_SMD:LED_0603_1608MetricD6
1Ethernet DuplexLED_SMD:LED_0603_1608MetricD5
1Ethernet LinkLED_SMD:LED_0603_1608MetricD3
1Ethernet SpeedLED_SMD:LED_0603_1608MetricD4
1Ferrite BeadInductor_SMD:L_0402_1005MetricL3
1LM2576T-3.3Package_TO_SOT_THT:TO-220-5_VerticalU5
1LM2576T-5Package_TO_SOT_THT:TO-220-5_VerticalU4
1Main PowerLED_SMD:LED_0603_1608MetricD2
1Main ResetButton_Switch_SMD:SW_SPST_TL3342SW2
1SerialConnector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_VerticalJ3
1USBConnector_USB:USB_B_TE_5787834_VerticalJ4
1USB6B1Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU2
1W5500Package_QFP:LQFP-48_7x7mm_P0.5mmU3

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 mmMerged, the printed circuit board in 3D

    Merged

    Samorales-03/The_Cart_Buddy

    Senior design project

    110 partsMIT
  • 2 layersPcb layout, the printed circuit board in 3D

    Pcb layout

    johnffred/TarjetaSalidasESP32

    Proyecto de control de salidas con ESP32, pantalla LCD y relés. Esquemático en KiCad.

    39 parts
  • 4 layers100 × 75 mmFreedo radio, the printed circuit board in 3D

    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 mmHome automation final, the printed circuit board in 3D

    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 mmMackerel-30-proto, the printed circuit board in 3D

    Mackerel-30-proto

    crmaykish/mackerel-68k

    A series of single-board Motorola 68k computers with support for modern Linux

    133 parts96MIT
  • 2 layers65 × 56 mmMoisture, the printed circuit board in 3D

    Moisture

    kalou/plants

    Plants monitoring

    50 parts2
  • 2 layers150 × 100 mmFuenteRegulable, the printed circuit board in 3D

    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