martin-ger / esp_wifi_repeater Goto Github PK
View Code? Open in Web Editor NEWA full functional WiFi Repeater (correctly: a WiFi NAT Router)
License: MIT License
A full functional WiFi Repeater (correctly: a WiFi NAT Router)
License: MIT License
I flashed two .bin files using esptool.py. But there is no AP after flashing, serial monitor shows gibberish texts and symbols and it dosen't accepts any command. I'm using the latest SDK
How to connect to free WiFi network? (no password needed to connect)
I'm using ESP01
Hi Martin
In your new Git project https://github.com/martin-ger/esp_mqtt
there isn't the Issue Button.
Please could you add it.
Dear MR martin,
Just wanted to say thanks for the time and effort you have invested in writing this code and the documentation which goes with it!!!
Everything is crystal clear even for a newbie like me and although i failed to install it using the predefined bin i have followed your remarks for the ESP01 issue and using the other bins which worked just fine (i am not using ESP01 but ESP12E with a 512KB flash memory but i guess this is reason for failure).
I also wanted to ask if it possible to hide the ESP SSID from the outside world as a basic security measure as i am extending my network coverage using your wonderful work i do not want people to scan my network and try to hack it.
Thanks again and god bless you!
Wondering if its possible to select which phy mode the repeater is in ?
i got liblwip_open.a after build esp-open-lwip porject.
can i use lwip_open.a to replace the liblwip.a file of the lib directory in SDK(like ESP8266_NONOS_SDK_V1.5.4_16_05_20) to implement the NAT function.
In the branch ESP uMQTT Broker could you upgrade the pre-compiled firmware so it supports MQTT protocol version v3.1.1?
The ESP MQTT client libraries now all support the version 3.1.1 and it isn't easy or it's impossible to use the V 3.1
Thank you
Would love to see it with a web interface instead of the console. libesphttpd should be a good option to implement that. Adding the server structure shouldn't be a big deal. For me a problem would be the page design and the JS-part. I am really not into that. Anybody willing and able to support this?
CMD>quit or CMD>exit to close the serial connection? Thanks,
I'm extending my main access point using ESP-Repeater, I have a Domoticz server installed on main access point and I have an ESP node connected to ESP-Repeater. The access point IP is 192.168.1.1 and the ESP-Repeater IP is 192.168.4.1 and the ESP node IP is 192.168.4.122 However I can't open 192.168.4.122 url when I'm connected to main access point which is 192.168.1.1 I tried static routing but still I have no success.
would you be able to impliment battery monitoring so it could deep sleep if the battery gets low and power up when the battery has charge?
Hi, any chance to be able limit the transmission speed?
(Building the new house and not having time, yet, to the web interface, sorry)
Thanks
crc_efuse_4bit: 0
crc_calc_4bit: 14
48bit mac
MAC AP : 5E-CF-7F-F0-2C-CA
MAC STA: 5C-CF-7F-F0-2C-CA
get mac res: True
('tttest uuuuuuuuuuart : uart reg: ', 458)
(' baudrate: ', 115200)
get crystal: 26380800
get flash id : 0xff1640e0
manufacturer_id: 0xe0
device_id: 0x4016
vendor: 224
mode: 64
size: 22
DEBUG!!!!
SET FLASH PARAMS
filename: D:\Users\Peth\Desktop\FLASH_DOWNLOAD_TOOLS_V3.4.4\bin_tmp\downloadPanel1\0x00000.bin_rep
offset : 0
filename: D:\Users\Peth\Desktop\FLASH_DOWNLOAD_TOOLS_V3.4.4\bin_tmp\downloadPanel1\0x10000.bin
offset : 65536
Erasing flash in old style...
pic path: ./RESOURCE/DOWNLOAD_S.bmp
Traceback (most recent call last):
File "download_panel_info.pyo", line 539, in update_pic
AttributeError: ESPDOWNLOAD instance has no attribute 'ESP_MAC_BT'
Took 0.47s to erase flash block
Erasing flash in old style...
Took 1.92s to erase flash block
TEST !!!!
FAST BAUD: 230400
fACTORY REBOOT MODE: False
Running Cesanta flasher (speed 230400)...
params: ��
MEMORY START
ELSE.... 26
Invalid head of packet ('')
Exception in thread Thread-2:
Traceback (most recent call last):
File "threading.pyo", line 801, in __bootstrap_inner
File "download_panel_info.pyo", line 785, in run
File "esptool_api.pyo", line 763, in flash_download_thread
File "esptool_api.pyo", line 1761, in init
File "esptool_api.pyo", line 1646, in read_packet
Exception: Invalid head of packet ('')
Could you please figure me out. Thanks
tried to enable LWIP debug by editing esp-open-lwip/include/lwipopts.h
#define LWIP_DEBUG 1
and running
make -f Makefile.open clean
and recompile in esp-open-sdk
make STANDALONE=y
when I try to build esp_wifi_repeater (or any other projects) I get this error:
/home/stoffer/esp8266/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/lib/liblwip_open.a(dhcp.o): In function `dhcp_set_state':
dhcp.c:(.irom0.text+0x30): undefined reference to `ETS_ASSERT'
/home/stoffer/esp8266/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/lib/liblwip_open.a(dhcp.o): In function `dhcp_option_short':
dhcp.c:(.irom0.text+0x62): undefined reference to `ETS_ASSERT'
/home/stoffer/esp8266/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/lib/liblwip_open.a(dhcp.o): In function `dhcp_option':
dhcp.c:(.irom0.text+0xf3): undefined reference to `ETS_ASSERT'
/home/stoffer/esp8266/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/lib/liblwip_open.a(dhcp.o): In function `dhcp_option_byte':
dhcp.c:(.irom0.text+0x17b): undefined reference to `ETS_ASSERT'
dhcp.c:(.irom0.text+0x1ce): undefined reference to `ETS_ASSERT'
/home/stoffer/esp8266/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/lib/liblwip_open.a(dhcp.o):dhcp.c:(.irom0.text+0x1df): more undefined references to `ETS_ASSERT' follow
/home/stoffer/esp8266/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/lib/liblwip_open.a(espconn_tcp.o): In function `espconn_server_recv':
espconn_tcp.c:(.irom0.text+0x6e4): undefined reference to `lwip_strerr'
espconn_tcp.c:(.irom0.text+0x813): undefined reference to `lwip_strerr'
/home/stoffer/esp8266/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/lib/liblwip_open.a(espconn_tcp.o): In function `espconn_find_current_pcb':
espconn_tcp.c:(.irom0.text+0xd22): undefined reference to `ETS_ASSERT'
espconn_tcp.c:(.irom0.text+0xd3a): undefined reference to `ETS_ASSERT'
/home/stoffer/esp8266/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/lib/liblwip_open.a(raw.o): In function `raw_sendto':
raw.c:(.irom0.text+0x12e): undefined reference to `ETS_ASSERT'
/home/stoffer/esp8266/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/lib/liblwip_open.a(tcp_in.o): In function `tcp_receive':
tcp_in.c:(.irom0.text+0x4ce): undefined reference to `ETS_ASSERT'
tcp_in.c:(.irom0.text+0x556): undefined reference to `ETS_ASSERT'
/home/stoffer/esp8266/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot/usr/lib/liblwip_open.a(tcp_in.o):tcp_in.c:(.irom0.text+0x65e): more undefined references to `ETS_ASSERT' follow
collect2: error: ld returned 1 exit status
Makefile:249: recipe for target 'build/app.out' failed
make: *** [build/app.out] Error 1
any inputs on this?
Hi,
I did everything as per the steps mentioned. Here is my user_config.h file. When I flash the firmware and reboot the esp, the ESP blue LED flickers rapidly. When I connect to Arduino IDE serial 115200 baud, I get gibberish dump. What am I doing wrong?
#ifndef USER_CONFIG
#define USER_CONFIG
typedef enum {SIG_DO_NOTHING=0, SIG_START_SERVER=1, SIG_SEND_DATA, SIG_UART0, SIG_CONSOLE_RX, SIG_CONSOLE_TX, SIG_PACKET } USER_SIGNALS;
#define WIFI_SSID "MyWiFiSSID"
#define WIFI_PASSWORD "MyWiFiPassword"
#define WIFI_AP_SSID "RangeExtenderAP"
#define WIFI_AP_PASSWORD "none"
#define MAX_CLIENTS 8
#define MAX_DHCP 8
//
// Size of the console buffers
//
#define MAX_CON_SEND_SIZE 1024
#define MAX_CON_CMD_SIZE 80
//
// Define this if you have a status LED connected to GPIO LED_NO
//
#define STATUS_LED 1
#define LED_NO 2
// Select the GPIO init function according to your selected GPIO
//#define SET_LED_GPIO PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1)
#define SET_LED_GPIO PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2)
//#define SET_LED_GPIO PIN_FUNC_SELECT (PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO4)
//
// Define this to support the "scan" command for AP search
//
#define ALLOW_SCANNING 1
//
// Define this to support the "sleep" command for power management and deep sleep
// Requires a connection of GPIO16 and RST (probably not availabe on ESP01 modules)
//
#define ALLOW_SLEEP 1
//
// Define this if you want to have access to the config console via TCP.
// Ohterwise only local access via serial is possible
//
#define REMOTE_CONFIG 1
#define CONSOLE_SERVER_PORT 7777
//
// Define this if you want to offer monitoring access to all transmitted data between the soft AP and all STAs.
// Packets are mirrored in pcap format to the given port.
// CAUTION: this might be a privacy issue!!!
//
#define REMOTE_MONITORING 1
#define MONITOR_BUFFER_SIZE 0x3c00
// Define this if you want to cut packets short in case of too high data rate
#define MONITOR_BUFFER_TIGHT 0x1000
// Define this if you want to silently drop any packet that cannot be send to the monitor
//#define DROP_PACKET_IF_NOT_RECORDED 1
#endif
An option to set custom DNS servers for services such as OpenDNS would be ideal. I’m trying to use my nodemcu as an access point for guests and being able to restrict certain bandwidth-hogging websites using OpenDNS would be great!
It is possible add a command to allow stop showing the message "no ssid found, reconnect after 1s", or increase the delay time, when connect by serial at first time? Because it's a bit difficult to type with the message allways scrolling.
Thanks a lot,
Hi,
In CMD>When writing a command, if we use the backspace, it gives "Invalid command".
Hi there....
The commands "set ip" is not working
Perfect job! Absolutely the best esp8266 WiFi NAT Router!
Is it possible to update it by OTA update? It will be great if yes, because in my case for expamle, I will assembly my box with esp8266 to the wall in garage and standard way is very complicated.
I can image for expamle this solution HTTP Server.
Thank you very much.
Previous firmware I can connect PUBLISH or SUBSCRIBE to uMQTT on my esp8266.
but the new firmware I can't.
I have tried by "mosquitto_pub" and "mosquitto_sub" ,
MQTT Broker can't connect as the following information.
mosquitto_pub -h 192.168.43.200 -p 1883 -t /home/room01 -m 13
Connection Refused: unacceptable protocol version.
Error: The connection was refused.
mosquitto_sub -h 192.168.43.200 -p 1883 -t # -v
Connection Refused: unacceptable protocol version.
Connection Refused: unacceptable protocol version.
Connection Refused: unacceptable protocol version.
Connection Refused: unacceptable protocol version.
....
....
How to connect MQTT Broker on the new firmware?
Thank you.
BTW.
I set ESP8266 with new firmware by the following and reboot ESP8266 already
set ip 192.168.43.200
set gw 192.168.43.1
set netmask 255.255.255.0
Hello there, I followed the instructions to build, and when I make the final repeater bin, its gives me the error:
Error calling xtensa-lx106-elf-readelf, do you have Xtensa toolchain in PATH?
Makefile:117: recipe for target 'firmware/0x00000.bin' failed
make: *** [firmware/0x00000.bin] Error 1
I made sure to change my BUILD_AREA to where the esp-open-sdk is
Here is the real path: /media/me/SD/Python/Wifi/repeater/esp-open-sdk/xtensa-lx106-elf
I attached a text version of the make file:
I verified that the xtensa-lx106-elf-readelf file exists, but I do not know why it cannot find it
I suggest you to let the user configure the maximum number of stations using telnet and also the option to set the ESP to work at 160 MHz. Would also be great to see it working on Wemos D1 Mini with battery shield. With my tests, I got 10 Mbps on the ESP-01. Congratulations for this amazing firmware.
Hi,
When I try use with the MQTT Lens application is gives the message "MQTT: Invalid protocol".
Is just compile, upload, and create a client connection, yes?
Is it possible to use this as a 4G router by connecting a GSM module to UART and setting up 8266 as AP?
The routing would be done by 8266.
Hello! I absolutely love your project. It's helping me to get on the school wifi cuz it's crappy and always full, but this is automatically retrying to connect and it always connects! 👍
But i don't know why i can't send through pkts larger than 1372bits or bytes idk. I've got an NodeMCU v3 (ESP8266 ESP12E). I've set things up like this: CPU Speed: 160MHz; up/downstream: 0 (= unlimited).
Anyone knows why?
Is it possible to build a web interface to add/remove networks, to change the name and password of the extended networks etc.?
Hi
I'm making new tests, but I have fond an issue
The ESP MQTT client is able to connect to the ESP with uMQTT only using the Station IP not the AP 192.168.4.1
There is the TCP connection, but the MQTT connection doesn't start
I have tried with 2 different libraries for ESP MQTT client
I'm using this test code
I uploaded your binaries to my Nodemcu v1.0 (It has ESP-12E). after successful uploading, I restarted my device by removing and inserting the cable back. The LED on ESP blinked very fast.
I read in previously closed issues that the esp is rebooting but it had a solution for Wemos shield.
I am using Debian 8 Jessie and I tried your binary to install from Windows machine too, but the result was same.
My device:- http://www.ebay.in/itm/121994957963?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
Hi Martin,
I've tried your repeater mod and it works very well. Now I'm wondering if this could be extended to really great distances with two esp8266 connected to LoRa modules (eg. SX127x based ones or similar SPI bus based LoRa devices). That would be truly amazing!
I've edit, via serial, the value of ssid and password. When I try to edit ap_ssid, the serial reply "changed" but the wifi network created not change so it remain unencrypted
Hi iam new to all this.. but you did a fine tutorial and work:)
I have two questions.
Is it possible if you set ssid to ad a space in middler of the ssid ? What happens now is ( set ssid my wifi ) for example, after save and reset it only tries to connect to "my" instead of "my wifi " cant find no solution so far on the web, or is this impossible ?
Other question more a feature: Wpa Enterprise with WPA/WPA2, EAP-PEAP, MSCHAPV2, for networks with and without certificate and user name and password? Would be neat but think a little difficult.
Keep up the good stuff
thx
Is it possible to web login on the existing network ?
It's very good work!
When I try uMQTT3.1 commit, (uMQTT3.1.1 can't run well for me)
I found that SUBSCRIBE has limit only 4 subscribes.
Can more subscribes?
Thank you.
Hi,
I am using ESP12E with 512kb of memory.
I have installed successfully the previous version from last week and it was working amazingly but since i have installed the new version from the last days over the older version to check the new SSID_HIDDEN feature the wifi repeater is not working any more.
The "bpllblrl▒r▒n▒b▒nbp" string apears upon reboot but the CMD is not responsive hence cannot be configured or used.
Any word of advise??
Thanks in advance.
Wish to SET Channel of wifi too
Thank you
When porting ESP32
Hi,
I'm trying to compile your code but having problems. Are you compiling with Windows ou Linux?
I follow the instrutions in https://github.com/pfalcon/esp-open-sdk , and build the blinky example with sucess (after added -lc in LDLIBS)
When you said
Drop the esp-open-lwip into the esp-open-sdk, i.e. copy it into the build tree, and build the esp-open-sdk
you mean:
git clone https://github.com/martin-ger/esp_wifi_repeater.git
in esp-open-sdk directoryThanks,
Ribeiro Santos
I've noticed after some time the repeater stopes working and clients can't send data through.
Admittedly I haven't updated the Repeaters software in some time so I'll give that a try soon.
Just wondering if anyone else has had this problem ?
Will try to diagnose the actuall problem soon. Just a open question. Don't know what's really going on with this issue. But I do know a simple power off and on fixes the issue :P. Thinking maybe adding a restart at midnight or some time specified could be nice to have as a last resort thing ?
Sorry for the non help full information.
I want to forward port from broadcast IP UDP.
Ex: 255.255.255.255:12345 -> 10.0.1.2:12346
May you tell me how to do it. Because I want to find IP device by UDP broadcast and esp wifi repeater.
Tks very much Martin-Ger!
In file "user_config.h" I set
#define MQTT_CLIENT 1
After recompiled and flashing rom,
my esp8266 connected to host is address 192.168.43.50
and I set mqtt client mode as the following command
set mqtt_host 192.168.43.10 //* another MQTT Broker
set mqtt_port 1883
set mqtt_id esp8266_mqtt0000123
set mqtt_interval 5
However on another MQTT Broker (192.168.43.10)
I can't to recieve any information by mqtt-client mode.
How to use mqtt-client mode on the rom?
Thank you.
I'm getting this error when I run make command
Makefile:181: warning: overriding recipe for target 'ESP8266_NONOS_SDK_V2.0.0_16_08_10/.dir' Makefile:176: warning: ignoring old recipe for target 'ESP8266_NONOS_SDK_V2.0.0_16_08_10/.dir' make -C crosstool-NG -f ../Makefile _ct-ng make[1]: Entering directory '/opt/esp-open-sdk/crosstool-NG' ../Makefile:181: warning: overriding recipe for target 'ESP8266_NONOS_SDK_V2.0.0_16_08_10/.dir' ../Makefile:176: warning: ignoring old recipe for target 'ESP8266_NONOS_SDK_V2.0.0_16_08_10/.dir' ./bootstrap Running autoconf... ./bootstrap: 5: ./bootstrap: autoconf: not found ../Makefile:143: recipe for target '_ct-ng' failed make[1]: *** [_ct-ng] Error 127 make[1]: Leaving directory '/opt/esp-open-sdk/crosstool-NG' Makefile:140: recipe for target 'crosstool-NG/ct-ng' failed make: *** [crosstool-NG/ct-ng] Error 2
I'm using Rpi3
Wondering if its possible to configure port forwarding?
( My router doesn't allow me to add routes... so kinda need this if i want to connect to a device on this extended wifi network)
Hi, I'd like to compile with esp-open-rtos but don't know were to star. Compiling it reports many errors so it shouldn't be easy, at least, to me. Any help were to star?
Thanks
First, THANK YOU!
Works like a charm...
But...
Adrian
Hello
I’m unable to connect to the ESP after I configured everything with telenet. The ESP is visible on the router it’s connecting too and I can connect to the ESP from ththe router wifi but when I try to connect to the ESP ap it gives me a error saying “unable to connect”
Hi,
I have a question about capability of the system.
For example; can I connect 1000 devices one by one to repeat the internet to long range?
modem-->esp0-->esp1-->2-->3-->4-->5-->6-->...........1000-->user
Can user have internet connection even if it is very slow?
BR
Hello Martin, I don't know why but this project is not working at this board (https://www.seeedstudio.com/NodeMCU-v2-Lua-based-ESP8266-development-kit-p-2415.html). The LED from the ESP-12 keeps blinking all the time and I can't even debug it because the serial monitor stays busy all the time. Also, the AP MyAP does never show up.
Hi,
As far I understand, all client comunications goes by the repeater (this case the esp8266), right?
My question is if it is possible, to change or filter some requests.
By example, a client A sends a message to the esp (the repeater) if the message has some predefined format, it musts be send to all other clients, and changes the response to let client A knows, his message, was well received. It is possible? Or at least in http requests?
My goal is to do a kind of MQTT Broker, which seems possible looking at your great code. Maybe not to handle 1000 clients but if may handle 8, I will be very happy :)
Thanks a lot,
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.