Jump to content

Photo

HW: Make an emulated 850 that talks TCP/Wifi/Ethernet?


19 replies to this topic

#1 tschak909 OFFLINE  

tschak909

    River Patroller

  • 2,408 posts
  • Location:USA

Posted Tue Mar 13, 2018 11:21 AM

In light of trying to get Atari 8-bit machines online cheaply and efficiently, there has got to be a way to take:

 

* An ESP8266

* Some firmware to simulate an 850

* an SIO cable

 

And make a device that can quickly get an Atari on the Internet.

 

The point is to make an all-in-one device that you just plug in and go.

 

If somebody would whip up the hardware, I will write the firmware.

 

-Thom


Edited by tschak909, Tue Mar 13, 2018 11:21 AM.


#2 mytek OFFLINE  

mytek

    River Patroller

  • 2,769 posts
  • Location:Santa Rosa, CA

Posted Tue Mar 13, 2018 11:32 AM

Sounds like a great project  :thumbsup:

 

If I wasn't in the middle of a more pressing concern, I would've jumped in on the hardware design (hopefully someone else does have the time).



#3 tschak909 OFFLINE  

tschak909

    River Patroller

  • Topic Starter
  • 2,408 posts
  • Location:USA

Posted Tue Mar 13, 2018 12:13 PM

@Mytekcontrols - the big reason for this is to facilitate a quick way to get an Atari computer to use the PLATO cartridge to log into both cyber1.org and a PLATO system that I am setting up for atari 8-bit users.

 

-Thom



#4 NISMOPC OFFLINE  

NISMOPC

    Moonsweeper

  • 354 posts
  • Location:OHIO

Posted Tue Mar 13, 2018 12:21 PM

Speaking of the 850 (getting ready to go 850 >> null modem cable >> serial to USB cable >> Pi Zero), who the heck designed the input/outputs on this thing? POWER and SIO on the FRONT...  

 

1vpezf.jpg



#5 tschak909 OFFLINE  

tschak909

    River Patroller

  • Topic Starter
  • 2,408 posts
  • Location:USA

Posted Tue Mar 13, 2018 12:27 PM

I'm trying to foster involvement to design something better.

 

-Thom



#6 spiffster OFFLINE  

spiffster

    Combat Commando

  • 8 posts

Posted Tue Mar 13, 2018 2:15 PM

Here's some hardware that might work, except for the SIO cable.  It's already 5V and has plenty of UARTs.
http://robotdyn.com/...-micro-usb.html



#7 Sugarland OFFLINE  

Sugarland

    Chopper Commander

  • 141 posts

Posted Tue Mar 13, 2018 2:23 PM

Great idea!! I want one. I'd prefer a PBI device which makes full duplex a possibility, is much faster and frees up the pokey. Well correct me if I'm wrong but isn't SIO half duplex? Is using PBI cheaper/easier and more flexible since it is directly on the bus?


Edited by Sugarland, Tue Mar 13, 2018 2:23 PM.


#8 tschak909 OFFLINE  

tschak909

    River Patroller

  • Topic Starter
  • 2,408 posts
  • Location:USA

Posted Tue Mar 13, 2018 4:50 PM

That cuts the number of usable machines in half. Sorry, no PBI. Also, it wouldn't work with the PLATO cartridge, which has a built in 850 handler. Non-starter.

 

-Thom



#9 tschak909 OFFLINE  

tschak909

    River Patroller

  • Topic Starter
  • 2,408 posts
  • Location:USA

Posted Tue Mar 13, 2018 5:24 PM

Very interesting board...

 

-Thom



#10 spiffster OFFLINE  

spiffster

    Combat Commando

  • 8 posts

Posted Tue Mar 13, 2018 6:15 PM

Another idea I had sort of along the same lines is that it might be useful to abstract away the SIO connector by making an SIO<->Bluetooth device.  The device itself wouldn't respond to any SIO commands, but any device (phone, laptop, RPi, etc.) that wanted to monitor and/or respond to SIO traffic could pair with it and do so (one at a time, of course).

 

It would need a protocol (on top of Bluetooth) to communicate changes in the status of the SIO control lines.


Edited by spiffster, Tue Mar 13, 2018 6:19 PM.


#11 tschak909 OFFLINE  

tschak909

    River Patroller

  • Topic Starter
  • 2,408 posts
  • Location:USA

Posted Wed Mar 14, 2018 11:36 AM

While I can see the utility of that, for sure. This needs to be ultra simple, so it can be cheap and quick to set up.

 

-Thom



#12 spiffster OFFLINE  

spiffster

    Combat Commando

  • 8 posts

Posted Wed Mar 14, 2018 3:11 PM

I'm waiting on some things in the mail, and then I'll see what I can put together.

The ESP8266 only has one fully-functioning UART, and it's connected by default to the USB programmer.  An additional problem that I had not considered is that the ESP8266 spews out some informational messages upon booting, before any uploaded firmware is even run.  It looks like the safest bet is to put the SIO DATA IN/DATA OUT on GPIO15 and GPIO13, respectively.  (See http://smallbits.marshall-tribe.net/blog/2016/11/13/esp8266-quiet-uart) That way, the startup messages will go to an otherwise unused pin, and if you want to divert the UART to these other pins, you can.  Or you can use some software-based serial scheme on these pins.  The advantage to diverting the UART is that the serial communication is handled by hardware; the disadvantage is that you won't be able to send messages out the USB port as you attempt to debug it.

The remaining SIO signals can go to other various pins.  The 850 almost certainly uses the COMMAND signal, but probably not the CLOCK ones.  The others I'm not sure about.  Since SIO uses 5V signals and the ESP8266 is a 3.3V device, I plan on using two 74AHCT125s as level shifters, one for incoming signals and one for outgoing ones.  Each can handle four signals.  These would probably be in: READY, COMMAND, DATA OUT; out: DATA IN, PROCEED, INTERRUPT.  Let me know if you think more connections are needed.

Also, I did get a cyber1 account and can access it using pterm, but I currently lack the means to load the Atari Plato software.  I have a MaxFlash setup on the way.


Edited by spiffster, Wed Mar 14, 2018 3:13 PM.


#13 spiffster OFFLINE  

spiffster

    Combat Commando

  • 8 posts

Posted Fri Mar 16, 2018 9:00 AM

Alright, I think I have everything I need.  Here's the plan for the hardware:

The device will use a Robotdyn NodeM ESP8266 with 32Mb (4MB) of flash.  Here's a pinout showing the pin mux: http://www.kloppenbo...-mcu-pinout.png

I've decided on the following pin allocations:

GPIO1/TXD0: USB/unused
GPIO3/RXD0: USB/unused
GPIO13/RXD2: SIO DATA OUT
GPIO15/TXD2: SIO DATA IN
You can use the latter two as GPIO pins if you want to roll your own serial handling, or use the pin mux to switch the UART from TXD0/RXD0 to TXD2/RXD2.  Your choice.

GPIO4: SIO INTERRUPT
GPIO5: SIO PROCEED
GPIO12: SIO COMMAND
GPIO14: SIO READY

I'll also connect GPIO16/WAKE to RST so that you can put the ESP8266 into deep sleep if you wish, perhaps upon loss of the READY signal using a timer to wake up periodically to see if it's returned.  Or not.

The device will be powered via the NodeM USB port. It will have two level shifters, one for 5V->3.3V, one for 3.3V->5V.  If I can't get 5V from the NodeM to drive the 3.3V->5V level shifter, I'll get it from the SIO 5V/READY which will mean that the device will only be able to send signals when SIO READY is active.  (I can see if the device will run entirely off of the 5V provided by the SIO, but I have my doubts.  Also, that would mean loss of power to the device whenever READY was low.  I'm not familiar enough with the behavior of that signal to know if this is acceptable or not.)

Comments?  Concerns?  Suggestions?



#14 tschak909 OFFLINE  

tschak909

    River Patroller

  • Topic Starter
  • 2,408 posts
  • Location:USA

Posted Fri Mar 16, 2018 9:50 AM

Looks good to me.

 

-Thom



#15 Fox-1 / mnx OFFLINE  

Fox-1 / mnx

    Stargunner

  • 1,550 posts
  • What is your Alternate Reality?
  • Location:NL, Earth 2.0

Posted Wed Mar 21, 2018 6:51 AM

Speaking of the 850 (getting ready to go 850 >> null modem cable >> serial to USB cable >> Pi Zero), who the heck designed the input/outputs on this thing? POWER and SIO on the FRONT... 

 

It's actually the perfect position when placing the 850 underneath a monitor.  What bothered me was the position of the printer port.  Connectors should be at two sides max, not three or more.



#16 spiffster OFFLINE  

spiffster

    Combat Commando

  • 8 posts

Posted Mon Mar 26, 2018 9:16 AM

Update:

I'm still on this.  It's almost finished.  The only part remaining to be done is the SIO connector.  I couldn't bring myself to cut an SIO cable in half, so I'm waiting on a 3D-printed connector.  I don't have a 3D printer, so someone else handled that and the connector sans contacts and nut/bolt is being mailed to me.  I have the contacts already, and hope to find a suitable nut/bolt at the hardware store. 

I did find out, though, that my local library does have a 3D printer.  I just need to take a class to learn how to use it, before I'm allowed to use it (probably a wise choice).



#17 tschak909 OFFLINE  

tschak909

    River Patroller

  • Topic Starter
  • 2,408 posts
  • Location:USA

Posted Mon Mar 26, 2018 9:20 AM

That's awesome!  Both that you're close to finished hardware, and that your local library provides 3D printer access! :)

 

-Thom



#18 ricortes OFFLINE  

ricortes

    Dragonstomper

  • 624 posts

Posted Mon Mar 26, 2018 5:04 PM

The remaining SIO signals can go to other various pins.  The 850 almost certainly uses the COMMAND signal, but probably not the CLOCK ones.  The others I'm not sure about.  Since SIO uses 5V signals and the ESP8266 is a 3.3V device, I plan on using two 74AHCT125s as level shifters, one for incoming signals and one for outgoing ones.  Each can handle four signals.  These would probably be in: READY, COMMAND, DATA OUT; out: DATA IN, PROCEED, INTERRUPT.  Let me know if you think more connections are needed.

Also, I did get a cyber1 account and can access it using pterm, but I currently lack the means to load the Atari Plato software.  I have a MaxFlash setup on the way.

IMHO, consider using the 74xx245 part of some flavor, preferably with a 3.3V regulator in the mix. For example, if you use a 74HC245, you could just run it at 3.3V and it should be fine with level conversion. Same for a 74HCT245. Octal so you would only need one and still has an OE pin so you could isolate other leads like the RVerter or derivatives. 



#19 spiffster OFFLINE  

spiffster

    Combat Commando

  • 8 posts

Posted Tue Mar 27, 2018 7:33 AM

IMHO, consider using the 74xx245 part of some flavor, preferably with a 3.3V regulator in the mix. For example, if you use a 74HC245, you could just run it at 3.3V and it should be fine with level conversion. Same for a 74HCT245. Octal so you would only need one and still has an OE pin so you could isolate other leads like the RVerter or derivatives. 

How does it provide 5V outputs while running at 3.3V?

.


#20 ricortes OFFLINE  

ricortes

    Dragonstomper

  • 624 posts

Posted Tue Mar 27, 2018 2:20 PM

 

How does it provide 5V outputs while running at 3.3V?

.

 

I'm not sure about every line, but IIRC POKEY provides internal pull ups to prevent floating/oscillation when nothing is plugged in. It should still switch properly as another IIRC :(  the serial buss from the Atari Technical Manual or De Re Atari said ~1.2V => high level. Any CMOS part running at 3.3V should swing full range 0-3.3V and any other CMOS part that gets stuck on the buss should transition at 2.5 V. I can't remember load and drive capability which could become important.






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users