TashKM: ADB Daisy-Chained Keyboard/Mouse Controller

This project really has gone through a lot of iterations, for reasons of "I realized you can't do that", "I realized I can't do that", and most recently, "I realized they don't make those anymore." But I think I'm nearing a destination, even if it wasn't the one for which I originally planned.

I've been having a lot of fun with this lately. Besides a new and, I think, more elegant implementation of the ADB protocol, I now have a system that is actually working with parts that are still manufactured and are even in stock at DigiKey as of the time of this writing.

Here it is, with a useless but cute bit of HyperCard pixel art:
opto.png

The main unit connects to an ADB Mac and a PS/2 keyboard and mouse. It also drives a current loop which can connect to a number (14, currently) of optoisolated downstream units powered by the Macs to which they connect. The main unit can switch between controlling any of the downstream units via a key combination. Because the downstream units are powered by their host Macs, I don't think powering them up remotely is possible.

Currently the downstream units only drive ADB Macs, but there's no reason one can't be made to drive a phone-cord-keyboard/quadrature-mouse Mac, or indeed a PC.

Unfortunately, I can't go through with my earlier idea of using the inner pair of a PhoneNet network - the signals aren't differential and they can't be reversed. I think instead I'll use RCA cables, I have a lot of those lying around and other people probably do too...

I've got this working on a breadboard; next stop, PCBs.
 
I've got this working on a breadboard; next stop, PCBs.
Nicely done!

I know you've already got something actually working and the point is now moot, but I _believe_ (haven't tried it out in person) that pretty much any transformer with a relatively equal winding ratio would have worked. The goal isn't to do anything fancy with pulse shapes or voltage levels or what have you; it's just to induce a pulse on the Mac side whenever one goes past on the bus side, and vice versa. (That's the nice thing about low-complexity stuff like this - it's pretty hard to build it so poorly it doesn't work at all, so the reliability-improvement stages after you get it minimally functional are more about robustness than about basic operational consistency.)
 
I was curious if this project was completed or if there's an update?
I'm afraid there's no update, I've hit several snags that have kind of killed my interest in it, the main one being the absence of any standard driver that allows for absolute positioning of the mouse cursor on the screen. Maybe someday I'll pick it up again but I can't promise anything...
 
I'm afraid there's no update, I've hit several snags that have kind of killed my interest in it, the main one being the absence of any standard driver that allows for absolute positioning of the mouse cursor on the screen. Maybe someday I'll pick it up again but I can't promise anything...

Ah ok, thanks for the update.
 
Hi Tashtari,

I think I'm in a similar situation as you where, I would also like to control my collection of Macintoshes from one single keyboard & mouse.
But then also have the option to display everything on a single LCD monitor ...

I got myself a second hand 8 inputs KVM for PCs with DB15 VGA / PS2 / USB to find out how they where doing it.
And actually there is a microcontroller on every input for the PS2 / USB so I got my scope out to check how it works :

The microcontroller simulates a keyboard / mouse, even if this device is not selected it keeps on sending NO KEY / No Movement
data to the PC, otherwise the PC would disconnect the USB and possible report errors.

I don't know if this is an issue on the ADB bus yet, does the keyboard / mouse send data if there are no changes ?

There is also NO isolation on any signals, as all the machines are "underneath your desk", any ground voltage difference should
be minimal. This is not so with AppleTalk of todays Ethernet with cables running may meters ...

My idea is to use an CPLD instead of a microcontroller as it will have no problem of running 9 ADB part at the same time ?

I will have a look at your sw on Gitlab, but my PIC assembly is a but rusty :(

Br,
Steve
 
Back
Top