Skip to the content
PCBKitNew board
4 layers82 × 68.9 mmSerialsentinel, the printed circuit board in 3D

Find out which serial ports the device has created.

Size
82 × 68.9 mm
Copper layers
4
Thickness
1.61 mm
Parts
72
Nets
114
Pads
297
Tracks, vias
659, 286
Pours
528
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
10 May 2025
Updated
15 Aug 2025

Overview

Serialsentinel is an open-source printed circuit board by gcormier, from the gcormier/serialsentinel repository on GitHub. It is a 4-layer board of 82 × 68.9 mm with 72 parts on 114 nets, routed with 659 tracks and 286 vias.

It is built around the ESP32-C3-WROOM-02U-N4, CH382L and AMS1117-3.3, with the XC6206P182MR, MMBT3904 and SS54 among its other parts. Its parts include 20 capacitors, 20 resistors, 9 diodes, 8 connectors and 4 ICs. It belongs with the ESP32 and RISC-V boards of this library.

Main components

6

README

readme.md

Early Access - still working on the esphome logic, but the hardware is working and documented.

Serial Sentinel

Allows you full control of your computer's power button and reset button, remotely. Exposes a serial power that lets you run a watchdog and restart your computer in the event of a lockup. Or, send commands to hard-reset, power on or power off whenever you'd like.

Specs

In a nutshell,

  • PCIe x1 card
    • Low-profile / slim size
    • Should fit in servers, please verify
    • Runs off 3.3VAUX, which keeps powering the device, even when your PC shuts down
  • WiFi with external antenna
  • 2 serial ports exposed
    • One for esphome serial logging and programming
    • Another for heartbeat communications
    • WCH382L PCIe-Serial bridge (native Linux support, optional Linux driver, requires Windows driver)
  • 3.3V voltage monitor
    • Good indicator if the computer is powered on or not
  • PCIe wake output
    • Another option to wake up your computer
  • Two relays with dual sets of pin headers
    • Intercept and passthrough your PC's power button and reset button
    • "push" either of those buttons remotely
  • Two user status LED's
  • Two LED's indicating power status of computer
  • External 3.3V and 5V input in case you need creative options for "always-on" power supply
    • eg. You could tap the 5VSB from your ATX PSU if your motherboard does not provide 3V3AUX for some reason, or has a weak 3V3AUX rail.
  • Optional beeper
  • Many solderable jumpers to configure power supply settings in case your motherboard is weird

Physical Installation

  1. Always ensure your computer is fully powere off (eg ATX PSU is off) before installing the card. This card uses the 3.3VAUX rail, which is always powered on when the PSU is plugged in.
  2. Insert the card into a free PCIe x1 slot.
  3. Intercept your power button and/or reset button cables and connect them to the card. You can use any method, but easiest would be to use premade "DuPont" cables of various termination styles and lengths (eg. female-male, female-female).
  4. Turn on your power supply.
  5. With your computer still "off" (but with the power supply on), ensure you can see a green light on Serial Sentinel. This means you have 3.3VAUX power and can proceed.
    • You MAY need to run your computer through 1 valid power-on and power-off sequence to ensure the 3.3VAUX rail activated by your motherboard.
    • If you don't have a green light, you will likely need to source the power from elsewhere.
    • If you have an internal USB header that is "always on", you can use that to power the card using the 5V input.
    • You can also tap a 3.3V wire from your ATX PSU, and use it on the card's 3.3V input.
    • Do NOT use both the 5V and 3.3V inputs on the card. Use only 1.

WiFi Antenna

An external antenna can be attached carefully to the ESP32-C3 using a u.FL to SMA cable. Any standard 2.4GHz SMA antenna will work. You can either use the included cutouts on the PCB to zip tie the antenna, or 3D print a bracket, or use an old/existing bracket and drill a 1/4" (6.35mm) hole to fit the SMA side of the cable connector.

Software Installation

Device ID and serial port

First, make sure you can see the device

text
$ lspci | grep CH382
03:00.0 Serial controller: Nanjing Qinheng Microelectronics Co., Ltd. CH352/CH382 PCI/PCIe Dual Port Serial Adapter (rev 10)

Find out which serial ports the device has created.

text
$ sudo dmesg | grep ttyS
[    0.496389] serial8250: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
[    0.498301] 0000:03:00.0: ttyS4 at I/O 0xd0c0 (irq = 17, base_baud = 115200) is a XR16850
[    0.500166] 0000:03:00.0: ttyS5 at I/O 0xd0c8 (irq = 17, base_baud = 115200) is a XR16850

In this case, ttyS4 and ttyS5 are the two serial ports. S4 is the native ESP32 serial port, which would be used for any logging or flashing over serial. S5 is the port you should use as communications for heartbeat and commands/etc based on the code you have running on the ESP32.

First Flash

Sanity check that esptool can see and talk to the device.

text
$ esptool.py --port /dev/ttyS4 chip_id
esptool.py v4.8.1
Serial port /dev/ttyS4
Connecting....
Detecting chip type... ESP32-C3
Chip is ESP32-C3 (QFN32) (revision v0.4)
Features: WiFi, BLE
Crystal is 40MHz
MAC: b4:3a:45:4c:3f:f4
Uploading stub...
Running stub...
Stub running...
Warning: ESP32-C3 has no Chip ID. Reading MAC instead.
MAC: b4:3a:45:4c:3f:f4
Hard resetting via RTS pin...

If you see the above, you are ready to flash the firmware. If you don't see the device, check your serial port and ensure you have the right one.

Recommended baud rate is 115,200 for any flashing over serial.

Common Questions

Do I need a smarthome?

Nope. You can use the device without any smarthome integration. It can be used as a standalone device to control your computer's power and reset buttons, and you can program it to do various tasks based on the serial commands it receives.

Do I need WiFi?

Nope. You can program the device to act on it's own based on the various inputs/conditions. You can do this with esphome, or with the Arduino framework or ESP-IDF. WiFi is only needed if you want to control the device remotely.

Do I need drivers?

  • Linux will support the WCH382L serial bridge natively, so no drivers are needed. WCH does provide Linux drivers, but they are not needed and seem to cause more trouble than it's worth.
  • Windows will require the WCH382L drivers to be installed. You can find them on the WCH website. I do not use Windows for this project, so I can't provide assistance.

Do I need any software?

In theory you don't even need to use the serial ports (other then getting your code to the device). You could just flash esphome, and control the device yourself remotely. Or you could hardcode some dumb logic to control the power and reset buttons based on the inputs you have available.

More advanced usage would have you regularly sending a heartbeat to the device, and the device would then be able to reset your computer if it stops receiving heartbeats.

Troubleshooting

Constantly resetting

The circuit has logic that will reset the device via DTR/RTS so that the initial firmware can be loaded with esptool. If your operating system is sending signals, that can cause the device to reset, or remain in a reset state which would be an unresponsive state. You can try to prevent this with software. Or, after the first flash, you can remove the DTR/RTS jumpers on the PCB to prevent this from happening and keep updating the device over WiFi.

Parts

72
QtyValueFootprintReferences
13100nCapacitor_SMD:C_0402_1005MetricC3, C4, C5, C6, C7, C8, C9, C13, C213, C214, C215, C216, C217
121kResistor_SMD:R_0402_1005MetricR1, R3, R7, R11, R13, R14, R15, R16, R17, R18, R19, R20
812KResistor_SMD:R_0402_1005MetricR2, R4, R5, R6, R8, R10, R12, R206
4MMBT3904Package_TO_SOT_SMD:SOT-23Q2, Q3, Q4, Q5
4RedLED_SMD:LED_0805_2012MetricD3, D4, D6, D7
4SS54Diode_SMD:D_SMAD1, D2, D8, D9
310uCapacitor_SMD:C_0402_1005MetricC11, C12, C14
31uCapacitor_SMD:C_0402_1005MetricC1, C2, C15
2G6K-2F-Y DC3Relay_SMD:Relay_DPDT_Omron_G6K-2F-YK2, K3
122uCapacitor_SMD:C_0603_1608MetricC10
15VEXTConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ9
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U4
1BOOTSELConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ8
1Bus_PCI_Express_x1Connector_PCBEdge:BUS_PCIexpress_x1J2
1BuzzerBuzzer_Beeper:MagneticBuzzer_PUI_AT-0927-TT-6-RBZ1
1CH382LPackage_QFP:LQFP-64_7x7mm_P0.4mmU1
1DTRConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1ESP32-C3-WROOM-02URF_Module:ESP32-C3-WROOM-02UU3
1GreenLED_SMD:LED_0805_2012MetricD10
1RELAY1Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_HorizontalJ5
1RELAY2Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_HorizontalJ6
1RESETButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW1
1RP3VJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP5
1RP3VAUXJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP4
1RTSConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ4
1WAKEJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP1
1XC6206P182MRPackage_TO_SOT_SMD:SOT-23-3U2
1eflashy32Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ7

Questions

How big is the Serialsentinel PCB?

It measures 82 × 68.9 mm and has 4 copper layers, 1.61 mm thick.

What parts does the Serialsentinel use?

72 parts, built around the ESP32-C3-WROOM-02U-N4, CH382L, AMS1117-3.3 and XC6206P182MR. 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 Serialsentinel KiCad files?

From the gcormier/serialsentinel repository on GitHub, at the commit this page was made from: the board is pcb/serialsentinel.kicad_pcb and its schematic pcb/serialsentinel.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Serialsentinel design in my own project?

Its repository states no licence, so its author keeps all rights: ask gcormier before reusing the design.

Similar boards

  • 4 layers22 × 42 mmKai ysws, the printed circuit board in 3D

    Kai ysws

    NEOgHacking/M.2_LED_MATRIX

    165 parts
  • 2 layers76.2 × 61.9 mmDigits pcb, the printed circuit board in 3D

    Digits pcb

    justinlindh/digits

    Encrypted retro phone network — private VoIP over vintage desk phones

    71 parts4AGPL-3.0
  • 2 layers77.1 × 86.5 mmDATN Hong, the printed circuit board in 3D

    DATN Hong

    hongph713/IOT_DATN

    135 parts
  • 2 layers100 × 100 mmHour meter board microfit can handroute, the printed circuit board in 3D

    Hour meter board microfit can handroute

    ilomon10/embedded-totalizer-hour-meter

    ESP32 engine hour meter & totalizer: firmware, SensorFrame protocol, Node host tools, KiCad PCB and a Deno device simulator

    152 parts
  • 2 layers193.3 × 111.3 mmGATEWAY HARDWARE V1, the printed circuit board in 3D

    GATEWAY HARDWARE V1

    kori-thespirit/LoraGatewayDevelopment

    224 partsMIT
  • 2 layers100 × 100 mmDEVboard1, the printed circuit board in 3D

    DEVboard1

    NTURacingTeam/nturt_kicad

    kicad files

    179 parts4
  • 4 layers100 × 85 mmProjected negative, the printed circuit board in 3D

    Projected negative

    hicancan/carbentra-smart-plug

    CARBENTRA smart plug: AIoT edge device for campus energy orchestration

    105 parts1AGPL-3.0
  • 2 layers75.5 × 2.6 mmPod PCB, the printed circuit board in 3D

    Pod PCB

    rekirxs/NeoXalle-PCB-Slave

    A full PCB work for a sport sensorial reaction device called NeoXalle.

    76 parts