Jump to content

Photo

SIO2PI -> Raspberry Pi as a floppy


13 replies to this topic

#1 TheMontezuma OFFLINE  

TheMontezuma

    Dragonstomper

  • 563 posts
  • Location:Hildesheim, D / Kraków, PL

Posted Sat Feb 16, 2013 4:27 PM

The Raspberry Pi is a small and inexpensive computer http://www.raspberrypi.org/faqs,
that can also emulate ATARI floppies.

It is shipped with UART.
To build a SIO2PI Adapter you will need a level shifter (3.3V <-> 5V).
There is an existing solution for it:
Logic Level Converter Sparkfun BOB-08745
http://www.sparkfun.com/products/8745

However one problem still exists.
The SystemOnChip used in Raspberry Pi http://www.raspberry...Peripherals.pdf supports UART with Handshaking, but the Raspberry Pi hardware developers decided for some reasons not to provide the CTS Signal on the GPIO header http://elinux.org/RP...vel_peripherals

I found a workaround for it.
I have connected the "command" signal from SIO to one of the I/O PINs of the Raspberry Pi and adapted the Software (AspeQt).

sio2pi.jpg

Atari 2 Level Shifter

SIO 3 (data in) -->|--- TXO (Chan1) via diode (for example 1N5817) direction from Atari to the level shifter
SIO 5 (data out)	 - RXI (Chan1)
SIO 10 (+5V)		 - HV
SIO 4 (gnd)		 - GND
SIO 7 (command)	 - RXI (Chan2)

Level Shifter 2 Raspberry Pi

TXI (Chan1) - P1_08 (GPIO14 / TxD)
RXO (Chan1) - P1_10 (GPIO15 / RxD)
LV		 - P1_01 (+3,3V)
GND		 - P1_06
RXO (Chan2) - P1_11 (GPIO17)

Alternatively you can use USB2Serial adapter together with a SIO2PC adapter.
I have tested both variants (FTDI and Profilic).

To use UART for our goals, we need to edit two files on the Raspberry:
/boot/cmdline.txt
/etc/inittab
More details:
http://www.irrationa...is-serial-port/

Now we need the software.
I've tested two software tools with the Raspberry Pi:
- sio2bsd from drac030 http://drac030.krap....-inne-pliki.php
- AspeQt from Fatih Aygün http://sourceforge.n...rojects/aspeqt/

The first tool does not need hardware handshaking, so no changes were required in the code.
After adapting the makefile I could easily compile the code.
Thanks to drac030 I can offer you software download of the Raspberry Pi version (sio2bsd.tar.gz).

There were some problems with the AspeQt.
First of all - the Application Window is too big (if you use Composite Video signal of the Raspberry Pi).
So I build two vesions:
- a small size one (emulates only 4 drives)
- a standard one (has a "_hd" suffix)

Since some days there is a new version (0.8.7) of the tool available.
That's why I decided to build the following binaries:
aspeqt_0.6
aspeqt_0.6_hd
aspeqt_0.8.7
aspeqt_0.8.7_hd

The stable version 0.6 includes changes from Hias.

If you want to put AspeQt icon on the Raspberry Pi desktop, you should create a folder called "Desktop" in the "home" folder (/pi/home) and copy the "AspeQt.Desktop" file there.

Have Fun!

Attached Files


Edited by TheMontezuma, Sat Feb 16, 2013 4:34 PM.


#2 jdh OFFLINE  

jdh

    Chopper Commander

  • 249 posts
  • Location:Nottingham, UK

Posted Sat Feb 16, 2013 5:41 PM

Fantastic. Will have a play with this tomorrow.
Thanks for your efforts :thumbsup:

#3 TheMontezuma OFFLINE  

TheMontezuma

    Dragonstomper

  • Topic Starter
  • 563 posts
  • Location:Hildesheim, D / Kraków, PL

Posted Wed Feb 20, 2013 10:32 AM

I have forgotten to mention the names of the serial ports (if somebody wants to change default settings of AspeQt or sio2bsd):
The Raspberry Pi built-in UART is "/dev/ttyAMA0" and the USB2Serial UART should be accessible as "/dev/ttyUSB0".

#4 griz OFFLINE  

griz

    Star Raider

  • 96 posts
  • Location:Canada

Posted Sun Mar 24, 2013 5:34 PM

Thanks for sharing! I really appreciate it.

I built an SIO2PI on a protoboard and it works great with sio2bsd (I haven't tried AspeQt yet).

I have a usb wireless adapter in the Raspberry Pi. This allows me to connect to the Pi from my main computer (using SSH) and change the ATRs for the Atari.

Attached Thumbnails

  • sio2pi-protoboard.jpg

Edited by griz, Sun Mar 24, 2013 5:38 PM.


#5 hbonath OFFLINE  

hbonath

    Combat Commando

  • 2 posts

Posted Mon Jun 17, 2013 8:31 AM

Thanks so for your work on this! This is a fantastic little project, and got me back into using my Atari!

I have assembled this adapter using the level shifter and an old PC Floppy disk cable plugged into the GPIO header on the Pi. I didn't have a Schottky 1N5817 Diode and substituted a 1N4004.
I am able to use this with the CLI based "sio2bsd" provided and it works great!
However, when using the more feature ritch "AspeQt" provided in the Link above, I don't seem to get any activity between my 600XL and the Pi.
I've even gone to re-download the source code and recompile and I get the same results.

Essentially what happens, is that when starting emulation in AspeQt, the CPU of the Pi spikes to 100% when I try to perform any communication, i.e. Cold-Starting the 600XL with Option, or attempting to load a .CAS file from AspeQt, or running an LPRINT in BASIC, I don't seem to get anything.

I am assuming that the issue I am running into is the Handshaking mentioned in the above posts, via the SIO Command Signal through the level shifter to GPIO Pin 11 (GPIO 17)
Could you offer any assistance, or perhaps post what was modified in the source code to achieve this behavior? I would LOVE to get this working and use the advanced features in AspeQt!
Thanks again!
-Henry

#6 hbonath OFFLINE  

hbonath

    Combat Commando

  • 2 posts

Posted Tue Jun 18, 2013 8:04 PM

Thanks so for your work on this! This is a fantastic little project, and got me back into using my Atari!

I have assembled this adapter using the level shifter and an old PC Floppy disk cable plugged into the GPIO header on the Pi. I didn't have a Schottky 1N5817 Diode and substituted a 1N4004.
I am able to use this with the CLI based "sio2bsd" provided and it works great!
However, when using the more feature ritch "AspeQt" provided in the Link above, I don't seem to get any activity between my 600XL and the Pi.
I've even gone to re-download the source code and recompile and I get the same results.

Essentially what happens, is that when starting emulation in AspeQt, the CPU of the Pi spikes to 100% when I try to perform any communication, i.e. Cold-Starting the 600XL with Option, or attempting to load a .CAS file from AspeQt, or running an LPRINT in BASIC, I don't seem to get anything.

I am assuming that the issue I am running into is the Handshaking mentioned in the above posts, via the SIO Command Signal through the level shifter to GPIO Pin 11 (GPIO 17)
Could you offer any assistance, or perhaps post what was modified in the source code to achieve this behavior? I would LOVE to get this working and use the advanced features in AspeQt!
Thanks again!
-Henry


Figured it out based on some of your other posts on the Atari forums: I was missing the Raspberry Pi Specific Broadcom BCM 2835 Library found here: http://www.airspayce.../mikem/bcm2835/
Once I compiled and installed, your custom versions of AspeQt work Fantastic! Thank you so much for doing the back-end work here!
-H

#7 Waltermixxx OFFLINE  

Waltermixxx

    Space Invader

  • 36 posts
  • Location:Woodbridge, Ontario, Canada

Posted Wed Jun 19, 2013 1:29 PM

any chance we can get a guide on how to do this ( the software side of things) The hardware I can figure out :) ? it would be great if we could :) i just purchased an atari 800 and would love to get it up and running with some disk images, I have a couple of raspberry pi's and this sounds like the perfect application for them. I don't have much linux experience, so re-compiling for me usually requires a few detailed steps :) Any help would be awesome :)

thank you :)

Edited by Waltermixxx, Wed Jun 19, 2013 1:29 PM.


#8 SenorRossie ONLINE  

SenorRossie

    Space Invader

  • 37 posts
  • Rediscovering the atari 8bit after 30 orso years
  • Location:Virgo Supercluster, Local Group, Milky Way, Solar System, Earth, Europe, The Netherlands, Flevoland, Almere

Posted Thu Jun 19, 2014 6:23 AM

OFFTOPIC: First of all, apologies for reviving an old thread, but as far as I can tell, that is the way things work here.
 
ONTOPIC: Some time has passed since the initial design was posted here, and in the meantime sparkfun has dropped the used version (BOB-08745) of the level converter in favour of a bidirectional one (https://www.sparkfun.../products/12009). This means (beside a different product to purchase) there are also some minor changes in the naming of the connections. The connections to be made to the BOB-12009 Level Shifter are:

*** Atari TO Level Shifter
SIO 3 (data in) -->|--- HV1    *via diode (for example 1N5817) direction from Atari to the level shifter*
SIO 5 (data out) - HV2
SIO 10 (+5V) - HV
SIO 4 (gnd) - GND
SIO 7 (command) - HV3          *OPTIONAL*

*** Level Shifter TO Raspberry Pi
LV1 (Chan1) - P1_08 (GPIO14 / TxD)
LV2 (Chan1) - P1_10 (GPIO15 / RxD)
LV - P1_01 (+3,3V)
GND - P1_06
LV3 (Chan2) - P1_11 (GPIO17)   *OPTIONAL*

The patched version of sio2bsd from this post does not need the optional wire and works fine without it - at least on my setup.

 

I initially purchased the SIO2PC/10502PC Dual-USB device from Atari8Warez for use with my Raspberry Pi. And described the installation in http://atariage.com/...0502pc-dual-usb/ everything from that post can be used with this device as well. The modification of the /etc/inittab file (to free up the serial port on the pi) is the default setting of the distribution used in the post, so it's all (solder,) plug and play!

 

*EDIT* Almost forgot: due to the use of the 'internal' UART (serial port) of the Pi with this device, replace /dev/ttyUSB0 from my installation post with /dev/ttyAMA0


Edited by SenorRossie, Thu Jun 19, 2014 6:28 AM.


#9 mattlacey OFFLINE  

mattlacey

    Star Raider

  • 83 posts
  • Location:Melbourne, Australia

Posted Sun Jul 6, 2014 2:53 AM

Thanks for the info (especially the update)! Managed to put this together today and had it up and running in no time. Some of the disk images I got don't seem to work, just heard the loading noises and then end up in BASIC, but I guess that's more a machine compatibility thing or something.

 

Kudos for getting this worked out!



#10 TheMontezuma OFFLINE  

TheMontezuma

    Dragonstomper

  • Topic Starter
  • 563 posts
  • Location:Hildesheim, D / Kraków, PL

Posted Sat May 7, 2016 7:34 AM

Another RPI link for completeness:

http://atariage.com/...pi-visiting-bbs



#11 bfollett OFFLINE  

bfollett

    Dragonstomper

  • 509 posts

Posted Sat May 7, 2016 4:00 PM

Thanks for the info (especially the update)! Managed to put this together today and had it up and running in no time. Some of the disk images I got don't seem to work, just heard the loading noises and then end up in BASIC, but I guess that's more a machine compatibility thing or something.

 

Kudos for getting this worked out!

 

Some programs won't disable basic during their load.  I think it's hold down Option during boot to disable basic.  I'd try that for the disks that don't load.

 

Bob



#12 Matej OFFLINE  

Matej

    Moonsweeper

  • 323 posts

Posted Fri May 19, 2017 3:24 PM

Can we use this for ethernet?



#13 TheMontezuma OFFLINE  

TheMontezuma

    Dragonstomper

  • Topic Starter
  • 563 posts
  • Location:Hildesheim, D / Kraków, PL

Posted Fri May 19, 2017 11:43 PM

As long as there is a software running on the Raspberry, which would support it.
Btw.
As discussed in the RespeQt forum, this version of the "SIO2PI" cable can be simplified if used with RespeQt.
No connection is required between Atari command line and a GPIO pin. Instead a "NONE" or "Software" handshake setting shall be used in RespeQt.
A cheap level shifter supporting only 2 lines (RxD, TxD) will work.


Edited by TheMontezuma, Sat May 20, 2017 12:35 AM.


#14 griz OFFLINE  

griz

    Star Raider

  • 96 posts
  • Location:Canada

Posted Sat Aug 12, 2017 4:20 PM

Originally I built an sio2pi interface board (see above) to accept the ribbon cable for the original Raspberry Pi. Currently I only have a Raspberry Pi A+ to play with and the gpio cables are different, so I wired it up manually.

 

ataripi-interface.jpg

 

I think this would be a good project for a Raspberry Pi Zero W. The logic level converter could be done very small and the whole thing could fit into a tiny 3D printed case. The "W" even has built-in wireless which my rpi A+ does not (hence the wifi dongle).

 

ataripi-tablet.jpg

I then installed Apache + PHP and wrote a little front-end for sio2bsd. A very basic ATR selector but it works well. Now I can access my ATRs from my real Atari using my tablet. I simply point the web browser to http://ataripi/ (the name of this rpi).

 

screenshot.png

 

It's cool to have a web based interface to load ATRs into my Atari using wifi.






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users