
UPLC Digital
fredriknk/uPLC-Digital
I now have two prototypes of the uPLC-Digital so ESP-Home integrations will come soon.

Quick note, this is then panelization repo, head for the individual repos to get design files.
UPLC Panel is an open-source printed circuit board by fredriknk, from the fredriknk/uPLC-Stack repository on GitHub. It is a 4-layer board of 31.4 × 70 mm with 226 parts on 115 nets, routed with 1,154 tracks and 285 vias.
It is built around the ESP32-C3-WROOM-02-N4, AP63201WU and ADS1115IDGSR, with the TBD62003AFWG, LP5907MFX-3.0/NOPB and RTT02000JTH among its other parts. Its parts include 38 capacitors, 38 resistors, 11 ICs, 11 diodes and 6 connectors. It belongs with the ESP32 and RISC-V boards of this library.
Quick note, this is then panelization repo, head for the individual repos to get design files.
Thanks so much to PCBWay for sponsoring my first assembly run for this project, they deliver awesome quality assembly service as always with 6 perfectly soldered dual sided prototypes delivered at my door in less than 2 weeks from ordering. All components perfectly placed and good quality 4 layer pcb's. I love the look and legebility of the 0.9mm inverted silkscreen texts. They even pointed out some reccomended component replacements due to NRND bom items. So Look at this beautiful trio of boards ready for automating every dumb device in my house.

ESP-Home code examples are comming soon.
The uPLC (micro Programmable Logic Controller) is a compact (22x32mm) I/O controller powered by the ESP32, designed to automate various tasks around you. So far, three versions have been developed. All versions are generally 24V-tolerant for digital I/O, except for the analog inputs, and feature a wide-range 3.8-24V buck regulator for power input.
The primary purpose of the uPLC is to "smartify" devices by integrating them with ESPHome. But it can also function as a direct, point-to-point PLC, using ESP-NOW for wireless communication, replacing traditional wired connections at a cost of latency.
| Parameter | Description |
|---|---|
| Input Voltage | 3.8-24V |
| Current Consumption | TBD: WiFi Active: ##mA, Radio Off: ##mA, Deep Sleep: ##uA |
| Communication | 2.4GHz Wi-Fi, UART (TTL level) |
| Baud Rate | 115200 |
| PCB Size | 22 x 31.1 mm |
| PCB Material | 1.6mm FR4, HASL lead-free, 4-layer |
| Case Size | X x X x X mm (TBD) |
To facilitate manufacturing and development, I've created a panelized version using KiKit scripting. The uPLC-Stack includes two units of each version, making it easier to assemble and test multiple variants in one go. Im planning on
To use the panelization script, clone all the uPLC repositories and organize them in a directory one level back from the uPLC-Stack folder. This allows the KiKit script to automatically pull in all required files for panelizing.
Perspective View
Top View
Side View

Bottom View
| Qty | Value | Footprint | References |
|---|---|---|---|
| 40 | NPTH | NPTH | KiKit_MB_1_1, KiKit_MB_1_2, KiKit_MB_1_3, KiKit_MB_1_4, KiKit_MB_1_5, KiKit_MB_2_1, KiKit_MB_2_2, KiKit_MB_2_3, KiKit_MB_2_4, KiKit_MB_2_5, KiKit_MB_3_1, KiKit_MB_3_2, KiKit_MB_3_3, KiKit_MB_3_4, KiKit_MB_3_5, KiKit_MB_4_1 +24 |
| 24 | 10K | Resistor_SMD:R_0402_1005Metric | R1.0, R1.1, R1.2, R2.0, R2.1, R2.2, R3.0, R3.1, R4.0, R4.1, R4.2, R10.2, R11.2, R12.0, R12.2, R16.0 +8 |
| 19 | 0.1uF | Capacitor_SMD:C_0402_1005Metric | C2.0, C2.1, C2.2, C3.0, C3.1, C3.2, C6.0, C10.0, C13.0, C14.0, C15.0, C16.0, C17.0, C18.0, C19.0, C20.0 +3 |
| 12 | 0R | Jumper:SolderJumper-3_P1.3mm_BridgedSMD12_0402 | JP1.1, JP2.1, JP3.1, JP4.1, JP5.1, JP6.1, JP7.1, JP8.1, JP9.1, JP10.1, JP11.1, JP12.1 |
| 11 | 1N5819WS | Diode_SMD:D_SOD-323 | D1.0, D1.1, D1.2, D2.0, D2.1, D2.2, D3.0, D3.1, D4.0, D4.1, D4.2 |
| 9 | 22uf | Capacitor_SMD:C_0402_1005Metric | C8.0, C8.1, C8.2, C11.0, C11.1, C11.2, C12.0, C12.1, C12.2 |
| 6 | 20pf | Capacitor_SMD:C_0402_1005Metric | C1.0, C1.1, C1.2, C4.0, C4.1, C4.2 |
| 4 | 10uF | Capacitor_SMD:C_0805_2012Metric | C5.0, C5.1, C5.2, C7.0 |
| 4 | 499R | Resistor_SMD:R_0402_1005Metric | R8.0, R9.0, R10.0, R11.0 |
| 3 | 182k | Resistor_SMD:R_0402_1005Metric | R14.0, R14.1, R14.2 |
| 3 | 32.768khz 3215 12.5pf | Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y1.0, Y1.1, Y1.2 |
| 3 | 4.7uH | Inductor_SMD:L_1008_2520Metric | L1.0, L1.1, L1.2 |
| 3 | 62k | Resistor_SMD:R_0402_1005Metric | R15.0, R15.1, R15.2 |
| 3 | AP63201WU | Package_TO_SOT_SMD:TSOT-23-6 | U1.0, U1.1, U1.2 |
| 3 | Conn_01x06_Pin | TestPoint:TestPoint_Pad_1.0x1.0mm_6pad | J1.0, J1.1, J1.2 |
| 3 | ESP32-C3-WROOM-02 | PCM_Espressif:ESP32-C3-WROOM-02 | U3.0, U3.1, U3.2 |
| 3 | G*** | esprelay:kibuzzard-65D460A0 | kibuzzard-65D460A0.0, kibuzzard-65D460A0.1, kibuzzard-65D460A0.2 |
| 3 | G*** | kibuzzard-65D7177B | kibuzzard-65D7177B.0, kibuzzard-65D7177B.1, kibuzzard-65D7177B.2 |
| 3 | G*** | kibuzzard-65D71774 | kibuzzard-65D71774.0, kibuzzard-65D71774.1, kibuzzard-65D71774.2 |
| 3 | G*** | kibuzzard-65D49092 | kibuzzard-65D49092.0, kibuzzard-65D49092.1, kibuzzard-65D49092.2 |
| 3 | G*** | esprelay:kibuzzard-65D36177 | kibuzzard-65D36177.0, kibuzzard-65D36177.1, kibuzzard-65D36177.2 |
| 3 | G*** | esprelay:kibuzzard-65D46022 | kibuzzard-65D46022.0, kibuzzard-65D46022.1, kibuzzard-65D46022.2 |
| 3 | G*** | kibuzzard-65D7176D | kibuzzard-65D7176D.0, kibuzzard-65D7176D.1, kibuzzard-65D7176D.2 |
| 3 | G*** | esprelay:kibuzzard-65D3616E | kibuzzard-65D3616E.0, kibuzzard-65D3616E.1, kibuzzard-65D3616E.2 |
| 3 | G*** | esprelay:kibuzzard-65D46066 | kibuzzard-65D46066.0, kibuzzard-65D46066.1, kibuzzard-65D46066.2 |
| 3 | G*** | kibuzzard-65D74DE1 | kibuzzard-65D74DE1.0, kibuzzard-65D74DE1.0, kibuzzard-65D74DE1.1 |
| 3 | SM12B-GHS-TB(LF)(SN) | Connector_JST:JST_GH_SM12B-GHS-TB_1x12-1MP_P1.25mm_Horizontal | J2.0, J2.1, J2.2 |
| 2 | 100R | Resistor_SMD:R_0402_1005Metric | R13.0, R13.1 |
| 2 | 309k | Resistor_SMD:R_0402_1005Metric | R7.0, R7.1 |
| 2 | G*** | kibuzzard-65D74DFB | kibuzzard-65D74DFB.0, kibuzzard-65D74DFB.1 |
| 2 | G*** | kibuzzard-65D74DEE | kibuzzard-65D74DEE.0, kibuzzard-65D74DEE.1 |
| 2 | G6K-2F-Y | Relay_SMD:Relay_DPDT_Omron_G6K-2F-Y | K1.2, K2.2 |
| 2 | TBD62003AFWG | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U2.1, U2.2 |
| 1 | ADS1115IDGS | Package_SO:TSSOP-10_3x3mm_P0.5mm | U2.0 |
| 1 | G*** | kibuzzard-65DC95EF | kibuzzard-65DC95EF.0 |
| 1 | G*** | kibuzzard-65DC9610 | kibuzzard-65DC9610.0 |
| 1 | G*** | kibuzzard-65D8B104 | kibuzzard-65D8B104.1 |
| 1 | G*** | kibuzzard-65D8B0F8 | kibuzzard-65D8B0F8.1 |
| 1 | G*** | esprelay:kibuzzard-65D3620E | kibuzzard-65D3620E.2 |
| 1 | G*** | esprelay:kibuzzard-65D361E9 | kibuzzard-65D361E9.2 |
| 1 | G*** | kibuzzard-65D8B0E2 | kibuzzard-65D8B0E2.1 |
| 1 | G*** | kibuzzard-65D8B10C | kibuzzard-65D8B10C.1 |
| 1 | G*** | esprelay:kibuzzard-65D36206 | kibuzzard-65D36206.2 |
| 1 | G*** | kibuzzard-65D8B28C | kibuzzard-65D8B28C.1 |
| 1 | G*** | esprelay:kibuzzard-65D3619D | kibuzzard-65D3619D.2 |
| 1 | G*** | kibuzzard-65DCE4DE | kibuzzard-65DCE4DE.0 |
| 1 | G*** | kibuzzard-65D8B343 | kibuzzard-65D8B343.1 |
| 1 | G*** | kibuzzard-65D8B0ED | kibuzzard-65D8B0ED.1 |
| 1 | G*** | kibuzzard-65DC961D | kibuzzard-65DC961D.0 |
| 1 | G*** | kibuzzard-65DCA831 | kibuzzard-65DCA831.1 |
| 1 | G*** | kibuzzard-65D8B297 | kibuzzard-65D8B297.1 |
| 1 | G*** | esprelay:kibuzzard-65D361E1 | kibuzzard-65D361E1.2 |
| 1 | G*** | esprelay:kibuzzard-65D361A7 | kibuzzard-65D361A7.2 |
| 1 | G*** | kibuzzard-65DC95DA | kibuzzard-65DC95DA.0 |
| 1 | G*** | esprelay:kibuzzard-65D361B0 | kibuzzard-65D361B0.2 |
| 1 | G*** | kibuzzard-65D8B121 | kibuzzard-65D8B121.1 |
| 1 | G*** | esprelay:kibuzzard-65D361FD | kibuzzard-65D361FD.2 |
| 1 | G*** | kibuzzard-65DC95E5 | kibuzzard-65DC95E5.0 |
| 1 | G*** | esprelay:kibuzzard-65D361F2 | kibuzzard-65D361F2.2 |
| 1 | G*** | kibuzzard-65D6FF37 | kibuzzard-65D6FF37.2 |
| 1 | G*** | kibuzzard-65DC95F6 | kibuzzard-65DC95F6.0 |
| 1 | G*** | esprelay:kibuzzard-65D361D3 | kibuzzard-65D361D3.2 |
| 1 | LP5907MFX-3.0 | Package_TO_SOT_SMD:SOT-23-5 | U4.0 |
| 1 | MCP4725xxx-xCH | Package_TO_SOT_SMD:SOT-23-6 | U5.0 |
It measures 31.4 × 70 mm and has 4 copper layers, 1.6 mm thick.
226 parts, built around the ESP32-C3-WROOM-02-N4, AP63201WU, ADS1115IDGSR and TBD62003AFWG. 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 fredriknk/uPLC-Stack repository on GitHub, at the commit this page was made from: the board is CAD/Panel/uPLC-Panel.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask fredriknk before reusing the design.

fredriknk/uPLC-Digital
I now have two prototypes of the uPLC-Digital so ESP-Home integrations will come soon.

fredriknk/uPLC-Analog
I now have two prototypes of the uPLC-Analog so ESP-Home integrations will come soon.

fredriknk/uPLC-Relay
I now have two prototypes of the uPLC-Relay so ESP-Home integrations will come soon.

fredriknk/esprelay
ESP8266 small signal relay module utilizing an ESP-12-F wifi module for communication and MCU, and has two 2.5-25V inputs, and a single 25v, 100ma high speed open drain output through a TBD062003 DMOS transistor array…

weiiwang01/picard
PiCard is a miniaturized Raspberry Pi Compute Module carrier board optimized for Linux server use cases.

ties1887/Mesh-radio-Halow-LoRa
Modular mesh radio system using Raspberry Pi + HaLow (802.11ah) + LoRa.

cajunpanda/gameboy-hifi-audio
A HiFi audio mod for various Game Boy models

IFAKA/utter
Utter: covert silent-speech text input from surface EMG (open-source ALS voice)