embassy/cyw43/README.md

47 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

2022-07-11 20:53:57 +00:00
# cyw43
2023-06-29 00:39:28 +00:00
Rust driver for the CYW43439 wifi chip, used in the Raspberry Pi Pico W. Implementation based on [Infineon/wifi-host-driver](https://github.com/Infineon/wifi-host-driver).
2022-07-16 22:34:41 +00:00
## Current status
Working:
- Station mode (joining an AP).
2023-05-01 16:47:09 +00:00
- AP mode (creating an AP)
- Scanning
2022-07-16 22:34:41 +00:00
- Sending and receiving Ethernet frames.
- Using the default MAC address.
- [`embassy-net`](https://embassy.dev) integration.
2023-03-27 20:34:48 +00:00
- 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)
2022-07-16 22:34:41 +00:00
TODO:
- Setting a custom MAC address.
2023-06-29 00:39:28 +00:00
- Bus sleep (for power consumption optimization)
2022-07-16 22:34:41 +00:00
2023-05-24 07:22:05 +00:00
## Running the examples
2022-07-16 22:34:41 +00:00
- Install `probe-rs` following the instructions at <https://probe.rs>.
2023-06-29 00:39:28 +00:00
- `cd examples/rp`
2023-05-24 07:22:05 +00:00
### Example 1: Scan the wifi stations
- `cargo run --release --bin wifi_scan`
### Example 2: Create an access point (IP and credentials in the code)
2023-06-29 00:39:28 +00:00
- `cargo run --release --bin wifi_ap_tcp_server`
2023-05-24 07:22:05 +00:00
### Example 3: Connect to an existing network and create a server
- `cargo run --release --bin wifi_tcp_server`
2022-07-16 22:34:41 +00:00
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: 192.168.0.250/24
11.944620 DEBUG Default gateway: 192.168.0.33
11.944722 DEBUG DNS server 0: 192.168.0.33
```
2023-05-24 07:22:05 +00:00
This example implements a TCP echo server on port 1234. You can try connecting to it with:
2022-07-16 22:34:41 +00:00
```
nc 192.168.0.250 1234
```
Send it some data, you should see it echoed back and printed in the firmware's logs.