Log in

No account? Create an account
Improving the hardware 
25th-Apr-2009 01:40 am
Serial link: poor man's answer to broadband adapter shortage (and pricing). It's a cheap way to transfer data between PC and Dreamcast (including dumping your own BIOS and FLASH) and pretty much the only option if you're considering homebrew software. Sure, demos and emulators can be burned onto CDs but for testing your own code you'll need a more robust delivery method :)

Some time ago I mentioned that most serial link projects out there are overly complicated. Perhaps it's because many were conceived years ago when every PC had at least one RS232 port and USB chips were expensive. I'm about to show you it can be made really simple.

I'm going to skip all the technical details and going to assume you already know:
- what is RS232 and it's limitations
- why we should stick to low-voltage signaling
- what is USB and why use it

First you'll need FT232 chip from FTDI. It's exactly what we want, a simple yet fast USB to serial converter with low-voltate I/O. And by "chip" I actually mean a ready-made interface like this one:

It can be powered from USB line and has internal 3.3V low drop regulator - so all it takes to make it work is two short wires: one to route power supply, one to connect LDO output with voltage reference pin for I/O.

Now for the Dreamcast part. I found it impossible to purchase a connector that would fit the serial port so it had to go. You won't miss it, trust me.
First cut the connector assembly in two, with a small saw blade or a file. Take your time, you don't want to damage anything on the board (hence the black tape by the way). Pay attention to where exactly are you placing the cutting point, you will want both sides of the video connector intact so that the screws will hold it well in place.

Cut the connector legs with precise cutters. And I do mean precise, too big will rip them off the board, possibly damaging the traces as well. The alternative is to insert a small, flat head screwdriver (or something like that) under the pin and pry it up as you heat the soldering point with iron tip. Again, do not apply any force before melting the solder. The pins on right were cut, ones on the left were lifted.

Now desolder the shield and remove unwanted connector part completly. Don't throw it away yet, you'll need to cut off the other side mounting wing too, to provide a proper spacing for metal heat exchanger. Well you can always use a couple of small washers for that if need be.

And here's a picture of the pads cleaned, with any leftover pin remains removed.

Now you just need to solder 5 wires (RxD, TxD, RTS, CTS and ground) to the pads. I used one of the shield pads for ground, that makes it easier to fit the other four. That can be somewhat challenging with thicker wire but it pays off to have it durable and safe to twist around. Glue gun does the rest, just don't overdo it or you'll have problems fitting the covering plate/heat exchanger.

Ready to rock :) You can even see the wire I used to route USB power and I/O reference. All you need to do now is put it all back together and get friendly with dcload-serial tool.

So, does it work? Hell yes, on 3 Dreamcasts already. Same technique in every case. Works like a charm up to 1.5Mbps too. Just keep the wires to FT chip as short as possible (already long board traces and protective RC elements not helping any). If you have problems with higher speeds you can try using 5V instead of 3.3V for I/O. I belive this to be pretty safe (run it for hours on my Dreamcasts) but make no guarantees.
Some people say even 3Mbps can be achieved when protection RCs are removed but that will open a direct line to SH4 pins and you risk permanent damage to it. Obviously, no 5V in that case.

There's no galvanic separation here, wouldn't make much sense with common ground, so even if DC power supply is floating (I think) make sure you connect everything to the same AC phase. Or suffer the consequences.

Oh, and yes, the wires just stick out of the back of Dreamcast. Hey, it's cheap and works :)

UPDATE: Few more details, should be more useful now :)

First, here's a simplified pinout (only the required signals shown):

And just in case someone needs this extra bit of info, the whole serial port carries these signals on B10 down to B1 (looking at the picture above that's left to right): 3.3V, /RESET, GND, CTS, RTS, TxD, RxD, GND, SCK, 5V. And as you can see the big pads on both sides (connector shield) are also tied to ground.

This particular serial to USB converter was bought here: http://www.propox.com/products/t_93.html
It's a pretty common design but there's a manual with schematics for download on that page if you need them.

Pins VPO, VEX and VIO are connected together in my photo. That's PORTVCC, EXTVCC and IOVCC - and that means 5V on the I/O pins. This is actually by mistake, I'm short on these modules and when I swap it around I often forget to re-wire it properly for Dreamcast. As I said, it will work like this but that's unsafe.
You should connect IOVCC to 3V3OUT instead. With this module you'd just put a jumper on pins 24 and 23 and connect 22 with 18 using a short, insulated wire.

And don't forget it's a null-modem so TxD from the board goes to RxD pin on the FT chip and vice versa. Same for RTS/CTS control signals.

Hope that helps!
12th-Feb-2011 01:29 pm (UTC) - Alternative USB for mass storage (Pen drive/Card reader/HDD ect)
You can call me Zorlon at the moment I don't have a LiveJournal account at the moment

Finding this very interesting and easy to do by the looks of it.
I was wondering however if this could be done to work with Dreamshell designed to work with SD-media

Dreamshell URL - Russian site but has english parts to it
SDcard reader design - Chinese
Above google translated

using a VDIP1 module instead, hopefully allowing USB mass storage to be connected directly instead of/aswell as SD-media


PDF doc

ftdichip's MM232R Modules Page

If all above could be done, could an example of connections to DC be shown
12th-Feb-2011 04:21 pm (UTC) - Re: Alternative USB for mass storage (Pen drive/Card reader/HDD ect)
All these SD card projects have one common, fatal flaw - no support for CD-Audio.

Connecting SD media to serial port also requires either a special boot disc (so you still need working GD drive) or modified BIOS (not as easy as it sounds, some people have done that but there are a few strings attached). It's also considerably slower than real GD and that shows...
12th-Feb-2011 05:25 pm (UTC) - Re: Alternative USB for mass storage (Pen drive/Card reader/HDD ect)
Zorlon again

I am looking to connect usb mass storage rather than SD media.

Yeah I have seen the results on SD card but don't imagine using USB instead will help with that, being that they all use the Dreamcasts serial port, but it would help more storage devices to be used for testing/dumping, if there is a speed increase great, but fear thats wishfull thinking.

I have looked into boot discs and my last post infact links up such boot discs atleast for SD cards, not sure if it works with anything else or not.

Personly not intending on flashing the bios, but I do know that a very small hardware mod lets you flash it.

Anyway would using the VDIP1 module (1 usb port) work in allowing the use of usb storage devices on a Dreamcast, instead of a direct PC to DC connection (details on this board is in my first post)

Also would special version of dcload be needed to allow access or would any serial software allow this?

Have a feeling new software/hack/mod would need to be developed :(
12th-Feb-2011 08:02 pm (UTC) - Re: Alternative USB for mass storage (Pen drive/Card reader/HDD ect)
You need to brush up on electronics a bit. What exactly are you suggesting here, that we pick some random USB chip and shove it into Dreamcast and it will work, just like that?

There is a reason it's SD cards and not something else. There is a reason those are connected to serial port. Pros are it's a rather simple solution and can be made to work with minimal software changes - though only for some games. I already explained the cons.

Also, BIOS cannot be flashed, the mod you're talking about requires adding another chip that can be switched to "replace" the original one. You need a compatible 5V FLASH memory, a way to program it with custom BIOS, then there is a lot of soldering involved (and also the heat shield must be cut to allow the piggy-back chip to fit in there at all).

Lastly, and this is quite funny considering you'd want to use this solution for homebrew, this only works for games. Because most demos and other stuff access GD drive directly so everything would have to be rewritten.

Obviously a solution where you can use USB mass storage devices or PC uplink is preferable, I do agree on that. I started my own GD-emu project with that in mind, it's anyting but simple and cheap though. If done correctly it'd be a perfect replacement for a GD-drive - thus no need to change any software and full compability with every game. This is nowhere near fully functional yet.
12th-Feb-2011 09:05 pm (UTC) - Re: Alternative USB for mass storage (Pen drive/Card reader/HDD ect)
What I was thinking of, has already been done I was looking at a different chip though, but the same thing in the long run yeah I spotted that while I was waiting for a reply


The above is still based off some of the old designs I posted in my first post

As I said I'm not realy interested in a bios mod booting software via the gd-rom (2 session CD-R's) that can read from USB via the serial port

I was possibly thinking of the region mod that can be done that was just joining two points I don't actually remember off the top of my head, though not of interest to me at all... lets forget about the bios

I do beleive the chip I am asking about can be used with very little adding to it, it's not just some random chip if you checked it out and the info that was given

Homebrew can be put into iso format easy enough and booted via this method and be used to filter out for example in ports on dreamcast what data can be used/compatible and what is not without burning CD after CD only to change 2 or 3 setting or try a bunch of other files or the CD structure itself.

I do however thank you for your time, I think the link I just gave has much of the info I was after a little more looking on my own should be enough, though I must admid I will have to put it off anyway due to lack of money, that and I need to pratice soldering again, not done any in years now, last thing I done was a printer port to PSX multitap for use on PC. (Driver software was already made I don't claim that)

If you do wish to help me though that would also be great either with the chip I mentioned or simular.
12th-Feb-2011 09:29 pm (UTC) - Re: Alternative USB for mass storage (Pen drive/Card reader/HDD ect)
Sorry about the 2nd reply I can see your point about software that looks for seperate files via the GD drive though it would still save the need to reburn only changing the main binary boot file on usb device rather than making a whole new disc, keeping the already burned CD as a data disc if you like.

logic tells me that should work anyway

a USB mass storage rather than a PClink would be preferable for those that don't have a PC and Dreamcast to use next to each other, for example I don't have a PC close by my Dreamcast, infact my desktop is upstairs in my office (ok back bedroom/office I only have 2 bedrooms) :P the other Dreamcast is in my living room, it's easier to move one of my portable usb HDD drives instead of my desktop
12th-Feb-2011 11:12 pm (UTC) - Re: Alternative USB for mass storage (Pen drive/Card reader/HDD ect)
Zorlon yet again

sorry the last link given actually is much the same as yours but using a micro usb, for some reason I thought it was usb A

been looking at another alt that would also maybe work

called a VDrive 2
it converts from serial UART or SPI (jumper to change) as did the other chip I was talking about, but this one seems to be more portable

sample from the pdf for VDrive 2
The VDrive2 module provides an easy solution for adding a USB Flash disk interface to an existing product. Only four signal lines plus 5V supply and ground are required to be connected. Using the Vinculum VDAP firmware the VNC1L’s I/O interface can be selected between the serial UART or SPI using the on-board jumper pins. Not only is the VDrive2 ideal for evaluation and development of VNC1L designs, but also its neat enclosure and attractive quantity discount structure makes this module suitable for incorporation into finished product designs. The VDrive2 is ideal for commercial products such as domestic goods, set top box, etc., as well as industrial products such as data loggers, software upgradable products, etc.

Dreamcast side being
1 5v
2 SCK - don't actually know what that is
9 RES - don't actually know what that is
0 3.3v

VDrive 2 being
1 GND - connect to DC 3 or 8
2 RTS - connect to DC 6?
3 5v - connect to DC 1
4 RXD - connect to DC 4?
5 TXD - connect to DC 5?
6 CTS - connect to DC 7?
7 NC - No Connect
8 RI# Input Ring Indicator Control Input. Used to resume from suspend.

Not sure if 8 on the VDrive 2 can be used with the Dreamcast serial

Yes I am very rusty with my electronics thats why I am asking for help with the idea

I take it, it is RTS to RTS ect

at the moment I am kinda presuming that the software made to read from SD, can read from any storage device formatted correctly from the serial port with correct controllers ect to hook up such devices

more info for the VDrive 2 at
13th-Feb-2011 12:19 am (UTC) - Re: Alternative USB for mass storage (Pen drive/Card reader/HDD ect)
First of all, if you would please read my blog entry again. This is about connecting DC to a PC via a serial link, but without having either true serial port on the PC side or the necessary connector on DC side. Also, easier than most other projects out there and faster too (with some modifications to dc-load tools I get stable 1.5Mbps).

You want to add USB host to a Dreamcast. You picked a pretty nice one, it's designed to be easy to use so it handles all the USB-specific stuff internally when it comes to mass storage devices. You still need to write proper support for it on the DC side though. This solution will most likely be incompatbile with code alredy written (for SD cards). Are you going to rewrite all that by yourself, because it's not exactly certain that authors of all that software will see things your way.

So... why bother, exactly? Give me one good reason. PC uplink is possible (with some new code on DC side) with just a simple USB to serial converter and SD cards are easiest to interface with DC (and working). This is how I see it. You will get the same thing but with more expensive chip and much more complicated DC code, which might actually not fit in the limited RAM space to allow booting games. So this will have another downside - homebrew only. And it does not solve any of the fundamental problems with the SD approach, that is it's still slow (maybe even slower!) and can't replace GD-drive.

Well, if that's what you want to try I'm not going to stop you. Just saying it has little use other than being fun hobby project.
So, for the connections you'll need to make, you are about right. Not too sure how much power you can draw from that 5V line, that can be a problem if you need more than some 100mA. Also, you need to create a "null-modem" here so you connect RxD with TxD and vice versa. Same with RTS/CTS pair. Look up serial port connections and you will understand why. You won't be able to use RI signal without additional logic so no suspend. It might need to be tied permanently to ground, see the datasheet.

SCK is serial clock, for synchronous transmission. You won't need it. RES is reset line, best not to mess with it :)
13th-Feb-2011 05:21 pm (UTC) - Re: Alternative USB for mass storage (Pen drive/Card reader/HDD ect)
1 reason would be, PC not in accessable location in relation to dreamcast other reasons OS compat, though I admit a bootable linux (or linux based OS) CD/DVD would possibly help

Why stop at just one method when others could be made, though if speed is even more an issue/DC side code too big, it would be pointless, apart from the convenience for developers on actual hardware, though the emulation of the Dreamcast is at a reasonable point now for some testing, plus has a nice debug feature

Unfortionatly I am not a coder, last time I done any sort of programming was back on the olde ZX/Acorn using basic :D

I may see if anyone else would like to look at this, the info you have given though is great and has saved me rushing out on something that I would probobly just end up destroying anyway.

What is the actual speed of the Dreamcasts serial port out of interest?

Wish I could get in touch with jj1odm, this is just one thing, that has yet to be looked at, though I guess cost could very well be one part of the issue though it's not overly expensive but it's not the cheapest either no (£17.50 for that, though it does come in it's own shell, made for easy internal install even external would look ok).

It was kinda wishfully thinking, it seems that the USB drive idea would be a nice easy fast way of uploading data including iso's especially with the last get-up I spotted with it having speciallised chips for usb storage, to help make it simple to make like your own.

Serial port
USB-B PC link
Original Coders Cable

G2 Bus mods (on Dreamcasts modem port)
LAN (homebrew version)
USB-B PC link
BBA (homebrew version)

Anyway thank you for your help
14th-Feb-2011 12:33 pm (UTC) - Re: Alternative USB for mass storage (Pen drive/Card reader/HDD ect)
You can get about 150kB/s from the serial, and possibly 300 with some rather dangerous modifications - all RC protection elements must be removed and that opens a direct line to SH4 CPU. You touch that wrong way and it's bye-bye motherboard (unless you fancy BGA replacement).

Compression might help but that has to be supported on both sides, add latency, and depends on data. Chances are it's not going to help at all. Not to mention it eats up SH4 time that should be used to run the game/program rather than looking at serial data.

GD-ROM can do about 600-1200kB/s. So you see, it's much slower... SD cards use SPI rather than TTL-RS232, with some decent clock you can get more than 150kB/s that way, but still way slower than GD. True SD speed it only avaiable through it's native 4-bit protocol. That USB chip does have SPI as well but I'm not sure the speed and latency would be good enough - something to test I suppose.

Anyway, as I said I'm more interested in replacing the GD drive. I think it's better solution.
14th-Feb-2011 03:22 pm (UTC) - Re: Alternative USB for mass storage (Pen drive/Card reader/HDD ect)
A relpacement for the GD drive would be great, if possible...

I did give jj1odm a quick email, though I don't realy expect a reply about that.

The GD-Rom running CD's also seems to be slower at getting the data than an actual GD-Rom disc, but this is expected anyway from R media, compared to original media

I will be keeping an eye out on development and wish you all the luck in your project
This page was loaded Oct 21st 2019, 12:41 am GMT.