Introduction

L'accéléromètre MEMS intégré aux MacBooks Apple Silicon, géré par l'unité de traitement de capteurs (SPU), n'est pas exposé via une API ou un framework public. Un projet open source a permis de lire les données brutes d'accélération 3 axes à ~800 Hz via des rappels iokit hid. Cet article présente les détails techniques et les implications de cette découverte.

Contexte Technique

Le capteur est accessible sous AppleSPUHIDDevice dans le registre iokit, sur la page de code fournisseur 0xFF00, usage 3. Le driver AppleSPUHIDDriver, faisant partie de l'unité de traitement de capteurs, est utilisé pour ouvrir le périphérique avec IOHIDDeviceCreate et enregistrer un rappel asynchrone via IOHIDDeviceRegisterInputReportCallback. Les données sont reçues sous forme de rapports hid de 22 octets, avec les axes x/y/z représentés par des entiers 32 bits little-endian aux décalages d'octets 6, 10, 14. La division par 65536 permet d'obtenir la valeur en g. Le taux de rappel est d'environ 100 Hz.

Analyse et Implications

L'analyse de ce projet montre que l'accéléromètre MEMS peut être utilisé pour détecter des vibrations, comme les battements cardiaques, en utilisant la ballistocardiographie. Cela pourrait avoir des applications dans le domaine de la santé, mais il est important de noter que ce projet est expérimental et non destiné à un usage médical. Les implications de cette découverte incluent la possibilité d'utiliser les MacBooks Apple Silicon pour des applications de santé et de bien-être, ainsi que pour des recherches sur les capteurs et la détection de vibrations.

Perspective

Il est important de surveiller les mises à jour futures de macOS et leur impact potentiel sur l'accès à l'accéléromètre MEMS. De plus, la communauté des développeurs et des chercheurs devrait être attentive aux possibilités offertes par ce capteur et explorer de nouvelles applications et utilisations. Cependant, il est crucial de considérer les risques et les limites de l'utilisation de ce capteur, notamment en termes de sécurité et de confidentialité des données.