diff options
| author | Dario Nieuwenhuis <[email protected]> | 2023-05-30 22:42:49 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2023-05-30 22:42:49 +0200 |
| commit | c327c6cd6fc3c11cfaf83cf64591940d401c5f6b (patch) | |
| tree | 1e9f693a74b01ae930caa145ae282c24276510e3 /cyw43/README.md | |
| parent | 3cc0ec654a1e46fe7b8fa168942452303343cd84 (diff) | |
cyw43: move crate to subdir.
Diffstat (limited to 'cyw43/README.md')
| -rw-r--r-- | cyw43/README.md | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/cyw43/README.md b/cyw43/README.md new file mode 100644 index 000000000..defea489f --- /dev/null +++ b/cyw43/README.md | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | # cyw43 | ||
| 2 | |||
| 3 | WIP 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). | ||
| 4 | |||
| 5 | ## Current status | ||
| 6 | |||
| 7 | Working: | ||
| 8 | |||
| 9 | - Station mode (joining an AP). | ||
| 10 | - AP mode (creating an AP) | ||
| 11 | - Scanning | ||
| 12 | - Sending and receiving Ethernet frames. | ||
| 13 | - Using the default MAC address. | ||
| 14 | - [`embassy-net`](https://embassy.dev) integration. | ||
| 15 | - RP2040 PIO driver for the nonstandard half-duplex SPI used in the Pico W. | ||
| 16 | - Using IRQ for device events | ||
| 17 | - GPIO support (for LED on the Pico W) | ||
| 18 | |||
| 19 | TODO: | ||
| 20 | |||
| 21 | - Setting a custom MAC address. | ||
| 22 | - Bus sleep (unclear what the benefit is. Is it needed for IRQs? or is it just power consumption optimization?) | ||
| 23 | |||
| 24 | ## Running the examples | ||
| 25 | |||
| 26 | - `cargo install probe-rs-cli` | ||
| 27 | - `cd examples/rpi-pico-w` | ||
| 28 | ### Example 1: Scan the wifi stations | ||
| 29 | - `cargo run --release --bin wifi_scan` | ||
| 30 | ### Example 2: Create an access point (IP and credentials in the code) | ||
| 31 | - `cargo run --release --bin tcp_server_ap` | ||
| 32 | ### Example 3: Connect to an existing network and create a server | ||
| 33 | - `WIFI_NETWORK=MyWifiNetwork WIFI_PASSWORD=MyWifiPassword cargo run --release` | ||
| 34 | |||
| 35 | After a few seconds, you should see that DHCP picks up an IP address like this | ||
| 36 | ``` | ||
| 37 | 11.944489 DEBUG Acquired IP configuration: | ||
| 38 | 11.944517 DEBUG IP address: 192.168.0.250/24 | ||
| 39 | 11.944620 DEBUG Default gateway: 192.168.0.33 | ||
| 40 | 11.944722 DEBUG DNS server 0: 192.168.0.33 | ||
| 41 | ``` | ||
| 42 | This example implements a TCP echo server on port 1234. You can try connecting to it with: | ||
| 43 | ``` | ||
| 44 | nc 192.168.0.250 1234 | ||
| 45 | ``` | ||
| 46 | Send it some data, you should see it echoed back and printed in the firmware's logs. | ||
| 47 | |||
| 48 | ## License | ||
| 49 | |||
| 50 | This work is licensed under either of | ||
| 51 | |||
| 52 | - Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or | ||
| 53 | <http://www.apache.org/licenses/LICENSE-2.0>) | ||
| 54 | - MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>) | ||
| 55 | |||
| 56 | at your option. | ||
| 57 | |||
