• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

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

Not as things stand right now. I think a generic absolute-positioning driver with a standardized interface would be useful in the future (or for other projects) but it isn't important if all you want is keyboard/mouse switching with real ADB peripherals.
The other benefit of 'absolute' vs 'relative' positioning is for better performance with VNC-type systems.
 
I just hooked up the unit I bought from superjer. Works great with my IIgs keyboard, but I have a question regarding other's experiences with mouse movement. On all my machines the cursor movement is smooth in either purely horizontal or vertical directions, but moving diagonally produces a jerky or jumpy movement of the cursor. Are others experiencing this or is it possibly something with my particular setup?
 
Could you post the model of the mouse you're using? It's probably hard to quantify, but could you also give an idea of how far the mouse is jumping/skipping?

I may be more/less sensitive than others but I am not particularly proud of current mouse behavior, there is definitely room for improvement: main thing I want to squash is perceived lag, it feels like the pointer is more sluggish than when a mouse is directly connected. The current implementation is also vulnerable to overflowing with very fast movement, though I'm not sure that's necessarily what's causing the problem you're experiencing.

I have a rough draft written for an updated mouse handler that tries to fix some of the jankier parts of the current firmware, as well as adding support for the extended mouse protocol. I'll post that in the next day or two if you're interested in giving it a spin, it might improve the experience.
 
It is model number A9M0331, made in USA variant. As far as the jumping, if I try to say, move the cursor circularly around an icon I'd say it jumps around a quarter of the height of the icon. I've got another ADB mouse hanging around here somewhere so I'll try to find that tonight and see if there is any difference. I'll keep an eye out for any posts regarding new firmware as well. Thanks!
 
I just tried mine and didn't notice anything weird. I moved the mouse vertically and it was quite smooth. That was with an Apple made in Malaysia mouse.

@mfinn it might be worth trying to upgrade to the newest firmware. I had flashed your unit with a hybrid firmware that was slightly older in most regards (to maintain serial connectivity for debugging with Windows machines), but supported a broader set of input devices. Note that this hybrid firmware is the same as what I'm running currently.

@saybur would you be able to share the .uf2 file of that latest firmware you compiled that removed the restrictions based on device handler IDs? I would need to setup my Raspberry Pi 400 to recompile from source.
 
I just tried mine and didn't notice anything weird. I moved the mouse vertically and it was quite smooth. That was with an Apple made in Malaysia mouse.

@mfinn it might be worth trying to upgrade to the newest firmware. I had flashed your unit with a hybrid firmware that was slightly older in most regards (to maintain serial connectivity for debugging with Windows machines), but supported a broader set of input devices. Note that this hybrid firmware is the same as what I'm running currently.

@saybur would you be able to share the .uf2 file of that latest firmware you compiled that removed the restrictions based on device handler IDs? I would need to setup my Raspberry Pi 400 to recompile from source.
Sorry, I meant diagonally! Long day!
 
It is model number A9M0331, made in USA variant
Thanks. I checked my stash and unfortunately all I have are the Malaysia ones like superjer2000's. If you're willing could you double-check that the diagonal motion is not a problem when directly plugged into the computer as well? The handling of those basic mice should be pretty consistent but if it continues to be a problem I'll snag a US model off eBay for testing, could always use more ADB devices! :LOL:

would you be able to share the .uf2 file of that latest firmware you compiled that removed the restrictions based on device handler IDs?
No problem, it's attached.
 

Attachments

Development work is slowly continuing. Highlights of recent items:
  • Experimental support added for Kensington Turbo Mouse trackballs, enough for 5.0 (4-button) models to be recognized by Mouse Works 5.7. This is early and there certainly are bugs present, but I figured some users might want to try this out and see how it goes.
  • Support for some Gravis joysticks has been added, including the Firebird/Blackhawk and theoretical support for Mouse Stick II. Structure is there for this to support cross-driver funtionality to make the Mousestick II act like a Firebird, or vice-versa, but that still needs work. I also need to spend some time playing A-10 Attack to see how well it works in practice!
  • A system for end-user configuration of a device is ready, see https://saybur.github.io/hootswitch/flybywire/config.html for the bare-bones interface.
Device configuration doesn't do much useful yet and I don't want it to be required for operation, sane defaults will still be the rule. However there are things I have planned that will need it: for example, I'd like the option to toggle device overrides, like making a Turbo Mouse 5.0 act like a 4.0 for use on older systems. As with everything on hootswitch, more development is needed :)

New firmare is attached.
 

Attachments

That's awesome! Thanks for continuing to develop this - my Hootswitch works great and makes switching between my vintage Macs seamless!
 
If anyone is planning to have populated boards built I'd really like to have one of these. That much SMD soldering is outside of my comfort zone.
 
Support has been added for emulating different varieties of Kensington Turbo Mice, which can now be toggled in the configuration system. This has been letting me use my 5.0 with the Turbo Mouse 4.0 driver. I also fixed up a major bug with the config so it should now actually be usable. Release is here, I'll be posting binaries on Github from now on.

https://github.com/saybur/hootswitch/releases/tag/v20240426

That's awesome! Thanks for continuing to develop this - my Hootswitch works great and makes switching between my vintage Macs seamless!
Excellent! I'm glad the basic features are working well. This project has been more complicated than I was expecting (big surprise right) so it's gratifying to hear people are getting use out of these! :)

If anyone is planning to have populated boards built I'd really like to have one of these. That much SMD soldering is outside of my comfort zone.
While you technically could do all of it by hand, I made the design with the intention of having all the SMD work done by a board house. I've used JLCPCB and the gerber/component files in the repo are tuned with them in mind. Several warnings if you want to tackle that yourself:
  • If you're in the states you will get bit by tarrifs pretty good. It might be worth waiting to see what happens there before ordering.
  • Most recent design is 2024c, which nobody has built yet. It's basically identical to 2024b except it fixes the missing ground line problem @superjer2000 discovered. Pre-release is even more "fun" than the fully tested designs I make!
  • Once they arrive you'll still need to do all the through-hole work yourself. Fortunately those parts are pretty easy to do. No instructions exist for assembly but if you post here I'll try to help as best I can.
  • The whole project is still WIP. As noted, the basics are working but this is much more complicated than a simple rotary switch, expect to find bugs.
If you aren't disuaded by all that the most recent hardware design is at https://github.com/saybur/hootswitch/tree/hw-2024b
 
If anyone is planning to have populated boards built I'd really like to have one of these. That much SMD soldering is outside of my comfort zone.
I'd be willing to sell you my assembled version plus a case I printed for it if you're interested.
 
Do you have any of these available for purchase? I've been hunting for a vintage Mac KVM solution but haven't found anything on ebay.

I was considering S-Video switching until I found out that the pinout is not the same as ADB even though the connectors are physically identical in appearance.
 
Do you have any of these available for purchase? I've been hunting for a vintage Mac KVM solution but haven't found anything on ebay.
Unfortunately I do not have any for sale myself. To be completely candid, I do this kind of hardware tinkering just as a hobby and I have lots of other work/life/project pressures that will cause me to stop working on things for fairly long periods at a time (ask anyone with a scuznet, heh). A large part of why I don't like selling devices is I don't want the pressure of "having to" work on something out of a financial obligation. That's what my regular job is for!

That said, I have no problems at all with anyone else making these and selling them, if they wish. The licenses permit it and I am happy to put this work out there for others to freely play with and/or build upon. Just don't go into it expecting a finished, polished project.

I was considering S-Video switching until I found out that the pinout is not the same as ADB even though the connectors are physically identical in appearance.
Yes, they are likely to connect lines together in ways that are unacceptable for ADB. It might work if the switch is set up to have each line isolated, but even then I'd be cautious about switching lines with any computers on... it seems like a recipe for potentially shorting something out. Others might have some ideas if you want to post a separate thread about it though.

In my opinion, even if it is a purpose-built device I've never been impressed with the mechanical switchers for ADB: as mentioned earlier up in the thread, they do work for many people, but in addition to possible electrical issues they have some squirrely behaviors due to the way ADB handles device addresses. That's not to say that doing it the Hootswitch way is entirely without problems either. ADB is really cool but it was clearly never designed with KVMs in mind.
 
Back
Top