This implements Wifi NIC on top of UART and ESP32. The code base is a copy of the ESP8266 implementation with only a minor changes to support the ESP32.
The NIC can be used either on Linux using provided script or attached to another MCU and integrated with LwIP as network interface.
Either build docker image as described by provided Dockerfile or proceed according to the ESP8266 RTOS SDK user manual
This assumes SDK environemnt was sources and current directory is checked out root of the project.
Build the project and flash it to the board, then run monitor tool to view serial output:
idf.py all
Create ESP directory in the root of the USB flash drive. Copy following files to it:
build/partition_table/partition-table.bin
build/bootloader/bootloader.bin
build/uart_wifi.bin
Insert it into printer and start ESP flash from the menu.
Reset ESP with IO0 down and issue the following command.
idf.py -p /dev/ttyXXX flash
- Make sure your Linux supports tap devices
- Compile this
- Flash the binary into ESP
- Tune constants in tap/tap.py. Make sure that baud rate is the same in
uart_nic.c
andtap.py
- Run tap/tap.py. Note: If it doesn't print
TAP: ESP FW version: ...
orTAP: Device info mac ...
, there's a problem with the serial connection and you may need to reduce baud rate to i.e. 1000000 and reflash. - Check tap device was created
- Run dhcp client on tap device, i.e.
sudo dhclient tap0
- Check this works as (terribly slow) network interface