Jump to content
Tempest

SIO2PC USB with RespeQt Port Speed

Recommended Posts

What's the fastest port speed one can achieve using an SIO2PC USB device and RespeQt on an Incognito 800?  I'm only getting 19200 which is alright, but I think I can get it to go faster with the right set of options either in the RespeQt options or the Incognito BIOS.

Share this post


Link to post
Share on other sites
4 hours ago, Tempest said:

What's the fastest port speed one can achieve using an SIO2USB device and RespeQt on an Incognito 800?  I'm only getting 19200 which is alright, but I think I can get it to go faster with the right set of options either in the RespeQt options or the Incognito BIOS.

Divisor 0 which is around 125,000 is obtainable on any machine.  Not sure why you are only able to get single speed SIO.  This is assuming Disk I/O, not a modem connection. 

  • Like 1

Share this post


Link to post
Share on other sites
6 hours ago, Tempest said:

What's the fastest port speed one can achieve using an SIO2PC USB device and RespeQt on an Incognito 800?  I'm only getting 19200 which is alright, but I think I can get it to go faster with the right set of options either in the RespeQt options or the Incognito BIOS.

Make sure you enable the PBI BIOS in the Incognito BIOS settings and then make sure High Speed SIO is also enabled. In the RespeQt settings, use the setting to enable non-standard POKEY divisor and set it at 0. That will give you the absolute fastest SIO speed the Atari is capable of.

  • Like 2

Share this post


Link to post
Share on other sites
44 minutes ago, DrVenkman said:

Make sure you enable the PBI BIOS in the Incognito BIOS settings and then make sure High Speed SIO is also enabled. In the RespeQt settings, use the setting to enable non-standard POKEY divisor and set it at 0. That will give you the absolute fastest SIO speed the Atari is capable of.

Thanks, I'll do that.  What do those other SIO transfer options in the bios do?  I think there's more than one high speed choice.

Share this post


Link to post
Share on other sites

Anyone know if there's a Linux driver for the SIO2PC USB style device?  Windows 10 seemed to find and download a driver automatically, but of course Linux won't do that...

Share this post


Link to post
Share on other sites
1 hour ago, Tempest said:

Anyone know if there's a Linux driver for the SIO2PC USB style device?  Windows 10 seemed to find and download a driver automatically, but of course Linux won't do that...

If you can access a terminal window, with your device plugged in, cd into the system \dev\ directory and look for some file entry with “usb” in the name. That’s likely the way Linux is going to identify your adapter. So in Respeqt, you’d put in whatever you see (for instance, “\dev\tty_usb0” or something along those lines. Different Linux distros may give it a different designation, but it’ll be something like that. 

  • Like 1

Share this post


Link to post
Share on other sites
17 hours ago, DrVenkman said:

In the RespeQt settings, use the setting to enable non-standard POKEY divisor and set it at 0. That will give you the absolute fastest SIO speed the Atari is capable of.

 

Not trying to be picky, but you can go even faster with synchronous mode. It would be interesting if some of the more advanced SIO2XX devices would support synchronous mode.

 

Share this post


Link to post
Share on other sites
1 minute ago, ijor said:

 

Not trying to be picky, but you can go even faster with synchronous mode. It would be interesting if some of the more advanced SIO2XX devices would support synchronous mode.

 

Does any Atari OS contain code that would support that? 

Share this post


Link to post
Share on other sites
Posted (edited)
13 minutes ago, DrVenkman said:

Does any Atari OS contain code that would support that? 

 

Of course not, so what? No official Atari OS supports divisor zero either, or even high speed for that matter. That didn't stop Happy or USD to implement warp/high speed then. Why that should stop us now?

Edited by ijor
  • Thanks 1

Share this post


Link to post
Share on other sites
12 minutes ago, ijor said:

 

Of course not, so what? No official Atari OS supports divisor zero either, or even high speed for that matter. That didn't stop Happy or USD to implement warp/high speed then. Why that should stop us now?

I believe, then, that’s your cue to make it happen.

 

But in the meantime, for @Tempest and his present-day Incognito-equipped 800, SIO2PC device and RespeQt, divisor 0 is the fastest he can go.  As stated above. 

Share this post


Link to post
Share on other sites
2 hours ago, ijor said:

 

Not trying to be picky, but you can go even faster with synchronous mode. It would be interesting if some of the more advanced SIO2XX devices would support synchronous mode.

 

Tricky 🙂

 

Synchronous mode rang a bell, candle had a look at it some time ago - see this thread

 

The major problem though isn't async vs sync mode but coping with the CPU, ANTIC cycle stealing and OS NMI limitations so it'll work reliable in normal use case scenarios.

 

POKEY really is a bitch (no FIFO, requiring manual acknowledgement of received bytes via IRQEN etc) and I'm not sure it's possible to get faster transfers working with full error checking (overrun, timeout, framing errors) than I implemented in my highspeed SIO code.

 

With ANTIC DMA and NMI turned off and framing/overrun error checking removed faster speeds should be possible, but that's a bit of a niche use case.

 

I still haven't found time to look into that (TBH it wasn't too high priority to me either), so if someone wants to have a go at that I'd be interested to read/hear about that!

 

so long,

 

Hias

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, DrVenkman said:

I believe, then, that’s your cue to make it happen.

 

But in the meantime, for @Tempest and his present-day Incognito-equipped 800, SIO2PC device and RespeQt, divisor 0 is the fastest he can go.  As stated above. 

Here's a video showing a long Divisor 0 disk copy for reference:

 

Share this post


Link to post
Share on other sites
5 hours ago, DrVenkman said:

If you can access a terminal window, with your device plugged in, cd into the system \dev\ directory and look for some file entry with “usb” in the name. That’s likely the way Linux is going to identify your adapter. So in Respeqt, you’d put in whatever you see (for instance, “\dev\tty_usb0” or something along those lines. Different Linux distros may give it a different designation, but it’ll be something like that. 

Ok I found it.  This is what lsusb -v outputs:

 

Bus 007 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0403 Future Technology Devices International, Ltd
  idProduct          0x6001 FT232 Serial (UART) IC
  bcdDevice            6.00
  iManufacturer           1 FTDI
  iProduct                2 sio2pc-USB   www.lotharek.pl
  iSerial                 3 A51JDTR9
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               90mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 sio2pc-USB   www.lotharek.pl
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)

 

Looks like it's USB0 as ls -l /sys/class/tty/*/device/driver get's me this:

lrwxrwxrwx 1 root root 0 Mar 26 19:18 /sys/class/tty/ttyUSB0/device/driver -> ../../../../../../../bus/usb-serial/drivers/ftdi_sio

So how do I use this information in RespeQt?  All I can do there is pick COM ports.  There's a Custom option, but I don't know how to use that.

Share this post


Link to post
Share on other sites
3 minutes ago, Tempest said:

Ok I found it.  This is what lsusb -v outputs:

 

Bus 007 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0403 Future Technology Devices International, Ltd
  idProduct          0x6001 FT232 Serial (UART) IC
  bcdDevice            6.00
  iManufacturer           1 FTDI
  iProduct                2 sio2pc-USB   www.lotharek.pl
  iSerial                 3 A51JDTR9
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               90mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 sio2pc-USB   www.lotharek.pl
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)

So how do I use this information in RespeQt?  All I can do there is pick COM ports.  There's a Custom option, but I don't know how to use that.

That's not what you need. You need the "filename" that your Linux distro reports for the device. Just do a very basic directory listing like ls inside your \dev\ directory. Something like ls *tty or ls *usb will show you what the system calls the device. That filename is what to put into RespeQt. 

Share this post


Link to post
Share on other sites
Just now, DrVenkman said:

That's not what you need. You need the "filename" that your Linux distro reports for the device. Just do a very basic directory listing like ls inside your \dev\ directory. Something like ls *tty or ls *usb will show you what the system calls the device. That filename is what to put into RespeQt. 

Looks like it's USB0 as ls -l /sys/class/tty/*/device/driver get's me this:

lrwxrwxrwx 1 root root 0 Mar 26 19:18 /sys/class/tty/ttyUSB0/device/driver -> ../../../../../../../bus/usb-serial/drivers/ftdi_sio

Share this post


Link to post
Share on other sites
Just now, Tempest said:

Looks like it's USB0 as ls -l /sys/class/tty/*/device/driver get's me this:

lrwxrwxrwx 1 root root 0 Mar 26 19:18 /sys/class/tty/ttyUSB0/device/driver -> ../../../../../../../bus/usb-serial/drivers/ftdi_sio

If so, then type \dev\ttyUSB0 in the port name field in the Options dialog.

Share this post


Link to post
Share on other sites
10 minutes ago, DrVenkman said:

If so, then type \dev\ttyUSB0 in the port name field in the Options dialog.

I tried that but it just says EMULATION STOPPED and I can't get it to work.  The Atari says that device isn't responding.

 

It might be a permissions thing.  I'm running RespeQt through WINE.

 

Also, isn't it /dev/ttyUSB0?

Share this post


Link to post
Share on other sites
Posted (edited)
14 minutes ago, Tempest said:

It might be a permissions thing.  I'm running RespeQt through WINE.

 

Also, isn't it /dev/ttyUSB0?

Yes, it's /dev/ttyUSB0 and, also yes, most likely it's a permission thing (probably your user is not in the right groups).

 

please run this and post the output

ls -l /dev/ttyUSB0

groups

 

so long,

 

Hias

Edited by HiassofT

Share this post


Link to post
Share on other sites
1 minute ago, HiassofT said:

Yes, it's /dev/ttyUSB0 and, also yes, most likely it's a permission thing (probably your user is not in the right groups).

 

please run

 

ls -l /dev/ttyUSB0

groups

 

[[email protected] ~]$ ls -l /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 0 Mar 26 08:53 /dev/ttyUSB0
[[email protected] ~]$ groups
sys network power uucp lp wheel autologin tempest
[[email protected] ~]$

 

Share this post


Link to post
Share on other sites

Well I just gave all permissions (777) to the /dev/ttyUSB0 and it still doesn't work.

Share this post


Link to post
Share on other sites
1 minute ago, Tempest said:

[[email protected] ~]$ ls -l /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 0 Mar 26 08:53 /dev/ttyUSB0
[[email protected] ~]$ groups
sys network power uucp lp wheel autologin tempest
[[email protected] ~]$

 

OK, your groups are right and I was wrong - missed the wine part (sorry).

 

Haven't used wine with serial ports in ages but I think this might do the trick:

ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1

 

That should make the port available as COM1: in windows applications.

 

so long,

 

Hias

Share this post


Link to post
Share on other sites
3 minutes ago, HiassofT said:

OK, your groups are right and I was wrong - missed the wine part (sorry).

 

Haven't used wine with serial ports in ages but I think this might do the trick:

 

ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1

 

 

That should make the port available as COM1: in windows applications.

 

so long,

 

Hias

Hmm.. Good idea but I get this error:

 

[[email protected] ~]$ ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1
ln: failed to create symbolic link '/home/tempest/.wine/dosdevices/com1': File exists

 

I deleted the file and ran your symbolic link and that works, but RespeQt still doesn't work.

Share this post


Link to post
Share on other sites

Just installed wine on my laptop and noticed com1-com4 are symlinked to /dev/ttyS0-3 by default. so ~/.wine/dosdevices/com5 (or some other number that's not already used) may be a better choice.

 

Not sure why RespeQt won't work (can't test here ATM)

 

so long,

 

Hias

Share this post


Link to post
Share on other sites
8 minutes ago, HiassofT said:

Just installed wine on my laptop and noticed com1-com4 are symlinked to /dev/ttyS0-3 by default. so ~/.wine/dosdevices/com5 (or some other number that's not already used) may be a better choice.

 

Not sure why RespeQt won't work (can't test here ATM)

I made the link with S3 (after deleting the old one) because S4 and up don't seem to exist.  I also did a CHMOD 777 on S3 just in case.  Still doesn't want to work.

Share this post


Link to post
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.

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...