• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

ADB Keyboard and Mouse switch

Themk

Well-known member
Trash rightfully told me to move my discussion of the ADB port switch thing to the peripherals forum.

The discussion spawned out of this: https://68kmla.org/forums/index.php?/topic/30470-retro-usb-input-converter-for-keyboards-and-mice/

Here is what we got so far.

So, you are talking about a switch of some sorts. There could be a passive model that simply changes which adb data pin is connected from the keyboard to the mac, but that would rely on the mac being able to hotswap ADB devices. An active model could pose as a keyboard to the four macs, and then based on which mac is selected, typing on the ADB keyboard could paste characters into the emulated keyboard going to the mac.
 
A passive model could probably be designed within a week, if I had enough free time.  All it entails is using some switches to route the ADB data pin going from the keyboard, to the corresponding ADB data pin attached to the mac you want to use. Probably what I would do is put a low-cost MCU on-board the passive model, which controls relays to attach or detach the ADB data pins. There are a few other ways of doing it too.


Yes, but more than 4 ports please!
I'd happily pay $100 for a 10-port ADB switch, if it were available.
I made a logic diagram

View attachment 12786
 
Which describes the overall idea.
 
Last edited by a moderator:

Themk

Well-known member
Someone requested a 10port model, so, that is probably what I will start with first.

A smaller 4-port model will follow, maybe perhaps with video switching.

Once I design the first model of this, changing the number of ADB ports will be trivial.

 
Last edited by a moderator:

joethezombie

Well-known member
Yes, this would be  a most excellent idea!

From what I understand about ADB, which isn't a lot, the system assigns an address to each device.  The problem is, if you unplug and then plug back a device, it gets assigned a new ID, but the system continues to attempt to reach it from the old address.  And also, if you turn Macs that are connected to the "switch" off and on, the devices will renegotiate.  The switch would have to handle both giving an address to the connected ADB devices, and accepting IDs from all connected Macs.  Finally, it would need to route them depending on which Mac is selected.

Sounds like a fun project... best of luck!

 

Scott Squires

Well-known member
Each ADB device type (keyboard, mouse, tablet, etc.) has a default address. When the device powers on, it assumes a bus address based on what type of device it is. When the Mac ROM loads, it detects address collisions and performs address reassignment. So a proper ADB switch would need to translate the device address based on which host is active.

If all you have connected is one mouse and one keyboard, the Macs don't need to do address reassignment, and you wouldn't need to actively translate addresses. With passive data line switching, there's a chance that you could disconnect/connect the line in the middle of a transaction. The host and device should be able to recover from that.

 

Themk

Well-known member
So I had some more thoughts

- Power switch pin should also probably be switched too, this will add to the cost and complexity of the device, but if people think it will be worth it, I will implement that.

- This will be implemented, but, I will modify the circuit to port #1, so the power switch is normally closed on that, allowing you to power up your mac (which, in turn provides power to the switch). Once power up is complete, the power switch line could then be disconnected.

It's all about what people want.

 

Themk

Well-known member
Doing the video switching with analog multiplexer doesn't look to be too difficult. The most difficult part will be soldering all of those DA-15 connectors [:p] ]'>

 
Last edited by a moderator:

Themk

Well-known member
Two planned versions so far

1. A 10-port ADB (KM) switch only, due to request of a member here

2. A 4-port ADB and video (KVM) switch, to satisfy another member here [;)] ]'>

While a 10-port KVM is possible, it would be unwieldily large due to 11x DA-15 connectors.

Depending on the total level of interest this project receives, a lower cost "mini" version might be released. This will be a 4-port ADB only (KM) switch, in a compact case.

 
Last edited by a moderator:

Themk

Well-known member
Sure, you can cascade the 4-port models.

I could add a control interconnect that makes it easier to stack them.

I assume thats what you are talking about?

 
Last edited by a moderator:

Trash80toHP_Mini

NIGHT STALKER
Stacking three gets you 10 ports, with 5 you get 16. One model gains economies of scale and by stacking with the interconnect you suggested, the cable mess of a Y branching KVM cascade remains manageable.

edit: mulling over thoughts of a parallel bus setup vs. Y branching so 3 get you 12 and two can be dumb, low cost terminals (same board, unimplemented components) for expansion controlled by the one full featured base unit.

edit 2: Intelligent base controller hub and a single dumb shield "slice" gets you the first four. Provisions for hardwiring the Video connections keeps you within a much smaller PCB footprint/gives the user control over custom cable lengths etc. Cable wrangling is the bane of KVM users, customizing lengths would be perfect. Sould do the same with the S-Video/ADB wiring as well, putting your connector related costs at zero. Strain relief for cable customization would be built into the printed case

LACIE - Joule Modular Storage System - Snow White stripes...

 
Last edited by a moderator:

Themk

Well-known member
Both 10 and four port models will be stackable.

You could even mix the types in your stack.

 
Last edited by a moderator:

Trash80toHP_Mini

NIGHT STALKER
Just started my coffee and read the LEM info. The Dr. Bot cable length discussion says it all, but the hardwiring customization was the usual bleary, pre-coffee blathering, I hesitate to call it thinking. Still works for me now that I'm in a semi-coherent mode of thought though.

 

Trash80toHP_Mini

NIGHT STALKER
Both 10 and four port models will be stackable.
No point in doing the 10 port in a cascading mode. You're forgoing the benefits of economies of scale by doing two PCBs. The larger version will be cost prohibitive. The 4-port version keeps you well within SEEED type production spec. Rough out your real estate requirements per outlet on the PCB as the first design parameter in roughing out the production cost analysis for your project.

You could even mix the types in your stack.
Again, no need for that added complexity.

I need more coffee, but the way I'm visualizing it, two identical units per SEEED square gives you eight ports, three boards get you twelve. Only one of the three identical boards in that stack would be fully populated. Ten's not a "computer number," KVMs are implemented 2-4-8 in standalone boxes. Multiple chunks of four makes al lot of sense unless pairs bring cost/complexity of arrays way down.

last edit: cost analysis projections need to be done FIRST in product development. Design specs are based upon those projections.

 
Last edited by a moderator:
Top