SIO2PI -> Raspberry Pi als Floppy


SIO2PI -> Raspberry Pi als Floppy

von Montezuma » Sa 16. Feb 2013, 21:17
Raspberry Pi ist ein sehr kleiner und günstiger Rechner http://www.raspberrypi.org/faqs,
der auch Atari Laufwerke emulieren kann.

Der Raspberry Pi ist sogar mit einem UART ausgestattet.
Um ein SIO2PI Kabel zu bauen braucht man noch einen Pegelwandler (3.3V <-> 5V).
Es gibt sogar eine fertige Platine, die man dafür nutzen kann:
Logic Level Converter Sparkfun BOB-08745
http://www.sparkfun.com/products/8745

Es gibt allerdings einen kleinen Haken.
Der Prozessor auf dem Raspberry Pi http://www.raspberrypi.org/wp-content/u ... herals.pdf unterstützt zwar UART mit Handshaking, aber die Raspberry Pi Entwickler hielten es nicht für nötig, das CTS Signal nach außen zu Verfügung zu stellen http://elinux.org/RPi_Low-level_peripherals.

Dafür habe ich aber eine Lösung gefunden.
Das "Command" Signal von SIO habe ich an einen Raspberry Pi I/O PIN angeschlossen, und das in der Software (AspeQt) berücksichtigt.
Erstmal ein Diagram von dem SIO2PI Kabel:

sio2pi.jpg
SIO2PI Diagram
sio2pi.jpg (181.05 KiB) 14721-mal betrachtet

Code: Alles auswählen
Atari 2 Adapterplatine

SIO 3  (data in)  -->|--- TXO (Chan1) über eine Schottky Diode (1N5817) in Richtung von Atari zur Adapterplatine
SIO 5  (data out)       - RXI (Chan1)
SIO 10 (+5V)            - HV
SIO 4  (gnd)            - GND
SIO 7  (command)        - RXI (Chan2)

Adapterplatine 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)

Der Rest der Beschreibung gilt für das default OS - Raspbian “wheezy” (Linux Debian)
http://www.raspberrypi.org/downloads

Um UART nur für unsere Zwecke zu nutzen muss man auf dem Raspberry noch zwei Dateien editieren:
/boot/cmdline.txt
/etc/inittab
Eine Anleitung dazu:
http://www.irrational.net/2012/04/19/us ... rial-port/

Alternativ kann man einen USB2Serial Adapter mit einem SIO2PC Kabel nutzen.
Ich habe beide Varianten (FTDI und Prolific) mit Raspberry Pi getestet.

Der Raspberry Pi UART heißt "/dev/ttyAMA0"
Ein USB2Serial UART wird als "/dev/ttyUSB0" erscheinen.

Jetzt brauchen wir die Software.
Ich habe zwei Tools mit Raspberry Pi getestet:
- sio2bsd von drac030 http://drac030.krap.pl/en-inne-pliki.php
- AspeQt von Fatih Aygün http://sourceforge.net/projects/aspeqt/

Das erste Tool nutzt kein Hardware Handshaking, so dass keine Änderungen in der Software nötig waren.
Nach einer kleinen Anpassung vom Makefile konnte ich die Software schon kompilieren.
Dank der Erlaubnis des Autors kann ich Euch hier die Software zum Download anbieten:
sio2bsd.tar.gz
sio2bsd (Raspberry Pi Version)
(66.63 KiB) 360-mal heruntergeladen

Mit AspeQt war es ein wenig komplizierter.
Erstmal ist das Fenster ziemlich groß (mindestens wenn man FBAS Signal nutzt).
Deswegen habe ich zwei Versionen gebaut:
- einmal eine Version, die nur 4 Atari Laufwerke emuliert
- einmal eine volle Version (die erkennt man an der "_hd" Endung)

Zusätzlich gibt es seit einiger Zeit eine neue Version (0.8.7) von dem Tool.
Das habe ich auch berücksichtigt und folgende Versionen gebaut:
aspeqt_0.6
aspeqt_0.6_hd
aspeqt_0.8.7
aspeqt_0.8.7_hd
AspeQt.tar.gz
AspeQt (Raspberry Pi Versionen)
(1.73 MiB) 448-mal heruntergeladen

Die stabile Version 0.6 beinhaltet schon die Anpassungen von Hias.


Um ein AspeQt Icon auf dem Raspberry Pi Desktop zu erstellen, muss man in das "Desktop" Verzeichnis (/pi/home/Desktop) die Datei "AspeQt.Desktop" reinkopieren.
Für die jenigen, die die Software selbst kompielieren möchten noch zwei Downloads:

AspeQt_0.6_src.tar.gz
0.6 source
(766.12 KiB) 351-mal heruntergeladen

AspeQt_0.8.7_src.tar.gz
0.8.7 source
(1.85 MiB) 346-mal heruntergeladen

Um selbst die Software zu kompilieren braucht man (außer Qt) noch eine Library:
http://www.open.com.au/mikem/bcm2835/

Viel Spaß!

Re: SIO2PI -> Raspberry Pi als Floppy

von cas » So 17. Feb 2013, 13:26
Wow, Super

vielen vielen Dank!

Den RasPi dann noch als Netzwerkkarte zu nehmen ist nun nicht mehr ein so grosser Schritt.

Re: SIO2PI -> Raspberry Pi als Floppy

von Sven » So 17. Feb 2013, 17:10
cas hat geschrieben:Den RasPi dann noch als Netzwerkkarte zu nehmen ist nun nicht mehr ein so grosser Schritt.

Genau mit dem Thema beschäftige ich mich seit einigen Monaten (basierend auf dedizierter HW) und kann sagen: sooo einfach ist es auch wieder nicht :(

Re: SIO2PI -> Raspberry Pi als Floppy

von cas » So 17. Feb 2013, 18:25
Sven hat geschrieben:
cas hat geschrieben:Den RasPi dann noch als Netzwerkkarte zu nehmen ist nun nicht mehr ein so grosser Schritt.

Genau mit dem Thema beschäftige ich mich seit einigen Monaten (basierend auf dedizierter HW) und kann sagen: sooo einfach ist es auch wieder nicht :(


Auf dem RasPi läuft ja schon ein Linux mit einem vollen TCP/IP Stack.

Re: SIO2PI -> Raspberry Pi als Floppy

von Montezuma » So 17. Feb 2013, 23:46
cas hat geschrieben:Wow, Super
vielen vielen Dank!
Den RasPi dann noch als Netzwerkkarte zu nehmen ist nun nicht mehr ein so grosser Schritt.


Hallo Carsten,
danke für die netten Worte :)

Meinst Du Atari als Terminal zu nutzen?
Das hat schon mal atarixle mit Linux PCs ausprobiert:
http://www.abbuc.de/~atarixle/tipp/terminal.htm

Mit Raspberry würde es natürlich auch funktionieren - wenn man die zwei von mir in der Anleitung erwähnte Dateien (/boot/cmdline.txt und /etc/inittab) gar nicht anfassen würde, dann wäre der Raspberry sofort über /dev/ttyAMA0 mit 115200 bps zum Gespräch bereit.

Die Datei /boot/cmdline.txt könnte man trotzdem editieren, um die Kernel Traces auszuschalten.
Und in der Datei /etc/inittab müsste man nur die Geschwindigkeit reduzieren:
von:
2:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
auf:
2:23:respawn:/sbin/getty -L ttyAMA0 9600 vt100

Oder meintest Du etwas ganz anderes?

Schöne Grüße
Marcin

Re: SIO2PI -> Raspberry Pi als Floppy

von cas » Mo 18. Feb 2013, 11:12
Montezuma hat geschrieben:
cas hat geschrieben:Wow, Super
vielen vielen Dank!
Den RasPi dann noch als Netzwerkkarte zu nehmen ist nun nicht mehr ein so grosser Schritt.


Hallo Carsten,
danke für die netten Worte :)

Meinst Du Atari als Terminal zu nutzen?
Das hat schon mal atarixle mit Linux PCs ausprobiert:
http://www.abbuc.de/~atarixle/tipp/terminal.htm

Mit Raspberry würde es natürlich auch funktionieren - wenn man die zwei von mir in der Anleitung erwähnte Dateien (/boot/cmdline.txt und /etc/inittab) gar nicht anfassen würde, dann wäre der Raspberry sofort über /dev/ttyAMA0 mit 115200 bps zum Gespräch bereit.

Die Datei /boot/cmdline.txt könnte man trotzdem editieren, um die Kernel Traces auszuschalten.
Und in der Datei /etc/inittab müsste man nur die Geschwindigkeit reduzieren:
von:
2:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
auf:
2:23:respawn:/sbin/getty -L ttyAMA0 9600 vt100

Oder meintest Du etwas ganz anderes?

Schöne Grüße
Marcin


Ich meinte eher:

a) die SIO Atari 850 Commandos umsetzen um ein RS232-over-TCP/IP zu einem anderen Rechner zu erzeugen

b) einen Satz von SIO Kommandos für TCP/IP Kommunikation zu definieren, mit denem man über SIO auf dem Atari TCP/IP Programme schreiben kann (ähnlich wie die Hayes AT Kommandos Lantronix Produkten, nur mit SIO Kommandos statt AT Befehlen).

-- Carsten

Re: SIO2PI -> Raspberry Pi als Floppy

von Sven » Mo 18. Feb 2013, 12:37
cas hat geschrieben:a) die SIO Atari 850 Commandos umsetzen um ein RS232-over-TCP/IP zu einem anderen Rechner zu erzeugen

b) einen Satz von SIO Kommandos für TCP/IP Kommunikation zu definieren, mit denem man über SIO auf dem Atari TCP/IP Programme schreiben kann (ähnlich wie die Hayes AT Kommandos Lantronix Produkten, nur mit SIO Kommandos statt AT Befehlen).


Seit letztem Jahr arbeite ich an einem SIO2IP. Aktuell bin ich so weit, dass die Standardfunktion (Emulation eines Disk-Laufwerks) steht und ein einfacher TCP/IP-Stack implementiert ist. Einfache Dinge wie Webserver, NTP funktionieren, allerdings noch ohne entsprechende SIO-Unterstützung. Und hier wird es generell auch interessant. Einfache Punkt-zu-Punkt-Verbindungen ähnlich einem Modem wäre hier etwas kurz gesprungen, da die Möglichkeiten deutlich mehr zulassen würden (dynamisches Nachladen von Images / Daten, "Mounten" von extern abgelegten Images, Chats mit mehreren Teilnehmern, Multiplayergaming etc.)

Aktuell bin ich darüber am Grübeln, wie ein sinnvolles SIO-Protokoll dazu aussehen könnte. Immerhin kommen hier seitliche Verzögerungen durch Ethernet, bzw. DSL u.a. Übertragungsmedien ins Spiel, die eine spontane Kommunikation nicht möglich machen.
Idee aktuell ist, bis zu 8/16 Sockets zu realisieren und darüber per OPEN, READ und WRITE zuzugreifen.

Gibt es aktuell vielleicht schon eine ähnlich geartete Implementierung oder hat jemand Lust sich an dem Thema zu beteiligen?

Aktuell besteht die Plattform aus einem Atmega mit ENC28J60 und einer Realtime-Clock. Das Device soll als reguläres Gerät im SIO-Bus laufen und vom ATARI mit Strom versorgt werden.

Gruß
Sven

Re: SIO2PI -> Raspberry Pi als Floppy

von cas » Mo 18. Feb 2013, 13:42
Sven hat geschrieben:
cas hat geschrieben:a) die SIO Atari 850 Commandos umsetzen um ein RS232-over-TCP/IP zu einem anderen Rechner zu erzeugen

b) einen Satz von SIO Kommandos für TCP/IP Kommunikation zu definieren, mit denem man über SIO auf dem Atari TCP/IP Programme schreiben kann (ähnlich wie die Hayes AT Kommandos Lantronix Produkten, nur mit SIO Kommandos statt AT Befehlen).


Seit letztem Jahr arbeite ich an einem SIO2IP. Aktuell bin ich so weit, dass die Standardfunktion (Emulation eines Disk-Laufwerks) steht und ein einfacher TCP/IP-Stack implementiert ist. Einfache Dinge wie Webserver, NTP funktionieren, allerdings noch ohne entsprechende SIO-Unterstützung. Und hier wird es generell auch interessant. Einfache Punkt-zu-Punkt-Verbindungen ähnlich einem Modem wäre hier etwas kurz gesprungen, da die Möglichkeiten deutlich mehr zulassen würden (dynamisches Nachladen von Images / Daten, "Mounten" von extern abgelegten Images, Chats mit mehreren Teilnehmern, Multiplayergaming etc.)

Aktuell bin ich darüber am Grübeln, wie ein sinnvolles SIO-Protokoll dazu aussehen könnte. Immerhin kommen hier seitliche Verzögerungen durch Ethernet, bzw. DSL u.a. Übertragungsmedien ins Spiel, die eine spontane Kommunikation nicht möglich machen.
Idee aktuell ist, bis zu 8/16 Sockets zu realisieren und darüber per OPEN, READ und WRITE zuzugreifen.

Gibt es aktuell vielleicht schon eine ähnlich geartete Implementierung oder hat jemand Lust sich an dem Thema zu beteiligen?

Aktuell besteht die Plattform aus einem Atmega mit ENC28J60 und einer Realtime-Clock. Das Device soll als reguläres Gerät im SIO-Bus laufen und vom ATARI mit Strom versorgt werden.

Gruß
Sven


Es gibt ja auch in der englischsprachigen Atari Community (AtariAge) Projekte für ein Netzwerkinterface für den Atari.

Alle Beteiligten sollten an einen (virtuellen) Tisch gebracht werden und dann dort besprechen, welche Funktionen gewünscht / geplant sind und dann mit Entwicklern, die Erfahrung im Entwerfen von API-Schnittstellen haben, eine generische Schnittstelle entwickeln.

Wenn das nicht gemacht wird, sehe ich die Gefahr das es verschiedene untereinander nicht kompatible Schnittstellen geben wird und Entwickler dann entweder nur für eine Schnittstelle programmieren, oder aber eine Zwischenschicht notwendig wird welche die Schnittstellen gleich macht (das kostet wervollen Speicherplatz und Geschwindigkeit).

Leider habe ich die kommenden Monatge zu viel Arbeit um das Thema vorran zu treiben.

Re: SIO2PI -> Raspberry Pi als Floppy

von Montezuma » Mo 18. Feb 2013, 15:08
Wenn ich es richtig verstanden habe:

1) die erste Idee von Sven war ein "EthernetModem" zu bauen (so etwas wie http://www.ipcas.de/download/produkte/i ... ndbuch.pdf)
Es wäre dann aber nur eine P2P Verbindung.

2) die zweite Idee wäre das Socket Interface über SIO zu definieren. Das würde Client/Server Verbindungen (mit mehreren Clients) ermöglichen.

Mir gefällt die zweite Idee sehr gut (besonders Multiplayergaming).

Am Ende könnte man sich mit anderen Hardware Entwickler auf ein API einigen (wie zum Beispiel das hier für SIO2SD: http://sio2sd.gucio.pl/wiki/SIOCommands_de), so dass die Software Entwickler nur eine Schnittstelle lernen / programmieren müssten.

Re: SIO2PI -> Raspberry Pi als Floppy

von Sven » Mo 18. Feb 2013, 21:26
Bisher kenne ich nur das Projekt http://www.atari8ethernet.com, was als Modul ausgelegt ist.

Meine Intention geht in die SIO-Richtung und das als vollwertiges "Mitglied" des SIO-Busses. Bisher habe ich das nicht als offizielles Projekt veröffentlicht und nutze es eigentlich nur um mich in die Thematik Microcontroller und ATARI einzuarbeiten. Auch geht meine Linie nicht einher mit den bisherigen Entwicklungen, die immer klein, kleiner, am Kleinsten ausgelegt sind.
Ich möchte alles in 8Bit-Manier und nicht mit SMD aufbauen. Somit habe ich 40pol DIL, 28pol DIL und 8pol DIL bisher verbaut. Ich finde, dies trifft eher die Seele der alten Hardware.

Zum aktuellen Stand kann ich nicht einmal sagen ob alles irgendwann funktioniert. Bisher habe ich das meiste auf meinem Entwicklungsboard realisiert:
IMG_0101.JPG
IMG_0101.JPG (292.31 KiB) 14562-mal betrachtet


Derzeit versuche ich gerade alles neu auf einer Lochrasterplatine mit dem Ziel-Prozessor neu aufzubauen um eine dedizierte Entwicklung mit den angedachten Bauelementen zu erreichen. Wenn die Hardware steht kann man über die Software reden. Aber da bin ich derzeit noch einiges von entfernt :(

Re: SIO2PI -> Raspberry Pi als Floppy

von Montezuma » Di 19. Feb 2013, 14:03
cas hat geschrieben:Es gibt ja auch in der englischsprachigen Atari Community (AtariAge) Projekte für ein Netzwerkinterface für den Atari.


Hi Carsten,
auf Atari Age habe ich auch nur dieses Projekt gefunden:
http://www.atari8ethernet.com/

Die Hardware ist fertig und die Software ist noch unter Entwicklung (momentan läuft nur Telnet).
Allerdings man geht davon aus, dass TCP/IP Stack in Atari implementiert wird.
Mit RAM Erweiterung wohl gut möglich, sonst gibt es keinen Platz mehr für die Applikationen :-)

Deswegen finde ich Deinen Vorschlag sehr effizient und Atari-Resources schonend.
Da muss sich ein Atari Rechner nicht um die low level Sachen (wie TCP/IP Stack) kümmern.
Die Hardware (jeder PC über SIO2PC oder Raspberry Pi über SIO2PI) ist schon da und wenn Sven fertig ist, dann haben wir auch eine auf Atari zugeschnittene Lösung :)
Was noch fehlt ist die SIO Schnittstelle Beschreibung (Mapping von Socket Interface auf SIO), die PC Software und die Atari Software.
Ich werde mich mit dem Thema noch gerne weiter beschäftigen und melde mich wenn ich weiter komme :)

Schöne Grüße
Marcin

Re: SIO2PI -> Raspberry Pi als Floppy

von Sven » Di 19. Feb 2013, 21:50
Ich möchte diesen Thread jetzt nicht mit meinem Thema verwässern, bleiben wir bei einer Nutzung eines Rasperri Pi.
Bleibt meinerseits zu hoffen, dass dadurch eventuell ja das Thema mit dem SIO-Protokoll gelöst wird :)

Re: SIO2PI -> Raspberry Pi als Floppy

von Montezuma » Mo 11. Mär 2013, 11:15
Ein Update vom letzen RENO Treffen.
Mit dem USB2Serial Adapter (FTDI Chipset) und AspeQt auf Raspberry Pi haben wir 125kbit/sec erreicht (Pokey divisor 0).
Damit ist für Raspberry Pi die USB2Serial-Adapter-Lösung besser als der eingebaute Raspberry UART (nur 57600 bit/sec).
Trotzdem haben wir für den eingabuten UART eine nette Anwendung gefunden und getestet.
Ich habe die Datei /etc/inittab editiert
Code: Alles auswählen
sudo vi /etc/inittab

und die letzte Zeile geändert
von
Code: Alles auswählen
2:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

auf
Code: Alles auswählen
2:23:respawn:/sbin/getty -L ttyAMA0 9600 vt100

Dann "Bobterm" auf dem Atari geladen und schon konnten wir uns (vom Atari) auf Raspberry Pi anmelden.
Wir mussten feststellen, dass der telnet client auf dem RPI nicht installiert ist.
Kein Problem:
Auf der Atari-Tastatur eingetippt:
Code: Alles auswählen
sudo apt-get install telnet

und schon konnten wir uns über telnet mit einem BBS verbinden :)

Übrigens AspeQt läuft schon auch auf den Raspberries von Christoph und Stefan.

Re: SIO2PI -> Raspberry Pi als Floppy

von Montezuma » Mi 13. Mär 2013, 10:54
Noch ein Update:
um die neuen Funktionen ("Folder Boot Options") von der Version 0.8.7 zu nutzen müssen sich im AspeQt Ordner zusätzliche Dateien befinden.
Ich habe hier (und im ersten Eintrag auch) die vollständige Version hochgeladen:

http://www.abbuc.de/phpBB3/download/file.php?id=1481

Alternativ kann man aus der Windows Version die folgenden Ordner (samt Inhalt) auf Raspeberry kopieren:
$bootata
$bootmyd
$bootpic
$bootspa

Re: SIO2PI -> Raspberry Pi als Floppy

von rgambke » Mo 14. Dez 2015, 14:44
Hallo,

auch, wenn der Thread hier schon etwas älter ist, finde ich ihn immer noch aktuell. Jedenfalls habe ich woanders zu dieser Thematik nicht viel Neueres gefunden.

Deshalb meine Frage: Habt ihr seitdem schon mehr aus der Kombination ATARI-Raspi herausgeholt?

Nachdem ich ja schon seit Längerem SIO2SD und SIO2USB habe und seit Kurzem auch SIO2PC-USB nutze, hatte ich auch die Idee, ob man die Vorteile von SIO2USB (handliches stand-alone-Gerät) mit denen von SIO2PC-USB plus Aspeqt (komfortables Diskettenhandling) nicht kombinieren könnte. Meine Idee war dann ein RasPi mit angeschlossenem kleinen Touchscreen-LCD. Auf der Suche, ob sowas schon jemand probiert hat, bin ich dann hier gelandet.

Ich würde dafür wohl auch einen RasPi B+ nehmen, RasPi 2 B+ wäre wohl Overkill für die Anwendung. Meinen habe ich schon mit so einem LCD:

http://www.amazon.de/Makibes-4-Zoll-Tou ... B00S7U1SLA

zu laufen. Ich gehe mal davon aus, daß das Display vor allem I2C und SPI belegt und für den Touchscreen hoffentlich nicht gerade GPIO17. Aber den softwaremäßig in Aspeqt zu verlegen wäre sicher auch kein großes Problem, oder?

Alternativ (und mit deutlich besserer Auflösung) käme noch dieses Display:

http://www.amazon.de/5-Zoll-LCD-HDMI-Hi ... B00UV7E4VI

in Frage, bei dem sogar die belegten GPIOs gekennzeichnet sind.

Über die Feiertage bin ich bei Eltern und Schwiegereltern und nehme nur meine ATARI-8-Bit Ausrüstung mit. Das heißt, ich habe genug Zeit, mich mit dem Thema zu beschäftigen und alles auszuprobieren. Gibt es irgendetwas zu beachten oder neue Erkenntnisse, die noch nicht hier im Thread diskutiert wurden? Hat vielleicht inzwischen auch schon jemand einen stand-alone RasPi mit LCD als Diskettenersatz aufgebaut?

Gruß,
Rene

Re: SIO2PI -> Raspberry Pi als Floppy

von Montezuma » Mo 14. Dez 2015, 16:28
Hi Rene,

rgambke hat geschrieben:Ich gehe mal davon aus, daß das Display vor allem I2C und SPI belegt und für den Touchscreen hoffentlich nicht gerade GPIO17. Aber den softwaremäßig in Aspeqt zu verlegen wäre sicher auch kein großes Problem, oder?

Ja, das wäre kein Problem.

viel Erfolg und berichte bitte über Deine Fortschritte :)

Gruß
Marcin

P.S.
Du kannst auch einen USB2Seriell (5V) Adapter nutzen (um eventuelle Konflikte mit dem Display auszuschließen)

Re: SIO2PI -> Raspberry Pi als Floppy

von rgambke » Mo 14. Dez 2015, 16:36
Das werde ich! USB-TTL Wandler hätte ich auch hier. Direkte Nutzung der RasPi Ressourcen wäre mir aber lieber. Ich hab mal das 5" Display bestellt. Das kann man wohl theoretisch auch nur über HDMI und USB (für Touch) anschließen. Aber am Liebsten wäre es mir, wenn am Ende alles in einer kleinen Box untergebracht wird, ohne unnötige Verkabelungen. Eigentlich ist es ja wirklich nur ein Kombinieren von bereits vorhandenen Lösungen. Das sollte es deutlich vereinfachen.

Gruß, Rene

Re: SIO2PI -> Raspberry Pi als Floppy

von Montezuma » Mo 22. Feb 2016, 17:07
Ein kleines Update (für Debian Jessie):
- die aktuelle RespeQt Version für RPI: http://atariage.com/forums/topic/248789 ... try3446620
- die Anleitung fürs Benutzen von ATARI als Terminal für RPI: http://atariage.com/forums/topic/249426 ... try3446665