I love your videos . I am super new to esp32 arduino stuff. But i want to develop a mini display for my pickup s dashboard that displays various information like trip computer ,what doors are open and some fault codes on the car s ecu. Hopefully it's possible .
Just wanted to mention, most of car makers since around '96 no longer display the actual coolant temperature. Instead, the arrow stays exactly in the middle in the range of about 75-115 degrees. This is probably because dealerships were flooded with unnecessary questions about the temperature fluctuations (raises in the traffic jam, goes down on the highway), and this solution definitely refuced their headache. I know several "happy" car owners proudly telling the cooling system in their car is so well-designed and working properly that the gauge shows exactly 90 degrees no matter what 😅
It’s not that they don’t display the real temperature they are just heavily dampened to the middle portion of the scale. Toyota did this by the addition of a resistor on the pcb, if memory recalls correct, simply removing the resistor and shorting the 2 pins would make the gauge ‘responsive’ again.
That´s a very good point. Yes, most of the temp. gauges work in a way that that you only have three states - cold, OK, too hot. It´s quite unfortunate.
Unless you have a 1998 - 2010 Volkswagen Beetle, then there’s no gauge. Just a blue warning light for “engine is cold” and a red warning light for “engine too hot”
This is great! Been wanting a nice clean and affordable way to monitor intake temps at various points throughout my intake system. This is awesome. Thanks!
This is awesome. Your channel literally shows me how to do the projects I been meaning to do for years now. Can't wait to get started. I hope one day you get around to doing a race car style G-force meter with accelerometers or other sensors. That would be sick.
That’s great, thank you for letting me know! Yes, the g-force meter is definitely something that I would like to try. Is there anything else you might be interested in?
This is awesome! if you have a more accurate thermometer, you can measure the temperature at different points with both -> then insert it into a graph -> subtract the function of one line from the other -> add this new function to the temperaturereader. anyways awesome that you show this stuff.
Thank you. Actually this thermometer is quite accurate - given that it can measure values in quite a big range. If you need a better accuracy, you can try different (and more expensive) thermocouple sensors with the same board.
It would be nice to use two temp sensors and have the ability to read each sensor and also the difference between them. Say for instance if you want to know how much heat your intercooler is dropping... Hmm how about a percentage display showing you percentage of temp drop? Lots of possibilities if you can read two sensors :)
Love your work. if you ever decide to make a video about using off the shelf automotive sensors like a VDO Pressure sensor and "normal" automotive temp sensors that would be awesome. the real issue here is getting 12v sensors to work with the 5v arduino...
Yeah, I currently use an innovate oil temp/pressure gauge, but i was wondering if I could use one of this displays instead, but keeping the installed sensors.
Чувак! В чем твоя проблема? Уложить шкалу датчика 12В на шкалу Ардуино 5В? Резистивный делитель тебе в помощь! На понижение как раз не проблема, а вот в обратную сторону посложнее задача.
Yes, I do plan to cover that in the future tutorials. Like someone mentioned, the ESP32 is not very good in this, since even when you use a voltage divider to get the 12V down to 3.3V, the ADC is nonlinear. It will probably make more sense to use a dedicated ADC chip/module.
rpm gauge next i need one for my old 12v Cummins. already made a boost gauge for my tdi and 12v ! amazing work! iv learned lots from your videos thanks
Thank you for your help in these gauge videos - you could simplify your design in terms of images by having the arrow inside the markers and drawn and refreshed with a primitive shape like a long triangle that can be positioned and have a primitive filled round as background (from the tft-library) both can be refreshed and just have a large text for the numbers. You then only need a single image for the outer markers.
Thank you for your comment. Yes, that should be possible and it will definitely lower the memory usage. What I don´t like about this solution is the non-antialiased edges - at least the last time I checked, I haven´t seen a way how to draw smooth shapes. I will see if that changed.
Great tutorial series! I‘m currently working on creating a dashboard for a raspberry pi connected to a 5“ screen. I‘m trying to use your gauges on multiple overview sites and collect the OBD data straight from the car to display them on the gauges. I just have to find out how to work with the images in python and then I should be good to go. :) Thanks a lot for your great work!
Hey, love your style of videos, not only do you create really simple and clean looking displays, but explain in great detail how to build them! I was wondering if you would be interested in doing a video on Air Fuel Ratio Gauges? Many of us own project cars and bikes and its really important to fine tune the map / carbs to ensure the stoich value of 14.7:1 using either a wide band or narrow band o2 sensor. Kits are available but cheap ones are always narrow band, and even pricey ones are very cheap looking. Something that you could definitely improve? Thnaks!
Thank you! I might create the AFR gauge, but the main issue is that I have no way how to test if that works and test if the values are correct. I will keep that in mind though and perhaps think of something.
After your videos I'm thinking about adding digital temperature/pressure gauge to my espresso machine :) There is Gagguino project, current version uses nextion display, but LVGL interface in development. I think there is a great option to add round screen also :)
My friend, instead of a separate image for each position of the indicator needle, it would be much better for your storage unit if you left the background fixed and used a code that would mathematically rotate the pixels of the indicator needle :)
I'm curious - is there a benefit to the multiple background approach vs the needle only approach mentioned above? I assume that the needle approach would reqauire using sprites (pushRotated seems pretty simple here). Any thoughts on this? BTW - awesome as always. I've learned a lot from your videos - keep up the great work!
I wonder if his approach achieves a more fluid and optimzed way since it's so crude, but I would like to see the results of just rotating the needle as well
You can achieve this via Sprite drawing and it's better this way since we don have to redraw the entire lcd again which is what I did for my boost gauge based on upir's video.
I will cover rotating the needle in the code in my next video. I haven´t had too much success from the visual standpoint - you can rotate the needle, but you can have only 1bit transparency = no glow or anti-aliased edges, and also the rotated image is not anti-aliased, so it´s not very smooth. I´m sure there are ways how to make it look good, but perhaps not with the used tft_ESPI library. Anyway, I will share my finding in the next video.
@@upir_upir The way you have it very crisp and clean which makes it very attractive. It looks like an analog gauge! Anything you can do visually to prevent it from giving away that it's actually digital is for the best.
Can you give this two sensor inputs and do processing between them? Could figure out percentage of slip between wheels or temperature drop or increase between ambient and intake or across an intercooler! Really appreciate these videos man. As someone who learns by doing having a purpose to understand something makes a big difference - these are terrific!
Eres bueno en la creación de videos, y la temática es de mi gusto. Te pido por favor que hagas los videos también en el idioma hablado en español, he visto que otros TH-camrs sí que tienen esta opción .
This looks great. It would be nice to see examples of how to implement alarming thresholds where the screen would blink or some other way to get the drivers attention. Also, is this just a proof of concept or would you recommend using this hardware in a car? Are the displays bright enough? Will they survive a car’s harsh environment (heat, cold, sun, vibration, etc)?
Thank you. Yes, I will cover those in the future videos. You can use it in the car, but the screen is not extremely bright - you will probably don´t see anything on direct sunlight. I will try other displays that might be a better fit.
Do you have any videos on actually designing the gauges that you use in your videos? I have seen you show the program you use with short descriptions, but an in depth video of drawing the gauge and then all the corresponding "copies" of it for the gauge moving would be great!
Not yet, but I do plan to record those videos soon. In the meantime, please feel free to download source files from GitHub, you can open them in Photopea and kind of see how those were done.
Another great video. I'm curious, what is your recording setup? I'm trying to make some videos of a synth I'm building that includes a 128x32 monochrome oled display, and I've seen you capture similar displays beautifully before. What camera do you use, and do you have some tips for setting it up? Thanks in advance, I love watching your vids!
Thank you. I use an old iPhone, but I have found out that the biggest difference makes using different OLED screens. I don´t know why, but some are flickering all the time - like the small 0.9", while others looks very nice. I believe the best one is the 1.3" version, that looks perfect most of the time.
Top-notch content as always! Do you recon it is possible to write a code that way so the image goes a bit dull at night time. e.g. a positive/negative input from the car to esp32 board that tells it to decrease brignness of the display when headlights are on? just a suggestion
I'm also looking to add temp and pressure gauges to my car. I have a Superlite SLC with Megasquirt MS3 engine management. I was monitoring temps and pressures using Shadow Dash on my phone connected via BT. But android updates have made it where it doesn't work anymore. Your videos are priceless. I really appreciate the time, care, and how thorough you are. My request is to take 6 of these gauges and put them on a single larger display. I saw your Focus RS video, something like that but 2 rows. If it's the same process but just alter the resolution, what display would you recommend? 7" is the largest I have room for.
Thank you! Could you please send me an email to utuber.upir(at)gmail.com? I would like to experiment with aftermarket ECUs and I´m looking for someone with Megasquirt for testing. Would you perhaps have time to help in exchange for getting such display? Thanks!
Dear friend, could you replace the oil can graphic with the letters CVT? Is it very complicated? The reason is that my Subaru vehicle has a CVT transmission. Great job you did!!!
Hi Great videos Would it be possible to use one display with two or three sensors and display the values for each sensor by pressing a momentary button. Thanks
I don´t see a reason why it should not be possible, but I would probably prefer to show those two or three values at the same time, without the need to switch content.
Awesome Video! Looking forward to the touch version vid, since I’m trying to get mine working. Seems like there is no custom partitioning scheme option available in the IDE and the now the file is to big. You guys have any ideas?
OBDII for sure, that´s something I´m trying to sort out right now. As for NTC/PTC sensors - what would be the advantage over the used thermocouple sensor?
Mentioned some libraries and components something must have triggered the cancel algorithm. For the resistor sensors...... most older cars have such sensors threaded in the engine , so a good AD and option for calibration curve would help a lot. Built a temp display using lilygo display and the available libraries for bluetooth obd ........... adapters. But yours look soooooo much better. There are some modern combined oil pressure and temperature sensors which i am not allowed to mention here in the comments ?????
thanks for this new item each time explanations are quite clear. Now after the temperature and the boost it remains the engine rpm counter- 😁😁 is it planned?
Hey cool another great video from you, i like the last few videos of the round display and thanks to your great instruction i managed to run it by myself ...but do you think you could maybe make a instruction to combine all these nice gauges with the data output from speeduino ? Im messing around with it in the moment and i cant get it working rn it would be really cool if you maybe do a sneak peak in this topic
Thank you for your comment. Yes, I would like to cover Speeduino, but I don´t have any car with this ECU. Do you know if there is any Speeduino emulator out there? I would prefer to test my project outside the car first.
@@upir_upir you can easyly flash the arduino mega2560 or the STM32F407VET6 with the cube progammer and arduino ide to Flash the stm you need to connect some boot pins to ground and 3.3v but it is all described in the speeduino manual or git ...for the protocol i just get it so far to read the map value with the esp32s3 display from the stm32 but with some wrong values, im working on it to fix that
@@upir_upir you can sim9le use a mega2560 or a STM32F407VET6 the flashing ist described in git and i think in the speeduino manual. To Flash the stm you need to connect 2 boot pins to gnd and 3.3v then its ready to Flash , if you need help please let me know we get this sick project running 😉
What do you think about interpolating the temperature values to make the needle smoother at cost of responsiveness ? That or some kind of rate that limits how fast it changes. Probably not that useful for water or oil, but who knows.
Well, if you used LVGL, there's an animation feature and with it the display values don't change instantly. In this case, he's using images, so that wouldn't work there.
great job my friend for one more time, thanks for your videos. i want to ask you if you try to increase memory with hardware for more images. i try to use your ford focus gauge(oil press and oil temp so we talk for about 220 image) but need too many of memory.
Thank you. There is probably no simple way how to add more memory on this board, but you can try storing the images in some compressed file formats - like JPG, and see what would be the performance.
Thank you. Yes, I will most likely use microSD soon, since I have a different board that already has the microSD slot... so it would make sense to try to use it.
Is there a way to set a warning limit if the temperature gets too hot? I’m sure it’s simple to do with the bitmap images, but what about with the code? For example, if it reaches 200F, set a warning message on the display to “stop, turn off engine, overheating” type message. This would be an awesome modification for a 1998-2010 Volkswagen New Beetle that didn’t come with any coolant temperature sensor for the driver.
congratulations and many thanks ! its a great project ! Im trying to upload your code into a waveshare esp32s3 lcd 1.28" (non touch) display, upload process finished succesfully (with no errors), but cannot turn on the screen... could you let me know wich driver version of espressiff esp32 are you using? (if we use v2.0.12 I cant get a custom partition scheme, if I use a latest 3.0.1 version can use custom partition from .csv, is this what should I use?) , and please, let me know about correct library version (Ive installed ver 2.5.43 of TFT_eSPI by Bodmer library, is this ok?) many thanks again !!!
One question, why u not push one image to rotate? There is any benefits to use rotated static needle exept use function: needleLeft.pushRotated(&gaugeBack, angle, TFT_TRANSPARENT);
Thanks for this tutorial, Is it possible to run miltiple sensors and gauges from one Audrino device? Like could i make one unit thats has oil, water, egt, a/f ratio etc...
I'm keen for this too, either utilising a button to switch between the selected thermocouple/sensor or just having it cycle through each sensor at a defined interval.
@@upir_upir Thank you for reply! PS. I wonder I still need to use this amplifier board for EGT sensor when temps are around 900C and moves by dozens in a second
@@ninjameep8616 I don't "need" any of the projects I'm doing with microcontrollers and SBCs. In fact, my wallet (and wife) would probably be happier if I didn't engage in those projects 😅
Yes, I would like to cover getting the data from OBDII in the next video. As for the other comment, I agree that my wallet would also be much happier without having all those displays :)
@@upir_upir Volos forced me, FORCED ME, I SAY, to order 2 Lilygo T-Panels this week. I have PTSD from the blatant disregard for my financial stability. I just hove I get time to finish my M5Dial project before they arrive 😂
In today's vehicles, these values are already recorded and can be accessed as CAN bus parameters. Why take individual extra measurements? Classic cars are of course an exception.
Maybe you don´t have such sensor in the car? Maybe you want to measure temperature that you usually don´t measure? Or - as you have mentioned, there are plenty of old cars, project cars, kit cars...
I wanted to make digital touch screen for my car for controlling the lights ( high beam ,low beam and the climate control . Can you guide me in the right direction ? Thank you !
Are you trying to just replace physical buttons? In that case, you should probably be able to just use some relays to switch the original buttons, instead of trying to mess with canbus.
Can you please do a tutorial on those oled display with grayscale feature? I just bought a ssd1322 256x64 3.12'', it works great with 4spi config but u8g2 doesn't support grayscale I think. I'm trying to put this display into my bluetooth speaker to show battery, volume, audio visualizer and stuff (I use pretty much all of your tutorials), I've got everything else working fine thought, but having some grayscale bit animations behind the info would be awesome.
I have tried grayscale in the past, but haven´t found a decent library. As you said, u8g2 does not support grayscale. The u8g does, but only partially - you must draw every color separately, i.e. storing one image as multiple arrays, and it was just way too complicated to use it for a project. I might take a second look if there are some better libraries out there that could be used, perhaps from Adafruit. That said, if you only want to show grayscale image, that should be possible even with u8g2 - I might record a tutorial about that.
Hmm ... even without knowing the exact signature of map(), your needle_image is an integer, so the result of map() will be an integer in any case. The round() call in the next line is therefore useless. When carefully looking at the video, you can actually see it is off (at 34:19, needle shows 33° but digits show 35°). Better manually do the mapping into a float, then use a round().
That´s a good point, and I´m pretty sure you are right about the map() function returning an integer value, and that using a manual mapping to float would make more sense. Thank you for your comment.
i m trying to use a esp32 and an ili9341 2.2 tft display and cant make it work becase the needle cpp is too big, how does you made it work?? thanks, is a very nice gauge!
This board has 16MB of flash memory, I´m using I believe around 10MB. If you don´t have that much flash memory, you can just rotate the image of the needle - I will describe it in a future video.
That should be as simple as adjusting one variable in the code - when calculating the temperature interpolated, just increase the last value from 5.0 to some higher number.
@@upir_upir Yes, but LCD is bigger,1.38"+... Also supports battery... Maybe only issue is programming it, I don't think those processors will works with Python like rasberry pi... 🥲
I have other version of this (using a ESP32-C3 and the same controller for screen GC9A01) that i can not put a simple "hello world" working on screen....
Yes, that should be possible. There are many oil pressure sensors on AliExpress that works in the similar way as the pressure sensor that I have used in the previous video.
Got a couple questions: 1. On your Github page you have what looks to be a 1/8 NPT but no indication on what it is....if it's usable or does it run on the 12v? 2. Is there a way to do a video on how to make the guages on photopea...not very good with photoshop and any guidance would be helpful
Upir, all your videos is so good, im brazilian, sry bad english, you NEED TO MAKE a video tutorial HOW TO MAKE A WIDEBAND GAUGE, because in brazil wideband gauges high custs, like 1000 brl, in dolar like 1000 dolars, because if you take minimal payment in brazil like 1300 brls, can u make?
I have a e36 here in brazil, and i have a ideia, i want to put a custom wideband inside my original pannel, with a led display to make the color same, if the sensor taking work temperature in display say M for m3, and if the temperature ok, display tells me the air/gasoline, this is my idea
@@upir_upir yes, if we can get the lambda numbers and print in screen, its so good to make a video tutorial to custom cars and original, because custom cars needs this piece, if we make a good theme and display, i thing you get A LOT off Brazilian viewers and subscribes, if you can make a video tutorial or send me the link, help a lot!!!
nice work overall. however, using gpio as a power source is strongly ill-advised. It is true that the gpio can source up to 40mA in default configuration on the ESP32 chip, which is sufficient for the thermocouple chip. Unlike a proper voltage regulator, however, gpio have no over-current limiting protection. If you make a wiring mistake and short out a voltage regulator, as long as it is only temporary, the regulator usually recovers when the short is removed, and nothing is damaged. If you make a mistake wiring the gpio as power source and short it to ground (or the module is damaged.. or you make a code error setting the pins), the ESP chip is destroyed and unrecoverable. There is literally 3 decades of literature related to microcontrollers illustrating why using a GPIO as a power source is a mistake and should never be done. This very literature will make the compromise that its "ok" to source an (low current) LED as an output, such that code logic is not inverted (pin HIGH = LED ON), but always caveats that the "correct" way is to sink the LED (VCC through LED and resistor, INTO the GPIO). This however creates a logic inversion in code, that pin HIGH = LED OFF. The other option being to drive it via transistor/FET. The D13 LED schematic on older or cheap clone Arduino Uno is "accepted" but not correct. The R3 version fixes this without requiring code changes by wedging an op-amp between the IO and LED.
You are right, that´s something you want to avoid, but unfortunately the board (for some unknown reason) doesn´t have any 3.3V pins. Again, not quite sure what is the reason for that. I wanted to make it as simple as possible and used this shortcut, but I will see how I can update the project with a more proper power source.
@upir_upir is there a 5 volt source? Use a secondary 3.2v regulator? You can even choose one with an enable pin and drive THAT with a gpio to to some power management.
Ah never mind about power management. Forgot this is about an automotive gauge. Check that chip or module may be 5v tolerant? Choose another part which is? Lots of options here. Heck a zener diode in a pinch is a [slightly] better option.
UPIR: I want to put a hidden automated realtime camera at work that takes photos of women standing by the coffee machine and compares the facial characteristics against the golden ratio mask (the one that shows the most attractive facial features). I want a large gauge like this on top of my laptop monitor that lights up and shows the "hotness temperature" only when women that scores more than 70 is visiting the coffe machine so I "accidentally" can walk over to stand in line for coffe while trying to strike up a conversation. If you can make it trigger especially for asian women it would be perfect. Can you make this project?
this type contents are Awsome but for me as a mechanic need coding knowladge to make this type guages if it posible put coddind and even graphic sections in any type (comment section. link. or etc) to easy reach for my type people i really apriciated to share your knowladge with us
I have already written about this, I will write again! This all works only in the test, it doesn’t work in real life! You lack algorithms for smoothing sensor data, such as the Kalman algorithm. You do not have ADC calibration, at least with the straight line algorithm y = kx+b. Because of this, yours shows the weather on Mars, and not real data! For everyone who asks about real applications in cars or weather stations, this approach is not suitable!
There is no reason why this should not work in the real environment. There is no ADC calibration needed - the ESP32 is not getting any analog data, and the used chip is already pre-calibrated.
@@upir_upir Don't say so until you check it. It may be more accurate than the ADC of the ESP itself, but it is not perfect. A Kalman filter is still needed. In a real environment there are pulsations and surges caused by both interference and heterogeneity of the medium. I don't insist, but advise.
All the source files are on GitHub: github.com/upiir/arduino_temperature_gauge
I love your videos . I am super new to esp32 arduino stuff. But i want to develop a mini display for my pickup s dashboard that displays various information like trip computer ,what doors are open and some fault codes on the car s ecu. Hopefully it's possible .
Thank You :)
got error related to int16 or kind of fontHeight when trying to upload your file into ESP32 LCD 1.28. Please check your github and help me. Thank you.
Just wanted to mention, most of car makers since around '96 no longer display the actual coolant temperature. Instead, the arrow stays exactly in the middle in the range of about 75-115 degrees. This is probably because dealerships were flooded with unnecessary questions about the temperature fluctuations (raises in the traffic jam, goes down on the highway), and this solution definitely refuced their headache. I know several "happy" car owners proudly telling the cooling system in their car is so well-designed and working properly that the gauge shows exactly 90 degrees no matter what 😅
And since around that era, cars have CAN bus, so you can still get the real coolant temperature.
Like jaguar, they went the whole hog and deleted the temp gauge altogether!
It’s not that they don’t display the real temperature they are just heavily dampened to the middle portion of the scale. Toyota did this by the addition of a resistor on the pcb, if memory recalls correct, simply removing the resistor and shorting the 2 pins would make the gauge ‘responsive’ again.
That´s a very good point. Yes, most of the temp. gauges work in a way that that you only have three states - cold, OK, too hot. It´s quite unfortunate.
Unless you have a 1998 - 2010 Volkswagen Beetle, then there’s no gauge. Just a blue warning light for “engine is cold” and a red warning light for “engine too hot”
All these mods you do combined would make a sick tricked out Sim Racing Rig.👍👍
Thank you. I already have a video how to use shifter knob with SimHub, I might try to add more displays.
This is great! Been wanting a nice clean and affordable way to monitor intake temps at various points throughout my intake system. This is awesome. Thanks!
Cool, I´m glad this is helpul! Good luck with your project.
This is awesome. Your channel literally shows me how to do the projects I been meaning to do for years now. Can't wait to get started. I hope one day you get around to doing a race car style G-force meter with accelerometers or other sensors. That would be sick.
That’s great, thank you for letting me know! Yes, the g-force meter is definitely something that I would like to try. Is there anything else you might be interested in?
This is something I was looking for 10 years ago, but couldn't find anything. I might need to revisit my old plans.
Cool, I´m glad you were finally able to find it!
This is awesome! if you have a more accurate thermometer, you can measure the temperature at different points with both -> then insert it into a graph -> subtract the function of one line from the other -> add this new function to the temperaturereader. anyways awesome that you show this stuff.
Thank you. Actually this thermometer is quite accurate - given that it can measure values in quite a big range. If you need a better accuracy, you can try different (and more expensive) thermocouple sensors with the same board.
It would be nice to use two temp sensors and have the ability to read each sensor and also the difference between them. Say for instance if you want to know how much heat your intercooler is dropping... Hmm how about a percentage display showing you percentage of temp drop? Lots of possibilities if you can read two sensors :)
Love your work.
if you ever decide to make a video about using off the shelf automotive sensors like a VDO Pressure sensor and "normal" automotive temp sensors that would be awesome.
the real issue here is getting 12v sensors to work with the 5v arduino...
Yeah, I currently use an innovate oil temp/pressure gauge, but i was wondering if I could use one of this displays instead, but keeping the installed sensors.
And even more complicated because ESP32 work on 3.3V and has totaly bad ADC.
You could probably just buck down the signal, not sure how it would affect the signal quality.
Чувак! В чем твоя проблема? Уложить шкалу датчика 12В на шкалу Ардуино 5В? Резистивный делитель тебе в помощь! На понижение как раз не проблема, а вот в обратную сторону посложнее задача.
Yes, I do plan to cover that in the future tutorials. Like someone mentioned, the ESP32 is not very good in this, since even when you use a voltage divider to get the 12V down to 3.3V, the ADC is nonlinear. It will probably make more sense to use a dedicated ADC chip/module.
rpm gauge next i need one for my old 12v Cummins. already made a boost gauge for my tdi and 12v ! amazing work! iv learned lots from your videos thanks
Yep, RPM gauge is definitely on my todo list!
Thank you for your help in these gauge videos - you could simplify your design in terms of images by having the arrow inside the markers and drawn and refreshed with a primitive shape like a long triangle that can be positioned and have a primitive filled round as background (from the tft-library) both can be refreshed and just have a large text for the numbers. You then only need a single image for the outer markers.
Thank you for your comment. Yes, that should be possible and it will definitely lower the memory usage. What I don´t like about this solution is the non-antialiased edges - at least the last time I checked, I haven´t seen a way how to draw smooth shapes. I will see if that changed.
@@upir_upir I agree that may be an issue - it depends at what distance the gauge or display is being used in practice.
another. amazing video, bravo!
Thank you, I´m glad you like it!
You make awesome projects.
Thank you!
babe wake up, upir uploaded??!!!?!
:)
Great tutorial series! I‘m currently working on creating a dashboard for a raspberry pi connected to a 5“ screen. I‘m trying to use your gauges on multiple overview sites and collect the OBD data straight from the car to display them on the gauges. I just have to find out how to work with the images in python and then I should be good to go. :) Thanks a lot for your great work!
That sounds like a great project! Would you mind sharing videos of your progress?
Outstanding tutorial!
Thank you!
Another great video with a detailed walkthrough, thanks
Thank you, I´m glad you like it!
Hey, love your style of videos, not only do you create really simple and clean looking displays, but explain in great detail how to build them! I was wondering if you would be interested in doing a video on Air Fuel Ratio Gauges? Many of us own project cars and bikes and its really important to fine tune the map / carbs to ensure the stoich value of 14.7:1 using either a wide band or narrow band o2 sensor. Kits are available but cheap ones are always narrow band, and even pricey ones are very cheap looking. Something that you could definitely improve? Thnaks!
Thank you! I might create the AFR gauge, but the main issue is that I have no way how to test if that works and test if the values are correct. I will keep that in mind though and perhaps think of something.
After your videos I'm thinking about adding digital temperature/pressure gauge to my espresso machine :) There is Gagguino project, current version uses nextion display, but LVGL interface in development. I think there is a great option to add round screen also :)
Cool, I wasn´t aware of the Gagguino, looks interesting!
This is just so cool! Thank you 😊
You are welcome, I´m glad you like it!
My friend, instead of a separate image for each position of the indicator needle, it would be much better for your storage unit if you left the background fixed and used a code that would mathematically rotate the pixels of the indicator needle :)
I'm curious - is there a benefit to the multiple background approach vs the needle only approach mentioned above? I assume that the needle approach would reqauire using sprites (pushRotated seems pretty simple here). Any thoughts on this? BTW - awesome as always. I've learned a lot from your videos - keep up the great work!
I wonder if his approach achieves a more fluid and optimzed way since it's so crude, but I would like to see the results of just rotating the needle as well
You can achieve this via Sprite drawing and it's better this way since we don have to redraw the entire lcd again which is what I did for my boost gauge based on upir's video.
I will cover rotating the needle in the code in my next video. I haven´t had too much success from the visual standpoint - you can rotate the needle, but you can have only 1bit transparency = no glow or anti-aliased edges, and also the rotated image is not anti-aliased, so it´s not very smooth. I´m sure there are ways how to make it look good, but perhaps not with the used tft_ESPI library. Anyway, I will share my finding in the next video.
@@upir_upir The way you have it very crisp and clean which makes it very attractive. It looks like an analog gauge!
Anything you can do visually to prevent it from giving away that it's actually digital is for the best.
Can you give this two sensor inputs and do processing between them? Could figure out percentage of slip between wheels or temperature drop or increase between ambient and intake or across an intercooler!
Really appreciate these videos man. As someone who learns by doing having a purpose to understand something makes a big difference - these are terrific!
Yes, you can use multiple sensors without any problems. Thank you for your nice comment!
Eres bueno en la creación de videos, y la temática es de mi gusto. Te pido por favor que hagas los videos también en el idioma hablado en español, he visto que otros TH-camrs sí que tienen esta opción .
I would love to publish my videos in other languages as well, hopefully in the future!
Nice work. I'm looking to rebuild the dashboard in my kit car!
Cool! What´s your kit car?
Amazing piece of coding! Nice work! 👍
Thank you, I´m glad you like it!
That would be pretty rad if you could out put some PWM control for cooling fans with curves.
Probably beyond my knowledge for now, but I agree that it would be cool!
This looks great. It would be nice to see examples of how to implement alarming thresholds where the screen would blink or some other way to get the drivers attention.
Also, is this just a proof of concept or would you recommend using this hardware in a car? Are the displays bright enough? Will they survive a car’s harsh environment (heat, cold, sun, vibration, etc)?
Thank you. Yes, I will cover those in the future videos. You can use it in the car, but the screen is not extremely bright - you will probably don´t see anything on direct sunlight. I will try other displays that might be a better fit.
Looks very cool!
👍
Thank you!
It would be great if you combine all those car esp projects to one, with a touch key to change from temperature to axels to pressure to to to...
Yes, that´s the plan :)
Do you have any videos on actually designing the gauges that you use in your videos? I have seen you show the program you use with short descriptions, but an in depth video of drawing the gauge and then all the corresponding "copies" of it for the gauge moving would be great!
Not yet, but I do plan to record those videos soon. In the meantime, please feel free to download source files from GitHub, you can open them in Photopea and kind of see how those were done.
Another great video. I'm curious, what is your recording setup? I'm trying to make some videos of a synth I'm building that includes a 128x32 monochrome oled display, and I've seen you capture similar displays beautifully before. What camera do you use, and do you have some tips for setting it up?
Thanks in advance, I love watching your vids!
Thank you. I use an old iPhone, but I have found out that the biggest difference makes using different OLED screens. I don´t know why, but some are flickering all the time - like the small 0.9", while others looks very nice. I believe the best one is the 1.3" version, that looks perfect most of the time.
Top-notch content as always!
Do you recon it is possible to write a code that way so the image goes a bit dull at night time. e.g. a positive/negative input from the car to esp32 board that tells it to decrease brignness of the display when headlights are on? just a suggestion
Thank you. Yes, I will cover setting the screen brightness in a future video. Thank you for the suggestion.
Very nice project sir...❤👍👍👍
Thank you, I´m glad you like it!
I'm also looking to add temp and pressure gauges to my car. I have a Superlite SLC with Megasquirt MS3 engine management. I was monitoring temps and pressures using Shadow Dash on my phone connected via BT. But android updates have made it where it doesn't work anymore. Your videos are priceless. I really appreciate the time, care, and how thorough you are.
My request is to take 6 of these gauges and put them on a single larger display. I saw your Focus RS video, something like that but 2 rows. If it's the same process but just alter the resolution, what display would you recommend? 7" is the largest I have room for.
Thank you! Could you please send me an email to utuber.upir(at)gmail.com? I would like to experiment with aftermarket ECUs and I´m looking for someone with Megasquirt for testing. Would you perhaps have time to help in exchange for getting such display? Thanks!
Dear friend, could you replace the oil can graphic with the letters CVT? Is it very complicated? The reason is that my Subaru vehicle has a CVT transmission. Great job you did!!!
That should be simple. There is a PSD file on GitHub, you just need to modify it in Photopea and export those images again.
Hi
Great videos
Would it be possible to use one display with two or three sensors and display the values for each sensor by pressing a momentary button.
Thanks
I don´t see a reason why it should not be possible, but I would probably prefer to show those two or three values at the same time, without the need to switch content.
@@upir_upir would it be possible to do a video or code and schematic for that.
Sensors would be
Oil temp
Oil pressure
Water temp
Awesome Video! Looking forward to the touch version vid, since I’m trying to get mine working. Seems like there is no custom partitioning scheme option available in the IDE and the now the file is to big. You guys have any ideas?
Thank you. Do you have the latest ESP32 boards installed?
Awesome!
Thank you!
Nicely done! How do these gauges screens look in the sunlight?
They are bright, but not super bright. Probably unreadable on direct sunlight, but fine for normal usage.
I like how the needle moves! Cool!
Thank you!
i hope my future car someday isn't 34 celsius
You mean cool it down to 34 or heated up?
Or it's like the 13th floor or a seat, doesn't exist?
I would be glad to have only 34°C during summer... Actually, I would be even more happy to have 34°C during winter!
@@upir_upir i need to move continents... :D
Very nice,
might be You add support for ntc/ ptc sensors and obd in the future ?
OBDII for sure, that´s something I´m trying to sort out right now. As for NTC/PTC sensors - what would be the advantage over the used thermocouple sensor?
Sorry but my answers here are somehow deleted ....
Mentioned some libraries and components something must have triggered the cancel algorithm.
For the resistor sensors...... most older cars have such sensors threaded in the engine , so a good AD and option for calibration curve would help a lot.
Built a temp display using lilygo display and the available libraries for bluetooth obd ........... adapters. But yours look soooooo much better. There are some modern combined oil pressure and temperature sensors which i am not allowed to mention here in the comments ?????
thanks for this new item each time explanations are quite clear. Now after the temperature and the boost it remains the engine rpm counter- 😁😁 is it planned?
Actually, there is also a speedometer - I will do that one first, and than move to tachometer :)
Hey cool another great video from you, i like the last few videos of the round display and thanks to your great instruction i managed to run it by myself ...but do you think you could maybe make a instruction to combine all these nice gauges with the data output from speeduino ? Im messing around with it in the moment and i cant get it working rn it would be really cool if you maybe do a sneak peak in this topic
Thank you for your comment. Yes, I would like to cover Speeduino, but I don´t have any car with this ECU. Do you know if there is any Speeduino emulator out there? I would prefer to test my project outside the car first.
@@upir_upir you can easyly flash the arduino mega2560 or the STM32F407VET6 with the cube progammer and arduino ide to Flash the stm you need to connect some boot pins to ground and 3.3v but it is all described in the speeduino manual or git ...for the protocol i just get it so far to read the map value with the esp32s3 display from the stm32 but with some wrong values, im working on it to fix that
@@upir_upir you can sim9le use a mega2560 or a STM32F407VET6 the flashing ist described in git and i think in the speeduino manual. To Flash the stm you need to connect 2 boot pins to gnd and 3.3v then its ready to Flash , if you need help please let me know we get this sick project running 😉
What do you think about interpolating the temperature values to make the needle smoother at cost of responsiveness ?
That or some kind of rate that limits how fast it changes.
Probably not that useful for water or oil, but who knows.
Well, if you used LVGL, there's an animation feature and with it the display values don't change instantly. In this case, he's using images, so that wouldn't work there.
The temperature is already interpolated between frames, so it´s just a matter of tweaking how fast you want those jumps to be.
So cool bro, i am planning to try this, but i wanted to ask, do u have a bigger display in mind? Having 2inch would be cool af
Yes, I will cover bigger displays in the next video. I have some 2inch and I believe also 3inch round displays to play with.
great job my friend for one more time, thanks for your videos. i want to ask you if you try to increase memory with hardware for more images. i try to use your ford focus gauge(oil press and oil temp so we talk for about 220 image) but need too many of memory.
Thank you. There is probably no simple way how to add more memory on this board, but you can try storing the images in some compressed file formats - like JPG, and see what would be the performance.
Great idea,
I want to see a tutorial from you of how to use MicroSD card with Ardiuno or Esp32,
and Thank you ♥.
Thank you. Yes, I will most likely use microSD soon, since I have a different board that already has the microSD slot... so it would make sense to try to use it.
@@upir_upir okey thanks 👍
Very cool! TNX
Thank you, I´m glad you like it!
Is there a way to set a warning limit if the temperature gets too hot? I’m sure it’s simple to do with the bitmap images, but what about with the code? For example, if it reaches 200F, set a warning message on the display to “stop, turn off engine, overheating” type message.
This would be an awesome modification for a 1998-2010 Volkswagen New Beetle that didn’t come with any coolant temperature sensor for the driver.
This should be as simple as having one more if statement and comparing the temperature against some set of rules.
congratulations and many thanks ! its a great project ! Im trying to upload your code into a waveshare esp32s3 lcd 1.28" (non touch) display, upload process finished succesfully (with no errors), but cannot turn on the screen... could you let me know wich driver version of espressiff esp32 are you using? (if we use v2.0.12 I cant get a custom partition scheme, if I use a latest 3.0.1 version can use custom partition from .csv, is this what should I use?) , and please, let me know about correct library version (Ive installed ver 2.5.43 of TFT_eSPI by Bodmer library, is this ok?) many thanks again !!!
Let me check the versions and get back to you. Thank you!
One question, why u not push one image to rotate? There is any benefits to use rotated static needle exept use function:
needleLeft.pushRotated(&gaugeBack, angle, TFT_TRANSPARENT);
I will cover this question in my next video. In short - you can definitely do that, but it will not look that good.
Thanks for this tutorial, Is it possible to run miltiple sensors and gauges from one Audrino device? Like could i make one unit thats has oil, water, egt, a/f ratio etc...
I'm keen for this too, either utilising a button to switch between the selected thermocouple/sensor or just having it cycle through each sensor at a defined interval.
Yes, you can do that. I will cover it in some future videos.
When will there be a video on LVGL with SquareLine Studio?
Hopefully soon, but I have like dozen of projects going on at the same time..
Hello, good job, is it possible to use the same screen to have multiple gauges, for example, press a button and change from temperature to boost?
Yes, that should be possible. There is even a version with touchscreen, so there is no need for physical button in that case.
really really cool
Thank you!
Do you have the reference of a larger screen (2.5 inches) which will work with your approach (by adapting the image sizes of course)
Yes, I´m currently testing some bigger round displays, and I will cover them in a future video - hopefully soon.
Hi Upir.
Is it possible this gauge shows Boost and EGT at the same time?
Thanks!
Yes, that should be possible. Probably the easiest way would be to split the display in half to show two gauges.
@@upir_upir Thank you for reply!
PS. I wonder I still need to use this amplifier board for EGT sensor when temps are around 900C and moves by dozens in a second
Hi. Thanks for you video.
Can you tel me please what Font you use?
This one uses Chakra Petch font.
@@upir_upir thanks a lot
Would it be possible to use multiple displays on 1 arduino uno? So multiple different temp gauges?
Yes, you can use multiple displays.
Could the sensor maybe get data from an OBD-II reader with Bluetooth?
You don't need this at all if your trying to do that, they make stuff like that already
@@ninjameep8616 I don't "need" any of the projects I'm doing with microcontrollers and SBCs. In fact, my wallet (and wife) would probably be happier if I didn't engage in those projects 😅
Yes, I would like to cover getting the data from OBDII in the next video. As for the other comment, I agree that my wallet would also be much happier without having all those displays :)
@@upir_upir Volos forced me, FORCED ME, I SAY, to order 2 Lilygo T-Panels this week. I have PTSD from the blatant disregard for my financial stability. I just hove I get time to finish my M5Dial project before they arrive 😂
Good job
Thank you!
Excelente! 🙂👍🏻
Thanks!
Sick!
Thank you!
In today's vehicles, these values are already recorded and can be accessed as CAN bus parameters.
Why take individual extra measurements?
Classic cars are of course an exception.
Maybe you don´t have such sensor in the car? Maybe you want to measure temperature that you usually don´t measure? Or - as you have mentioned, there are plenty of old cars, project cars, kit cars...
I am going to build this for my 1981 300GD Gelandewagen ;-), absolutely no OBD or other fancy electronics in it so this will be perfect ;-)
I wanted to make digital touch screen for my car for controlling the lights ( high beam ,low beam and the climate control . Can you guide me in the right direction ?
Thank you !
Are you trying to just replace physical buttons? In that case, you should probably be able to just use some relays to switch the original buttons, instead of trying to mess with canbus.
Can you please do a tutorial on those oled display with grayscale feature? I just bought a ssd1322 256x64 3.12'', it works great with 4spi config but u8g2 doesn't support grayscale I think.
I'm trying to put this display into my bluetooth speaker to show battery, volume, audio visualizer and stuff (I use pretty much all of your tutorials), I've got everything else working fine thought, but having some grayscale bit animations behind the info would be awesome.
I have tried grayscale in the past, but haven´t found a decent library. As you said, u8g2 does not support grayscale. The u8g does, but only partially - you must draw every color separately, i.e. storing one image as multiple arrays, and it was just way too complicated to use it for a project. I might take a second look if there are some better libraries out there that could be used, perhaps from Adafruit. That said, if you only want to show grayscale image, that should be possible even with u8g2 - I might record a tutorial about that.
Can this display and technique be used with a transducer and show psi instead of temperature.
I have a second video where I use the very same display as a turbo gauge. Perhaps that´s the one you are looking for?
Do you do payed project with my specs if I would need one? :D
Maybe :) Please send me an email. Thanks!
Excelente.
Thank you!
Thank you
You are welcome!
Hi, would you consider building gauges on demand ?
Maybe. Could you please send me an email? Thank you.
thx for the feedback, can you share your email pls?
Sure, it´s utuber.upir(at)gmail.com
Hmm ... even without knowing the exact signature of map(), your needle_image is an integer, so the result of map() will be an integer in any case. The round() call in the next line is therefore useless. When carefully looking at the video, you can actually see it is off (at 34:19, needle shows 33° but digits show 35°). Better manually do the mapping into a float, then use a round().
That´s a good point, and I´m pretty sure you are right about the map() function returning an integer value, and that using a manual mapping to float would make more sense. Thank you for your comment.
What was the ESP32 lib version installed and how the custom partition is added in the menu
I would like to see an energy monitor that measures voltage , current ,watt etc...
Do you mean for home energy monitoring?
@@upir_upir yes..
i m trying to use a esp32 and an ili9341 2.2 tft display and cant make it work becase the needle cpp is too big, how does you made it work??
thanks, is a very nice gauge!
This board has 16MB of flash memory, I´m using I believe around 10MB. If you don´t have that much flash memory, you can just rotate the image of the needle - I will describe it in a future video.
@@upir_upir thanks I'm on it!
Would be cool if it moved the arrow slowly, like a real meter.
That should be as simple as adjusting one variable in the code - when calculating the temperature interpolated, just increase the last value from 5.0 to some higher number.
Any chance to make with smart watch display & board...? they are cheaper... 🙂
But probably also even smaller, right?
@@upir_upir Yes, but LCD is bigger,1.38"+... Also supports battery...
Maybe only issue is programming it, I don't think those processors will works with Python like rasberry pi... 🥲
Valeu!
Thank you for your support, I really appreciate it!
I have other version of this (using a ESP32-C3 and the same controller for screen GC9A01) that i can not put a simple "hello world" working on screen....
I would think that the C3 version would work in the very same way as the S3 version, but maybe something else is different.
Wonder if i could use this for oil pressure also?
Yes, that should be possible. There are many oil pressure sensors on AliExpress that works in the similar way as the pressure sensor that I have used in the previous video.
Got a couple questions:
1. On your Github page you have what looks to be a 1/8 NPT but no indication on what it is....if it's usable or does it run on the 12v?
2. Is there a way to do a video on how to make the guages on photopea...not very good with photoshop and any guidance would be helpful
For a german, the joke was ok
There was a joke?
Could you do it with heart rate sensor?
Yes, that should be possible.
Can you create a tutorial about it
hi can i use another screen?, because in my country cant find the same screen
You can use any screen with ESP32 that is supported by the tft_ESPI library, but you would need to update the code accordingly.
wow
Thanks!
Can I order it all set from you?
Not yet...
Anyone knows is it possible to adjust the display brightness?
Yes, one of the pins is for backlight. Just set it to PWM and you will be able to change backlight brightness.
Upir, all your videos is so good, im brazilian, sry bad english, you NEED TO MAKE a video tutorial HOW TO MAKE A WIDEBAND GAUGE, because in brazil wideband gauges high custs, like 1000 brl, in dolar like 1000 dolars, because if you take minimal payment in brazil like 1300 brls, can u make?
I have a e36 here in brazil, and i have a ideia, i want to put a custom wideband inside my original pannel, with a led display to make the color same, if the sensor taking work temperature in display say M for m3, and if the temperature ok, display tells me the air/gasoline, this is my idea
I have found some Wideband lambda sensor control shield for Arduino, maybe you can use that one? Unfortunately I haven´t found the price.
@@upir_upir yes, if we can get the lambda numbers and print in screen, its so good to make a video tutorial to custom cars and original, because custom cars needs this piece, if we make a good theme and display, i thing you get A LOT off Brazilian viewers and subscribes, if you can make a video tutorial or send me the link, help a lot!!!
@@upir_upir do u can get me your instagram to tell you more the ideia?
Instagram or telegram or WhatsApp
34:20 35 as number but not by pointer
It’s because of the rounding.
this could work for my pizza oven 😦
I haven´t thought about that, that´s surely an interesting usage!
A range of -30 to +30/40°C would probably be more reasonable here
For measuring air temperature - yes. For my testing, I wanted something I can easily change using just my finger temperature.
nice work overall. however, using gpio as a power source is strongly ill-advised. It is true that the gpio can source up to 40mA in default configuration on the ESP32 chip, which is sufficient for the thermocouple chip. Unlike a proper voltage regulator, however, gpio have no over-current limiting protection. If you make a wiring mistake and short out a voltage regulator, as long as it is only temporary, the regulator usually recovers when the short is removed, and nothing is damaged. If you make a mistake wiring the gpio as power source and short it to ground (or the module is damaged.. or you make a code error setting the pins), the ESP chip is destroyed and unrecoverable.
There is literally 3 decades of literature related to microcontrollers illustrating why using a GPIO as a power source is a mistake and should never be done. This very literature will make the compromise that its "ok" to source an (low current) LED as an output, such that code logic is not inverted (pin HIGH = LED ON), but always caveats that the "correct" way is to sink the LED (VCC through LED and resistor, INTO the GPIO). This however creates a logic inversion in code, that pin HIGH = LED OFF. The other option being to drive it via transistor/FET. The D13 LED schematic on older or cheap clone Arduino Uno is "accepted" but not correct. The R3 version fixes this without requiring code changes by wedging an op-amp between the IO and LED.
You are right, that´s something you want to avoid, but unfortunately the board (for some unknown reason) doesn´t have any 3.3V pins. Again, not quite sure what is the reason for that. I wanted to make it as simple as possible and used this shortcut, but I will see how I can update the project with a more proper power source.
@upir_upir is there a 5 volt source? Use a secondary 3.2v regulator? You can even choose one with an enable pin and drive THAT with a gpio to to some power management.
Ah never mind about power management. Forgot this is about an automotive gauge. Check that chip or module may be 5v tolerant? Choose another part which is? Lots of options here. Heck a zener diode in a pinch is a [slightly] better option.
Hey the thermocouple module has a 3.2v regulator on it. Just hook to vsys.
SOOO CUTE FİNE
Thanks!
Hello. Make a project "Eye of the devil" in car headlights.
That´s interesting, I will see what´s possible.
@@upir_upir Thank you
@3:00 why is it so bright in here !?!? LOL
What?
UPIR: I want to put a hidden automated realtime camera at work that takes photos of women standing by the coffee machine and compares the facial characteristics against the golden ratio mask (the one that shows the most attractive facial features). I want a large gauge like this on top of my laptop monitor that lights up and shows the "hotness temperature" only when women that scores more than 70 is visiting the coffe machine so I "accidentally" can walk over to stand in line for coffe while trying to strike up a conversation. If you can make it trigger especially for asian women it would be perfect. Can you make this project?
Not quite sure if that´s a joke or not..
@@upir_upir Maybe it was a little bit meant as a joke ....
wtf did i just read….
this type contents are Awsome but for me as a mechanic need coding knowladge to make this type guages if it posible put coddind and even graphic sections in any type (comment section. link. or etc) to easy reach for my type people
i really apriciated to share your knowladge with us
Thank you. All the source files are on GitHub, the link is in the description.
@@upir_upir thank you bro
Rpm gauge pleaseeee
Yep, that´s on the todo list!
Can you tap into a cars OBD signal and show the engine temp ?
Yes, you should be able to do that as well. I will cover getting data from OBDII in a future tutorial.
@@upir_upir oh man , that would be great , thank you 😊 👍
I have already written about this, I will write again! This all works only in the test, it doesn’t work in real life! You lack algorithms for smoothing sensor data, such as the Kalman algorithm. You do not have ADC calibration, at least with the straight line algorithm y = kx+b. Because of this, yours shows the weather on Mars, and not real data!
For everyone who asks about real applications in cars or weather stations, this approach is not suitable!
There is no reason why this should not work in the real environment. There is no ADC calibration needed - the ESP32 is not getting any analog data, and the used chip is already pre-calibrated.
@@upir_upir Don't say so until you check it.
It may be more accurate than the ADC of the ESP itself, but it is not perfect.
A Kalman filter is still needed. In a real environment there are pulsations and surges caused by both interference and heterogeneity of the medium.
I don't insist, but advise.
@@igorgoblin1123 we're not running mission critical or legal compliance data here, even if the sensor is inaccurate it won't do anyone any harm.
If anyone is shipping these (plug and play) get at me !
I´m sure there are many other gauges that are plug and play and ready to buy.