<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>maya.sh - en-computers</title><link href="https://maya.sh/" rel="alternate"/><link href="https://maya.sh/atom-en-computers.xml" rel="self"/><id>https://maya.sh/</id><updated>2026-07-09T00:00:00+02:00</updated><subtitle>Page perso de Maya</subtitle><entry><title>Custom Arduino based ADB to USB converter and switch for Macintosh keyboards</title><link href="https://maya.sh/adbusb-en-en.html" rel="alternate"/><published>2026-07-09T00:00:00+02:00</published><updated>2026-07-09T00:00:00+02:00</updated><author><name>Maya Saura</name></author><id>tag:maya.sh,2026-07-09:/adbusb-en-en.html</id><summary type="html">&lt;p&gt;&lt;em&gt;Translated from &lt;a href="/adbusb.html"&gt;here&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I'm using my computer with an &lt;em&gt;Apple Extended Keyboard&lt;/em&gt; from the nineties because the Alps switchs are satisfyings. It's an ADB keyboard, an old serial bus introduced on the Apple IIgs, the Macintosh SE and all subsequent Macs before the translucent iMac G3 with USB.&lt;/p&gt;
&lt;p&gt;The Apple …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Translated from &lt;a href="/adbusb.html"&gt;here&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I'm using my computer with an &lt;em&gt;Apple Extended Keyboard&lt;/em&gt; from the nineties because the Alps switchs are satisfyings. It's an ADB keyboard, an old serial bus introduced on the Apple IIgs, the Macintosh SE and all subsequent Macs before the translucent iMac G3 with USB.&lt;/p&gt;
&lt;p&gt;The Apple Desktop Bus has the following features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a computer and multiple devices can be wired on the same bus&lt;/li&gt;
&lt;li&gt;it's a bidirectional bus shared between the computer and all devices&lt;/li&gt;
&lt;li&gt;each device has a default address, the computer can change a device address to avoid collisions&lt;/li&gt;
&lt;li&gt;the computer ask, a device respond (pooling)&lt;/li&gt;
&lt;li&gt;the computer repeatedly ask the last active device (usually the mouse), another device used at the same time (a keyboard) triggers a service request (SRQ) by lowering the bus at a precise timing during the response of the other device, it will be the new active device at next turn&lt;/li&gt;
&lt;li&gt;devices are smart and have memory to register data (last keys pressed or coordinates)&lt;/li&gt;
&lt;li&gt;adb is theorically plug and play but apple documentation discourages hotplugging because of a risk to fry the computer adb controller&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the past i built an ADB-to-USB converter using an arduino pro micro and QMK firmware but i wanted to use my keyboard on my modern Macbook and on my Macintosh SE at the same time without (un)plugging things and rebooting.&lt;/p&gt;
&lt;p&gt;For this reason i written my own converter and added a button to switch between an USB host and an ADB host. Any mouse or other device plugged on the keyboard will work on ADB and be ignored on USB. The power key works too! I re-used the same hardware because the arduino pro micro is 5V tolerant and USB-HID compatible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Detailed instructions and source code is available &lt;a href="https://github.com/mayafeur/adbusb"&gt;on github&lt;/a&gt;!&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;
&lt;img src="media/adbusb/illustration.png" alt="pixelart illustration of the setup" width=500&gt;
&lt;/figure&gt;</content><category term="en-computers"/></entry></feed>