ESP32-based LilyGO T-Display media controller for Apple products. Supports any number of buttons (lib: OneButton), pixel LEDs (lib: FastLed), and a display(lib: TFT_eSPI). The code can be adapted to utilize one or all of these features.
This device displays current playback information from an iPhone and supports playback controls such as next/previous track, play/pause, and volume adjustment. It also includes deep sleep mode to conserve battery power.
Special thanks to the following examples. As far as I can tell, this hasn't been implemented using the Arduino ESP32 board library before.
- James Hudson's Apple Notification Center Service This example finally showed how to solicit services using the Arduino ESP32 library, which is not built-in.
- John Park's Adafruit Guide to the Apple Media Service Display This was the first working example I could find. Written in CircutPython.
- Moddable's Apple Media Service example This was another good example, written in javascript.
- Del Sol Clock Part of ESP32 code for AMS taken from this guy.