Freeform Esp32 Ios Notification Display

About the project

A freeform desktop display for incoming iOS notifications. Utilizes female headers so that components can be reused and ESP-IDF FreeRTOS with Arduino to manage incoming BLE Notifications, display text, and backlight with timeout.

Project info

Difficulty: Moderate

Platforms: ArduinoEspressif

Estimated time: 3 hours

License: GNU General Public License, version 3 or later (GPL3+)

Items used in this project

Hardware components

NodeMCU-32S NodeMCU-32S Alternatively, any other equivalent ESP32 development board. x 1
I2C 1602 Arduino LCD Screen I2C 1602 Arduino LCD Screen Optional: I2C module to reduce the number of pins but may compromise the rigidity of the freeform x 1
Breadboard Trim Potentiometer Breadboard Trim Potentiometer Used to adjust the contrast of the 1602 LCD display; 20k Ohm was used. x 1
Header Kit for Feather - 12-pin and 16-pin Female Header Set Header Kit for Feather - 12-pin and 16-pin Female Header Set x 1
A2SHB N-Channel MOSFET A2SHB N-Channel MOSFET Used to switch the display backlight. x 1
18AWG Tinned Copper Wire 18AWG Tinned Copper Wire Used to make connections. x 1
M2 Screws M2 Screws x 1
Brass M2 Inserts Brass M2 Inserts x 1

View all

Software apps and online services

ESP-IDP FreeRTOS ESP-IDP FreeRTOS

Hand tools and fabrication machines

Needle nose Plier Needle nose Plier x 1
Flush cutter Flush cutter x 1
Soldering Iron Soldering Iron x 1
Solder Solder x 1

Story

Problem

Having to retrieve my phone to review incoming notifications.


Solution

A desktop display connected wirelessly would allow for me to review notifications without the need to retrieve my phone.


Objectives

Connect to iPhone wirelessly: The ESP32 with its BLE capabilities was a good fit for this requirement. However, I was not experienced in BLE so a library would be needed to facilitate this requirement.

Display Text: I had a spare 1602 display available and its relatively large display (compared to SSD1306 OLEDs) was ideal for this application.

Backlight with Timeout: To make changes - wireless connectivity activity or incoming notifications - more noticeable, I wanted the backlight to turn on whenever a change occurred and then off after some time.

Angled Display: I wanted the display to reside on my desk at a convenient angle for viewing.


Achievements

Having recently reviewed Digi-Key's FreeRTOS series on YouTube, this was an ideal first project to try out a RTOS.

Connect to iPhone wirelessly : Thanks to the ESP32 ANCS Notifications library, it was relatively straightforward to connect to an iPhone for wireless BLE notifications.

Display Text: The Arduino Liquid Crystal library was used to display the notification text to the 1602 display.

Backlight with Timeout: Using a N-Channel MOSFET, the 1602 display backlight could be turned on then off after sometime with a single digital pin.

Angled Display: The freeform wiring allowed for the display to be angled as desired and would hold the ESP32 development board in proximity as a single package.


Photos

Above: 1602 display and tinned copper wire. M2 screws and brass inserts were screwed onto the display to make the frame more rigid.

Above: Female headers used to facilitate removal of components if needed.

Above: Potentiometer added for display contrast adjustment. ESP32 base also taking shape.

Above: The 'marriage' of the two freeform frames into a single piece. Still need to complete the remaining connections.

Above: Connections completed.

Above: Components needed.

Above: BLE Connected

Code

Notification LCD

Credits

Leave your feedback...