Receiving iOS Notifications via BLE

A project log for Low Power ESP32 Handheld

Pocket sized ESP32 display board with 180µW Always On Display and Gyro Controls

Max.KMax.K 07/12/2020 at 10:520 Comments

This latest software update adds support for iOS notifications. This way, the ESP32 handheld can be used as a notification display.

Besides Wi-Fi the ESP32 has integrated Bluetooth and BLE. Similar to a smartwatch, this allows the ESP32 to receive notifications that are broadcast from your phone. On Apple Devices the Apple Notification Center Service (ANCS) makes this possible without the need for any third party software. The only thing left is a bit of code on the ESP32 to subscribe to these messages. Neil Kolban Is responsible for most of the groundwork on the ESP32 BLE libraries. I first became aware of the efforts to support ANCS though an Issue on GitHub. Now, two years later James Hudson (jhud) has released an easy-to-use library.

Integrating the library into my existing code was simple. An incoming message is shown as a popup on top of the screen. Interactions like answering an incoming phone call are possible in theory but not implemented yet.

Since Wi-Fi and Bluetooth share the same interface and antenna it's difficult to get them both to work simultaneously. Right now the BLE connection has to be stopped to enable Wi-Fi. I couldn't get rid of a problem where the ESP32 cannot reconnect after switching from Wi-Fi to BLE. Another thing to mention is power consumption. Although BLE should be low energy the ESP32 draws just as much power as when using Wi-Fi.  

It's still a fun feature that might be helpful to some people.