5

I recently came across a note in some hardware from late 80's that used an integrated Apple II something with ADB keyboard. It had a note that on that model, the keyboard was hot swappable along with a service module (ADB), but not on the previous models.

I then saw on wikipedia (https://en.wikipedia.org/wiki/Apple_Desktop_Bus) that the bus was "occasionally" swappable.

What is the hardware change between systems that makes ADB hot-swappable?

6

The early ADB implementations were not hot-pluggable, as first of all the software driver stack only discovered the ADB peripheral devices at boot time, and hardware was implemented in a way that could lead into damage to devices.

The largest hardware change that could have required proper hot-plug support could possibly have been Macintosh Portable. On this device, the integrated keyboard also communicates via ADB, as does the trackball. However, according to user manual, it also required to be shut down from the menu before connecting ADB peripherals, otherwise all ADB devices may lose their addresses.

So, the main reason may not actually be the hardware, but software/driver support for re-enumerating newly inserted devices. But there is also little point making the driver support for hot-plugging, as it should be discouraged due to lack of reliable hardware support.

The hardware for the ADB connector is also very simple. Comparing the ADB port schematics with for example the non-ADB keyboard port, the ADB port seems to have very little effort made to protect against potential issues from hot-plug events.

Early ADB implementations had a fuse protecting the 5V supply pin, which many people have complained to blow when reconnecting the ADB cable. Possible reason for this might be the inrush current to charge the capacitors on the peripheral power supply pins. Later implementations removed the fuse so at least a blowing fuse stopped being a problem.

One source of problems is the electromechanical interface, i.e. the Mini-DIN connector. The connector does not guarantee any order in which the pins make a connection.

If the unplugged device gets charged with static electricity, and the ADB data pin happens to mate first when plugging, it will discharge almost directly via the ADB controller data IO pin as there is very little protection from ESD events.

The connector pins for ground, ADB data and 5V supply are mapped so that when inserting the connector at an angle, the 5 supply and ADB data might be the first two pins that mate and the ground pin mates last. In the event that some other device pulls the ADB data pin low while one device has only +5V and ADB data connected, it puts excess stress to the ADB interface driver and the unpowered device, as basically the unpowered device may try to suck power from the ADB data pin (CMOS chips have built-in protection diodes that conduct when IO pins go above supply or below ground).

So what was most likely done to finally allow hot-plugging ADB devices (on PowerBook G3 "Wallstreet" maybe as it boasts hot-plug support) is adding enough protection against surge currents and ESD on power supply and data pins so the interface can sustain the obvious hazards of hot-plugging.

And of course, handling the detection and enumeration of freshly plugged devices in the driver software, and their removal.

Just as a side note, compared to ADB, hot-pluggable interfaces such as USB actually define these things, such as in which order the connector pins must mate, and how large surges are allowed on hotplug, etc, so it needs slightly more effort than just wiring logic signals and power between devices through a random connector.

4

[The description about the environment this is asked for is kinda cloudy, so this answer can not really pick up on the exact case but features on ADB in general. Likewise it's unclear what change are refered to]

This has been debated a lot, as the answer is not as simple as most would like it.

On a Hardware level it is hot swapable

There are no inherent problems when adding a device to the chain or removing it. Beside possible interruption of an ongoing transmission, which usually should be recoverable.

That said, it was not especially designed to protect against unwanted issues - like devices carrying an electric potential or short circuiting. It had the same level of practical hot plug ability as any other serial or parallel port - like an IBM keyboard, a modem or a printer.

On a Software level it depends

The basic problem is that ADB on an Apple II is handled by a, let's say, 'simple' driver model. Devices are initialized once at system power up, not when they are connected, like for example with USB. Any device connected later on will work in a non initialized default mode. For simple devices this works quite fine, just not for all and always.

It never worked when multiple devices of the same kind were plugged in, like two mice or keyboards, as without initialization they would work on the same address, resulting in corrupted data transmission.

Also handling differs quite between the Apple IIgs and later Macs.

5
  • Are you aware of any electrical differences? e.g. make-first, break-last for ground? Jan 12 at 13:50
  • @AlexHajnal No, AFAIK all versions sued the same simple 4 pin connector. It carries no preventive measures like power first or ground first. It was as swapable as an RS232.
    – Raffzahn
    Jan 12 at 23:11
  • I think it would be quite safe to say that RS-232 is much more hot-swappable than ADB. RS-232 is by design a robust external communication interface between two equipment, as it supports connecting powered and unpowered equipment together, has current limiting on outputs, tolerates overvoltages on inputs, tolerates short circuits and carries no supply power between devices. That's quite different from ADB, which basically just wires power supplies and a GPIO pin of a CMOS microcontroller rather directly to a connector, thus exposing the sensitive GPIO pin to dangers of the external world.
    – Justme
    Jan 13 at 21:07
  • @Justme Well spoken, except all the advantages are only given if implemented - not exactly standard when talking micro computers of the 8 bit age.
    – Raffzahn
    Jan 13 at 21:21
  • 1
    The four pin connector had a grounded metal shroud, so it DID mate the ground first, then other (power, data) pins.
    – Whit3rd
    Jan 15 at 9:38
1

Adding to the above; in the late 90s I had a device on my ADB Mac, although I no longer recall what it was, that had to be plugged in and removed all the time. Rebooting was annoying.

I wrote a small application that would reset the ADB driver. Plugging in the device and running it - the app was literally a few lines long - was all that was needed to hot swap.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.