Hacker News new | ask | show | jobs
by exmadscientist 1893 days ago
And yet I wonder how many of those machines have USB to RS-232 converters internally... not that I've ever been asked to design such a thing....

Properly implemented RS-232 is a thing of beauty, in a way that USB just can't be. It's a shame so many implementations (of both!) fall short.

2 comments

The ones that barf out a debug console from the processor's first init steps are probably not USB internally. ;)

But yeah, USB never came up with a good way to do peer-to-peer. On-the-go is super driver heavy and just not useful in the way RS232 is. New TVs still ship with it, for home automation reasons.

And neither are they RS-232, unless you've got a transceiver (MAX232 etc) in there :)

Man... USB CDC is painful. It's so much "fun" that a serious solution on one product was two back-to-back FTDI transceivers. I think they finally designed that out, but I'm scared to look at what might be in its place now....

That is equally parts silly and useful. There's so many time's I wish I'd had one.
Is it two lines with ^S/^Q/BREAK, or hardware flow control, with or without ring, db25->db9 converters (never of the right gender), etc...

I was pretty happy to throw it out the window in favor of USB. Of course, firewire was better than usb and the whole cycle started again.

I've recently started working with firewire, and man what an interesting bus. You've got isochronous and asynchronous support simultaneously, awesome! But then you get this: "Voltage is specified as unregulated and should nominally be about 25 volts (range 24 to 30)" Looking at the nearest firewire device on my table, it will certainly blow up if I get near it with 25 volts. It's like USB-C without any negotiation!
I worked on the FireWire driver stack for OS X... and we encountered many incidents of managing to plug in the 6-pin connector upside down. Devices will actually catch fire. (FireWire carries up to 45W (!) at 30v)

Also, isochronous mode is great in theory, but in practice, at least in a desktop computer, the rest of the machine internals are not isochronous so you can still run into real-time delivery failures.

> Devices will actually catch fire.

A rare case of successful naming, then.

I know I shouldn't be surprised, but how can that keyed connector get forced in backwards? That is mind-boggling.
The metal shell of the 6-pin socket has a seam where it's closed, and that can open or loosen with use. That makes it easy (enough) to plug in a connector the wrong way.

Trivia: Pretty sure the 6-pin FireWire connector was inspired by the GameBoy link cable connector. https://en.wikipedia.org/wiki/Game_Link_Cable

One of the nice things about UARTs is that that's pretty much all there is to it. That is, it's about as much pain to implement as to use.

USB CDC is worlds of pain more complicated to implement, but quite easy to use. As long as you don't hit a bug. But USB stacks never have bugs, do they?