MousePods zet bewegingsgegevens van AirPods om in muisinvoer voor Linux. De open-sourceapp van Matteo Gaudioso kan de cursor besturen met hoofdbewegingen of met een oordopje in de hand. Een Apple-apparaat is daarvoor niet nodig, schrijft het MousePods-project.

Het project noemt AirPods 3 en AirPods Pro 2 als modellen die op echte hardware zijn getest. De muismodus is hardwaregetest; de pointermodus met hoekkalibratie is alleen in simulatie getest en de glidemodus is experimenteel.

Waarom de AirPods 3 een grotere MTU nodig hadden

Donker MousePods-scherm met een gerenderd oordopje, gekleurde oriëntatieassen, een cursorindicator en een bewegingsgrafiek.

Bij AirPods 3 ontdekte het project dat de bewegingssensoren pas zichtbaar werden nadat de L2CAP-ontvangst-MTU was verhoogd. MTU is de maximale grootte van een gegevenspakket op die Bluetooth-verbinding. In de beschreven test was de standaardwaarde in Linux 672 bytes; bij 2582 bytes verschenen de sensorbeschrijvingen. Het project koppelt de AirPods 3-route aan Apple RemoteHID via AACP, op RTBuddy-kanaal 0x800, niet aan het SensorDataWX-startprotocol dat nieuwere modellen gebruiken. De technische bevindingen van MousePods beschrijven deze uitkomst voor AirPods 3 met modelnummers A2564/A2565 en firmwaremarketingversie 6296592, getest met Ubuntu 24.04, BlueZ 5.72 en Python 3.12.

Bij AirPods 3 moest MousePods de ontvangst-MTU verhogen om de bewegingssensoren zichtbaar te maken. De koppeling alleen was niet genoeg.

Het project rapporteert voor AirPods 3 een maximale gegevensstroom van ongeveer 210 Hz en noemt circa 100 Hz een praktische instelling. Bij ongeveer 180 Hz zag het tijdens een test van 23 seconden twaalf onderbrekingen van 50 milliseconden, terwijl A2DP-audio en een Bluetooth-muis dezelfde verbinding deelden. Dit zijn projectmetingen in die specifieke testopstelling.

Welke modellen en functies het project heeft getest

MousePods noemt AirPods 3 en AirPods Pro 2 als hardwaregetest. AirPods 2, AirPods Pro 1 en AirPods Max staan als niet getest vermeld. Het project zegt dat AirPods 4 hetzelfde SensorDataWX-protocol gebruiken als Pro-modellen, maar noemt AirPods 4 niet als door MousePods op hardware getest.

De muismodus vertaalt hoofdbewegingen of bewegingen van een oordopje in de hand naar cursorbewegingen. Voor klikken noemt het project onder meer een druk op het steeltje, een snelle hoofdbeweging of stilhouden op een doel. De pointermodus is bedoeld om met hoekkalibratie naar punten op het scherm te richten, maar is alleen in simulatie getest. Bij de experimentele glidemodus schuif je een oordopje over een tafel. De sensoren van AirPods 3 staan volgens het project uit wanneer de oordopjes in de oplaadcase zitten.

Ook de headtrackingroutes hebben verschillende teststatussen. De uitvoer naar opentrack is volgens de projectsite offline getest, maar niet in een game. De repository beschrijft daarnaast een afzonderlijke integratie via Steam en Proton, die een bijdrager met AirPods Pro 2 op Bazzite testte in Assetto Corsa en Euro Truck Simulator 2. Dat is een andere route dan de opentrack-uitvoer.

Wat je nodig hebt op Linux

MousePods vereist Linux met BlueZ, gekoppelde AirPods en schrijfrechten voor /dev/uinput. Dat Linux-apparaat maakt een virtueel invoerapparaat aan waarmee de app cursorbewegingen kan doorgeven. Volgens het project zijn rootrechten niet nodig. De software vereist Python 3.10 of hoger; de beschreven AirPods 3-test gebruikte Python 3.12. De installatie-instructies staan in de MousePods-repository.