[GH-ISSUE #115] Control via ESP32 BLE Bridge - Feasibility? #44

Open
opened 2026-03-02 12:02:58 +03:00 by kerem · 5 comments
Owner

Originally created by @DEMoN881 on GitHub (May 2, 2025).
Original GitHub issue: https://github.com/kavishdevar/librepods/issues/115

I'm exploring the possibility of using an ESP32-based device (e.g., ESP32-S2 Mini) as a portable bridge to enable advanced AirPods Pro 2 control on non-Apple devices. The goal is to implement:

1.Battery status monitoring

2.Noise control mode switching (ANC/Transparency/Adaptive).. etc..

Motivation:
Many Android users cannot access AirPods' full feature set due to OS limitations. A portable ESP32 solution would be valuable for:

Devices with locked bootloaders

Situations where carrying a secondary Apple device isn't practical

Perhaps it will be possible to create an inexpensive gadget that will control Apple devices without root rights. It can be based on an ESP32 board or similar.

Originally created by @DEMoN881 on GitHub (May 2, 2025). Original GitHub issue: https://github.com/kavishdevar/librepods/issues/115 I'm exploring the possibility of using an ESP32-based device (e.g., ESP32-S2 Mini) as a portable bridge to enable advanced AirPods Pro 2 control on non-Apple devices. The goal is to implement: 1.Battery status monitoring 2.Noise control mode switching (ANC/Transparency/Adaptive).. etc.. Motivation: Many Android users cannot access AirPods' full feature set due to OS limitations. A portable ESP32 solution would be valuable for: Devices with locked bootloaders Situations where carrying a secondary Apple device isn't practical Perhaps it will be possible to create an inexpensive gadget that will control Apple devices without root rights. It can be based on an ESP32 board or similar.
Author
Owner

@kavishdevar commented on GitHub (May 2, 2025):

I have thought of this, but I am not sure if an ESP would be able to handle these many connections simultaneously - one for data exchange with phone for controlling airpods and battery etc., acting as a sink for phone, and a source, by forwarding received audio data to airpods. And, obviously the L2CAP connection with AirPods.

However, if you do manage to succeed at making ESP receiving and sending audio simultaneously, we could probably implement the other data relaying part of this!

<!-- gh-comment-id:2847741717 --> @kavishdevar commented on GitHub (May 2, 2025): I have thought of this, but I am not sure if an ESP would be able to handle these many connections simultaneously - one for data exchange with phone for controlling airpods and battery etc., acting as a sink for phone, and a source, by forwarding received audio data to airpods. And, obviously the L2CAP connection with AirPods. However, if you do manage to succeed at making ESP receiving and sending audio simultaneously, we could probably implement the other data relaying part of this!
Author
Owner

@DEMoN881 commented on GitHub (May 2, 2025):

And it is necessary to trace the sound, if so, then it is sad. Don't airpods have multiple connections? If they hold it, then you can give commands from esp, and the sound itself from an android device.

<!-- gh-comment-id:2848080937 --> @DEMoN881 commented on GitHub (May 2, 2025): And it is necessary to trace the sound, if so, then it is sad. Don't airpods have multiple connections? If they hold it, then you can give commands from esp, and the sound itself from an android device.
Author
Owner

@kavishdevar commented on GitHub (May 3, 2025):

They do, not exactly something like Bluetooth multipoint, but rather some proprietary multidevice connection method. Now either the Bluetooth of Apple devices is very optimized to quickly connect to audio, or airpods filter devices some other way to allow simultaneous connections from different apple devices.

I have noticed that all Apple devices can communicate to airpods, i.e. receive and send packets to AirPods. I am not sure if each apple device connects to airpods, or only one does and other devices talk to that device to which the airpods are connected.

<!-- gh-comment-id:2848390313 --> @kavishdevar commented on GitHub (May 3, 2025): They do, not exactly something like Bluetooth multipoint, but rather some proprietary multidevice connection method. Now either the Bluetooth of Apple devices is very optimized to quickly connect to audio, or airpods filter devices some other way to allow simultaneous connections from different apple devices. I have noticed that all Apple devices can communicate to airpods, i.e. receive and send packets to AirPods. I am not sure if each apple device connects to airpods, or only one does and other devices talk to that device to which the airpods are connected.
Author
Owner

@kavishdevar commented on GitHub (May 3, 2025):

Feel free to experiment with the ESP though, if you get 2 simulateneous audio connections, I might add this to the app! Also, if you daily drive linux, you could use BlueZ's awesome feature where your PC acts as a bluetooth speaker. And, I do have some cross-device features - so, you could play media and control airpods right from android. But everything is routed through linux.

<!-- gh-comment-id:2848658762 --> @kavishdevar commented on GitHub (May 3, 2025): Feel free to experiment with the ESP though, if you get 2 simulateneous audio connections, I might add this to the app! Also, if you daily drive linux, you could use BlueZ's awesome feature where your PC acts as a bluetooth speaker. And, I do have some cross-device features - so, you could play media and control airpods right from android. But everything is routed through linux.
Author
Owner

@DEMoN881 commented on GitHub (May 3, 2025):

As soon as the headphones arrive, I will conduct tests:)

<!-- gh-comment-id:2848669669 --> @DEMoN881 commented on GitHub (May 3, 2025): As soon as the headphones arrive, I will conduct tests:)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/librepods#44
No description provided.