It is easy to forget that many technology juggernauts weren’t always the only game in town. Ethernet seems ubiquitous today, but it had to fight past several competing standards. VHS and Blu-ray beat out their respective competitors. But what about USB? Sure, it was off to a rocky start in the beginning, but what was the real competition at that time? SCSI? Firewire? While those had plusses and minuses, neither were really in a position to fill the gap that USB would inhabit. But [Ernie Smith] remembers ACCESS.bus (or, sometimes, A.b) — what you might be using today if USB hadn’t taken over the world.
Back in the mid-1980s, there were several competing serial bus systems including Apple Desktop Bus and some other brand-specific things from companies like Commodore (the IEC bus) and Atari (SIO). The problem is that all of these things belong to one company. If you wanted to make, say, keyboards, this was terrible. Your Apple keyboard didn’t fit your Atari or your IBM computer. But there was a very robust serial protocol already in use — one you’ve probably used yourself. IIC or I2C (depending on who you ask).
I2C is robust, simple, and cheap to implement with reasonable licensing from Philips. It just needed a little tweaking to make it suitable for peripheral use, and that was the idea behind ACCESS.bus. [Ernie] tracked down a 1991 article that covered the technology and explained a good bit of the how and why. You can also find a comparison of A.b, I2C, and SMBus in this old datasheet. You can even find the 3.0 version of the spec online. While DEC was instrumental in the standard, some of their equipment used SERIAL.bus, which was identical except for using 12 V power and having a slightly different pinout.
The DEC Station 5000 was an early adopter of ACCESS.bus. From the user’s guide:
In theory, one ACCESS.bus port could handle 125 devices. It didn’t have a hub architecture like USB, but instead, you plugged one device into another. So your mouse plugs into your keyboard, which plugs into your printer, and finally connects to your PC.
The speed wasn’t that great — about 100 kilobits per second. So if ACCESS.bus had won, it would have needed to speed up when flash drives and the like became popular. However, ACCESS.bus does sort of live even today. Computer monitors that support DDC — that is, all of them in modern times — use a form of ACCESS.bus so the screen you are reading this on is using it right now so the monitor and PC can communicate things like refresh rates.
We love to read (and write) these deep dives into obscure tech. The Avatar Shark comes to mind. Or drives that used photographic film.
ADB was fantastic, and I always wondered why PCs didn’t have anything similar. A a kid the way things daisy chained blew my mind!
Heh, much like everything else Woz did ADB was a hacky way of doing things and is completely dependent on cpu clock cycles, which even apple found to be a pain in the ass pass the IIGS
Go grab a micro and try to interface with ADB, then try it with PS2 let us know why people didn’t want to deal with it
ADB was typically implemented on a PIC16 for the devices. And while the Apple IIGS and Macintosh didn’t have nearly enough hardware to conveniently host it. After hacking on my iBook’s ADB drivers to fix an issue I had with NetBSD, I can say that there is a controller on the host side in more modern (this century) Macs.
AT/PS2 keyboard signaling was also pretty painful to do without a microcontroller (i8042?). Having hooked up a second keyboard to the parallel port and spending many iterations to get my experiments to work in QBASIC.
I2C is also a hard to bit-bang on a modern computer and also needs a microcontroller or dedicated hardware to simplify it. I mean you can do it, but wow are the results really inconsistent, at least for me.
TI-Graph Link is another odd ball from that era.
Going back to the 1960’s and 1970’s, there was IEEE 488 / GPIB (General Purpose Interface Bus). It’s a parallel bus not serial, but still relatively compact. It was relatively fast and could push 1MByte/sec but typically devices on the chain kept thing below a fraction of that. It was flexible enough that you could use them with the 1MHz 8-bit microprocessors that were everywhere in the 70’s and 80’s. Kind of a missed opportunity not to have just slapped this on every computer back in the day. Even if only to talk to instruments and things.
We could have had universal home automation decades ago if our furnace equipment and home computers could talk to each other over a relatively flexible bus. USB ain’t it for doing that, but a 4-20mA current loop handles it easily and is decades old.
we still use GPIB a lot with out electronic instruments, heh we just priced out a brand new R&S quad power supply, even though most of their models have USB, RS232/488, and Network interfaces as options … it comes standard with GPIB
Commodore did use GPIB with their ‘PET’ series of computers in the 1970s, they had matching disc-drives and printers to the cash-register like VDU/CPU combo, AFAIK this provided a plug-and-play capability similar to the Apple computers of more than a decade later.
Yeah, he was both smart and wise. And a ham, too! ;)
Not sure what you’re on about here as ADB was introduced with the IIGS and survived through about 1999.
USB is so complex if you want to do anything custom with it.
yeah i finally sat down with the usb 1.1 standard a year or so ago and i can confirm! and i do love simplicity….
but also the complications are what makes USB so awesome, especially compared to alternatives. smart hubs, decent support for both asynchronous event signalling and large transfers, a variety of approaches to latency, backwards compatibility, a series of really great physical connector standards, even power delivery. all of these features are awesome and almost none of them are available at all in the competitors. and it all works almost all the time, almost everywhere!
in hindsight, they must have been pretty forward-thinking to realize all these complications would eventually be trivialized by the creation of a ton of ASIC units. yeah every USB device needs a peripheral I/O controller which is fundamentally more complicated than a 1990s microcontroller, but lo! now we just pay the million-transistor overhead without even noticing it.
speaking of over-complicated, i took a very very brief look at bluetooth and my impression was that it was even more deeply layered with even more complexity in each layer. and it does not “just work” for me. i really wish the trade foundation there would take some notes from all the different companies that have each developed their own proprietary wireless signalling to attempt to overcome bluetooth’s liabilities. lord knows i don’t want to even learn the fundamental causes of some of these problems :)
the host side does the heavy lifting. If you’re a USB 1.1 device the implementation is not really all that complicated. Once you sort out low-speed or full-speed framing on a device, it boils down to waiting for your packets and updating your state machine.
it’s not as easy as rs-422, but I can run a webcam and a mouse off the same root hub with USB.
Hewlett Packard invented HPIB, which later became GPIB, and was (not in personal computing but in test & measurement) extremely successful as a parallel accessories bus, and Commodore used a version of it in their computers and accessories. HP then went on to design a serial interface, HPIL, that they specifically intended as a computer peripheral interface system, and made a moderate number of things that used it, keyboards, mice, and a few test instruments. It was moderately capable and had some similarities to USB. Weird little kinda delicate interconnect cables, though.
HP-IL also has coupling transformers to isolate devices, preventing ground loops, like Ethernet, and unlike the godforsaken grounding nightmare of USB.
HP also made the HP82169A HPIL-to-HPIB interface converter, which I have, which lets an HPIL controller interface to gobs of HPIB devices at once, all off of one port. The two interfaces are so similar that in most cases, the controller doesn’t really need to know that the HPIB devices are not on the loop. And, unlike USB, there was only one kind of connector. USB has 11 kinds of mutually incompatible connectors, which IMO totally invalidates the “Universal” part of the name, and it’s one of the reasons I hate USB. I wish HPIL had been continued, with higher speeds if necessary. I think it was foolish to discontinue it.
I even had (have) an ADB modem and it worked at something like 9 kilobaud. I wanted to keep the serial ports free for other things.
Is it just me or everyone was expecting a longer-form write up on the subject? Such a short article.
My vintage computers I do tinker with on a regular basis don’t have USB and I don’t miss it, at all!
Working with real metal connectors isa joy, in fact! 💙
No praise for USB from me. Firewire was just as good as an alternative, if not better.
SCSI was an “universal” port for ages, too.
I have a lot of grievances with recent developments around USB
1. USB-C cables & socket capability differentiation
2. USB >2 naming scheme utter garbage
3. “simple” power supplies being replaced with complicated USB-C “magic” (has it’s plus’s too bit you can’t just attach a scope / volt-/amp-meter anymore)
4. less connectors on tablets/phones/laptops
5. more adapters required than ever (A,B,C, micro-A/(B?)/C, and so forth)
6. (cheap non-compliant stuff feeding power back to the computer and whatnot)
BUT it is quite awesome that you can connect the slowest USB 1.0 and the fastest USB 3/4 “crap gen nonsense” speed device to the “same” port.
The U for universal part is pretty much program.
“BUT it is quite awesome that you can connect the slowest USB 1.0 and the fastest USB 3/4 “crap gen nonsense” speed device to the “same” port.
The U for universal part is pretty much program.”
That’s true. On other hand, it sort of has to be though.
USB is a consumer standard and it would have been difficult to explain to simple people, the masses, why USB is not compatible with USB.
That may sound highly arrogant at first, but in real life people do exist that can’t do abstract thinking or at least not fully.
If I was being sarcastic, I would assume they had tricked natural selection. ;)
There are people which try to click on posters of smartphones that do explain how to use something.
They don’t realize that the painted smartphone is just an example picture, but they think they must use it as shown.
In computing, I have seen people who tried to use spaces for DOS file names,
which obviously isn’t possible because the second part can be an command line parameter
or another program/file to be called by first program.
The users had no knowledge about piping, obviously.
Or that user who proudly had made a homebrew USB to serial adaper, but didn’t tell me.
After a while of troubleshooting I tried very hard to think as stupid as I could do figure out what’s wrong.
Guess what? The suspiciouly looking USB adapter was the culprit.
The user soldered an null-modem cable!
The TXD/RXD and GND pins of an RS232 port went straight to Data+/Data- and GND pins on USB connector. Directly, without any electronics.
Because.. Hey, they’re both serial ports, after all!?
Indeed. That first point to me kills USB-C to the point if it was possible to actually avoid it entirely I would… Along with the port retention being soo soo bad that the high speed stuff will fail to stay connected with that bit of thermal cycling or the slight bump of a device – so don’t go getting a text on vibrate while your phone is supposed to be receiving your music library (though many phones are not even able to sustain USB2 speed despite a USB-C connector it seems)…
IMO USB lost their way pretty badly after USB-2 specs and its only gotten worse.
I admire your self-restraint for stopping at only six grievances with USB.
Didn’t even mention the non-Euclidean issue where you have to rotate it 540 degrees to get it to fit in the socket every single time (bug was fixed in version C, but old versions are still widespread)
How about the fact that a USB A connector fits well in an Ethernet’s RJ-45 connector? Several times I have blindly plugged in a USB device and been frustrated that it wasn’t recognized, until I found it was plugged in the adjacent RJ-45 instead…
Seriously? How can a committee of seven large multinationals fail to notice a user issue that obvious? /snark
hahah i read your list and i love 4 5 6. like, in practice i hardly ever need any adapter more obscure than a usb-a to usb-c cable, but i just love that all these adapters exist and are for the most part fully-featured. i love that my laptop is thinner because so many of the old ports it used to have got gobbled up in a pair of usb-a ports. and i love that there is now every kind of ridiculous non-compliant hack…though i’m talking about the intentional ones like a keyboard with a male microusb connector for phones with usb otg. you might be talking about behavior that is closer to a bug than a feature :)
just goes to show, the reason usb is like this is that people want something like this
(I also posted this as comment on one of the references to that article on the orange site)
The article mentions the MIPS/Ultrix-based DECstation 5000 series as systems that provide an ACCESS.bus interface. However, only systems from the Personal DECstation 5000 range (R3000-based models 5000/20,25,33 and the R4000-based 5000/50, codename “Maxine”) provided an ACCESS.bus interface and the related peripherals (LK501 keyboard and VSXXX-BB mouse). I wrote the first Linux drivers for these in the 1990s and still have a number of Personal DECstations sitting in my basement…
If you want to experiment with ACCESS.bus, there’s an app note from Philips (AN445, https://www.elenota.pl/datasheet-pdf/150926/Philips/APPLICAT…) and example code for an 8051-based ACCESS.bus mouse (http://www.microshadow.com/files/files8051/abmouse.zip).
The official ACCESS.bus specification can be found at https://archive.org/download/DECAlphaDocs (file names A.bus_spec_sec_[0-5]_v2_0.ps)
We’d have a form of hi-speed RS-232. Nine wires, what else would you need or want? Setting it up was so trivial even I could do it and did it in the early 90s hooking new PBXes to *nix boxes in hotels to charge LD calls automatically to rooms and freeing the operator to work full time as a receptionist.
I earned my living this way for a year.
And RS232 was quite common; so much in fact industrial equipment had those for diagnostcs, repair & reconfig. I owned a pair of Dell laptops which had a port for that. And I’ve no doubt someone’s *nix shop out there still relies on VT100 terminals.