ESP8266-based WiFi serial modem emulator ROM
at main 86 lines 3.1 kB view raw view rendered
1## WiFiPPP 2 3Yet another ESP8266-based WiFi serial modem emulator ROM featuring a Hayes 4AT-style command interface that emulates a serial modem and allows old hardware 5to "dial" telnet addresses rather than phone numbers. 6 7It also includes a built-in PPP server that routes through the WiFi interface, 8reachable with `ATDT PPP`. 9Inside the PPP connection is a SOCKS5 proxy that can strip TLS from common 10services like HTTPS and IMAPS, allowing old hardware to talk to modern, secure 11services without needing to do any TLS. 12 13### WiModem232 14 15WiFiPPP currently targets the 16[WiModem232](https://www.cbmstuff.com/index.php?route=product/category&path=59_66) 17hardware, which includes: 18 19- ESP8266-12F WiFi module 20- (Optional) I2C-based 21 [SSD1306 monochrome OLED](https://amzn.to/3zs39OL) 22 (with blue and yellow sections) 23- [NeoPixel 5050 multi-color LED](https://www.adafruit.com/product/1655) 24 with an integrated WS2811 controller 25 26### Installation 27 28For the WiModem232, installation will replace the factory ROM image, though no 29hardware modification is needed. 30 31This manual installation will only be required once, since future updates can 32use the built-in `AT$UPDATE` command to do an over-the-air update over WiFi. 33 34First, clone this Git repo and compile the WiFiPPP ROM. 35 36 $ git clone --recursive https://github.com/jcs/WiFiPPP 37 [...] 38 $ cd WiFiPPP 39 WiFiPPP$ gmake 40 41On the back side of the WiModem232 (with the USB port facing down) are 5 42vertical sockets. 43From top to bottom, these are: 44 451. GPIO0 (to enter bootloader) 462. TX 473. RX 484. 3.3v VCC 495. GND 50 51Connect a 52[4- or 5- pin USB TTL serial cable](https://amzn.to/3kxsssl) 53to the bottom 4 sockets. 54It is recommended to use a breadboard so the 3.3V VCC and GND pins can be 55connected to the breadboard's `+` and `-` rails, and then connect wires from 56those rails to the sockets on the WiModem232. 57 58Connect a jumper wire between the top port (GPIO0) port and the GND rail. 59 60Connect another jumper wire to the GND rail which will be used to reset the 61ESP8266. 62 63Run `gmake install` to launch `esptool` and prepare to flash the WiFiPPP ROM 64through the USB TTL cable. 65 66Touch the jumper wire from the GND rail to the RST pin on the ESP8266, which is 67the bottom-most pin along the right-hand side. 68The blue LED will flash briefly, and if the GPIO0 socket is correctly connected 69through your other jumper wire to GND, the ESP8266 will reboot to the 70bootloader. 71 72`esptool` should see this and start uploading the ROM automatically. 73 74After flashing, disconnect the GPIO0 jumper wire or else it will reboot into 75bootloader again. 76Touch the RST pin again and the device should boot and show WiFiPPP on the OLED 77screen (if your model has one). 78 79In a serial terminal connected to your USB TTL device at any baud rate, you 80should see some junk from the bootloader after rebooting. 81Hit enter and type `AT` and it should echo back. 82 83If all is working properly, you can disconnect all of your cables and connect 84through the DB25 port (but not at the same time). 85You'll need to re-establish your WiFi settings since the EEPROM layout from 86WiFiPPP is not compatible with the factory WiModem232 settings.