Show automatic navigation indications like left / right turn indicator, U-turn indicator using your Android phone. Along with that, we can manually display some more indications like no overtake, allow overtake etc. using the buttons on our android app.
Note: App reads notification data to have automatic indicator light. Rest assured that, our app does not collect & send any data to anywhere. Enjoy the privacy & freedom (open-source).
You can click on the below Image or this Youtube Link to see the demo. Please let me know in the comments, how do you feel about this App.

The flow in simple words:
-
We are capturing the navigation notification from a navigation app like Google-Maps or OsmAnd.
-
Our
dlNavapp processes the data & sends indicator signals toESP32microcontroller to display that on aWS2812B8x8 LED Matrix. -
The app also has all manual controls to display the indicator symbols.
Note: Our app also provides an API endpoint & you can send data using Termux or MacroDriod app. Then our app can process the data (notification texts) & turn on/off indicators.
Follow this Quick Guide to setup your DIY navigation indicator (automatic or manual). If wish to get the purchase links & more details, check the official blog
We can leverage Classic Bluetooth or BLE (low energy) to communicate from android device to ESP32 depending on the chosen model.
If you want to learn about setting up your ESP32 environment in Arduino IDE, you may follow this fantastic guide.
-
Connect your ESP32 board to your computer with a USB cable.
-
Select proper ESP32 board type from
Tools>Boardsselection. -
Select your USB Serial port in
Tools>Port.
This board supports both classic bluetooth & BLE.
-
All you need is to connect the
GPIO-4ofESP32with theINport of theWS2812 LED Matrixand rest all are power connections.

-
ESP32 board type in Arduino IDE is
ESP32 Dev Module.
For classic bluetooth upload this sketch using Arduino IDE.
For BLE upload this sketch using Arduino IDE.
-
Download the latest apk and install.
-
Open the app & grant necessary permissions as prompted. If you want to use this in
Auto Mode, you need to grantNotification readpermission for ourdlNavapp fromSetting>Apps>Special app access. -
Turn on bluetooth & pair
NavIndiESP(which is from the ESP32) device from phone settings or notification panel. -
Use the app to list all paired devices, choose the same bluetooth name & connect it from the app. Then proceed. You may manually enter the
MACaddress of your ESP too. -
Voila, you have now got the complete manual control of your DIY indicator device. You can press any switch to turn on/off the indicators.
-
Our app can read
Notificationsfrom apps likeGoogle Maps,OsmAnd,Offline Map Navigationfrom VirtualMaze and show the automatic indicator lights. Just start theAuto Mode. (Notification read permission needed). -
To use the automatic indicator controls from
MacroDroidorTermux, click onStart Server& proceed with next steps as below. (Then our app doesn't need notification or location access)
Note: Android Play Protect may block this app as it requires the special permission (notification read), if you do not wish to proceed, you can download the older version
0.0.3which works with Macrodroid or Termux as shown below (our app doesn't read notification). Rest assured, we do not collect any data from our app and the app code is open-source.
You can choose either the macrodroid or termux way. Which will read the notifications from your navigation app & trigger an API (local) call to our android app.
This app is now technically a paid app (7 days trial or increase the days by viewing Ads). If you are a nerd, you may follow the Termux way.
-
Install Macrodroid App from playstore. Grant necessary permissions. Also you need to grant
Notification readpermissions from Settings > Apps > Special app access > Notification read > allow for Macrodroid. -
Then you can import this macro & enable it. Now you are all set for automatic indicators as per navigation.
You need to follow this termux guide which will start the automatic notification reading & calling the api of our app.
Note: The navigation app may have some delay in showing the notifications (app may show the correct navigation) which will also delay in indictor changes.
Once you click Start Server on our app, it starts FastAPI server & the details would be available on below URI. Just enter the URL in phone's browser and you will also get an option to try the api directly from browser.
http://localhost:8089/docs
# or
http://127.0.0.1:8089/docsI would really love to get more contributors on this project.
I know many improvements can be done & also limitations can be minimized.
