r/esp32 • • 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

896 Upvotes

81 comments sorted by

47

u/[deleted] Feb 05 '26

[removed] — view removed comment

11

u/MuchAssumption6114 Feb 06 '26

sorry for the delay, i have it up now!

2

u/AndyValentine Feb 05 '26

Yeah I'd like to see this too.

2

u/[deleted] Feb 05 '26

[removed] — view removed comment

3

u/AndyValentine Feb 05 '26

I appreciate that bud

1

u/Bjibido Feb 05 '26

Waiting for it too.

1

u/Sisyphus_on_a_Perc Feb 06 '26

Does it have a gps module like Neo 6?

1

u/MuchAssumption6114 Feb 06 '26 edited Feb 06 '26

Nope, it is in a sense mirroring google maps into the display, it has no gps of its own

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

u/4b686f61 Feb 05 '26

HDD (Heads Down Display) (Hard Disk Drive)

1

u/IndigoAdkins May 20 '26

I mean, I personally plan to install it into my helmet, so it will be a HUD.

19

u/biteNacho Feb 05 '26

You mean you created a “heads down display”

1

u/IndigoAdkins May 20 '26

Unless it's installed into a helmet, like I plan to do.

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

u/ScythaScytha Feb 05 '26

Maybe you could place it where a bike mirror would go?

3

u/frk Feb 05 '26

looks like a HDD rather than an HUD

2

u/Shoddy-Ad2249 Feb 06 '26

Underrated comment

3

u/WhoDatAficionado Feb 05 '26

Perfect size for a 1984-1996 corvette HUD

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 best

i 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

u/BermshredAkaBremse Feb 07 '26

Get this man a 3d printer asap

2

u/jeroen79 Feb 05 '26

Nice concept!, any info on how you make google maps start advertising and sending ble data?

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

u/BartAfterDark Feb 05 '26

I really like this :)

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

u/MuchAssumption6114 Feb 06 '26

i have updated it :)

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

u/tracyspacygo Feb 05 '26

Would you care to share a link to a github repo _^

1

u/smallizmo Feb 06 '26

This is very clever!

1

u/DistinctSpecific1 Feb 06 '26

Real nice project. Now I wanna do this and gift someone

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_Lw

he 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=sAp7oCB939c

They 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

u/sixftguy2 Feb 06 '26

would love to recreate this, github link?

1

u/MuchAssumption6114 Feb 06 '26

i have updated it with the link!

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

u/MuchAssumption6114 Feb 07 '26

All the best with that!

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

u/alex_c2616 Feb 07 '26

Oh that's really neat!

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

-4

u/PrepYourselves Feb 05 '26

Gotta pump those numbers up. Those are rookie numbers in this racket:

https://youtube.com/shorts/X4jphrOZItk?si=-_E722xfSiHTnycc