Skip to content

How to Wake a PC with Wake-on-LAN from a W6300-EVB-Pico (RP2040 + WIZnet W6300)

A Wake-on-LAN sender on the W6300-EVB-Pico (RP2040 + WIZnet W6300): a UDP Magic Packet over wired Ethernet powers on a PC remotely.

Benjamin

Published June 17, 2026

Original author: namo02268Original source (new tab)

How to Wake a PC with Wake-on-LAN from a W6300-EVB-Pico (RP2040 + WIZnet W6300)

Components

Hardware components



WIZnet parts

Project description

๐Ÿ“Œ Overview

namo02268 is a maker who shares WIZnet, Raspberry Pi Pico / RP2040, M5Stack, and Lego EV3 projects on Qiita. After trying the W6300-EVB-Pico and handling HTTP request interrupts on it, this article continues that W6300 series with a practical trick: waking a PC over the network.

The project turns a W6300-EVB-Pico (an RP2040 board with a WIZnet W6300 Ethernet controller) into a Wake-on-LAN sender. The board builds a Magic Packet and broadcasts it as a UDP datagram over wired Ethernet, and a powered-off PC with Wake-on-LAN enabled turns itself on. It is a small, complete example: the WIZnet chip handles the network, and the firmware just assembles the packet and sends it.

W6300-EVB-Pico board and retail box: an RP2040 board with a WIZnet W6300 Ethernet controller used as a Wake-on-LAN sender Edited repository photo: the WIZnet W6300-EVB-Pico used in this project.

How Wake-on-LAN Works

Wake-on-LAN powers on a computer by sending it a specially formed Ethernet frame called a Magic Packet. The packet is simple: 6 bytes of 0xFF, then the target PC's MAC address repeated 16 times, for 102 bytes total. It is sent as a UDP datagram to the broadcast address so it reaches the sleeping machine, whose network card stays powered and watches for its own MAC address in the stream.

Magic Packet structure: 6 bytes of 0xFF followed by the target MAC address repeated 16 times, 102 bytes total Generated technical diagram: the Magic Packet layout.

System Configuration

The sender is a WIZnet W6300-EVB-Pico, which combines an RP2040 microcontroller with a W6300 hardwired TCP/IP Ethernet controller. The board uses a static IP (192.168.0.30 in the example), opens a UDP socket on port 9, and sends the Magic Packet to the LAN broadcast address (192.168.0.255). The target in the article is an ASRock DeskMini A300 running Ubuntu Server 24.04. A make_magic_packet() function assembles the 102-byte payload from the target MAC, and the firmware transmits it through the WIZnet socket API. The WIZnet part used is listed in the Hardware Components panel.

โš™๏ธ Role of the WIZnet Chip

The W6300 is what makes the firmware short. It is a hardwired TCP/IP controller, so the RP2040 only fills a UDP socket and the chip handles Ethernet framing and transmission. There is no software network stack to port or tune. For a Wake-on-LAN tool this is ideal: the board can be a tiny, always-on, low-power device that sits on the wired network and reliably emits the broadcast packet on demand. Because the W6300 runs the stack in hardware, this is a TCP/IP offload (TOE) design rather than a software stack on the MCU.

Sending and Verifying the Packet

In practice the board broadcasts the Magic Packet onto the LAN, the switch forwards the broadcast frame to every port, and the target PC's network card matches its own MAC inside the packet and powers the machine on.

Wake-on-LAN data flow: the W6300-EVB-Pico broadcasts a UDP Magic Packet through the LAN switch to the target PC, which powers on Generated technical diagram: from the W6300 board to the sleeping PC.

The author confirms the result with Wireshark: the capture shows a WOL packet from 192.168.0.30 to the broadcast address, labelled as a Magic Packet for the target MAC. That is a good habit worth copying, because it proves the packet is well formed before blaming the PC's BIOS settings.

Wireshark capture of the Magic Packet from the W6300-EVB-Pico to the LAN broadcast address Edited repository image: the author's Wireshark capture of the WoL packet.

Where It Fits and Limits

This is a clean home-lab and automation building block: a small wired device that can boot a server or desktop on demand, without relying on the PC's own always-on power or a cloud service. It is also a friendly first networking project on the W6300-EVB-Pico, since UDP broadcast is simpler than a full TCP service.

Two limits are worth stating. Wake-on-LAN must be enabled in the target PC's BIOS and network adapter, which is outside the firmware. And the addresses are static example values, so the IP, broadcast address, and target MAC must be set for your own network.

Related WIZnet Maker Projects

This article is the latest in namo02268's W6300-EVB-Pico series, so the closest related content is the maker's own earlier work.

Try the W6300-EVB-Pico (Grade B) is the same maker's starting point: setting up the W6300-EVB-Pico and running an HTTP "Hello World" TCP server to confirm the board is working. Both articles use the same hardware - W6300-EVB-Pico with RP2040 and the W6300 hardwired TCP/IP controller. The difference is direction and protocol: that article opens a persistent TCP server socket waiting for GET requests; this one opens a UDP socket, sends a single 102-byte Magic Packet broadcast, and closes. Reading them together shows the W6300 TOE socket API applied to both server and sender roles.

How to Handle Interrupts on HTTP Requests on the W6300-EVB-Pico (Grade B) moves the same W6300 board from polled server to interrupt-driven HTTP handling. All three articles - setup, interrupt server, and this WoL sender - cover the same hardware and show its range: a board that can be a web server, an interrupt-gated server, or a fire-and-forget network automation tool. This WoL article is the simplest firmware of the three: no persistent connection, no interrupt handling, just sendto() on the broadcast address.

W5100S/W5500 + RP2040 Raspberry Pi Pico WOL Example (Grade A) is the same Wake-on-LAN Magic Packet idea on older WIZnet controllers (W5100S or W5500 over SPI on a standard Raspberry Pi Pico). Both projects follow the same WoL pattern - assemble 6 bytes of 0xFF plus 16 repeats of the target MAC, broadcast as UDP on port 9 - and both use the WIZnet socket API. The hardware difference is the Ethernet interface: W5100S/W5500 use standard SPI (one data line); W6300 uses QSPI (four data lines), which raises the maximum throughput and reduces the per-byte SPI overhead. Comparing the two shows the WoL pattern is portable across the WIZnet family.

The shared thread is a WIZnet hardwired TCP/IP controller on an RP2040 providing a reliable, code-light Ethernet function. This article is the Wake-on-LAN entry of that family - the simplest firmware, the clearest verification path (Wireshark), and the first W6300-specific WoL reference on the Maker site.

โ“ FAQ

Q. What does this project do? It turns a W6300-EVB-Pico (RP2040 + WIZnet W6300) into a Wake-on-LAN sender that broadcasts a UDP Magic Packet to power on a PC remotely.

Q. What is the role of the WIZnet chip? The W6300 is a hardwired TCP/IP controller, so it handles Ethernet and UDP transmission while the RP2040 just builds the Magic Packet and calls the socket send (a TCP/IP offload design).

Q. What is a Magic Packet? It is the Wake-on-LAN payload: 6 bytes of 0xFF followed by the target PC's MAC address repeated 16 times (102 bytes), sent as a UDP broadcast datagram.

Q. What is the hardest part to replicate? Mostly the environment, not the code. Wake-on-LAN must be enabled in the target PC's BIOS and NIC, and the static IP, broadcast address, and target MAC must match your LAN.

Q. How can I confirm it works? Capture the traffic in Wireshark, as the author does. If you see a WOL Magic Packet for the right MAC going to the broadcast address, the firmware side is correct.


ํ•œ๊ตญ์–ด (Korean)

๊ฐœ์š”

namo02268์€ WIZnet, ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด Pico/RP2040, M5Stack, ๋ ˆ๊ณ  EV3 ํ”„๋กœ์ ํŠธ๋ฅผ Qiita์— ๊ณต์œ ํ•˜๋Š” ๋ฉ”์ด์ปค์ž…๋‹ˆ๋‹ค. W6300-EVB-Pico๋ฅผ ์ฒ˜์Œ ๋‹ค๋ค„๋ณด๊ณ , HTTP ์š”์ฒญ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ๊นŒ์ง€ ๋‹ค๋ฃฌ ๋ฐ ์ด์–ด, ์ด๋ฒˆ ๊ธ€์€ ๊ทธ W6300 ์‹œ๋ฆฌ์ฆˆ๋ฅผ "๋„คํŠธ์›Œํฌ๋กœ PC ์ผœ๊ธฐ"๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋Š” W6300-EVB-Pico(WIZnet W6300 ์ด๋”๋„ท ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋‹ฌ๋ฆฐ RP2040 ๋ณด๋“œ)๋ฅผ Wake-on-LAN ์†ก์‹ ๊ธฐ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋ณด๋“œ๊ฐ€ ๋งค์ง ํŒจํ‚ท์„ ๋งŒ๋“ค์–ด ์œ ์„  ์ด๋”๋„ท์œผ๋กœ UDP ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜๋ฉด, Wake-on-LAN์ด ์ผœ์ง„ ๊บผ์ง„ PC๊ฐ€ ์Šค์Šค๋กœ ์ „์›์„ ์ผญ๋‹ˆ๋‹ค. WIZnet ์นฉ์ด ๋„คํŠธ์›Œํฌ๋ฅผ ๋งก๊ณ  ํŽŒ์›จ์–ด๋Š” ํŒจํ‚ท์„ ์กฐ๋ฆฝํ•ด ๋ณด๋‚ด๊ธฐ๋งŒ ํ•˜๋Š”, ์ž‘๊ณ  ์™„๊ฒฐ๋œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

W6300-EVB-Pico ๋ณด๋“œ์™€ ๋ฐ•์Šค: WIZnet W6300 ์ด๋”๋„ท ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋‹ฌ๋ฆฐ RP2040 ๋ณด๋“œ๋ฅผ Wake-on-LAN ์†ก์‹ ๊ธฐ๋กœ ์‚ฌ์šฉ ๋ ˆํฌ ์‚ฌ์ง„ ํŽธ์ง‘: ์ด ํ”„๋กœ์ ํŠธ์— ์“ฐ์ธ WIZnet W6300-EVB-Pico.

Wake-on-LAN์˜ ์›๋ฆฌ

Wake-on-LAN์€ ๋งค์ง ํŒจํ‚ท์ด๋ผ๋Š” ํŠน์ˆ˜ํ•œ ์ด๋”๋„ท ํ”„๋ ˆ์ž„์„ ๋ณด๋‚ด ์ปดํ“จํ„ฐ๋ฅผ ์ผญ๋‹ˆ๋‹ค. ๊ตฌ์กฐ๋Š” ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค: 0xFF 6๋ฐ”์ดํŠธ ๋’ค์— ๋Œ€์ƒ PC์˜ MAC ์ฃผ์†Œ๋ฅผ 16๋ฒˆ ๋ฐ˜๋ณตํ•ด ์ด 102๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ๋กœ UDP ์ „์†กํ•˜๋ฉด, ์ „์›์ด ์œ ์ง€๋˜๋Š” ๋„คํŠธ์›Œํฌ ์นด๋“œ๊ฐ€ ์ž์‹ ์˜ MAC์„ ํŒจํ‚ท์—์„œ ์ฐพ์•„ PC๋ฅผ ๊นจ์›๋‹ˆ๋‹ค.

๋งค์ง ํŒจํ‚ท ๊ตฌ์กฐ: 0xFF 6๋ฐ”์ดํŠธ + ๋Œ€์ƒ MAC 16ํšŒ ๋ฐ˜๋ณต, ์ด 102๋ฐ”์ดํŠธ ์ƒ์„ฑ ๋‹ค์ด์–ด๊ทธ๋žจ: ๋งค์ง ํŒจํ‚ท ๋ ˆ์ด์•„์›ƒ.

์‹œ์Šคํ…œ ๊ตฌ์„ฑ

์†ก์‹ ๊ธฐ๋Š” RP2040๊ณผ W6300 ํ•˜๋“œ์™€์ด์–ด๋“œ TCP/IP ์ด๋”๋„ท ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ฒฐํ•ฉํ•œ WIZnet W6300-EVB-Pico์ž…๋‹ˆ๋‹ค. ๋ณด๋“œ๋Š” ์ •์  IP(์˜ˆ: 192.168.0.30)๋ฅผ ์“ฐ๊ณ , ํฌํŠธ 9๋กœ UDP ์†Œ์ผ“์„ ์—ด์–ด LAN ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ(192.168.0.255)๋กœ ๋งค์ง ํŒจํ‚ท์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ธ€์˜ ๋Œ€์ƒ PC๋Š” Ubuntu Server 24.04๋ฅผ ๋Œ๋ฆฌ๋Š” ASRock DeskMini A300์ž…๋‹ˆ๋‹ค. make_magic_packet() ํ•จ์ˆ˜๊ฐ€ ๋Œ€์ƒ MAC์œผ๋กœ 102๋ฐ”์ดํŠธ ํŽ˜์ด๋กœ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ , ํŽŒ์›จ์–ด๊ฐ€ WIZnet ์†Œ์ผ“ API๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์“ฐ์ธ WIZnet ๋ถ€ํ’ˆ์€ Hardware Components ํŒจ๋„์— ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

WIZnet ์นฉ์˜ ์—ญํ• 

W6300 ๋•๋ถ„์— ํŽŒ์›จ์–ด๊ฐ€ ์งง์Šต๋‹ˆ๋‹ค. ํ•˜๋“œ์™€์ด์–ด๋“œ TCP/IP ์ปจํŠธ๋กค๋Ÿฌ๋ผ์„œ RP2040์€ UDP ์†Œ์ผ“๋งŒ ์ฑ„์šฐ๊ณ  ์นฉ์ด ์ด๋”๋„ท ํ”„๋ ˆ์ด๋ฐยท์ „์†ก์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํฌํŒ…ํ•˜๊ฑฐ๋‚˜ ํŠœ๋‹ํ•  ์†Œํ”„ํŠธ์›จ์–ด ๋„คํŠธ์›Œํฌ ์Šคํƒ์ด ์—†์Šต๋‹ˆ๋‹ค. WoL ๋„๊ตฌ์—๋Š” ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ๋ณด๋“œ๊ฐ€ ์œ ์„  ๋„คํŠธ์›Œํฌ์— ์ƒ์ฃผํ•˜๋Š” ์ž‘๊ณ  ์ €์ „๋ ฅ์ธ ์žฅ์น˜๊ฐ€ ๋˜์–ด, ํ•„์š”ํ•  ๋•Œ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ํŒจํ‚ท์„ ์•ˆ์ •์ ์œผ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. W6300์ด ์Šคํƒ์„ ํ•˜๋“œ์›จ์–ด๋กœ ๋Œ๋ฆฌ๋ฏ€๋กœ ์ด๋Š” TOE(TCP/IP ์˜คํ”„๋กœ๋“œ) ์„ค๊ณ„์ž…๋‹ˆ๋‹ค.

ํŒจํ‚ท ์ „์†ก๊ณผ ๊ฒ€์ฆ

์‹ค์ œ๋กœ๋Š” ๋ณด๋“œ๊ฐ€ ๋งค์ง ํŒจํ‚ท์„ LAN์— ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜๊ณ , ์Šค์œ„์น˜๊ฐ€ ๊ทธ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ํ”„๋ ˆ์ž„์„ ๋ชจ๋“  ํฌํŠธ๋กœ ์ „๋‹ฌํ•˜๋ฉฐ, ๋Œ€์ƒ PC์˜ ๋„คํŠธ์›Œํฌ ์นด๋“œ๊ฐ€ ํŒจํ‚ท ์•ˆ์˜ ์ž๊ธฐ MAC์„ ํ™•์ธํ•ด ์ „์›์„ ์ผญ๋‹ˆ๋‹ค.

Wake-on-LAN ๋ฐ์ดํ„ฐ ํ๋ฆ„: W6300-EVB-Pico๊ฐ€ UDP ๋งค์ง ํŒจํ‚ท์„ LAN ์Šค์œ„์น˜๋กœ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•ด ๋Œ€์ƒ PC๋ฅผ ์ผฌ ์ƒ์„ฑ ๋‹ค์ด์–ด๊ทธ๋žจ: W6300 ๋ณด๋“œ์—์„œ ์ž ๋“  PC๊นŒ์ง€.

์ €์ž๋Š” Wireshark๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์บก์ฒ˜์—๋Š” 192.168.0.30์—์„œ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ๋กœ ๊ฐ€๋Š” WOL ํŒจํ‚ท์ด ๋Œ€์ƒ MAC์šฉ ๋งค์ง ํŒจํ‚ท์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํŒจํ‚ท์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ๋จผ์ € ํ™•์ธํ•˜๋ฉด PC์˜ BIOS ์„ค์ •์„ ์˜์‹ฌํ•˜๊ธฐ ์ „์— ํŽŒ์›จ์–ด ์ชฝ์„ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์–ด ์ข‹์€ ์Šต๊ด€์ž…๋‹ˆ๋‹ค.

W6300-EVB-Pico๊ฐ€ LAN ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ๋กœ ๋ณด๋‚ธ ๋งค์ง ํŒจํ‚ท์˜ Wireshark ์บก์ฒ˜ ๋ ˆํฌ ์ด๋ฏธ์ง€ ํŽธ์ง‘: ์ €์ž์˜ WoL ํŒจํ‚ท Wireshark ์บก์ฒ˜.

ํ™œ์šฉ๊ณผ ํ•œ๊ณ„

ํ™ˆ๋žฉยท์ž๋™ํ™”์— ์ข‹์€ ๋นŒ๋”ฉ ๋ธ”๋ก์ž…๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋‚˜ PC์˜ ์ƒ์‹œ ์ „์›์— ์˜์กดํ•˜์ง€ ์•Š๊ณ , ์ž‘์€ ์œ ์„  ์žฅ์น˜๋กœ ์„œ๋ฒ„๋‚˜ ๋ฐ์Šคํฌํ†ฑ์„ ์›ํ•  ๋•Œ ์ผค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. UDP ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๋Š” ์™„์ „ํ•œ TCP ์„œ๋น„์Šค๋ณด๋‹ค ๋‹จ์ˆœํ•ด์„œ W6300-EVB-Pico ์ฒซ ๋„คํŠธ์›Œํฌ ํ”„๋กœ์ ํŠธ๋กœ๋„ ์ข‹์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋‘ ๊ฐ€์ง€ ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Wake-on-LAN์€ ๋Œ€์ƒ PC์˜ BIOS์™€ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ์—์„œ ์ผœ์ ธ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ์ด๋Š” ํŽŒ์›จ์–ด ๋ฐ–์˜ ์ผ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฃผ์†Œ๋Š” ์˜ˆ์‹œ ์ •์  ๊ฐ’์ด๋ผ IPยท๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œยท๋Œ€์ƒ MAC์„ ์ž๊ธฐ ๋„คํŠธ์›Œํฌ์— ๋งž๊ฒŒ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ WIZnet ๋ฉ”์ด์ปค ํ”„๋กœ์ ํŠธ

์ด ๊ธ€์€ namo02268์˜ W6300-EVB-Pico ์‹œ๋ฆฌ์ฆˆ์˜ ์ตœ์‹ ํŽธ์ด๋ผ, ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ด€๋ จ ์ฝ˜ํ…์ธ ๋Š” ๊ฐ™์€ ์ œ์ž‘์ž์˜ ์ด์ „ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

Try the W6300-EVB-Pico (Grade B) - ๊ฐ™์€ ์ œ์ž‘์ž์˜ ์ถœ๋ฐœ์ ์œผ๋กœ, W6300-EVB-Pico ์…‹์—…๊ณผ HTTP "Hello World" TCP ์„œ๋ฒ„ ์‹คํ–‰์œผ๋กœ ๋ณด๋“œ ๋™์ž‘์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ธ€ ๋ชจ๋‘ ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด(W6300-EVB-Pico, RP2040, W6300 ํ•˜๋“œ์›จ์–ด TCP/IP)๋ฅผ ์”๋‹ˆ๋‹ค. ๋ฐฉํ–ฅ๊ณผ ํ”„๋กœํ† ์ฝœ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ทธ ๊ธ€์€ GET ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ง€์†์ ์ธ TCP ์„œ๋ฒ„ ์†Œ์ผ“์ด๊ณ , ์ด ๊ธ€์€ 102๋ฐ”์ดํŠธ ๋งค์ง ํŒจํ‚ท ํ•˜๋‚˜๋ฅผ UDP ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๋กœ ๋ณด๋‚ด๊ณ  ๋๋‚ฉ๋‹ˆ๋‹ค. ํ•จ๊ป˜ ์ฝ์œผ๋ฉด W6300 TOE ์†Œ์ผ“ API๊ฐ€ ์„œ๋ฒ„์™€ ์†ก์‹ ๊ธฐ ์–‘์ชฝ์— ์–ด๋–ป๊ฒŒ ์“ฐ์ด๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

How to Handle Interrupts on HTTP Requests on the W6300-EVB-Pico (Grade B) - ๊ฐ™์€ ๋ณด๋“œ์—์„œ ํด๋ง ์„œ๋ฒ„๋ฅผ ์ธํ„ฐ๋ŸฝํŠธ ๊ธฐ๋ฐ˜ HTTP ํ•ธ๋“ค๋ง์œผ๋กœ ๋ฐœ์ „์‹œํ‚ต๋‹ˆ๋‹ค. ์„ธ ํŽธ(์…‹์—…, ์ธํ„ฐ๋ŸฝํŠธ ์„œ๋ฒ„, ์ด WoL ์†ก์‹ ๊ธฐ)์€ ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด์˜ ๋ฒ”์œ„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด WoL ๊ธ€์ด ์…‹ ์ค‘ ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ํŽŒ์›จ์–ด์ž…๋‹ˆ๋‹ค. ์ง€์† ์—ฐ๊ฒฐ๋„, ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋ง๋„ ์—†๊ณ , ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ๋กœ sendto() ํ•˜๋‚˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

W5100S/W5500 + RP2040 Raspberry Pi Pico WOL Example (Grade A) - ๊ตฌํ˜• WIZnet ์นฉ(W5100S ๋˜๋Š” W5500, ํ‘œ์ค€ SPI)์„ ํƒ‘์žฌํ•œ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ํ”ผ์ฝ”์—์„œ ๋™์ผํ•œ WoL ๋งค์ง ํŒจํ‚ท์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ํ”„๋กœ์ ํŠธ ๋ชจ๋‘ ๊ฐ™์€ WoL ํŒจํ„ด(0xFF 6๋ฐ”์ดํŠธ + ํƒ€๊นƒ MAC 16ํšŒ, UDP ํฌํŠธ 9 ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ)๊ณผ WIZnet ์†Œ์ผ“ API๋ฅผ ์”๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ์ฐจ์ด๋Š” ์ด๋”๋„ท ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. W5100S/W5500์€ ํ‘œ์ค€ SPI(๋ฐ์ดํ„ฐ ์„  1๊ฐœ), W6300์€ QSPI(๋ฐ์ดํ„ฐ ์„  4๊ฐœ)๋กœ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋” ๋†’๊ณ  ๋ฐ”์ดํŠธ๋‹น SPI ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค. ๋‘ ํ”„๋กœ์ ํŠธ๋ฅผ ๋น„๊ตํ•˜๋ฉด WoL ํŒจํ„ด์ด WIZnet ๊ณ„์—ด ๊ฐ„์— ์ด์‹ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณตํ†ต์ ์€ RP2040์—์„œ WIZnet ํ•˜๋“œ์›จ์–ด TCP/IP ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ฝ”๋“œ๊ฐ€ ๊ฐ€๋ฒผ์šด ์ด๋”๋„ท ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์€ ๊ทธ ๊ณ„์—ด์˜ Wake-on-LAN ํŽธ์œผ๋กœ, ์…‹ ์ค‘ ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ํŽŒ์›จ์–ด, ๊ฐ€์žฅ ๋ช…ํ™•ํ•œ ๊ฒ€์ฆ ๋ฐฉ๋ฒ•(Wireshark), ๊ทธ๋ฆฌ๊ณ  ๋ฉ”์ด์ปค ์‚ฌ์ดํŠธ ์ตœ์ดˆ์˜ W6300 ์ „์šฉ WoL ๋ ˆํผ๋Ÿฐ์Šค์ž…๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ (FAQ)

Q. ์ด ํ”„๋กœ์ ํŠธ๋Š” ๋ฌด์—‡์„ ํ•˜๋‚˜์š”? W6300-EVB-Pico(RP2040 + WIZnet W6300)๋ฅผ Wake-on-LAN ์†ก์‹ ๊ธฐ๋กœ ๋งŒ๋“ค์–ด, UDP ๋งค์ง ํŒจํ‚ท์„ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•ด PC๋ฅผ ์›๊ฒฉ์œผ๋กœ ์ผญ๋‹ˆ๋‹ค.

Q. WIZnet ์นฉ์˜ ์—ญํ• ์€? W6300์€ ํ•˜๋“œ์™€์ด์–ด๋“œ TCP/IP ์ปจํŠธ๋กค๋Ÿฌ๋ผ์„œ ์ด๋”๋„ทยทUDP ์ „์†ก์„ ์ฒ˜๋ฆฌํ•˜๊ณ , RP2040์€ ๋งค์ง ํŒจํ‚ท์„ ๋งŒ๋“ค์–ด ์†Œ์ผ“ ์ „์†ก๋งŒ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค(TOE ์„ค๊ณ„).

Q. ๋งค์ง ํŒจํ‚ท์ด ๋ฌด์—‡์ธ๊ฐ€์š”? Wake-on-LAN ํŽ˜์ด๋กœ๋“œ์ž…๋‹ˆ๋‹ค. 0xFF 6๋ฐ”์ดํŠธ + ๋Œ€์ƒ PC MAC 16ํšŒ ๋ฐ˜๋ณต(102๋ฐ”์ดํŠธ)์„ UDP ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

Q. ์žฌํ˜„์ด ๊ฐ€์žฅ ์–ด๋ ค์šด ๋ถ€๋ถ„์€? ์ฝ”๋“œ๋ณด๋‹ค ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ๋Œ€์ƒ PC์˜ BIOSยทNIC์—์„œ Wake-on-LAN์„ ์ผœ์•ผ ํ•˜๊ณ , ์ •์  IPยท๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œยท๋Œ€์ƒ MAC์„ LAN์— ๋งž์ถฐ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Q. ๋™์ž‘์„ ์–ด๋–ป๊ฒŒ ํ™•์ธํ•˜๋‚˜์š”? ์ €์ž์ฒ˜๋Ÿผ Wireshark๋กœ ์บก์ฒ˜ํ•˜์„ธ์š”. ์˜ฌ๋ฐ”๋ฅธ MAC์šฉ WOL ๋งค์ง ํŒจํ‚ท์ด ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ๋กœ ๋‚˜๊ฐ€๋ฉด ํŽŒ์›จ์–ด ์ชฝ์€ ์ •์ƒ์ž…๋‹ˆ๋‹ค.

Documents

  • Original article (Qiita)

    namo02268: remotely starting a PC with Wake-on-LAN from a microcontroller

  • Author profile (Qiita)

    namo02268 - WIZnet / RP2040 / M5Stack / EV3 maker

  • WIZnet W6300-EVB-Pico

    RP2040 + W6300 evaluation board

  • WIZnet ioLibrary_Driver

    WIZnet socket API used to send the UDP Magic Packet

  • Wake-on-LAN (reference)

    Magic Packet format and Wake-on-LAN background

Comments

Similar projects you might like

Zephyr ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋ฐ–์—์„œ RP2350+W6300 ์ด๋”๋„ท ๋ณด๋“œ๋ฅผ ๋นŒ๋“œยทํŒจํ‚ค์ง•ํ•˜๋Š” ์‹ค์ „ ํ…œํ”Œ๋ฆฟ. ์ปค์Šคํ…€ ๋ณด๋“œ/๋“œ๋ผ์ด๋ฒ„/์„ค์ •์„ ํ•œ ํ”„๋กœ์ ํŠธ๋กœ ๋ฌถ์–ด โ€œ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋นŒ๋“œโ€๋ฅผ ๋งŒ๋“ ๋‹ค.

oss-ethw6300 โ€” Zephyr External App Blueprint for RP2350 + W6300

sophia
  • Views 273

  • Comments 0

Comments