Dragon 32/64 Drivewire Adapter

From The Dragon Archive


See also DriveWire and Drivewire_for_dummies


DriveWire on Dragon uses pins on the printer port to communicate with an external DriveWire server. To convert the signal from the printer port (driven by bit-banger routines in software) into a RS232-compatible serial line, a signal inverter and level converters are needed.

The DriveWire adapter presented on this page is made by Tormod and combines an inverting circuit and a USB interface to provide a solution that plugs directly to the Dragon printer port on one end and a normal USB port in the other end.

Note that the specialized, standalone uDW DriveWire server has input circuitry adapted to the Dragon printer port and can therefore be plugged in directly without any adapter.


The built-in serial UART is the CP2102 from Silicon Labs.


Windows driver can be downloaded from the chip manufacturer: http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx


In most cases, you simply need to run "sudo adduser $USER dialout". Read on for more details.

Some helpful commands:

~ $ sudo lsusb | grep UART
Bus 001 Device 002: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light

$ dmesg | grep -ie cp210*
[17479.466698] usb 1-1: Product: CP2102 USB to UART Bridge Controller
[17479.548508] usbcore: registered new interface driver cp210x
[17479.548520] usbserial: USB Serial support registered for cp210x
[17479.548535] cp210x 1-1:1.0: cp210x converter detected
[17480.428168] usb 1-1: cp210x converter now attached to ttyUSB0

Look at the last line, to see that the adapter is assigned to ttyUSB0. Check which groups have access to it:

$ ls -l /dev/ttyUSB0 
crw-rw---- 1 root dialout 188, 0 Nov 11 13:15 /dev/ttyUSB0

In this case you should assure that your user is in the user group dialout, e.g.:

$ groups # Display the user groups for the current user
user_foo : user_foo adm tty dialout fax cdrom floppy tape sudo audio dip video plugdev netdev fuse lpadmin scanner

Is the group is not listed, add your user to the group, e.g:

sudo adduser $USER dialout

You will have to logout and relogin after this command!