SIO2WiFi using ESP8266
for 400/800 XL/XE Atari Homecomputers

Why?: Just for the fun of coding for the Atari.
:-D

"E.T. phone home"


ESP8266.DRV, the LiteDOS-driver for SIO2WiFi

The ESP8266 can be converted to a SIO2WiFi-modem that can be used as modem to access BBSes found on the internet !
The interface I built is R-verter compatible, so the ESP8266 should work with any R-verter supporting software.
(This is a R-verter compatible modem)

Last update: 18-april-2019


I even managed to put one into a SIO-plug, this is a one-off built for me...


Get ESP8266 out of the box / ESP8266 driver / ESP8266 Tiny Terminal (built into the driver-init routine)
   


 

Software/Drivers can be found here (LiteDOS)




The ESP8266 uses old fashion modem commands staring with AT (AT commands)


You do not need to specifically use my software, any R-verter compatible software-package will do fine.
Just remember to send <CR><LF> after every AT-command.



The software I wrote/use:

ESP8266/Rverter R:Driver:

The ESP8266 is a Wifi-module that can be used as modem to access BBSes found on the internet !
This is an experimental driver for my ESP8266-device, ESP8266 in a SIO-plug, WiFi on the Atari !
The interface I built is R-verter compatible, so the ESP8266 should work with any R-verter supporting software.
The other way around, the driver is R-verter compatible, so it should work with any R-verter and compatible devices too.
It has a built-in Tiny Terminal to get cracking right away.

Get ESP8266 out of the box:
When you buy a new ESP8266 module (do not forget to use the 5volt breakout-adapter) it's on factory defaults.
One of them is doing IO with 115k2 baudrate.
Unusable for the Atari-SIO port, nor is this baudrate available on the Atari.....
So I wrote a little tool to get the ESP out of the box, resetting the baudrate down to 1200 baud.
It uses a clever trick to generate 115k2 IO for the ESP to understand.
Once run, the ESP is ready to be used as 1200 baud modem.
(To be precise, the baudrate is set to 1221 baud. There is a bug in the ESP-firmware making the module go mayhem when you set it to 1220 or less. Do NOT try this !!!)

TinyTERM:
This is a small terminal program that let you talk to any R: device present.
I have included this, for easy access/communication with your modem.
It does minor translation. Like sending return (Atari-EOL) into <CR>, same goes for incoming data <CR> into <EOL>.
Note:
It does not add <LF> when you press enter, so ESP-users need to press control-J for adding <LF>.

Lite850/ R:Driver for 850 and APE:
Just a small boot-loader to download/install the R:driver from the device.

PLATO (1.2.1 FAST-IO):
This is a patched plato built, I created, that is able in doing 2400 BAUD and has a built-in ESP driver/terminal.
Just to be clear, I am NOT the creator of PLATO, that is Thomas Cherryhomes.
I used his 1.2 ROM-version and created also a loadable file version.

Note this:
1/ When you have booted a R-device on powerup, plato will use that.
If you have NOT booted any R-device, plato will first try to download it from any R:device.
If that fails, it uses my built-in ESP-driver (R-verter compatible) set to 2400.

2/ When my ESP-driver is loaded, you enter Tiny Terminal for easy connecting to the server.
See "
Get a connection" below, if you don't need it, just press ESC.
In this Terminal <CR><LF> is added after every input line.

3/ Input is buffered, so you can alter it as you go, when you press RETURN it will be decoded, CR/LF added and send to the modem.
Normally the modem echo's this back, so you see it again on the screen.

4/ When you have not set your ESP to 2400 yet, but it is still running at 1200, press SHIFT+CONTROL+1, this will set the terminal in 1200 baud.
Then type AT+UART_CUR=2400,8,1,0,0
This will temporarily set the baudrate of the ESP to 2400, after power-cycling your ESP it is back to the original 1200.
Wait for the OK reply.
Then press SHIFT+CONTROL+2 to set the terminal to 2400 again.
Now make connection to the IRATA.ONLINE (
See "Get a connection" below)

After setting-up connection, press ESC to exit. You will enter plato, wait for the server giving you this screen.
When you are not a member, just use guest as name and password.
If you want to become a member, go to
irata.online !
 




Get to work:

You need to get the ESP "out of the box" when you are going to use it on the Atari, using step 1.
You do not need to repeat step 1, except you factory reset your device with AT+RESTORE, sending it back to 115k2 and erased flash-memory.

If you are away and need another WiFi-connection, repeat step 2.


Step 1:
Run LiteOFTB, this is essential, since you need to get the baudrate down to 1200 (1221 to be precise).
The latest version (see screenshot) replies with ATOK when the baudrate is correctly set.
If it does not reply with ATOK, hit return a couple of times more.
When it's still not replying with ATOK, you need to check the interface on faulty wiring.

Step 2:
Get it connected to your WiFi-router.
This is something you only need to do once. After this setup, on power-up, the ESP tries to reconnect.
The commands are:
    AT+CWMODE=1
    AT+CWJAP_DEF="replace with wifi name","replace with password"


Get a connection:
This is something you need to do every time.
The commands are (How to connect to PLATO):
    AT+CIPMODE=1
    AT+CIPMUX=0
    AT+CIPSTART="TCP","IRATA.ONLINE",8005
    AT+CIPSEND

Now note this, after CIPSTART, the server is starting to send data, but the ESP is still in TTY-mode, so to start transmission to the server, you need the CIPSEND command.
But with the server sending stuff, the screen is getting cluthered with incoming data. Just ignore this and start typing the CIPSEND command.
Press enter and you are connected.



Using (other) R-verter compatible software to drive your SIO2WiFi.
The ESP8266 should be compatible with other software out there, using R-verter modems.
You need to remember that the baudrate is fixed, set by the ESP, not the driver, so once set to 1200, you are on 1200, no matter what the software thinks.
Also setting-up is a bit harder, since the ESP needs <CR> and <LF> after every AT-command.
On the keyboard these are CONTROL-M and CONTROL-J, so not the enter-key.

Plato has a patch in TTY-mode to use SELECT-ENTER, this will send Control-M and Control-J for you.
But once out TTY-mode and in PLATO-mode, this does not work, hence, you will never be able to send the CIPSEND command......
Therefore I use my driver.