Jump to content
IGNORED

SIO Wifi modem with esp8266


mozzwald

Recommended Posts

I've been fiddling around with my nodemcu (esp8266) board, Zimodem firmware and the atari and have been successful with using the modem while allowing the atari to still use the sio bus with minimal parts. I have a simple fet based level shifter (wiring diagram below, amazon part) that adds the motor control and command lines to nodemcu inputs. When either line is asserted, the Zimodem firmware allows other devices to communicate on the bus and ignores the transmission. 

 

The modified firmware adds a new Flow Control type (FCT_AMTRCTL) which must be enabled for it to work. If you wish to flash the firmware to a previously used zimodem/esp board you should format the SPIFFS before flashing so that the new flow control will be selected by default, otherwise you will have issues with it not communicating as it will be set for some other flow control scheme (this issue bit me a couple times during testing). 

 

The modified Zimodem (v3.5) firmware is in my github (atari branch) at https://github.com/mozzwald/Zimodem/tree/atari

atari-zimodem-schematic.png

  • Like 1
Link to comment
Share on other sites

don't like the diode choice, which has been covered quite a bit lately.... the reason being the number of sio devices these days and some of the new mother boards as well. Check it out.

I know we can sub whatever we want... but it's sure to lead to a couple of those why isn't this working with this or that threads...

Edited by _The Doctor__
Link to comment
Share on other sites

off the top of head..

1N5819 , or one of the bat50/85's etc.

it really is the way to go...

tested and suggested these and a couple others... always the better choice where SIO is concerned...

if I remember anything else I may post it or if someone wants to dig up more about it... that would be cool

Edited by _The Doctor__
Link to comment
Share on other sites

9 hours ago, mozzwald said:

I've been fiddling around with my nodemcu (esp8266) board, Zimodem firmware and the atari and have been successful with using the modem while allowing the atari to still use the sio bus with minimal parts. I have a simple fet based level shifter (wiring diagram below, amazon part) that adds the motor control and command lines to nodemcu inputs. When either line is asserted, the Zimodem firmware allows other devices to communicate on the bus and ignores the transmission. 

 

The modified firmware adds a new Flow Control type (FCT_AMTRCTL) which must be enabled for it to work. If you wish to flash the firmware to a previously used zimodem/esp board you should format the SPIFFS before flashing so that the new flow control will be selected by default, otherwise you will have issues with it not communicating as it will be set for some other flow control scheme (this issue bit me a couple times during testing). 

 

The modified Zimodem (v3.5) firmware is in my github (atari branch) at https://github.com/mozzwald/Zimodem/tree/atari

atari-zimodem-schematic.png

So no Rverter circuit?  Just this?

Link to comment
Share on other sites

7 minutes ago, mozzwald said:

I tried a similar level shifter and it didn't work (TXS0108) so I got the fet based one instead. 

 

So it sounds like you might be using I2C on the NODEMCU.  Adafruit indicates that an alternative option for 4 channel Bi-directional level shifter is i2C friendly and that board is FET based.  Or maybe the 74LVC245 chip which has supposedly a stronger output drive

Edited by Dropcheck
added info
Link to comment
Share on other sites

22 minutes ago, Dropcheck said:

So it sounds like you might be using I2C on the NODEMCU.  Adafruit indicates that an alternative option for 4 channel Bi-directional level shifter is i2C friendly and that board is FET based.  Or maybe the 74LVC245 chip which has supposedly a stronger output drive

Definitely not using i2c on the nodemcu. Not really sure what was causing the problem. I got garbage on both the atari and pc when testing with a usb to uart adapter. Also tried 2 different boards to make sure it wasn't a bad one.

Link to comment
Share on other sites

Just a few more notes about the setup...

 

You can flash the nodemcu with the usb port as normal. When Zimodem starts up, it switches the TX & RX lines from the default GPIO 1 & 3 to GPIO 15 & 13. This prevents the bootloader messages from being spewed out to the atari at powerup. This also means, you will not see anything on a serial terminal on the computer when connected with the usb port (also the command & motor lines would need to be pulled low for transmission to occur). The 1k resistor on GPIO 15 is required to prevent the nodemcu bootloader from trying to boot from SD card at powerup.

 

The pull down on Atari side Motor Control was needed as the level shifter wasn't pulled down enough to register a low reading.

 

Can anyone recommend a bbs that has files available for download with Xmodem? I want to see if it will work with bobterm.

Link to comment
Share on other sites

9 minutes ago, mozzwald said:

Just a few more notes about the setup...

 

You can flash the nodemcu with the usb port as normal. When Zimodem starts up, it switches the TX & RX lines from the default GPIO 1 & 3 to GPIO 15 & 13. This prevents the bootloader messages from being spewed out to the atari at powerup. This also means, you will not see anything on a serial terminal on the computer when connected with the usb port (also the command & motor lines would need to be pulled low for transmission to occur). The 1k resistor on GPIO 15 is required to prevent the nodemcu bootloader from trying to boot from SD card at powerup.

 

The pull down on Atari side Motor Control was needed as the level shifter wasn't pulled down enough to register a low reading.

 

Can anyone recommend a bbs that has files available for download with Xmodem? I want to see if it will work with bobterm.

Quote

The Basement and Part-Time BBSs have files for download too (see my signature for telnet addresses).

 

Incidentally, some of the BBSs use telnet protocol (I believe SFHQ and Boot Factory use telnet mode) and others (such as the Basement, Part-Time, and the Resistance) use raw mode. So, it probably would be good to try file transfers on a variety of BBSs.

 

You probably should also test uploading too.

 

-JP
 

 

I was able to dl with this bbs,

Edited by Dropcheck
cleaned up quote
Link to comment
Share on other sites

4 hours ago, Dropcheck said:

I was able to dl with this bbs,

I don't have access to the files area so I installed mystic bbs on a linux box at home. I am unable to send or receive files. When connected to a server, the disk access causes the connection to be dropped and the modem is put back in command mode. Looks like more work to be done in Zimodem code ?

Link to comment
Share on other sites

5 hours ago, mozzwald said:

I don't have access to the files area so I installed mystic bbs on a linux box at home. I am unable to send or receive files. When connected to a server, the disk access causes the connection to be dropped and the modem is put back in command mode. Looks like more work to be done in Zimodem code ?

I would ask for elevated bbs privilege to access the files area first.  Then try to dl from the actual bbs.  

 

Try an unmodified version of zimodem with your server as a quality control.  If you also have the same issues, then it's not your modifications.  It's more likely settings. 

Link to comment
Share on other sites

1 hour ago, Dropcheck said:

I would ask for elevated bbs privilege to access the files area first.  Then try to dl from the actual bbs.  

 

Try an unmodified version of zimodem with your server as a quality control.  If you also have the same issues, then it's not your modifications.  It's more likely settings. 

The problem is that when connected to a bbs, any SIO activity causes the connection to die and the modem is put back in AT command mode. There is a noticeable delay when the system tries to read from floppy. Then, I assume the connection is lost and the system reads from the disk just fine.

 

In AT command mode, SIO activity is working fine.

Link to comment
Share on other sites

2 hours ago, mozzwald said:

The problem is that when connected to a bbs, any SIO activity causes the connection to die and the modem is put back in AT command mode. There is a noticeable delay when the system tries to read from floppy. Then, I assume the connection is lost and the system reads from the disk just fine.

 

In AT command mode, SIO activity is working fine.

I found the problem. DTR code was causing the connection to break during disk activity. Removing that seems to be working. I sent and received a small txt file with xmodem. I will clean up the code and push changes to github tomorrow.

Link to comment
Share on other sites

9 hours ago, mozzwald said:

I found the problem. DTR code was causing the connection to break during disk activity. Removing that seems to be working. I sent and received a small txt file with xmodem. I will clean up the code and push changes to github tomorrow.

The fix is up. https://github.com/mozzwald/Zimodem/tree/atari

  • Like 5
Link to comment
Share on other sites

15 hours ago, mozzwald said:

In your ESP8266 sketch you have COMMAND connected to GPIO12 and Motor Control to 16.  In your schematic these are reversed.

 

After switching my wires around to match the sketch I was able to communicate.   

 

I'm not using a level converter.  I think everything is working. At least when I switched from MyDOS to SpartaDOS X all seems fine.

 

Here is what else I've done.

 

I restored DSR and DTR to the original GPIOs.  As you documented this should not matter.  Atari doesn't use these.  However, my v0.90 NodeMCU dev boards have N/C for GPIOs 9 and 10. 

 

I also un-swapped your swapped RX and TX.  My wiring was already configured for GPIOs 1 & 3.

 

Thanks for this, mozzwald!

 

I'll let you know if I discover anything.  

 

-SteveS

  • Like 1
Link to comment
Share on other sites

7 hours ago, a8isa1 said:

In your ESP8266 sketch you have COMMAND connected to GPIO12 and Motor Control to 16.  In your schematic these are reversed.

 

After switching my wires around to match the sketch I was able to communicate.   

 

I'm not using a level converter.  I think everything is working. At least when I switched from MyDOS to SpartaDOS X all seems fine.

 

Here is what else I've done.

 

I restored DSR and DTR to the original GPIOs.  As you documented this should not matter.  Atari doesn't use these.  However, my v0.90 NodeMCU dev boards have N/C for GPIOs 9 and 10. 

 

I also un-swapped your swapped RX and TX.  My wiring was already configured for GPIOs 1 & 3.

 

Thanks for this, mozzwald!

 

I'll let you know if I discover anything.  

 

-SteveS

Oops, yeah, I have the CMD and MTR lines wrong the wiring diagram, sorry about that.

 

You should probably use a level shifter, but to each his own. You may burn out the esp.

 

The swap for TX/RX is to prevent the esp boot msgs from being sent to the Atari at power up. I thought it could interfere with boot. Keep this in mind if you have any issues booting with it connected.

 

If you could try doing a file transfer and report your results it would be much appreciated. I can do small files ~15k or less but anything larger never starts and just times out using Bob Term.

 

And yesterday I tested it with Platoterm at 1200 baud which worked great.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...