Hootswitch, a (work-in-progress) Apple Desktop Bus switch

saybur

Well-known member
Not as much time for projects recently (life/work/etc) but I was able to get preliminary support added for controlling a Hootswitch over USB from a modern computer. I did something like this ages ago with a clunky Java client. This new approach uses Chrome and the Web Serial API. Remote control page is here, you'll need a Hootswitch with the latest firmware to make it work.

flybywire.png
 

Jockelill

Well-known member
Really neat project! Very impressive work indeed!!!

Bluetooth support for a wireless mouse would be really nifty :). And, maybe this is very weird request, but if you would have a 5th channel with USB output it would also be very nice. That way you could have 1 modern computer and 4 retro computers using same keyboard and mouse :). I'm currently using a very old style KVM (mechanical switch) that lets me switch between my modern computer and a Q650. But I always switch it turned out not to mess up the ADB.
 

saybur

Well-known member
Really neat project! Very impressive work indeed!!!
Thanks!

Bluetooth support for a wireless mouse would be really nifty :)
I've been slowly digging at it as I get time. Quite annoyingly, licensing is the current problem: the Bluetooth SDK library, btstack, doesn't appear to be compatible with the GPL, so I can't use the example code as a base and even linking to the library may also be a problem. I'm trying to figure out the best approach, either some license exception or switching to something else (MPL2?) that would allow incorporation, but still ensure remixes/derivatives stay open source.

I'm no license expert, if anyone has insights I'd like to hear them.

you would have a 5th channel with USB output it would also be very nice
That's an interesting idea I hadn't considered. Let me give that some thought.
 

Reasons.

Well-known member
ZMK (https://zmk.dev/) ran into a similar problem and ended up adopting MIT. That doesn't keep derivatives from going closed-source, but if there's any conversations about their decision-making it might be useful reading.
 

CircuitBored

Well-known member
It just occurred to me that @ThisDoesNotCompute recently did a video about the Penlite, Apple's cancelled touchscreen PowerBook thing. This device surely has absolute cursor positioning (unless the developers went about it in an extremely odd way). Perhaps the drivers used in this machine could be utilised for developing a driver for use with a KVM?
 

Byte Knight

Well-known member
Sort of related… I take it this is an example of the old “passive” deign of ADB KVM:


Also on a related note, I just found this ADB switcher and will try it in reverse by hooking up the wired end to the keyboard.

 

superjer2000

Well-known member
Haha yes, it is much easier by comparison! This time around I chose parts stocked by JLCPCB and included the CPL needed to have them do the annoying SMD work for you. I think I put mine together in about 15 minutes or so, everything is through-hole including the Pico unless you want to use the castellations on those.

For hardware, if you want to be really adventurous I have a version 2024b prototype up on Github (https://github.com/saybur/hootswitch/tree/hw-2024b) but I have not manufactured it yet. Most of the changes are minor but I'm reluctant to recommend anyone try something totally untested, more just FYI that it's there and aims to correct the errata for 2024a in the main branch. I'll hopefully have 2024b shipped back here in the next week or so and can make sure it works.
Has anybody tried the 2024b yet? I'm looking to get my order in and not sure if I should stick with the "A" version or try the "B".

Thanks!
 

saybur

Well-known member
It should be fine, most of the changes were quite minor. Definitely post any troubles and I'd be happy to help. I'm still a bit buried with work but am hoping to have more time for this stuff over the holiday breaks coming up.
 
Top