I've hemmed and hawwed about how to do WiFi, but rev 0 will be a dev board of some kind so I'll be exposing an SDIO, a SPI and a USB interface to mess around. esp-hosted-ng looks really interesting but I need to see if it works. Would also let me try some other SDIO interfaces if needed.
Some links:
- [cfg80211](https://wireless.docs.kernel.org/en/latest/en/developers/documentation/cfg80211.html) part of the linux kernel for wireless
- [esp_hosted_ng/README](https://github.com/espressif/esp-hosted/blob/master/esp_hosted_ng/README.md)
SPI connections
| Function | ESP32 | ESP32-S2/S3 | ESP32-C2/C3/C5/C6 |
| :---------: | :---: | :---------: | :---------------: |
| CS0 | IO15 | IO10 | IO10 |
| SCLK | IO14 | IO12 | IO6 |
| MISO | IO12 | IO13 | IO2 |
| MOSI | IO13 | IO11 | IO7 |
| Ground | GND | GND | GND |
| Handshake | IO2 | IO2 | IO3 |
| Data Ready | IO4 | IO4 | IO4 |
| ESP32 Reset | EN | RST | RST |
SDIO connections
| ESP32 Pin | ESP32-C6 Pin | ESP32-C5 | Function |
| :-------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------: | :------: |
| IO13+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html) | IO23+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/api-reference/peripherals/sd_pullup_requirements.html) | IO13+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html) | DAT3 |
| IO14 | IO19 | IO9 | CLK |
| IO15+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html) | IO18+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/api-reference/peripherals/sd_pullup_requirements.html) | IO10+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html) | CMD |
| IO2+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html) | IO20+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/api-reference/peripherals/sd_pullup_requirements.html) | IO8+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/api-reference/peripherals/sd_pullup_requirements.html) | DAT0 |
| IO4+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html) | IO21+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/api-reference/peripherals/sd_pullup_requirements.html) | IO7+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/api-reference/peripherals/sd_pullup_requirements.html) | DAT1 |
| EN | ESP Reset | ESP Reset | Reset |
| IO12+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html) | IO22+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/api-reference/peripherals/sd_pullup_requirements.html) | IO14+[pull-up](https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/api-reference/peripherals/sd_pullup_requirements.html) | DAT2 |
| GND | GND | GND | GND |
I found some other WiFi chips to consider:
[ATWILC3000](https://www.digikey.ca/en/products/detail/microchip-technology/ATWILC3000-MR110UA/5322331) , $18 from digikey
[LBEE5PK2BC](https://www.digikey.ca/en/products/detail/murata-electronics/LBEE5PK2BC-771/16374386) $26 dollars, wifi 5, not a module
[Ezurio 453-00085R](https://www.digikey.ca/en/products/detail/ezurio/453-00085R/15850985) $15, module
[RTL8723BS](https://www.realtek.com/Product/Index?id=610&cate_id=194) really cheap, hard to get
## ESP32 notes
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html this looks concerning about pull ups. Might have to selectively populate some pins during bring up.
https://github.com/espressif/esp-hosted/blob/master/esp_hosted_ng/docs/setup.md