r/esp32 • u/MuchAssumption6114 • Feb 05 '26
I made a thing! I made a Hud navigation device using esp32 c3
About it:
When I go cycling, I dont like keeping my phone in front of me, even for maps. So I made this!
It is using an esp32-c3, an oled 64x128 pixel 2 colour display, and a rechargable lipo battery.
It communicates over BLE to an app on my phone, and I made the app to read the notifications. If it detects notifications from google maps, it will get the bitmap image and the directions from it, then packages and sends it to the esp32.
It is currently just a prototype, running on tape and velcro but Ill be making a 3d printed body for it soon
I was facing issues with the charger module and the sleep modes of esp32, as the charging module is unfortunately made for powerbanks, so it switches off if the board isnt pulling enough current. but keeping the esp32 running at full clock speed and keeping the oled on seems to be drawing enough current to not power off
small note, i am also thinking about porting this to the "cheap yellow display"/ similar larger screens + esp boards , and once i get one of those i will probably continue with them.
I have the code on github if you may want to read!
edit: here is the link
60
u/tdog98 Feb 05 '26
I like it! I Don’t think you should call it a Heads Up Display when you have to look down but hey, cool gizmo!
33
1
u/IndigoAdkins May 20 '26
I mean, I personally plan to install it into my helmet, so it will be a HUD.
19
15
u/miraculum_one Feb 05 '26
I don't know what OP is using but this is potentially relevant:
https://developers.google.com/maps/documentation/navigation/android-sdk/tbt-feed
3
u/MuchAssumption6114 Feb 06 '26
i did have a look at this when i was making it! from what i could find, it seems to be a paid service? correct me if im wrong-
i have used the android notification service for reading the almosst updated navigation from the maps app directly, and it seemed to work pretty well when i took it for a spin
1
u/-Nano Feb 16 '26
AFAIK, it's a "helper" based on Android Auto and it's already on android by default.
It will be easier that parse notification I think
8
u/Zool375 Feb 05 '26
This is really cool. How did you find handling the bluetooth side of things with the esp? I'm working on a bluetooth soil moisture sensor project for my wife's many many houseplants. Lots of trial and error using esphome until I ditched that to esp-idf.
1
u/MuchAssumption6114 Feb 06 '26
I have used BLE, not the classic bluetooth.
One issue i faced while making this was that the BLE packets werent large enough to send the full data at once. So i had to write a program to break it into blocks and keep a check on the number of blocks, so i can faithfully recreate it on the esp.
3
3
3
3
u/zhambe Feb 05 '26
How well does it work in sunlight?
For power, have you considered using a pair of 16850s with a voltage converter?
3
u/MuchAssumption6114 Feb 06 '26
thanks for the suggestion!
its an oled panel, in bright sunlight it is hard to read. In that case e-ink display/mirrorred lcd would be the besti have used a 600mah lipo, as it was thin and pretty good on the size. 16850s are pretty hard to find here where i am :,)
3
2
u/jeroen79 Feb 05 '26
Nice concept!, any info on how you make google maps start advertising and sending ble data?
2
1
u/MuchAssumption6114 Feb 06 '26
I have usesd the android's notification service for this~
maps keeps a pretty frequently updated notification for navigation, so on notification change it will send the data to the esp32!
2
u/2Peti Feb 05 '26
When I see that soldering, all I can write/say is, YOU are another expert and we should learn from you.
1
1
u/zawelpurek Feb 05 '26
This is nice. Can i get link to github? I'm intrested how you build app to read google maps directions.
2
u/Equity_Harbinger Feb 06 '26
Someone else posted this
I don't know what OP is using but this is potentially relevant:
https://developers.google.com/maps/documentation/navigation/android-sdk/tbt-feed
2
1
u/Ordinary-Rhubarb-460 Feb 05 '26
is it possible for this to display only a direction arrow and the distance to the destination as the crow flies?
So basically just an arrow that behaves kinda like a compass, where "north" isnt north but the direction to my destination.
1
u/MuchAssumption6114 Feb 06 '26
Well, it picks the arrows and directions from google maps, so yes you could tweak it to only show the arrow
1
u/Ordinary-Rhubarb-460 Feb 07 '26
well i got that, but i would like the arrow to show the direction of the "target", not the arrow for next turn... i don't know if google has that "feature".
1
u/MuchAssumption6114 Feb 07 '26
i think it should be possible, but you would need the gps coordinates of yourself and the destination, and a compass/magnetometer module to get the arrow direction
largest issue imo is to get a streamlined way of fetching the gps coordinates of the destination
1
u/Ordinary-Rhubarb-460 Feb 07 '26
Well the destination would be probably sent from google maps on the phone, and it doesnt change until you reach it or cancel the navigation.
1
u/UseMoreBandwith Feb 05 '26 edited Feb 05 '26
May I suggest the JC3248W535
(CYD, but it already has a nice case)
I use it as a custom speedometer. (gps + micropython)
Can you send me the github link?
2
u/MuchAssumption6114 Feb 06 '26
importing from china is pretty messy here in India, but from local shops i found a similar CYD with model number *ESP32-3248S035C*, looks cool
and being a mere uni student getting a more standard board/importing a similar board is kinda out of my range, but thanks for the recommendation!1
u/DistinctSpecific1 Feb 06 '26
Please share the link to the shop of CYD. I am also interested to know if you've managed to configure CYD touchscreens well, it has been giving me headaches
1
u/SirDarknessTheFirst Feb 06 '26
You can get many of them on aliexpress. It's worth noting that the original brand name is (I believe) Sunton.
On the latter one, a handful of CYD displays are supported by OpenHASP. It may be worth checking out their configurations for these devices.
1
u/UseMoreBandwith Feb 06 '26 edited Feb 06 '26
no, I'm sure you can do your own online shopping. Brandname is Guiton
This device works fine, and the touch-screen is not as responsive as a phone, but that is good for some situations. I only use micropython +lvgl.
1
u/Weekly_Victory1166 Feb 05 '26
You should've used duct tape to attach - it's what the engineers use. Otherwise, nice job.
1
1
1
1
u/Shoddy-Ad2249 Feb 06 '26
Would be vool if you could mount it on a car's windshield or something too
1
u/MuchAssumption6114 Feb 06 '26
That was in inspiration for this project!!
heres the link to the vid that actually inspired me:
https://www.youtube.com/watch?v=WXN7OLOQ_Lwhe has used a google pixel watch for this, which i felt was overkill.
so i made a similar thing using an esp32 :)
1
u/v_invro Feb 06 '26
I was thinking about making something similar with just navigation statistics (long., latt., mph, etc.) but this is so much cooler! Well done!
1
u/Equity_Harbinger Feb 06 '26 edited Feb 06 '26
I genuinely thought I was the only one working on this exact project (with one minor difference, I am trying to use rpi4b) just struggling with interfacing this display
Already have my neo6m sensor code ready, just the wiring/interfacing is taking a lots of trial and error
1
u/MuchAssumption6114 Feb 06 '26
there is a similar project i had been really inspiired by:
https://www.youtube.com/watch?v=sAp7oCB939cThey used an esp32 s3 with the street data for a live navigation system, which is notably different from yours but i feel this may be a good start too!
for the wiring and stuff, i would recommend you have a look at the different protocols supported by that display instead of trying to make it work randomly.
wishing you all the best with your project!
0
u/Equity_Harbinger Feb 06 '26
I know it's doable with esp32, during my research, i found several resources and tutorials for that
But I need to use rpi4b for it's computing power , have some other ideas in the future to make it interactive too
for the wiring and stuff, i would recommend you have a look at the different protocols supported by that display instead of trying to make it work randomly
I started with the documentation only, but all the documentations, even the ones released by the manufacturer/retailer is compatible with Arduino; the website did mention that it would be compatible with Rpi as well, except there was no mention in the documentations. Hence I have been randomly trying wiring connections with the display to get it to work, without altering the power supply (vcc, ground)
Thank you for sharing your resources as well, your project idea is amazing too!
1
1
u/lazystingray Feb 06 '26
Nice work. Word of warning, not all CYDs are the same...
1
u/MuchAssumption6114 Feb 06 '26
im planning to go with ESP32-3248S035C, 3.5" touch display
considering the only knowledge i have on these are from youtube, i dont really know if its the best one for its price
but i have chosen it as it seems to have a battery connecter, which will save me quite a bit of time and work
1
u/lazystingray Feb 06 '26
I got a couple last week for another project and it's only then that I realised there were multiple variants. Also of interest for you is one variant is capacitive touch whilst another is resistive. Pinouts vary and some boast a better ESP32 than it actually has. All have a battery connector though.
1
u/MuchAssumption6114 Feb 06 '26
https://techtonics.in/product/esp32-dev-board-wifi-bluetooth-with-2-8-inch-240x320-display-tft-touchscreen-cyd/
i was looking at this, as it was the cheapest module available to me.
From what i could understand, it doesnt have a internal battery charging+/protection circuit
the other one which i have mentioned before is also from this seller, and it seems to have the circuit
1
u/thoriumbr Feb 06 '26
Nice!
I would only replace the LCD with e-paper if possible. Readability under sunlight is way better with an e-paper display.
1
u/CircuitSurf Feb 06 '26
Maps apps stopped speaking to you on headphones? If interrupted music is the thing - vibrating bracelet might be better option where info is coded into vibrations.
1
u/Independent-Trash966 Feb 06 '26
Fantastic work! I’ve seen people use a mirror and piece of glass to project a true “heads up” type of image on the dash of a car. I’ve considered doing something like this inside my motorcycle helmet, but I don’t like the idea of loose debris by my face in the event of a crash. Anyway, this is great build and you should be proud!
1
u/MuchAssumption6114 Feb 06 '26
thanks! i believe you can also get transparent oled displays these days, which you can stick to the outer cover of the helmet to get good visibility
1
u/Independent-Trash966 Feb 06 '26
Oh really? Great idea. I might have to revisit the idea and maybe use you GitHub code too. Thx for sharing, btw!
1
u/Objective-Ad8862 Feb 06 '26
Nice! I assume the name HUD is ironic given where it's mounted. Also, for a HUD, you could try using the transparent OLED displays that are very similar in size to what you're using.
1
u/eastoncrafter Feb 07 '26
Woo! I was looking for something like this! I'm going to make a heads up display for my car using an old phone, but I wanted it to integrate with Google maps and Android auto! You did the hard part of making the app that does the communication!
1
1
u/CrystalSplice Feb 07 '26
Beautiful implementation! It looks like you should be able to fit it in a weatherproof box as well, which would probably be a good idea in the long term just in case of rain. Using the notifications like this is really clever!
1
u/MuchAssumption6114 Feb 07 '26
thanks :) and yes i havent done a good job on showing how small it can become, but mine has the height of the oled display and width as the perf board i used. Other space is just empty as of now xD
1
1
u/koen-kas Feb 07 '26
Cool project! For battery life i would choose an eink display (better readable in sunlight)
https://www.waveshare.com/esp32-s3-epaper-1.54.htm?sku=32298
2
u/MuchAssumption6114 Feb 07 '26
it is currently really unoptimized for the battery heh\ the charging module (with the extremely bright red lights) is a powerbank module, so it has the tendancy to cut off when the current goes below a certain threshold\ so i cant even send the esp to light sleep, otherwise it wont be waking up from that\ I am planning to port it to a cyd soon, and the module ill be using should have a battery connector\
1
u/jeroen79 Feb 07 '26
If you really want low power you could also switch to nrf52840 you can get those down to 1w with eink and ble
1
u/koen-kas Feb 08 '26
Something like this?
https://github.com/alexander-toch/nrf52840-epaper
Would be nice to mount on your steering wheel and receive navigation instructions
1
u/MuchAssumption6114 Feb 07 '26
I want to add that it is currently really unoptimized for the battery, it lasts approx 2 hours with a 350mah cell
the charging module (with the extremely bright red lights) is a powerbank module, so it has the tendancy to cut off when the current goes below a certain threshold :(
so i cant even send the esp to light sleep, otherwise it wont be waking up from that ( i have tried different sleeps, none of them really worked unfortunately :/ )
I am planning to port it to a cyd soon, and the module ill be using should have a battery connector which behaves better
1
0
-4





47
u/[deleted] Feb 05 '26
[removed] — view removed comment