1 unstable release

0.0.0 Mar 7, 2023



ARCHIVED - moved into the main Embassy repo https://github.com/embassy-rs/embassy


WIP driver for the CYW43439 wifi chip, used in the Raspberry Pi Pico W. Implementation based on Infineon/wifi-host-driver.

Current status


  • Station mode (joining an AP).
  • AP mode (creating an AP)
  • Scanning
  • Sending and receiving Ethernet frames.
  • Using the default MAC address.
  • embassy-net integration.
  • RP2040 PIO driver for the nonstandard half-duplex SPI used in the Pico W.
  • Using IRQ for device events
  • GPIO support (for LED on the Pico W)


  • Setting a custom MAC address.
  • Bus sleep (unclear what the benefit is. Is it needed for IRQs? or is it just power consumption optimization?)

Running the examples

  • cargo install probe-rs-cli
  • cd examples/rpi-pico-w

Example 1: Scan the wifi stations

  • cargo run --release --bin wifi_scan

Example 2: Create an access point (IP and credentials in the code)

  • cargo run --release --bin tcp_server_ap

Example 3: Connect to an existing network and create a server

  • WIFI_NETWORK=MyWifiNetwork WIFI_PASSWORD=MyWifiPassword cargo run --release

After a few seconds, you should see that DHCP picks up an IP address like this

11.944489 DEBUG Acquired IP configuration:
11.944517 DEBUG    IP address:
11.944620 DEBUG    Default gateway:
11.944722 DEBUG    DNS server 0:

This example implements a TCP echo server on port 1234. You can try connecting to it with:

nc 1234

Send it some data, you should see it echoed back and printed in the firmware's logs.


This work is licensed under either of

at your option.

No runtime deps