The talk introduces Yasper and Frosty, who are working on reverse engineering the ESP32's Wi-Fi capabilities.
They discuss their motivations, including enabling unsupported use cases (like standard-compliant mesh networking and Apple Wireless Direct Link), improving security auditability, and enabling Wi-Fi usage with alternative programming languages and real-time operating systems.
The ESP32 is a low-cost Wi-Fi microcontroller popular among makers and engineers due to its affordability, SDK quality, and open-source nature (except for Wi-Fi and Bluetooth components).
There are multiple variants of the ESP32, and this work focuses on the original ESP32 variant released in 2016.
Wi-Fi is a wireless networking technology (IEEE 802.11 standard) that operates on a shared medium using radio communications, similar to Ethernet but without wires.
The team uses both static analysis (using Ghidra) and dynamic analysis (on real hardware and in an emulator) to understand the Wi-Fi hardware's interaction with the CPU.
0:09:49 Faraday Cage: A custom-built Faraday cage is used for isolating the ESP32 during testing to avoid interference from other Wi-Fi devices.
The ESP32's Wi-Fi hardware handles many tasks, including packet transmission, acknowledgments, and reception with linked list buffering, reducing the load on the software.
0:15:18 Cryptography Acceleration: Hardware acceleration for cryptography is used for encryption and decryption in protected networks (e.g., WPA).
0:16:54 Introducing "Ferris on Air": An open-source asynchronous 802.11 MAC stack written in Rust.
0:18:35 OSI Model: Ferris on Air operates at layer 2.5, between the hardware driver (Layer 2) and the network stack (Layer 3).
0:19:32 Architecture: The architecture is mirrored to handle two virtual interfaces, with a MAC task managing frame reception and routing. An "LMC" (Lower MAC) manages channel access between interfaces.
0:23:04 Current Capabilities: Scanning for networks, connecting/disconnecting, and basic data transmission/reception.
0:23:33 Limitations: Rate selection and some advanced features are not yet implemented.
Covers topics like antenna usage, RX filter programmability, comparison with running Linux on ESP32, potential source code release from Espressif, project timeline, hardware calibration, debugging capabilities, compatibility with OpenWiFi, applicability to other ESP32 chips, and usage of FreeRTOS.