ESP32 & ESP8266

ESP32 as a Wi-Fi Card for Raspberry Pi and Linux SBCs

ESP32 as a Wi-Fi Card for Raspberry Pi and Linux SBCs

What do you do when a Linux single-board computer ships with weak Wi-Fi, no free USB port, and a driver that depends on a binary blob? One answer making the rounds is to hang an ESP32 off the board and let it act as the wireless card.

What is esp-hosted?

It is Espressif’s open project for using an ESP32 module as a Wi-Fi and Bluetooth adapter for a host computer. The host talks to the ESP32 over SDIO or SPI, so any board with one spare bus can use it. A Hackaday write-up walks through adding an ESP32-C6 to a custom Linux board and documents the parts that were not obvious during setup.

There are two flavors. The MCU version lets the ESP32 manage its own Wi-Fi connection, so it stays online even while the host reboots. The Linux version keeps the wireless stack on the host and treats the ESP32 as a thin proxy, which makes it behave like a normal wireless card.

Which chip should you pick?

The Linux version supports the ESP32-S2, S3, C2, C3, C5, and C6/C61. A generic ESP32-WROOM module is enough for plain Wi-Fi. The author picked the C6 for its feature list and later called that a mistake, so read the article before you order boards for a design.

How would a student use this?

A thesis team building a Linux-based gateway can skip the USB dongle and wire the ESP32 to the SPI header instead. Budget for a gotcha or two: the SDIO or SPI pins must match the device tree, and the clock speed matters if you see dropped packets. Start on a 4-wire SPI link, confirm the interface appears as wlan0, then try a faster SDIO connection on a second prototype.

Try it

Read the full guide on Hackaday, then pick up an ESP32-C3 or S3 dev board from circuit.rocks to test the SPI path before you commit to a PCB.

Frequently Asked Questions

What is the difference between esp-hosted-mcu and esp-hosted-linux?

The MCU version lets the ESP32 manage its own Wi-Fi connection and keep it alive while the host reboots. The Linux version leaves the wireless stack on the host and uses the ESP32 as a thin proxy.

Which ESP32 chips and buses does it need?

The Linux version works with the ESP32-S2, S3, C2, C3, C5, and C6/C61. The host needs one spare SDIO or SPI port to talk to the module.

What will I learn if I build this?

You learn SPI and SDIO wiring, how Linux device trees describe a wireless interface, and how to debug a driver that fails to bring up wlan0.

This article was inspired by reporting from Hackaday. Find the parts and modules to build it at Circuitrocks.

// written by Ann Arandia

Ann Arandia covers community projects and maker events for the Circuitrocks blog. She writes about local workshops, kid-friendly electronics, and the Philippine maker scene — the people, the meet-ups, the projects that come out of them.