USB-Serial Dreamcast Coders Cable
25-Jun-05I changed the parts list to reflect the use of the 6.000Mhz crystal. You could put a socket on the board for the crystal, then you could try a 6.144Mhz one just to see if it would work for you. If the USB ports on your PC are USB 1.1 complient then the cable might just work at 1.56M baud. No guarantees though. I just got really lucky.BTW I sold one rev D board recently. There are not many left so don't wait too long to contact me if you think you might want a bare PCB for yourself.
Just a quick note.  It seems some PC's USB ports don't like this USB Coders Cable. I traced the problem to the 6.144Mhz master clock. I might modify the design and add a 6.000Mhz crytal and jumper. Going back to the 6.000Mhz limits the max baud to 500K, but that's still faster than the traditional serial coders cable.
Minute History
The short story goes like this: It was spring of 2003 or so and I was depressed and didn't feel like programming or messing around with my Dreamcast anymore. My daughter wanted a Gamecube so I thought I'd sell off the Dreamcast and use the money to get it for her. It happened that the Midwest Classic was being held that weekend and Dan Potter was going to be in town. I sent him an IM and asked if he were interested in buying some DC stuff; BBA, games etc. So I loaded up the car and headed down to the east side with a trunk full of DC goodies. Sold the BBA and a couple games; shook hands with the master coder himself and his cohort Rodney; made the transactions and took in the sights at the show...
...Well my daughter has her Gamecube going on a year now, and yes, I've felt pangs of regret having sold the BBA during that time. I had looked for another BBA on EBAY, but none were to be found. This last August 2004 I was reading through some posts on the Cryptic Allusion Game forums and ran across a discussion about hacking a USB controller onto the DC. I was not up to adding a USB controller to the DC so external stuff like hard-drives, flash memory, etc. could be plugged in and used for all sorts of cool things, but wondered if I could build a faster serial coders cable using some sort of USB-serial cable. Thus this project was born.

Design Goals
Operate reliably at the the Dreamcast's maximum baud of 1.56M bps.
Cost less than a BBA.
Work with existing homebrew development tools: i.e. dcload serial.
Work with Linux, Mac OS/X, Windows (Cygwin) operating systems.
The current design meets these goals with the following exceptions: a new driver needs to be released by the USB chip manufacturer so that non-standard bauds can be utilized under OS/X; Some changes were required to make Andrew Kieschnick's dcload serial work with faster bauds under Linux.
Dan Potter was kind enough to test the USB-Serial Dreamcast Coders Cable (USB-CC) under Mac OS/X and to hack dcload serial for OS/X. The final cut of dcload serial won't be ready until we are able to test it with new drivers.

How it works
Refer to the schematic and follow along. I suggest you download the image and print it using an image editing application that will let you fit the image on a single piece of paper in landscape orientation.
The heart of the circuit is IC1, the USB UART (USB-Serial) integrated circuit made by Future Technology Devices International Ltd. (FTDI). The FTDI part number for this chip is FT232BM. It is a second generation part that does all the hard stuff relating to the USB protocols. The coders cable is based on a bus powered reference design from the devices application notes. There are some subtle, yet important differences however. The most significant being the frequency of crystal X1. A frequency of 6.144 Mhz was chosen so that the coders cable can operate at the maximum baud supported by the Dreamcasts serial port. The chosen frequency is a compromise between readily available crystals and a calculated ideal frequency of 6.25Mhz. The FTDI engineers designed this chip so that low cost ceramic resonators could be used with it. The frequency does not have to be exactly 6.000Mhz. This design takes advantage of this feature by using a frequency that allows the chip to communicate on the USB and serial interfaces reliably and meet the design goals.
IC5 is a serial EEPROM used to store configuration data for IC1. For this project I have left it unprogrammed, but decided to keep it in the case I wanted to experiment with the settings. The parts IC5, R15 and R16 could be left out of the circuit to save space and or money if desired.
IC3 and IC4 form an isolation circuit that prevents currents from flowing between the Dreamcast and the host PC via the USB port when the power to either device is turned off. This is required to make the cable meet USB device specifications. IC3 is a low voltage high-speed bilateral analog switch whose I/O lines go to a hi impedance state (Hi-Z) when gate enables are taken high or when there is no power applied to the Vcc pin. These characteristics make this an ideal chip for this application. IC4 is used to invert the signal from the FT232BM's _SLEEP signal. The _SLEEP signal is high when there is power on the USB bus. the _SLEEP signal goes low either when the USB device is told to go into low power mode or when there is no power on the USB bus.
IC3 and IC4 get their power from the Dreamcasts serial port. When the Dreamcast is powered and the USB side is unpowered, the active low _SLEEP signal is inverted by IC4 which pulls the analog switches active low enables high isolating the serial interface lines.
When the USB side is powered and the Dreamcast is turned off there is no voltage to operate IC3 and its I/O lines go to Hi-Z isolating the serial interface signals on the USB chip.
With power applied to both sides of the circuit, IC3's analog switches allow signals to pass between the Dreamcasts serial port and the USB chip.
IC2 is a Transient Voltage Suppressor (TVS) array that along with resistors R3, R4, R5, R7, R10, R12, R13, and R14 form an I/O protection network. Resistors R4, R7, R12, and R14 keep the I/O lines from floating. Resistors R3, R5, R10, and R13 limit current and IC2 helps protect IC3 from static discharges.

Drivers - Serial Programming
There are drivers for Free BSD, Open BSD, Linux, Mac OS-8, OS-9, OS-X, and Microsoft Windows (98, ME, 2000, XP). To the operating systems the USB chip looks like a serial port. Programmers don't have know anything about USB protocols. On a Windows system the device will appear as a COM port. Under the *nix like operating systems it appears under the device file system as a character device. Standard serial programming practices are used to setup the serial parameters. There are a few gotchas however. The FT232BM's serial UART is capable of running at much higher bauds then a standard RS232 serial port. This can be a problem if the OS places restrictions on what bauds can be programmed. I have not had any problems setting high bauds under Windows, or Linux, but at the moment we have not been able to use non-standard bauds under the Apple Mac's OS's. FTDI explained to me that they are aware of the problem and hope to have new drivers at the end of 2004 or beginning of 2005.

Tools that work with the USB Coders Cable
A new version of Andrew Kieschnick's dcload-serial tool set is being readied for release. It supports the 50K and 1.56M bauds under Linux and Cygwin. There were a few improvements too and hopefully it will work under Mac OS-X as well once new USB drivers are available for it.
Other tools created for Marcus Comstedt's (Lik-Sang) coders cable will work with the USB coders cable. The Windows versions of these tools may work at the higher bauds without modification. Linux based tools will require some modification to enable the 50K and 1.5M bauds.

Construction Notes
If you are going to build your own USB coders cable based on this design you will probably want to know where to get components and parts. This section has the Bill of Materials (BOM), and some sources. This section also has the pinouts and color codes for the serial plug.
1 Blue LED LED5MM LED1 Mouser 638-333-2SUBC470S3
1 100Mhz 600 Ohm Ferrite bead 0805 FB1 Digi-Key 240-1035-1-ND
4 0.1uf 0805 C2, C3, C8, C9 Digi-Key PCC1828CT-ND
1 1k5 0805 R9 Mouser 260-1K5
1 2k2 0805 R16 Mouser 260-2K2
1 6.000Mhz HC49U-S X1 Mouser 520-HCU600-32
1 10k 0805 R15 Mouser 260-10K
1 10nf 0805 C5 Digi-Key BC1293CT-ND
2 10uf 3528-21R C1, C10 Digi-Key 478-1674-1-ND
3 27 0805 R1, R6, R8 Mouser 260-27
2 27pf 0805 C6, C7 Digi-Key PCC270CGCT-ND
1 33nf 0805 C4 Digi-Key PCC1834CT-ND
1 74V1G00S SOT23-5 IC4 Mouser 511-74V1G00S
1 93C46BSN SOIC-8 IC5 Mouser 579-93C46A-E/SN
4 100 0805 R3, R5, R10, R13 Mouser 260-100
5 100k 0805 R4, R7, R12, R14, R17 Mouser 260-100K
1 220 1206 R11 Mouser 263-220
1 470 0805 R2 Mouser 260-470
1 FT232BM LQFP-32 0.8mm IC1 Parallax
1 SN74CBTLV3125D SOIC-14 IC3 Mouser 595-SN74CBTLV3125D
1 SP721AB SOIC-8 IC2 Mouser 576-SP721AB
1 DC Serial Plug VS Link Cable Plug Lik-Sang Item No. 592
1 Hammond Case 3.9 x 2.0 x 0.8 Case Mouser 546-1591ATBU
1 PCB Card Adaptor Hammond Case Accessories Case Mouser 546-1591Z6
b3 GND Yellow 2
b4 RX2 Green 5
b5 TX2 Grey 6
b6 RTS Violet 7
b7 CTS White 8
b8 ? Blue 3
b10 3.3V Orange 1
Shield Shield Shield 4
Component and Technical Resources
Digi-Key Corporartion
Future Technology Devices International Ltd. (FTDI)

Mouser Electronics

Parallax Inc.

The USB Coders Cable is a USB 2.0 Full Speed device.

Get the schematic and layout files in Eagle format

Here's some of the pictures taken during the development of the cable:

Copyright © Paul Boese 2004-2008

SEGA and Dreamcast are trademarks of SEGA Enterprises
       Nintendo and Gamecube are trademarks of Nintendo