Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Pico-ASHA – Audio streaming to hearing aids using a RPi Pico W (github.com/shermp)
3 points by shermp 3 days ago | hide | past | favorite | discuss
The past several months, I have been developing a method of streaming audio to my hearing aids from a PC. To do this, I have programmed a Pi Pico W to act as a USB audio device which will work with any OS and be capable of playing audio on my hearing aids.

For a bit of background, modern hearing aids have different methods of directly streaming audio over bluetooth. The earliest (and most common) is Apple's Made for iPhone program. Phonak hearing aids use bluetooth classic (A2DP). Many devices support Android's Audio Streaming for Hearing Aids (ASHA). And the latest hearing aids are beginning to support the new LE Audio standard.

The goal of Pico-ASHA is to implement Android's ASHA. Android has published a specification at https://source.android.com/docs/core/connect/bluetooth/asha. The reference implementation is in the AOSP project.

Pico-ASHA presents itself as USB headset (and a CDC serial device) to the OS. Apart from the Pico W, no additional hardware is required. Pairing to hearing aids is automatic, and once paired, audio streaming Just Works (tm) - in theory! The project is implemented using the Pico C/C++ SDK, including TinyUSB for the USB audio/CDC support, and btstack for the Bluetooth LE stack.

I have now reached the stage of the project where it (mostly) works well with my own hearing aids (Oticon More 2). I would like to expand testing to other hearing aid makes and models, because I have probably made assumptions that work with my hearing aids, but not others. If anybody with suitable hearing aids who have (or can obtain) a Pico W and are willing to be an early tester, it would be much appreciated. I would hate for this to be an Oticon More only project.

The motivation for working on this is pretty simple - the adapters hearing aid manufactures provide for interfacing with computers are outrageously priced. I object to paying them hundreds of dollars for commodity hardware. Also, it's been a great challenge.

This is my first ever attempt at developing on a microcontroller, on USB device support, and bluetooth. So please forgive the state of the codebase, I was learning how to do stuff as I went along.

Finally, I would like to acknowledge the recent work occurring in the Linux space to add experimental ASHA support to BlueZ (https://github.com/bluez/bluez/pull/836) and a pipewire implementation (https://github.com/thewierdnut/asha_pipewire_sink). Both projects reignited my enthusiasm to continue work on Pico-ASHA.






Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: