Skip to the content
PCBKitNew board
2 layers40 × 60 mmWakepc, the printed circuit board in 3D

Wake on LAN Controller Box

Size
40 × 60 mm
Copper layers
2
Thickness
1.6 mm
Parts
45
Nets
33
Pads
167
Tracks, vias
306, 86
Pours
1
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
20 Jan 2024
Updated
20 Jun 2026

Overview

Wakepc is an open-source printed circuit board by hnz1102, from the hnz1102/wakepcbox repository on GitHub. It is a 2-layer board of 40 × 60 mm with 45 parts on 33 nets, routed with 306 tracks and 86 vias.

It is built around the ESP32-C3-WROOM-02-N4, SPX3819M5-L and IRF7606TRPBF, with the MH2029-601Y, NSR0340HT1G-HXY and USB4105-GF-A among its other parts. Its parts include 18 resistors, 9 capacitors, 6 switches, 4 ICs and 3 diodes. It belongs with the radio and wireless boards and the ESP32 and RISC-V boards of this library.

Main components

6

README

README.md

Wake PC Box

Wake PC Box - Wake On LAN Packet Transmitting Box

Video demo video

This is the small control box that can wake up the PC using Wake On LAN. You can just push a button, PCs will wake up from the power off status. There is no need to start up another PC in order to start up a PC with Wake On Lan. Wake on LAN packets are sent via WiFi LAN. The Box has a battery, and you can charge it from a USB Type-C port. Once charging full, you can use it for a month. If any buttons are not pressed for the specified time (default 30 seconds), the box will sleep automatically and conserve battery power. Up to four PCs can be registered.

Update History

  • 2024-05-30 : Initial Release
  • 2026-02-14 : Update code for ESP-IDF V5.4.2 and update README.md
  • 2026-06-20 : v0.2.0 - Add WPS PBC mode support, fix WPS display overlap, fix WiFi menu not reflecting WPS credentials immediately

How it works

This box can send a Wake on LAN packet to the Wireless Access Point. To transfer the packet, the Access Point needs to be set to Bridge Mode. If Router Mode is set, the Access Point won't transfer to the wired LAN.

fig1

Feature

Quick Wake Up - Simply press one of the up, down, left, or right buttons to turn on the PC corresponding to that button. 4 PCs can be registered.

Microcontroller on board - No need for a PC when you turn on another PC. Directly send packets to the target PCs.

Transmit a packet via WiFi - Wake-on LAN packets are transmitted via Wireless Network.

Battery Powered - Using LiPo battery. It can run for a month (In this case, every day a few times used).

Small Handy Box - This box is only 60mm(W) x 23mm(H) x 80mm(D) size. No need for any cables, it works.

Configurable - Setting parameters are set from the display menu. SSID/Password/Target PC Hardware Address(4 PCs)/Time Zone/Sleep Time/Sleep Mode/Display Off Time/Reset Settings.

WPS Support - If wps_enable = "true" and wifi_ssid is empty in cfg.toml, the device enters WPS PBC (Push Button Configuration) mode on first boot. Press the WPS button on your router within 120 seconds. The obtained SSID and password are saved to NVS automatically, and subsequent boots connect normally without WPS.

How to Use the Box

At first, you can set the WiFi SSID and PSK-Password in one of two ways:

Option A: Manual entry via menu - Push the Center Key to open the setting menu, select WiFi, then enter your SSID and password using the direction keys.

Option B: WPS PBC mode - Set wps_enable = "true" and leave wifi_ssid empty in cfg.toml before flashing. On first boot, the device displays "WPS MODE" and waits up to 120 seconds. Press the WPS button on your router to transfer the credentials automatically. The SSID and password are saved and WPS mode is disabled for subsequent boots. Next, set the Hardware Address(Ethernet MAC Address) of the PC that you want to wake up. Select HW Address and push Center Key, select from PC1 to PC4, push Center key, then enter your Hardware Address like 00:11:22:33:44:55.

setting setting

After setting, just push button corresponding the target.(Up Key : PC1, Down Key : PC2, Left Key: PC3, Right Key: PC4)

To charge a battery, just connect to a USB Type-C port from the bus-powered USB port. During the charge, the CHG LED is RED ON. After the charging is full, the FUL LED is GREEN ON. And the charging will be stopped automatically.

charge charge

Assembled PCB

board board

Set in Box

InBox InBox

How to build from code and Install to the unit.

Using Ubuntu 22.04.3 LTS and ESP-IDF V5.4.2

  1. Install Rust Compiler
bash
sudo apt update && sudo apt -y install git python3 python3-pip gcc build-essential curl pkg-config libudev-dev libtinfo5 clang libclang-dev llvm-dev udev libssl-dev python3.10-venv
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

You can see the install menu, select No.1. After installation, set the environment variable.

bash
. "$HOME/.cargo/env"
  1. Install toolchain for ESP32-C3
bash
cargo install ldproxy
cargo install espup
cargo install cargo-espflash
  1. Install ESP-IDF and set the environment variable.
bash
espup install
espup update

Then, run the following command to set the environment for the ESP32-C3 toolchain:

bash
. ./export-esp.sh
  1. Add UDEV rules
bash
sudo sh -c 'echo "SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"303a\", ATTRS{idProduct}==\"1001\", MODE=\"0666\"" > /etc/udev/rules.d/99-esp32.rules'
sudo udevadm control --reload-rules
sudo udevadm trigger
  1. Download Current-Logger code
bash
git clone https://github.com/hnz1102/wakepcbox.git
cd wakepcbox
  1. Setting WiFi SSID, Password, and InfluxDB server IP address.
bash
cfg.toml

[wakepcbox]
wifi_ssid = "<SSID>"      # Set your AP SSID. Leave empty to use WPS mode.
wifi_psk = "<Password>"   # Set password for SSID.
wps_enable = "false"       # Set "true" to use WPS PBC mode on first boot (requires wifi_ssid to be empty).
target_mac_address1 = "00:00:00:00:00:00"  # Set Hardware Address(MAC Address) for wakeup.
target_mac_address2 = "00:00:00:00:00:00"
target_mac_address3 = "00:00:00:00:00:00"
target_mac_address4 = "00:00:00:00:00:00"
timezone_offset = "0"
idle_in_sleep_time = "30"
sleep_mode = "light"
display_off_time = "30"
wakeup_interval = "10"
  1. Build code and writing flash
bashbash
cargo build --release
  1. Connecting the board and Set device and set toolchain.

Connecting the Box by USB Type-C to this code building PC. Then,

bash
cargo espflash board-info

✔ Use serial port '/dev/ttyACM0' - USB JTAG/serial debug unit? · yes
✔ Remember this serial port for future use? · yes
[2026-02-14T04:41:35Z INFO ] Serial port: '/dev/ttyACM0'
[2026-02-14T04:41:35Z INFO ] Connecting...
[2026-02-14T04:41:36Z INFO ] Using flash stub
Chip type:         esp32c3 (revision v0.4)
Crystal frequency: 40 MHz
Flash size:        4MB
Features:          WiFi, BLE
MAC address:       a0:76:4e:b3:64:c0

Security Information:
=====================
Flags: 0x00000000 (0)
Key Purposes: [0, 0, 0, 0, 0, 0, 12]
Chip ID: 5
API Version: 3
Secure Boot: Disabled
Flash Encryption: Disabled
SPI Boot Crypt Count (SPI_BOOT_CRYPT_CNT): 0x0
  1. Writing flash
bash
cargo espflash flash --release --monitor

[2026-02-14T04:43:53Z INFO ] Serial port: '/dev/ttyACM0'
[2026-02-14T04:43:53Z INFO ] Connecting...
[2026-02-14T04:43:53Z INFO ] Using flash stub
   Compiling wakepcbox v0.1.0 (/wakepcbox)
    Finished `release` profile [optimized] target(s) in 4.22s
Chip type:         esp32c3 (revision v0.4)
Crystal frequency: 40 MHz
Flash size:        4MB
Features:          WiFi, BLE
MAC address:       a0:76:4e:b3:64:c0
App/part. size:    1,644,080/3,145,728 bytes, 52.26%
[00:00:00] [========================================]      13/13      0x0      Verifying... OK!                                                                                                                                                       [00:00:00] [========================================]       1/1       0x8000   Skipped! (checksum matches)                                                                                                                                            
[00:00:15] [========================================]     887/887     0x10000  Verifying... OK!                                                                                                                                                       [2026-02-14T04:44:16Z INFO ] Flashing has completed!

And automatically boot!

Schematic, PCB Gabar and Container 3D Data

There is a Schematic data in the hardware directory including 3D printing data.

Container PCB Layout

LICENSE

This source code is licensed under MIT. Other Hardware Schematic documents are licensed under CC-BY-SA V4.0.

Parts

45
QtyValueFootprintReferences
610KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR102, R109, R110, R112, R114, R117
5TS-06104Library:TS-06104SW101, SW103, SW104, SW105, SW106
320K 1%Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR106, R120, R121
20.1uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC104, C111
210KResistor_SMD:R_0603_1608MetricR105, R108
210uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC110, C112
216pFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC102, C103
21uFCapacitor_SMD:C_0805_2012MetricC109, C113
2330Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR118, R119
25.1KResistor_SMD:R_0603_1608MetricR103, R104
1100KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR122
112K 1%Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR107
12KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR115
13.5x2.6 Tact SWLibrary:WS-TASV SMT Tact SwitchSW102
132.7680KHzCrystal:Crystal_SMD_3215-2Pin_3.2x1.5mmY101
14.7uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC108
1ESP32-C3-WROOM-02-N4Library:IC18_ESP32-C3-WROOM-02-N4_EXPU101
1IRF7606TRPBFPackage_SO:MSOP-8_3x3mm_P0.65mmQ101
1LED GREENLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD103
1LED REDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD102
1LiPo BATTERYConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ103
1MCP73831-2-OTPackage_TO_SOT_SMD:SOT-23-5U104
1MH2029-601YInductor_SMD:L_0805_2012MetricFB101
1NSR0340HT1GDiode_SMD:D_SOD-323_HandSolderingD104
1SPX3819M5-LPackage_TO_SOT_SMD:SOT-23-5U102
1SSD1306_DISPLAYLibrary:OLED I2C DISPLAYU103
1USB4105-GF-ALibrary:USB_C_5077CR-16-SMC2-BK-TRJ101

Questions

How big is the Wakepc PCB?

It measures 40 × 60 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Wakepc use?

45 parts, built around the ESP32-C3-WROOM-02-N4, SPX3819M5-L, IRF7606TRPBF and MH2029-601Y. 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 Wakepc KiCad files?

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

Can I use the Wakepc design in my own project?

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

Similar boards

  • 2 layers30 × 43 mmCurrentmeter, the printed circuit board in 3D

    Currentmeter

    hnz1102/mini-current-meter

    Mini Current Meter using INA228A ultra-precise digital power monitor

    40 parts10
  • 2 layers50 × 70 mmTemp logger, the printed circuit board in 3D

    Temp logger

    hnz1102/temp-logger

    Logging Thermocouple Temperature and Send Data to InfluxDB system.

    52 parts5
  • 2 layers91.7 × 70 mmCurrent logger, the printed circuit board in 3D

    Current logger

    hnz1102/current-logger

    This tool provides a logging function that gets data on voltage, current and power consumption. Voltage input range is from 0 to 85V, Maximum current input is 15A.

    64 parts18
  • 2 layers185 × 98 mmMosfetload, the printed circuit board in 3D

    Mosfetload

    hnz1102/electricload

    Electric Load and Logger

    96 parts5
  • 2 layers139 × 64 mmEEW display, the printed circuit board in 3D

    EEW display

    hnz1102/EEW-display

    ESP32-S3 firmware for a small earthquake-information display. It shows recent earthquakes and emergency earthquake warnings (緊急地震速報, EEW) from [P2P地震情報](https://www.p2pquake.net/), draws the epicenters on a Google map…

    47 parts
  • 2 layers68.3 × 57.8 mmSdcdmuxemmc, the printed circuit board in 3D

    Sdcdmuxemmc

    hnz1102/sdcdmux-emmc

    SD CARD and eMMC Device Multiplexer with Infrared Remote Controller

    107 parts16MIT
  • 2 layers46 × 54 mmMini power, the printed circuit board in 3D

    Mini power

    hnz1102/mini-power

    Mini-Power is a small, portable DC power supply unit designed to provide a convenient and reliable source of adjustable voltage for your electronic devices and breadboard experiments.

    52 parts3