martin-ger / esp_slip_router Goto Github PK
View Code? Open in Web Editor NEWA SLIP to WiFi router
License: MIT License
A SLIP to WiFi router
License: MIT License
This software is just what I was looking for - congrats and huge thanks already. It might solve tons of problems in my classes.
I would like to use (and probably extend) this firmware to create a reliable accesspoint for my IoT project ulnoiot (also here on github). It's nearly impossible to reliably source (multiple) wifi sticks which support accesspoint mode nowadays (internal wifi of raspberry pi is a positive exception, however, you can't buy the pi zero w in quantities sufficient for classrooms), and I have plenty of esp8266s anyway.
I have no trouble compiling esp_wifi_repeater, but compiling this, I get the following (independent on how I set DEBUG_SOFTUART or not:
$ make
CC driver/softuart.c
In file included from driver/softuart.c:1:0:
driver/softuart.c: In function 'Softuart_Init':
driver/softuart.c:158:25: error: 'ets_isr_t' undeclared (first use in this function)
ETS_GPIO_INTR_ATTACH((ets_isr_t)Softuart_Intr_Handler, s);
^
/home/ulno/ulnoiot/.local/external/firmware/esp-open-sdk/sdk/include/ets_sys.h:79:36: note: in definition of macro 'ETS_GPIO_INTR_ATTACH'
ets_isr_attach(ETS_GPIO_INUM, (func), (void *)(arg))
^
driver/softuart.c:158:25: note: each undeclared identifier is reported only once for each function it appears in
ETS_GPIO_INTR_ATTACH((ets_isr_t)Softuart_Intr_Handler, s);
^
/home/ulno/ulnoiot/.local/external/firmware/esp-open-sdk/sdk/include/ets_sys.h:79:36: note: in definition of macro 'ETS_GPIO_INTR_ATTACH'
ets_isr_attach(ETS_GPIO_INUM, (func), (void *)(arg))
^
driver/softuart.c:158:35: error: expected ')' before 'Softuart_Intr_Handler'
ETS_GPIO_INTR_ATTACH((ets_isr_t)Softuart_Intr_Handler, s);
^
/home/ulno/ulnoiot/.local/external/firmware/esp-open-sdk/sdk/include/ets_sys.h:79:36: note: in definition of macro 'ETS_GPIO_INTR_ATTACH'
ets_isr_attach(ETS_GPIO_INUM, (func), (void *)(arg))
^
Makefile:142: recipe for target 'build/driver/softuart.o' failed
make: *** [build/driver/softuart.o] Error 1
My wild guess is that something changed from the esp sdk from 2.0 to 2.1, but maybe it has a different cause. It's probably not a hard thing to fix, but would be happy for some guidance or pointers.
Cheers,
ulno
I can load ethersl packet driver, ping 192.168.240.1, and I can telnet 192.168.240.1 7777, but the CMD> prompt echoes nothing back, and doesn't seem to actually be accepting any of the commands from the github:
CMD>set ssid <your_ssid>
CMD>set password <your_pw>
CMD>set use_ap 0
CMD>save
CMD>reset
I've blind-typed them and reset manually but nothing seems to change.
Host machine: Linux (Ubuntu 20.04) with the primary Ethernet disabled, leaving the esp_slip_router device as the only network connection. I'm using the pre-built firmware that is current as of yesterday.
What works:
What fails:
Tcpdump on the Ubuntu machine shows me the request is going to the esp_slip_router device. Tcpdump on a target machine (a Linux laptop) shows no ICMP packets arriving from the esp_slip_router device, and the esp_slip_router device is also not even responding to ARP.
NAT should be properly routing ICMP originating from the Ubuntu machine, and it's doing so for external addresses. And of course you should be able to ARP it.
Here is what I think is going wrong:
The esp_slip_router has a problem responding to ARP. It doesn't seem to be responding at all.
So the short story is that I think ARP caching is working, but something is preventing the esp_slip_router device from ARPing or responding to ARP requests.
Hi!
The idea about slip router is great itself. This looks to be the only solution for my thermal camera for drone project. Important thing is that remote controller works on 5.8GHz only, so the camera down-link should be on this frequency. RTL8720DN as BW16 module is a good candidate for this task. To not discover the round shape from me one more time is much better to ask if someone did this thing to work on the BW16. If no one, I'll try to do it. But first to ask...
Regards...
Hi, thanks for your work.
I am having trouble communicating the ESP8266 once I have introduced the precompiled firmware that it provides inside the firmware folder. Once the ESP8266 has been flashed from W7 correctly, I attach a log:
C:\Users\informatica.mam\Downloads\esptool-master\esptool-master>python esptool.
py --port COM5 write_flash -fs 8m 0x00000 firmware/0x00000.bin 0x10000 firmware/
0x10000.bin
WARNING: Flash size arguments in megabits like '8m' are deprecated.
Please use the equivalent size '1MB'.
Megabit arguments may be removed in a future release.
esptool.py v2.8-dev
Serial port COM5
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
WARNING: Detected crystal freq 27.19MHz is quite different to normalized freq 26
MHz. Unsupported crystal in use?
Crystal is 26MHz
MAC: dc:4f:22:58:58:9c
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Flash params set to 0x0020
Compressed 38448 bytes to 26979...
Wrote 38448 bytes (26979 compressed) at 0x00000000 in 2.6 seconds (effective 117
.4 kbit/s)...
Hash of data verified.
Compressed 228644 bytes to 157900...
Wrote 228644 bytes (157900 compressed) at 0x00010000 in 17.5 seconds (effective
104.7 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
I cannot communicate with the module, I use telnet and Arduino IDE and it does not connect. I flash the ESP2866 again with the original firmware to verify that it works, and this time if it connects correctly. I try to flash with its firmware using different programs such as flash tool and receive the same behavior. Both python and esptool are well configured and the bariable PATH is also configured. what am I doing wrong?
Greetings
I'm seeing huge packet loss on my ESP8266 with this firmware, even when the SLIP interface is not active. Does increasing the CPU speed help? Is my chip broken?
I'm trying to build this projects with the current open_esp_sdk. I first got an error about ets_isr_t not being defined. I think I got around it by just removing that case in softuart.c
Afterwards, it complains about not being able to find netif/slipif.h . I can't find such a file in the open_esp_sdk and this project. How do I get this file?
Hi I'm using the latest bin files from the firmware folder dated 16 days ago (as of today)
on a esp8266 12F module, that has been running other firmware compiled from Arduino"for ages without issue. I have also tried loading the esp_init_data_default_v08_vdd33.bin @ 0x3FC000 but made no difference. I'm using a raspberry pi2 with raspbian and configured it with the ones from your instructions relating to AP mode.
I get this on debug out put
SLIP Interface V1.0 starting
Config found and loaded
<>
if I watch the serial output @74880 I get then, over and over (delay of a few seconds between)
"@ªrjrA(¡‹SËu‹P�v›X¥(ý«Pyjuh)…"8át‡íÍNÈ~�PÊTš��1Æ¡e\º�ËY@íYM/=ání*E"HèIîA,R%¡ù¨E,R·1�)ÔvAm1Æ¡{~A,=áníU"HhInA,tZ
år‡,R·1�)ÄvAí1Æ¡ûþA.=áníe¢ÈèInA,ò%áÝîA,ò%árf cal sector: 1019
freq trace enable 0
rf[112] : 00
rf[113] : 00
rf[114] : 01
SDK ver: 2.2.0-dev(9422289) compiled @ Nov 3 2017 19:40:08
phy ver: 1136_0, pp ver: 10.2
SOFTUART initialize gpio
SOFTUART bit_time is 52
SOFTUART TX INIT DONE
SOFTUART RX INIT DONE
SOFTUART INIT DONE
<>
Just after a few pointers to try thanks in advance
First of all: what a great idea, Martin! Thanks for this project.
Now I'd like to share the problems I faced.
I've installed the precompiled binary firmware on a AZDelivery D1 Mini NodeMcu ESP8266-12F.
I connected a RS232 DB9 adapter with a 3 wire cabling (TX,RX,GND,3.3V).
I set the bitrate conservatively to 19200 (telnet gateway 7777, set bitrate 19200)
I installed Linux on an old thin client and I followed the instructions Martin provided in the README.MD
IT WORKED flawlessly, great!
Configuration of the esp_slip_router:
CMD> show
ESP SLIP Router V1.1.1 (build: Sun Feb 23 23:34:52 20202)
SLIP: IP: 192.168.240.1 PeerIP: 192.168.240.2
STA: SSID: XXXXXXXX PW: XXXXXXXXXXXXX [Autoconnect:1]
External IP: 192.168.0.175
DNS server: 192.168.0.1
Clock speed: 160
Serial bit rate: 19200
CMD>
Once I turned to DOS with packet driver the problem arised..
I tried with MsDos 5 and FreeDos 1.2, but the problem is the same: I can telnet the gateway
at port 7777 , I can ping the gateway, I can ping the router and other devices on the wifi network 192.168.x.x,
and even the "outside world", e.g. 9.9.9.9 and 8.8.8.8.
That's all. I cannot resolve any address on internet (even google.com) or ftp or telnet
(I also tried to set the DNS to 9.9.9.9 and 8.8.8.8, no way).
mode COM2: BAUD=19200 PARITY=n DATA=8 STOP=1
EtherSLIP (ethersl.com) on COM2 (ethersl 0x60 3 0x2f8 19200
)
(but also tried slipper: Slipper COM2 19200 ether nohwhs
)
this is the ouput:
Packet driver for ETHERSLIP, version 11.7
Portions Copyright 1988 Phil Karn
Packet driver skeleton copyright 1988-93, Crynwr Software.
This program is freely copyable; source must be available; NO WARRANTY.
See the file COPYING.DOC for details; send FAX to +1-315-268-9201 for a copy.
16550 Uart detected, FIFO will be used
System: [345]86 processor, ISA bus, Two 8259s
Packet driver software interrupt is 0x60 (96)
Interface class 0x1 (1)
Interrupt number 0x3 (3)
I/O port 0x2F8 (760)
Baud rate 0x4B00 (19200)
Receive buffer size 0xBB8 (3000)
My Ethernet address is 00:02:12:00:56:34
MTCP with this configuration file:
PACKETINT 0x60
MTU 1500
IPADDR 192.168.240.2
NETMASK 255.255.255.0
GATEWAY 192.168.240.1
NAMESERVER 192.168.0.1
and with this settings in the autoexec.bat:
SET MTCPSLIP=true
SET MTCPCFG=C:\MTCP.CFG
Wattcp with this configuration file (c:\WATTCP.CFG):
my_ip = 192.168.240.2
netmask = 255.255.255.0
gateway = 192.168.240.1
nameserver = 192.168.0.1
and with this settings in the autoexec.bat:
SET WATTCP.CFG=C:\
Here you can find the output of some commands that, maybe, can help..
The most interesting output are from th ping command of mtcp suite,
the ping command of the wattcp suite, the dnstest command of mtcp suite and the pakttool command of mtcp suite.
ping (wattcp)
-----tcpinfo (attcp)
Reading Waterloo TCP configuration file.
Ethernet Address : 0:2:12:0:56:34
IP Address : 192.168.240.2
Network Mask : 255.255.255.0
Gateways : GATEWAY'S IP SUBNET SUBNET MASK
: 192.168.240.1 DEFAULT
Cookieserver : NONE DEFINED
Nameserver : 192.168.0.1
Domain : "(null)"
BOOTP : NOT USED
BOOTP Server : BROADCAST
BOOTP Timeout : 30 seconds
Default Timeout : 30 seconds
Max Seg Size MSS : 1400 bytes
tcp_Socket : 4206 bytes
udp_Socket : 2097 bytes
-----pkttool (mtcp)
mTCP pkttool by M Brutman ([email protected]) (C)opyright 2012-2020
Version: Mar 7 2020
Details for driver at software interrupt: 0x60
Name: ETHERSLIP
Entry point: 0366:03CE
Version: 11 Class: 1 Type: 0 Interface Number: 0
Function flag: 2 (basic and extended functions)
Current receive mode: packets for this MAC and broadcast packets
MAC address: 00:02:12:00:56:34
All statistics are from when the packet driver was loaded.
Packets in: 26 Packets received
Packets out: 31 Packets sent
Bytes in: 1852 Bytes received (includes Ethernet headers)
Bytes out: 2224 Bytes sent (includes Ethernet headers)
Errors in: 0 Receive errors
Errors out: 0 Sending errors
Packets lost: 0 Lost due to no packet handler, out of buffers, etc.
I also tried different net masks
255.255.255.0
255.255.255.252
255.255.255.254
255.255.0.0
but no way.
Does anyone have a good idea? :)
All works when "use_ap 0", the 8266 is connected to other access point, slip channel connected to Linux PC. The linux has link to internet via 8266, port mapping is also work - forwarding the tcp port from STA ip to Linux PC.
But looks like the NAPT is not working when "use_ap 1". Windows PC (192.168.4.2) connected to AP of 8266 (192.168.4.1), and starts connection to ssh of Linux PC (192.168.240.2). In linux PC tcpdump shows that source if incoming packets is Windows PC.
I expect the NAT must replace the source ip (192.168.4.2) in packets, so Linux PC must see the source of 8622 (192.168.240.1).
I would be thanful for any explanation.
Next step i will try to compile all the sources and dubug (now i just upload the binary).
PS. Mr. Martin-ger thank you for sharing this project.
when we issue a scan command we get a lovely list back... sweet
But there is no way for a connected program to know when the scan is complete other than to give up after a given amount of time.
Could you send a "Scan Finished" when you're done? i know this is kinda async but you stop scanning at some point right?
Hi!
I'm trying to flash the firmware onto an ESP-01 with 1MB flash and I have specified "-fs 8m" as per the Readme, but esptool.py says that it won't fit; is there any way to recompile it or change the address so that the firmware fits on the ESP-01? This is the output I'm getting when trying to flash:
$ esptool.py --port /dev/tty.usbserial-110 write_flash -fs 8m 0x00000 0x00000.bin 0x100000 0x10000.bin
WARNING: Flash size arguments in megabits like '8m' are deprecated.
Please use the equivalent size '1MB'.
Megabit arguments may be removed in a future release.
esptool.py v3.0
Serial port /dev/tty.usbserial-110
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: a0:20:a6:14:bf:10
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
A fatal error occurred: File 0x10000.bin (length 232996) at offset 1048576 will not fit in 1048576 bytes of flash. Use --flash-size argument, or change flashing address.
I want to use esp_slip_router to isolate small footprint WiFi devices which's firmware I can't alter. The esp8266 will be attached to a Linux machine that has internet access via ethernet. Unfortunately these WiFi devices need internet access for a initialization. I want to give them controlled internet access via ethernet interface. Is it possible?
`
Excuse me! Follow your steps, whether I configure the SLIP interface with :
`IP4_ADDR(&netmask, 255, 255, 255, 0);
IP4_ADDR(&gw, 127, 0, 0, 1);
netif_add (&sl_netif, &config.ip_addr, &netmask, &gw, &int_no, slipif_init, ip_input);
netif_set_up(&sl_netif);`
or with:
`IP4_ADDR(&netmask, 255, 255, 255, 0);
IP4_ADDR(&gw, 192, 168, 240, 2);
netif_add (&sl_netif, &config.ip_addr, &netmask, &gw, &int_no, slipif_init, ip_input);
netif_set_up(&sl_netif);`
it always can't show the console CMD after I run:
`sudo slattach -p slip -s 115200 /dev/ttyUSB0 & sudo ifconfig sl0 192.168.240.2 pointopoint
192.168.240.1 up mtu 1500
sudo telnet 192.168.240.1 7777`
// telnet connection time out!!!
why?
Hi, first of all i wanted to thank you for your software implementation it's really helpful and very useful in the vintage computers world!
But i've unable to build esp_slip_router with custom build esp-open-lwip. The lwip is built as described
Only if you don't want to use the precompiled library, checkout the sources from
https://github.com/martin-ger/esp-open-lwip . Use it to replace the directory
"esp-open-lwip" in the esp-open-sdk tree. "make clean" in the esp_open_lwip dir
and once again a "make" in the upper esp_open_sdk directory. This will compile
a liblwip_open.a that contains the NAT-features.
Replace liblwip_open_napt.a with that binary.
I did that successfully, with standard liblwip_open_napt.a it builds ok, but if i try to build with custom build of "esp-open-lwip/liblwip_open.a" replaced as "liblwip_open_napt.a", i've got these errors:
root@9c35154a9cb0:~/esp_slip_router# make clean;make
CC driver/sio.c
CC driver/softuart.c
CC driver/uart.c
CC user/config_flash.c
CC user/ringbuf.c
CC user/user_main.c
AR build/app_app.a
LD build/app.out
build/app_app.a(user_main.o):(.text+0x8): undefined reference to `slipif_received_byte'
build/app_app.a(user_main.o): In function `write_to_pbuf':
/home/builder/esp_slip_router/user/user_main.c:827: undefined reference to `slipif_received_byte'
build/app_app.a(user_main.o): In function `console_handle_command':
/home/builder/esp_slip_router/user/user_main.c:422: undefined reference to `slipif_process_rxqueue'
/home/builder/esp_slip_router/user/user_main.c:445: undefined reference to `slipif_process_rxqueue'
/home/builder/esp_slip_router/user/user_main.c:518: undefined reference to `slipif_init'
collect2: error: ld returned 1 exit status
make: *** [build/app.out] Error 1
Thanks in advance!
The method parse_str_into_tokens() does not provide any escaping mechanism for a space character (0x20) and as a consequence we cannot connect to SSID's that have a space in them (which is a legal SSID).
As initial test I configured DOS/MTCP to use slip/etherslp - which did work fine with the following config:
DOS
CONFIG.BAT
SET MTCPCFG=C:\MTCP\MTCP.CFG
SET MTCPSLIP=TRUE
ETHERSL 0x60 4 0x3f8 115200
MTCP.CFG
HOSTNAME dellfx
PACKETINT 0x60
IPADDR 192.168.6.40
NETMASK 255.255.255.0
GATEWAY 192.168.6.41
NAMESERVER 8.8.8.8
MTU 1500
on the Linux/armbian-Side
stty -F /dev/ttyUSB0 -clocal -crtscts 115200
slattach -d -v -L -m -p slip -s 115200 /dev/ttyUSB0 &
ifconfig sl0 192.168.6.41 pointopoint 192.168.6.40 mtu 1500 up
arp -s 192.168.6.40 02:42:4c:aa:1b:68 pub
echo 1 >/proc/sys/net/ipv4/ip_forward
Then I flashed the ESP8266-SLIP-Router successfully with the
NodeMCU Flasher
Then I did connect to the slip-router via the follwing commands:
stty -F /dev/ttyUSB0 -clocal -crtscts 115200
slattach -d -v -L -m -p slip -s 115200 /dev/ttyUSB0 &
ifconfig sl0 192.168.240.2 pointopoint 192.168.240.1 mtu 1500 up
arp -s 192.168.240.1 02:81:5b:0c:5e:1b pub
echo 1 >/proc/sys/net/ipv4/ip_forward
telnet 192.168.240.1 7777
The show command did work, so I did reconfigure the configuration:
CMD>
set ssid Masallah_TT
set password MyPassword
set addr 192.168.6.40
set addr_peer 192.168.6.41
set use_ap 0
save
reset
On another armbian-system I did connect successfully to the slip-router via the commands:
stty -F /dev/ttyUSB0 -clocal -crtscts 115200
slattach -d -v -L -m -p slip -s 115200 /dev/ttyUSB0 &
ifconfig sl0 192.168.6.41 pointopoint 192.168.6.40 mtu 1500 up
arp -s 192.168.6.40 02:81:5b:0c:5e:1b pub
echo 1 >/proc/sys/net/ipv4/ip_forward
telnet 192.168.6.40 7777
And the "show" command does show my configuration fine:
CMD>show
ESP SLIP Router V1.1.1 (build: Sun Feb 23 23:34:52 2020)
SLIP: IP: 192.168.6.40 PeerIP: 192.168.6.41
STA: SSID: Masallah_TT PW: MyPassword [AutoConnect:1]
External IP: 192.168.6.82
DNS server: 8.8.8.8
Clock speed: 160
Serial bit rate: 115200
But when I try to use the slip-router with DOS/MTCP it doesnt seems to be recognized :(
For PING (like 192.168.6.41 or 8.8.8.8) and TELNET I do get TimeOuts only.
But the blue LED is blinking when MTCP did try to send some packets to the slip-router.
I did test the RS232-Connection successfully with TELIX (a Terminal-Programm) so my cable/pinout is OK and with another simple-serial-sketch the serial Connection doesnt have problem with 115.200Baud.
When I restart the slip-router while connected with TELIX at 115.200Baud I do get always the same chars, but they arent readable (doenst know if there should something readable from the slip-protocol) :(
[EDIT]
the unreadable chars in TELIX are the Bootloader Messages of the ESP8266 at 74880 Baud
(and TELIX cant handle this Baudrate in DOS):
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
load 0x40100000, len 31016, room 16
tail 8
chksum 0x07
load 0x3ffe8000, len 2068, room 0
tail 4
chksum 0x2f
load 0x3ffe8820, len 3132, room 4
tail 8
chksum 0xac
csum 0xac
rf cal sector: 1019
freq trace enable 0
rf[112] : 00
rf[113] : 00
rf[114] : 01
SDK ver: 3.0.0-dev(c0f7b44) compiled @ Jun 26 2018 16:54:37
phy ver: 1136_0, pp ver: 10.2
You could see TELIX and my ESP8266-NodeMCU-Pinout here
@martin_ger
Danke schon mal fuer reinbschauen. Evtl. hast Du eine Idee, auch wenn DOS/MTCP nicht Dein FAchgebiet ist - aber per seriellem USB-Kabel klappt DOS/MTCP.
Liebe Gruesse aus Mudany/BUrsa/Tuerkei - bis 2016 hatte ich in Frankfurt/Main gewohnt - also nicht weit weg von Wiesbaden.
Guido Lehwalder
Hello,
I have tried your firmware on my Amiga computer using the following guide :
https://blog.nootch.net/post/amiga-bbs-online-2019/
With few additions on the Amiga side :
enable a "ignore DSR" feature, disable "Carrier detect" and use the "New8N1" serial driver.
I am impressed by the result and I would like to thank you for sharing your work.
I am able to communicate up to 115200 bauds.
However my tests show that the operation above 38400 is not reliable (on my system running a 68020@33MHz).
I believe the reason might be the lack of flow control.
Would it be possible to add hardware flow control to your firmware ?
On my adapter (which I used previously with the Zimodem firmware), here are the actual connections:
CTS of the host to GPIO15 (RTS of the router)
RTS of the host to GPIO13 (CTS of the router)
and also Ring on GPIO2, DSR of the host on GPIO5 and DTR of the host on GPIO4, however these are not essential.
Hi,
I would like to know the compatibility of esp01, which probably is the lowest cost hardware to get a serial wifi adapter. Does anyone manage to flash the firmware on the chip? Or you have any recommended esp board to use?
Thanks
ESP8266 is connected as STA to a wifi network. It got external address: 192.168.254.102.
When I try to SSH to that address I get response : Connection refused.
When I try to telnet to that address with port 7777, connection is successful.
Any ideas?
Thanks in advance.
Not sure what's (not) going on, I'm currently unable to connect to the firmware with telnet (I do not change the wiring between the flash and the slattach):
$ esptool.py --port /dev/ttyUSB0 write_flash 0x00000 firmware/0x00000.bin 0x10000 firmware/0x10000.bin
esptool.py v3.2
Serial port /dev/ttyUSB0
Connecting...
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting...
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: e8:db:84:df:2f:7f
Stub is already running. No upload is necessary.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00008fff...
Flash will be erased from 0x00010000 to 0x00049fff...
Compressed 36848 bytes to 26072...
Wrote 36848 bytes (26072 compressed) at 0x00000000 in 3.0 seconds (effective 98.6 kbit/s)...
Hash of data verified.
Compressed 235760 bytes to 163144...
Wrote 235760 bytes (163144 compressed) at 0x00010000 in 14.6 seconds (effective 129.4 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
$ sudo slattach -L -p slip -s 115200 /dev/ttyUSB0&
[1] 1487
$ sudo ifconfig sl0 192.168.240.2 pointopoint 192.168.240.1 up mtu 1500
$ ip addr sh sl0
4: sl0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 10
link/slip
inet 192.168.240.2 peer 192.168.240.1/32 scope global sl0
valid_lft forever preferred_lft forever
$ ip route sh 192.168.240.1
192.168.240.1 dev sl0 proto kernel scope link src 192.168.240.2
$ telnet 192.168.240.1 7777
Trying 192.168.240.1...
^C
I can see with wireshark that packets are going to 192.168.240.1 but I get no response. When the ESP is reset, I can see a quick flash from IO2 but no blue light afterwards. This is the same with the pre-compiled .bin files.
Any ideas ?
Hi there!
This is a fantastic project, thank you for writing it.
It has helped get many vintage computers that don't have NICs online.
I am wondering if there is any (undocumented?) way to add a portmap for a range of ports, or even all ports (complete 1-to-1 NAT style) rather than one at a time?
This is useful in situations such as running an FTP server on a machine, where the passive port range is typically at least 256 ports in size.
I have tried inputting a large number of portmaps, one after another, using Expect. The esp_slip_router config seems to hit a maximum limit and stop accepting new portmaps.
Various other commands have also been tried, somewhat blindly:
portmap add TCP 0 192.168.240.2 0
portmap add TCP all 192.168.240.2 all
portmap add TCP any 192.168.240.2 any
These are all accepted, but do not function. :)
Thank you again for your hard work.
Kind regards,
Dominic
Hi Martin,
I will try to describe my problem once more, because I tried everything I could and couldn't get the solution.
I used a classic raspberryPi3 and connected it to the same network with ethernet and WIFI. With that setup I could successfully SSH simultaneously to ethernet IP and WIFI IP address.
When I try to do the same with ethernet and slip ESP I get an error. SSH will only work on ethernet IP until I disconnect ethernet cable from the raspberry. It seems to me that the problem is because SLIP IP 192.168.240.2 doesn't belong to the network id where ethernet is connected. Because when I do
sudo ip route add 192.168.254.0/24 via 192.168.240.1
The SSH starts to work for the slip IP, but breaks for the ethernet IP. If I set the metric of sl0 higher than the metric of eth0, eth0 will start to work again, and vice versa.
Thank you for your time.
Hi Martin,
I have one more question if it isn't a problem. Is it possible to flash your code to EPS32?
hi, i’ve managed how to use esp slip router in windows 9x, tutorial is here http://vintage2000.org/serial_wifi_adapter#windows_31_or_9x
i have flashed with windows 10
how can i set up the ip etc from windows as i dont have a linux box.
Hi! Thank you for your work! It runs well on my ESP8266. I am wondering that, is there any possible to drive two ESP8266 work with SLIP together as STA+AP, just like github.com/martin-ger/esp_slip_router/issues/10.
Because I am working on a porject about underwater communication, trying to link AP and STA with serial or something so people can use Wi-Fi provided by ESP8266 AP underwater without the distance limit.
I was trying to link two ESP with SLIP, but I found that each ot them doing well but the STA didn't respond the data from AP.
So, could you give me some idea about how to fix this? THANKS!
Hi, Martin!
I run esp_slip_router on esp8266 (esp12 module) but I face no reaction. Here is output from debug on software serial:
SLIP Interface V0.9 starting
Config found and loaded
E:M 0
Starting Console TCP Server on 7777 port
mode : sta(5c:cf:7f:17:b3:74)
add if0
f r0, scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 2
cnt
connected with Business, channel 6
dhcp client start...
connect to ssid Business, channel 6
ip:192.168.9.15,mask:255.255.255.0,gw:192.168.9.1
ip:192.168.9.15,mask:255.255.255.0,gw:192.168.9.1,dns:8.8.8.8
pm open,type:2 0
Commands does not give any response or error (sl0 interface is created):
sudo slattach -p slip -s 115200 /dev/ttyUSB0&
sudo ifconfig sl0 192.168.240.2 pointopoint 192.168.240.1 up mtu 1500
telnet 192.168.240.1 7777
Also I can only make
with SDK 1.5.4
version. Could you point how I can debug this isure
Hi! i have problem .. from dos machine working ok .. ftp client to server connection ok, web browser ok
but from another machine in the network I have no chance in the connection .. I tried a real address ESP in my case (192.168.1.168) then also 192.168.240.2 ping, ftpsrv, not working at all .. what am I wrong?
I thought the ESP8266 UART could go much faster than this?
http://www.esp8266.com/viewtopic.php?f=6&t=1711
Nice work on this, by the way :-)
Is there any chance to have both modes simultaneously? if not, why?
thanks.
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.