Atari8Warez SIO2PC/10502PC Dual-USB
and SIO2PC-USB Interfaces
Fifth Revision - Sep 17, 2016
Atari8Warez SIO2PC/10502PC Dual-USB device (hereinafter referred to as DUAL-USB) and Atari8Warez SIO2PC-USB device (hereinafter referred to as USB) are based on the FTDI RS231X UART. Both devices connect to the PC using a USB interface which ultimately acts as a Virtual Com Port (emulates a legacy RS232 serial port on the PC), so serial communication software sees them and uses them as a normal COM: port. The Atari end of the DUAL-USB connects either to an Atari computer, or to a SIO compatible disk drive depending on the operation mode of the device (SIO2PC vs. 10502PC), while the Atari end of the USB connects to an Atari computer.
Plug and Play Operation:
DUAL-USB will automatically detect the operation mode depending on where its Atari end is connected. When connected to an Atari computer the device will act as an SIO2PC, and when it's connected to a 810/1050 drive it will act as a 10502PC. This mode detection occurs at the hardware level and is not software dependent. Hardware level mode detection means you can simply unplug the device from the peripheral and plug it into your Atari (or vice versa) and it will immediately assume it's new role. No need to power cycle it either, so you can just leave it connected to your PC while you perform the switch. When in 10502PC mode you must disconnect your Atari from the SIO chain and remove all unnecessary SIO cables, otherwise the device will not detect your disk drives.
DUAL-USB device connects the serial port DSR signal in SIO2PC mode, and serial port DTR signal in 10502PC mode to the Atari SIO command line (SIO7) for handshaking. USB device on the other hand utilizes only the DSR signal as it doesn't have a 10502PC mode. So the emulator software you use must offer these lines for handshaking. AspeQt and APE both offer a DSR option and are therefore compatible with the device (note that APE is only compatible when it operates in VCP mode, so APE versions earlier than 3.0.6 will not work). Prosystem from Atarimax uses DTR as the handshake line so it is also compatible with the DUAL-USB device. Other software may or may not be compatible depending on the signal line support they offer.
AspeQt v1.0 and up is the only emulation software Atari8Warez officially supports. The software is available on the supplied mini DVD and as a standalone download from Atari8Warez website. APE software from AtariMax, although is compatible is not supported, neither are the various other forks of AspeQt. For these software you need to contact their respective developers/maintainers.
AspeQt is available on various OS platforms. Atari8Warez only supports MS Windows and Linux (Ubuntu) versions and support is available through Atari8Warez website Support page and Atari8Warez Support Forums. Other Linux distros, Mac OS X and Android versions are available and maintained by other people.
The software on the PC needs Virtual Com Port drivers to communicate with the device. Drivers supplied by Atari8Warez are original FTDI drivers customized to use Atari8Warez product IDs (PID = 83B0 and 83B1), instead of FTDI product IDs (PID = 6001 and 6015), and the strings identifiying the manufacturer and the device description, read "Atari8Warez" and "SIO2PC/10502PC Dual-USB / VCP" or "SIO2PC-USB / VCP" instead of "FDTI" and "USB Serial Port / Converter".
Atari8Warez devices intended for use with MS Windows and Linux have the custom PIDs and strings pre-programmed into their EEPROMs (thus requiring custom drivers), while devices intended for use with Mac OS X contain default FTDI values. Mac OS X users could therefore download their drivers directly from the FTDI website if they choose to do so, Atari8Warez will provide future driver updates for Windows/Linux users.
Note: If you're a Windows or Linux user and would like to use original FTDI values instead of Atari8Warez ones, you will need to flash the EEPROM to restore original FTDI values. After the flash you will also need to install default FTDI drivers before you can resume using the device. You need a special flasher software to do this and the Atari8Warez drivers should still be installed before performing the flash. The flasher software is available for download from Atari8Warez support page. Warning!: Unless you know exactly what you are doing, do not attempt to flash the EEPOM, the device may be rendered inoperational with a wrong flash. If in doubt, or want to know more about the process contact me in Atari8Warez Support forums. I am not responsible with the consequences of a wrong flash in any way, so proceed at your own risk.
This driver customization, although completely benign and transparent to the operation of the device, nevertheless renders the original driver signatures invalid. This will cause some versions of OS to raise a warning while installing them. Simply ignore the warning and accept the drivers as is. Windows 8/10 does not allow installation of unsigned drivers in their default configuration, however installing unsigned drivers on those OSes is possible, please see the separate documentation(s) titled "Windows 8 (10) unsigned driver Installation", available on the supplied mini DVD or for download at the Atari8Warez support page.
Follow these steps to install the drivers on a Windows machine. The example provided here is for MS Windows 7, steps are similar in older versions of Windows. Please refer to the appropriate MS Windows documentation for more details.
You will see another window similar to the following image:
Linux driver source
files are provided for 32 and 64 bit versions. The source code has been modified
to include Atari8Warez
Product IDs (PID) and identification strings, and they will need to be compiled
prior to installation. If you're an end-user rather than a technical guru you
may find compiling and installing driver files for Linux a daunting task. This
is mainly due to missing/renamed FTDI libraries needed for compilation on
certain distributions of Linux. Linux simply doesn't have the same FTDI support
available for MS Windows, and I noticed that FTDI technical documents for Linux
haven't been updated since 2009.
So if you are a non technical Linux user there is a less frustrating way of making your device work with it. Most Linux distros come with basic FTDI USB-to-Serial drivers already included in the kernel. The driver however only recognizes devices manufactured with FTDI Vendor ID (VID), and FTDI Product ID (PID). Fortunately there is a way to make the default driver to work with devices with custom VID/PID. The following paragraph describes the steps necessary to make your device work with the default FTDI drivers, eliminating the need to compile/install custom ones:
Open a terminal
window, and use gedit to create a script file in your home folder (i.e.
~/sio2pc.sh) with the following content:
echo 0403 83b0 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id (for DUAL-USB device) or;
echo 0403 83b1 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id (for USB device)
Save the file and
make it executable
chmod +x ~/sio2pc.sh
The script file
you just created modifies the default FTDI driver so that it recognizes
devices with custom VID/PID, however this is only effective until the
drivers are unloaded. When they are reloaded (on the next boot for
example) the script need to be run again. That means we have to
automate it so it runs every time the machine is re-booted. For this to
happen we need to include the script in the .profile file which is
in the etc folder of your Linux installation. .profile file is read
and executed every time you log-in to your Linux session. Also, because the
script changes a system file, it needs to run with root privileges (i.e.
needs to run using sudo). Note that sudo normally asks for a password before
allowing a user to execute tasks with root privileges, but this
script will be run unattended and you can not respond to password requests,
so sudo needs to be run without asking for a password. In order to do
that we need to pre-authorize the script, and to achieve that we need to
create an entry in the sudoers file. So, from your terminal window
enter your password when prompted (this is your log-in password, not the root password).
Scroll to the end of the sudoers file, and add the following line:
user_id ALL=(root) NOPASSWD: /home/user_id/sio2pc.sh
Note that user_id is your Linux log-in id. Type ^O to save the changes, and ^X to exit.
As the last step
we need to add a call to the script in the .profile file so it
executes when you log-in to your Linux session:
sudo gedit /etc/profile
enter your log-in password if asked,
When the file opens in gedit, scroll to the end, and add the following line:
Save the file and exit gedit. You are now ready to re-boot the computer. Once re-boot, log-into your Linux session, insert your SIO2PC device to an available USB port, open a terminal window, and type the following to verify that your SIO2PC device is now recognized and a COM port is mounted as ttyUSB0:
dmesg | grep FTDI
Above command should produce an output like the following:
[ 159.987490] ftdi_sio 5-1:1.0 FTDI USB Serial Device converter detected
[ 159.989404] usb 5-1: FTDI USB Serial Device Converter now attached to ttyUSB0
Finally run AspeQt. Configure it to use the ttyUSB0 device as the COM port and see if the device is now functional.
Atari8Warez DUAL-USB and USB devices purchased with an enclosure, and a built-in SIO Cable, or built into an SIO Cable come with 1 year warranty against defects in material and workmanship. Bare boards (kits) or boards with an enclosure but without an attached SIO Cable don’t come with a warranty, but include free tech support.
The warranty does not
cover damage caused by misuse/neglect, disassembling/reassembling of the
enclosure, modifications/additions to the device and only valid when a product
failed due to defects in material or workmanship.
Please keep your proof of purchase for your warranty claims.
Atari8Warez offers free customer support with each purchase (see the website support page for details). If you have a problem with the product within the warranty period and I find that the cause of the problem is my interface, I will replace or repair it at my expense.
You can reach me through one of the several ways below: