It shows how an ESP8266 module (like this one) can be used as a (rather unreliable) WiFi range extender.
Overview of the setup |
Beside an ESP8266 module, you need to:
- download the modified firmeware here and flash it to your module
- copy the DNS forwarder script from here to your module
- add a route to the 192.168.4.0 subnet to your default gateway (i.e. usually your WiFi dsl/cable router)
- attach the module to your WiFi network and run it in StationAP mode:
wifi.setmode(wifi.STATIONAP)
wifi.sta.config("YOURSSID","YOURWIFIPASSWD")
tmr.alarm(0, 500, 1, function()
if wifi.sta.getip()==nil then
print("Connecting to AP...")
else
tmr.stop(1)
tmr.stop(0)
print("Connected as: " .. wifi.sta.getip())
end
end)
cfg={}
cfg.ssid="intarwebs"
wifi.ap.config(cfg)
- connect another device to the "intarwebs" SSID. If you want to really use that, you should encrypt that side as well. Here is how.
I have captured the traffic with wireshark, but could not make sense of it yet. My best guess at the moment is that with a big TCP windows size, the module runs into a buffer size problem or that it is busy for too long on the "left" side. The module only has one radio to serve both connections, so unlike your typical router, it can't forward a continuous stream of packets.