{"id":20254590,"url":"https://github.com/hnz1102/wakepcbox","last_synced_at":"2026-05-10T16:34:24.314Z","repository":{"id":219761872,"uuid":"745904681","full_name":"hnz1102/wakepcbox","owner":"hnz1102","description":"Wake on LAN Controller Box","archived":false,"fork":false,"pushed_at":"2024-05-30T12:28:12.000Z","size":1769,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T17:17:36.385Z","etag":null,"topics":["battry","esp32","esp32-c3","mcp73831","rust","sleep","ssd1306","usb-c","wake-on-lan","wifi-network"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hnz1102.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-20T14:02:11.000Z","updated_at":"2024-09-01T08:49:27.000Z","dependencies_parsed_at":"2024-11-14T10:44:18.259Z","dependency_job_id":null,"html_url":"https://github.com/hnz1102/wakepcbox","commit_stats":null,"previous_names":["hnz1102/wakepcbox"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hnz1102/wakepcbox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hnz1102%2Fwakepcbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hnz1102%2Fwakepcbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hnz1102%2Fwakepcbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hnz1102%2Fwakepcbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hnz1102","download_url":"https://codeload.github.com/hnz1102/wakepcbox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hnz1102%2Fwakepcbox/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267527835,"owners_count":24102019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["battry","esp32","esp32-c3","mcp73831","rust","sleep","ssd1306","usb-c","wake-on-lan","wifi-network"],"created_at":"2024-11-14T10:33:50.444Z","updated_at":"2026-05-10T16:34:24.305Z","avatar_url":"https://github.com/hnz1102.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e\u003ccode\u003eWake PC Box\u003c/code\u003e\u003c/h1\u003e\n  \u003cp\u003e\n    \u003cimg src=\"doc/front43-small.jpg\"/\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n# Wake PC Box - Wake On LAN Packet Transmitting Box\n\nVideo\n[![demo video](doc/videosum.png)](https://www.youtube.com/watch?v=YX_4e1eiLbk)\n\nThis 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.\nThere 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.\nThe 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.\n\n# Update History\n- 2024-05-30 : Initial Release\n- 2026-02-14 : Update code for ESP-IDF V5.4.2 and update README.md\n\n# How it works\n\nThis 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. \n\n![fig1](doc/fig1.png)\n\n# Feature\n\n**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.\n\n**Microcontroller on board** - No need for a PC when you turn on another PC. Directly send packets to the target PCs. \n\n**Transmit a packet via WiFi** - Wake-on LAN packets are transmitted via Wireless Network.\n\n**Battery Powered** - Using LiPo battery. It can run for a month (In this case, every day a few times used).\n\n**Small Handy Box** - This box is only 60mm(W) x 23mm(H) x 80mm(D) size. No need for any cables, it works. \n\n**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.\n\n# How to Use the Box\nAt first, you can set the WiFi SSID and PSK-Password. To set them, push the Center Key, you can see the setting menu, then select the `WiFi` using the UP or Down Key, and click the Center Key. Then, select `SSID` and enter your SSID of the Wireless Access point using the Up/Down/Left/Right key. After entering the SSID, push the center key, select `yes` using the Right key, then, push the Center key. Similarly, set the PSK-Password.\nNext, 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`. \n\n![setting](doc/setting2.jpg)   ![setting](doc/macaddress2.jpg)\n\nAfter setting, just push button corresponding the target.(Up Key : PC1, Down Key : PC2, Left Key: PC3, Right Key: PC4)\n\nTo 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.\n\n![charge](doc/charges.jpg) ![charge](doc/charge-g.jpg) \n\nAssembled PCB\n\n![board](doc/board.jpg)   ![board](doc/board2.jpg) \n\nSet in Box\n\n![InBox](doc/inbox.jpg)   ![InBox](doc/inbox2.jpg)\n\n# How to build from code and Install to the unit.\n\nUsing Ubuntu 22.04.3 LTS and ESP-IDF V5.4.2\n\n1. Install Rust Compiler\n```bash\nsudo apt update \u0026\u0026 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\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\nYou can see the install menu, select No.1. After installation, set the environment variable.\n\n```bash\n. \"$HOME/.cargo/env\"\n```\n\n2. Install toolchain for ESP32-C3\n```bash\ncargo install ldproxy\ncargo install espup\ncargo install cargo-espflash\n```\n\n3. Install ESP-IDF and set the environment variable.\n```bash\nespup install\nespup update\n```\n\nThen, run the following command to set the environment for the ESP32-C3 toolchain:\n```bash\n. ./export-esp.sh\n```\n\n4. Add UDEV rules\n```bash\nsudo sh -c 'echo \"SUBSYSTEMS==\\\"usb\\\", ATTRS{idVendor}==\\\"303a\\\", ATTRS{idProduct}==\\\"1001\\\", MODE=\\\"0666\\\"\" \u003e /etc/udev/rules.d/99-esp32.rules'\nsudo udevadm control --reload-rules\nsudo udevadm trigger\n```\n\n5. Download Current-Logger code\n```bash\ngit clone https://github.com/hnz1102/wakepcbox.git\ncd wakepcbox\n``` \n6. Setting WiFi SSID, Password, and InfluxDB server IP address.\n```bash\ncfg.toml\n\n[wakepcbox]\nwifi_ssid = \"\u003cSSID\u003e\"      # Set your AP SSID.\nwifi_psk = \"\u003cPassword\u003e\"   # Set password for SSID.\ntarget_mac_address1 = \"00:00:00:00:00:00\"  # Set Hardware Address(MAC Address) for wakeup.\ntarget_mac_address2 = \"00:00:00:00:00:00\"\ntarget_mac_address3 = \"00:00:00:00:00:00\"\ntarget_mac_address4 = \"00:00:00:00:00:00\"\ntimezone_offset = \"0\"\nidle_in_sleep_time = \"30\"\nsleep_mode = \"light\"\ndisplay_off_time = \"30\"\nwakeup_interval = \"10\"\n```\n7. Build code and writing flash\n```bashbash\ncargo build --release\n```\n\n8. Connecting the board and Set device and set toolchain.\n\nConnecting the Box by USB Type-C to this code building PC. Then, \n\n```bash\ncargo espflash board-info\n\n✔ Use serial port '/dev/ttyACM0' - USB JTAG/serial debug unit? · yes\n✔ Remember this serial port for future use? · yes\n[2026-02-14T04:41:35Z INFO ] Serial port: '/dev/ttyACM0'\n[2026-02-14T04:41:35Z INFO ] Connecting...\n[2026-02-14T04:41:36Z INFO ] Using flash stub\nChip type:         esp32c3 (revision v0.4)\nCrystal frequency: 40 MHz\nFlash size:        4MB\nFeatures:          WiFi, BLE\nMAC address:       a0:76:4e:b3:64:c0\n\nSecurity Information:\n=====================\nFlags: 0x00000000 (0)\nKey Purposes: [0, 0, 0, 0, 0, 0, 12]\nChip ID: 5\nAPI Version: 3\nSecure Boot: Disabled\nFlash Encryption: Disabled\nSPI Boot Crypt Count (SPI_BOOT_CRYPT_CNT): 0x0\n```\n\n9. Writing flash\n```bash\ncargo espflash flash --release --monitor\n\n[2026-02-14T04:43:53Z INFO ] Serial port: '/dev/ttyACM0'\n[2026-02-14T04:43:53Z INFO ] Connecting...\n[2026-02-14T04:43:53Z INFO ] Using flash stub\n   Compiling wakepcbox v0.1.0 (/wakepcbox)\n    Finished `release` profile [optimized] target(s) in 4.22s\nChip type:         esp32c3 (revision v0.4)\nCrystal frequency: 40 MHz\nFlash size:        4MB\nFeatures:          WiFi, BLE\nMAC address:       a0:76:4e:b3:64:c0\nApp/part. size:    1,644,080/3,145,728 bytes, 52.26%\n[00:00:00] [========================================]      13/13      0x0      Verifying... OK!                                                                                                                                                       [00:00:00] [========================================]       1/1       0x8000   Skipped! (checksum matches)                                                                                                                                            \n[00:00:15] [========================================]     887/887     0x10000  Verifying... OK!                                                                                                                                                       [2026-02-14T04:44:16Z INFO ] Flashing has completed!\n\nAnd automatically boot!\n```\n## Schematic, PCB Gabar and Container 3D Data\n\nThere is a Schematic data in the hardware directory including 3D printing data. \n\n![Container](doc/box.png) ![PCB Layout](doc/pcblayout.png)\n\n## LICENSE\nThis source code is licensed under MIT. Other Hardware Schematic documents are licensed under CC-BY-SA V4.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhnz1102%2Fwakepcbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhnz1102%2Fwakepcbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhnz1102%2Fwakepcbox/lists"}