I always love that you provide full instructions for these projects. While I'm no novice with graphics, I'm still learning Arduino, so I can jump ahead, but for users who have no clue, omitting the graphic portion assuming they know how would leave them guessing and frustrated.
Thank you for your nice comment, I really appreciate your nice words. I was actually thinking that most of the viewers would be more familiar with Arduino and not the graphics, but I guess it should work the other way around as well :) Good luck with your projects and please don´t hesitate to share your creations, I would love to see your graphics!
Thank you, but I still don´t fully understand why this video is so much popular compared to my other videos that are very similar in style, but cover different topics. Perhaps the topic of the menu is useful for more projects?
@@upir_upirI found it looking for a way to get neat icons and all on the oled. The way you explained this with the websites like image2cpp and the wokwi example to experiment helped me a lot further then what I could find so far.
judging by how fast he talks, his processor is probably an overclocked i7 with a 2hp water cooling system. this comes with a twin cooling towers with forced air drafts. learned a lot from this tutorial. thanks
Really like your projects, when i see them, there is always some inspiration for me. When i was younger i often thought outside the box - and maybe cuz i am getting older, its getting harder and harder for my mind. But then i see some of your stuff and can create something with it, so thanks for that! :D Keep up the good work 👍
Thank you so much for this amazing tutorial!! I will have to buy you a whole week worth of coffee for this valuable information. My project is looking so nice now!
@@upir_upir I'm Currently working on a Remote for my 3D printed railway. I'm creating a simple UI with Dashboard and a Menu. I think I will also try the u8g2 since its identical to u8glib.
@upir_upir I shared the code, looks like youtube removed my previous comment because of the link. Just the basic dashboard is complete and runs with ESP32 dual core. I have to add a few more functions and a simple menu system.
Consider part two, with the following addition. 1) using 5 buttons (up/down, left - / right +, select (center button) or one rotary encoder with button to handle both, select, change (-/+) 2) functionality to select the current menu and change it's settings, like values,etc. BTW, I always rewatch your videos a lot, keep up the good work
Thank you for your comment, Raymond. It´s not a big surprise, but I will record a second part with 5-way button.. at least I will try to :) Good luck with your projects!
i cobbled together some stuff like your suggestion to fit with my projects parameters!, i added an up, down, left, right and select button as well as an "ok" and "back" button! (ik im late but it was a fun project to try)
@@himikotiro8487 way to go buddy; didn’t play with this project because I’m currently working on a website design. But will definitely return to this. And again thanks @upir_upir for inspiring the rest of us :)
Very nice video and project, this is one of the best I've seen in recent months, I take great insperation from what you do here, you inspire me to push on with my hobbie.
Yeah, that's about it... We obviously have had slightly different approaches around the images and text itself due to the nature of our workflow, but you handle the code "more conciously", whatever that means. Anyway, it's a great learning material as always. I'll definitely come back to it in some time, and try to adapt it to my own needs. Thanks !
Thank you for your comment Kshysztof. I always feel that my code could be improved, but hopefully it will get better with time and more projects. Good luck with your project and I look forward seeing your updated menu!
@@upir_upir Hi my Best, I watched your first CNC Project at least and go on to the Next I am interesting in, on your Channel. I am very exciting in your Content and you have a new Member for sure! I am at the beginning to make own Projects with Microcontrollers and I am very happy when I find any Content like Yours with clean and compact Knowledge and a good round about view of that. Best Greetings from Germany
Oh wow, fantastic video as always upir, hats off to you for taking the time and explaining in such detail for most of us to follow along and not to forget @PCBWay for being such an amazing sponsor for your channel 🙌🏽 This is a job very well executed and along the way what I want to do with my one project but just on a 128x128 RGB OLED. One question: Are you able to save the currently selected page to memory (the currently opened menu item) and display it upon power on as the first screen you see ?
Thank you for your nice comment! Yes, you can save the currently selected menu item / screen, use the eeprom library to store the value in eeprom. Just keep in mind that there is a limited number of writes, I believe it´s 100000...
@upir thank you for the reply. Ah, that makes sense and will not work as the best solution. Just a thought, but will adding an additional flash memory module not be the answer?
In the video the int item_sel_next is not set to 0 when overflows :) You just substract with 0 which ends up with nothing :P I know it's so minor but I couldn't prevent myself from mentioning it :D Thank you for the great content !
Thank you for the correction. Please feel free to mention any of my errors, I´m still learning and I often make a lot of those - and sometime I see it after the video is published.. This will hopefully get better with time. Good luck with your projects!
Very good and well explained video, thanks for sharing. I thought I would mention that the correct way to pronounce PhotoPea would depend on the language it was developed from and I'm just going to take a stab in the dark here and that foto pee is the original pronunciation, given that it is a small photo editor and that pea is often used to represent something diminutive.
Nothing special. This particular OLED is somehow easier to film compared to others. That said, none of them are blinking to the naked eye, it´s only a camera problem.
Menu and submenu with settings that have a checkbox to enable/disable and settings with adjustable values (0-100) using a rotary encoder. For the second part, please!
Wao first person I encounter that gives a full explanation of their micro controller projects, this is too much to digest but well learning experience! cheers, can this be used to extract real data from car via odb?
Thank you for your comment and hopefully it will be easier to digest with more time :) Yes, you can use ODBII. I do plan to record a video about that topic soon.
Thank you for the extensive tutorial, in the code I just would change the if statements to check the end of items, with modulus operator, and put the prev/next variables inside the loop as consts like so: const int item_sel_previous = (item_selected - 1) % NUM_ITEMS; no need to banch out code.
Truly amazing video, how much inch is the oled you used? I got one of those 0.96 inch oleds but it appears a little bit smaller than the one you used in the video 🤔
Thank you. The OLED screen used is 1.54", it´s much better compared to the 0.96inch screens - it´s both bigger and brighter - s.click.aliexpress.com/e/_DlmCRtR
@@upir_upir Oh wow, thank you so much. I'm gonna order these ASAP! I'm trying to make a PID-based humidity and (hot/cold) temperature controller for my tropical plants growtent. Your tutorials are a huge help for me to move my project a whole different league! Thanks again and stay awesome.
Thank you for your comment! Even when I have used micropython for few of the projects, I still don´t have the knowledge to put together menu like this... but who knows, maybe in the future. It´s surely a good idea to compare speed.
Lots of great tools in here, thanks! Can I ask what's the name or part number of the transparent keycaps so I can find it on Mouser or somewhere? Cheers.
UPIR - Thank you so much for this set of tutorials!! incredible tha quality, the speed, the details .. I was giving up to do something using OLED but based in your videos make me re think about use it!!! Any chance to convert it to NodeMCU? Thank you in advance!!! Leo
Thank you for such a nice comment, I really appreciate it! I hope you will be able to create something great. I will take a look at the NodeMCU, but I have a lot of projects in progress, so it will take some time. Thanks again and good luck with the projects!
@@upir_upir well I would like it to read inputs from the can network or directly from the ecu and control a Mac valve to control turbo boost levels and maybe display other parameters using one of those displays… me personally wold love one of those transparent displays
I´m glad the video was helpful. The 128/8 is because the used draw function requires the width to be in bytes, not in pixels. I don´t have a submenu tutorial (yet), but I´m working on it...
No interrupts, just reading the pin value in the loop function. There is no need to deal with the bounces, as the drawing loop takes quite a lot of time, so there is actually the opposite problem - not registering the button press sometime. I´m sure the interrupts would help, but I wanted to keep it simple for now.
Really cool video. At this point in my journey I have a good bit of familiarity with coding logical statements in Arduino and basic circuit design, so I’m trying to come back through and familiarize myself with how to control more ‘snazzy’ things like an actual graphic display (compared to the standard 16X2 that comes with Arduino kits, if you know what I mean). When it comes to telling which menu items should be displayed for next and previous items from the array, wouldn’t it be easier to simply write something like ‘prevItem = (currItem-1)%menuCount)’ and ‘nextItem = (currItem+1)%menuCount)’ ?
Hi i really like this and i am going to modify it so i have a list of ir codes that i can send But is this possible for the nano maybe it has not so big storage?
Great video as always, but how would you make each selected option not be a photo. So if i selected the Turbo option on the menu, the turbo code would start and so on for the rest of the options. It would take a lot of coding right?
Thank you. It should not be hard since I already have sketches for all the designs, but it would definitely not fit on the Arduino UNO with the limited memory. That said, it might be possible to fit on something like ESP32. I might try it, since I would be also interested about the memory usage, and how smooth it would run. I would also need to make sure I´m not using the variables with the same names in those sketches, as they would collide.
hello good day What would I have to change if I want to put a larger screen? I'm thinking about making a digital cluster for my VW MK1. and your videos are helping me a lot, I just don't know what it would take to get if I want to add a 7-inch screen (I don't know what type of screen either) greetings from Mexico.
Thank you for your comment. The approach for bigger screen is quite different compared to those small oled displays, but I would like to cover those as well in my future videos. What exactly are you trying to display?
Thank you for this video, it was very helpful for a project i am working on. however i am having a coding issue, i made up 9 different screens, all assigned to different menu options. when i switch between screens and options, the options don't start at the first menu option, and the text for the screen menu as well as other screen menu text becomes an option. any idea how to fix?
Thank you for your nice comment. Sure, I don´t see any reason why you couldn´t update the menu to do what you mention. Please feel free to post link to your project once you have it finished. I would be interested to see it!
Im trying to build a motorcycle dash and your videos are helping a lot! How would you make something work based on a button state? Right now i have dozen of bitmaps for each icon on the dash and it draws them if the pin is set to high, but its too hardcoded to work smooth as your projects.
Thank you for your comment, Roger! Unfortunatelly, it´s not 100% clear to me what you are trying to achieve. Could you please provide more details? If you don´t want to share it publicly, please feel free to send me an e-mail. It should be listed on the about page. Thank you and good luck with your project!
nice video it helped me alot! im new to Arduino so i dont know much but im working on a project that requires the buttons to be usable on multiple screens. is there a way to do this?
Thank you for your comment, that’s great to hear! Please take a look at my other video where I use buttons to jump between the screens, hope it will help you. Feel free to ask any questions. ua-cam.com/video/HVHVkKt-ldc/v-deo.html
@@upir_upir thats the video i meant to comment under im sorry and in the code you wrote a comment saying up and down buttons only work for main screen, is there a way i can make these buttons work on multiple screens?
@@trevorflores1019 It only works for main screen because there is an IF statement to work for the main screen. If you remove the IF statement, it will work for any screen. Let me know if that makes sense. Thank you.
Thank you! I will record another video with the encoder, and probably slightly different graphics, but at this point, I do not plan to use color LCD, as it would require different library and I need to first get familiar with it a little bit... but for the future, who knows :)
I have a question. I'm trying to use a button interface in one of my projects with the Arduino Uno. But I'm encountering the problem where some button presses do not register because of the code not reading that precise line when the button gets klicked. You seem to have gotten this to work without even using hardware interrupts. Could you please share how you have gotten your menu buttons so responsive?
Can you maybe measure how long your loop takes? This sketch updates I believe at least 10x in a second, so it´s a big chance that you catch the button press. If that would not be the case, using interrupts would be a good idea.
@@upir_upir WOW, Thanks for the answer! Means a lot for me that you take a part of your invaluable time to answer my question. I will take that into consideration. I will check how long it takes for my sketch to update tomorrow!
Thank you for your video. Please allow me to make a suggestion. You need to slow down your narration. You speak too fast and it is sometimes difficult to understand what you are trying to convey. Otherwise, great video. Thanks
@@isaacfuertes is something like this what you are looking for? www.instructables.com/Boost-and-Air-Fuel-Ratio-LCD-Gauge/ Of course the second possible way is to directly read the CANBUS values and do not use a separate sensor.
Okay,that was a really great tutorial and I appreciate it very much.But I want to know where and how to connect it to car to get dashboard and boost gauge data?I just don't get it.
Thank you for your comment. This was mainly about creating the menu, not connecting it to the car. For GPS speed, you don´t need to connect it to the car, as you can use external GPS sensor as described here - ua-cam.com/video/dSD02o3M2sw/v-deo.html For turbo boost pressure, you can use external sensor that acts in the similar was as a potentiomater - i.e. reporting different voltage based on the pressure - s.click.aliexpress.com/e/_DFhEWPX You can also connect it to the car with OBD2 and read the data from there. I do plan to record a tutorial on how to do that soon.
I am using u8g2 lib with an esp32 and it seems that it draws also the black parts, for example when I draw first the srcollbar and then the selectedIcon the scrollbar dissapear in the middle. So i have to draw first the selectedIcon and then de scrollbar. Maybe there is an option for this.
Yes, u8g2 library has two modes for drawing bitmaps, just make sure to set it to transparent and you should be fine. github.com/olikraus/u8g2/wiki/u8g2reference#setbitmapmode
Great tutorial. Thank you. I am using the OLED with a nano ble and have checked that my IC address is correct. The problem I am having is that only the top 10% of the screen shows the display. The bottom 90% is just white and black dots. I tried a second display and have the same result. Any suggestions?
Do you like the video? Please consider buying me a coffee ☕, thank you! www.buymeacoffee.com/upir
i will definetely buy you a cofee when i start earning
Sorry, I was really interested but you spoke so fast, didn’t finish
I always love that you provide full instructions for these projects. While I'm no novice with graphics, I'm still learning Arduino, so I can jump ahead, but for users who have no clue, omitting the graphic portion assuming they know how would leave them guessing and frustrated.
Thank you for your nice comment, I really appreciate your nice words. I was actually thinking that most of the viewers would be more familiar with Arduino and not the graphics, but I guess it should work the other way around as well :) Good luck with your projects and please don´t hesitate to share your creations, I would love to see your graphics!
Man, you went out of your way for this. You deserve a medal of honor!
Thank you, but I still don´t fully understand why this video is so much popular compared to my other videos that are very similar in style, but cover different topics. Perhaps the topic of the menu is useful for more projects?
@@upir_upirI found it looking for a way to get neat icons and all on the oled. The way you explained this with the websites like image2cpp and the wokwi example to experiment helped me a lot further then what I could find so far.
Most useful material about OLED menu, i ever seen!
Great work!
TNX for doing these!
That´s great to hear, thank you for your nice comment and good luck with your project!
judging by how fast he talks, his processor is probably an overclocked i7 with a 2hp water cooling system. this comes with a twin cooling towers with forced air drafts. learned a lot from this tutorial. thanks
I´m glad it was still useful!
Really like your projects, when i see them, there is always some inspiration for me. When i was younger i often thought outside the box - and maybe cuz i am getting older, its getting harder and harder for my mind. But then i see some of your stuff and can create something with it, so thanks for that! :D Keep up the good work 👍
Thank you for your nice comment, I´m glad you like and that it inspires you for your own creations. Good luck with your projects!
I always wished I had gone down the electronics toad when I was younger so understand when you say about it being harder as you age.
讲解太棒了,循序渐进,ui审美也非常在线,Like the video!
Thank you for your nice comment, I´m glad you like it!
Thank you so much for this amazing tutorial!! I will have to buy you a whole week worth of coffee for this valuable information. My project is looking so nice now!
Thank you for your nice words, I would be glad even for a single coffee!
I love your menus bro, keep going we need more of them ❤️
Thank you! I really like those OLED displays, so I´m sure there will be more graphics-content in the near future..
I was just looking for this! Detailed and Easy to understand tutorial
Thanks man
That´s great to hear, feel free let me know if there is something else that you are looking for :)
@@upir_upir I'm Currently working on a Remote for my 3D printed railway. I'm creating a simple UI with Dashboard and a Menu. I think I will also try the u8g2 since its identical to u8glib.
Cool! Do you have any example/photos to share? There is just a slight difference between those two libraries that I will cover in the next video..
@upir_upir I shared the code, looks like youtube removed my previous comment because of the link.
Just the basic dashboard is complete and runs with ESP32 dual core. I have to add a few more functions and a simple menu system.
That’s strange, usually there is no problem with posting links. Could you please try it again?
Thanks for sharing, the video is really detailed and easy to understand. I will learn your way to develop IOT products!
Thank you for your comment, I´m glad you like it!
A very superb video, it helped me through the dark sad times in my life when no one was there for me.
I´m glad that a simple menu has such a power!
I've learned so much in this video. I'm just speechless. Thanks for your awesome work! 👍😊
Happy to hear that! Thank you for your nice comment and good luck with your projects.
Best tutorial i have seen... great job man!
Wow, thanks! I really appreciate your comment.
Consider part two, with the following addition.
1) using 5 buttons (up/down, left - / right +, select (center button) or one rotary encoder with button to handle both, select, change (-/+)
2) functionality to select the current menu and change it's settings, like values,etc.
BTW, I always rewatch your videos a lot, keep up the good work
Thank you for your comment, Raymond. It´s not a big surprise, but I will record a second part with 5-way button.. at least I will try to :) Good luck with your projects!
@@upir_upir +1 for rotary encoder; thank you for this fantastic tutorial, anyway!
@@upir_upir +1 I too need the rotary encoder option from you. With kind regards.
i cobbled together some stuff like your suggestion to fit with my projects parameters!, i added an up, down, left, right and select button as well as an "ok" and "back" button! (ik im late but it was a fun project to try)
@@himikotiro8487 way to go buddy; didn’t play with this project because I’m currently working on a website design.
But will definitely return to this.
And again thanks @upir_upir for inspiring the rest of us :)
I'm still new to arduino, I watch your videos and they inspire me to take and do) Thanks for your work! sorry for my english)
That´s great to hear. If the video inspires you to create you own project, then it fullfiled it´s purpose.
Extremely informative ! , keep uploading such great contents
Thank you for your nice comment, I don´t plan to stop yet :)
This tutorial is very well-made! WOW thank you so much :)
You're very welcome, I´m glad it was helpful!
woow wooow woowwww This is the best tutorial video I have ever watched
This is the best on OLED gauges, thank you for the wonderful presentation. With best regards.👌👌
Thank you for your nice comments and good luck with your projects!
Very nice video and project, this is one of the best I've seen in recent months, I take great insperation from what you do here, you inspire me to push on with my hobbie.
Thank you, John! I really appreciate your nice comment and wish you luck with your own projects. Please feel free to share your creations.
Yeah, that's about it...
We obviously have had slightly different approaches around the images and text itself due to the nature of our workflow, but you handle the code "more conciously", whatever that means.
Anyway, it's a great learning material as always. I'll definitely come back to it in some time, and try to adapt it to my own needs.
Thanks !
Thank you for your comment Kshysztof. I always feel that my code could be improved, but hopefully it will get better with time and more projects. Good luck with your project and I look forward seeing your updated menu!
I love this ❤️ thank you for the information, very valuable for me who is still a beginner 🙏
That´s great to hear! Thank you for your nice comment and good luck with your projects.
Great, tnx.
Thank you!
Thank you! I learned a lot with this video.
That´s great to hear, thank you for your comment!
Freaking useful! thank you, subscribed for sure
Thanks for the sub!
Wow! C`est magnifique Upir!!!!
Thank you!
mükemmel bir anlatım olmuş. teşekkür ederim
Thank you, I´m glad you like it!
Thanks for the video, great job 👍
Thanks for watching!
very good video, very interesting...
i like you show all the process and get a better solution in the end
Thank you for your comment, I´m glad you like it!
Thats real hot Stuff!!! Thx. Best Video ever for explaining all around! Niceee
Thank you, I´m glad you like it. Make sure to check also my other videos where I use the same explaining style but with various different projects.
@@upir_upir Hi my Best, I watched your first CNC Project at least and go on to the Next I am interesting in, on your Channel. I am very exciting in your Content and you have a new Member for sure! I am at the beginning to make own Projects with Microcontrollers and I am very happy when I find any Content like Yours with clean and compact Knowledge and a good round about view of that. Best Greetings from Germany
amazing tutorial, thanks for the tools introduced.
You are second, I’m glad you like it! Thank you for your comment
Thank you very much. Always appreciate your content :)
Thank you, I´m glad you like it!
Oh wow, fantastic video as always upir, hats off to you for taking the time and explaining in such detail for most of us to follow along and not to forget @PCBWay for being such an amazing sponsor for your channel 🙌🏽
This is a job very well executed and along the way what I want to do with my one project but just on a 128x128 RGB OLED.
One question: Are you able to save the currently selected page to memory (the currently opened menu item) and display it upon power on as the first screen you see ?
Thank you for your nice comment! Yes, you can save the currently selected menu item / screen, use the eeprom library to store the value in eeprom. Just keep in mind that there is a limited number of writes, I believe it´s 100000...
@upir thank you for the reply.
Ah, that makes sense and will not work as the best solution.
Just a thought, but will adding an additional flash memory module not be the answer?
Great video thank you👍
❤ Arduino
Thank you, I´m glad you like it!
Don't you just hate it when someone draws a 16x16 pixel black and white image and it looks perfect in one go? 😂
I hate it as well!! Thankfully, I can cut out all the unsuccessful tries and only include the one that looks good :)
Great job!!!
Thank you very mutch
Thank you, I´m glad you like it!
Keep it up! I love your work!
Thank you Jerome, I really appreciate your nice comment and support.
Thank U very much for this video.its very informative .
You are welcome, I’m glad you like it!
Is it possible to connect it to car?
Do you mean to ODBII connector?
@upir_upir yes that this can show car temperature etc.
Really useful - thank you for sharing
That´s great to hear, thank you for your comment!
In the video the int item_sel_next is not set to 0 when overflows :) You just substract with 0 which ends up with nothing :P
I know it's so minor but I couldn't prevent myself from mentioning it :D
Thank you for the great content !
Thank you for the correction. Please feel free to mention any of my errors, I´m still learning and I often make a lot of those - and sometime I see it after the video is published.. This will hopefully get better with time. Good luck with your projects!
Wau sangat menginspirasi❤
Tambahkan subtitle indonesia 😂
Thank you, however, the subtitles were auto generated, so I hope it makes at least a little bit of sense…
my godddddddddddddddddd.......................,,,,,,,,,,, really nice video..
Thank you, I´m glad you like it!
insanely informative
Thank you, I´m glad you like it!
thanks, new subscriber!!
Thank you, and welcome! :)
I knew nothing about coding getting into this video. But I somewhat sort of maybe kind of understand now
That´s great to hear, good luck with your learning and I hope my projects will help with that!
Absolutly awesome
Thank you, I’m glad you like it!
Always interesting !...cheers.
Thank you for your continuous support! :)
Very good and well explained video, thanks for sharing. I thought I would mention that the correct way to pronounce PhotoPea would depend on the language it was developed from and I'm just going to take a stab in the dark here and that foto pee is the original pronunciation, given that it is a small photo editor and that pea is often used to represent something diminutive.
I think you are right, also because the logo slightly resembles a pea stalk.. anyway, thank you for a nice comment!
The oled looks really crisp on camera! Did you do anything in code to stop the flickering or was it just camera settings?
Nothing special. This particular OLED is somehow easier to film compared to others. That said, none of them are blinking to the naked eye, it´s only a camera problem.
So much thanks!
You are welcome!
that GUI reminds of the base model Mercedes Sprinter’s gauge screen GUI
I hope that´s a good thing! :)
@@upir_upir sure is!
IIC PROTIP:
A5 has 5 letters, as does CLOCK
A4 has 4 letters, as does DATA
This is very helpful, thank you!
thats a great way to remember👍👌
Hi, can you please explain, A4, A5 on one side and SDA,CLK on the other side side of the board are bridged?
Yes, those are the same pins.
Thx mate👍
Thank you, Bojan! I´m glad you like it.
Thanks for video
You are welcome, I´m glad you like it!
excellent work :)
Thank you!
Nahh i thought I was the only weird one that stuck the tiny breadboard on the shield
I already got the shield with the breadboard...
so coool man, gratsss and thzz!
Thank you, I’m glad you like it! Good luck with your projects
Menu and submenu with settings that have a checkbox to enable/disable and settings with adjustable values (0-100) using a rotary encoder. For the second part, please!
Good idea! I do plan to record a second part soon...
Wao first person I encounter that gives a full explanation of their micro controller projects, this is too much to digest but well learning experience! cheers, can this be used to extract real data from car via odb?
Thank you for your comment and hopefully it will be easier to digest with more time :) Yes, you can use ODBII. I do plan to record a video about that topic soon.
@@upir_upir looking forward to learn about obd and make it functional for me
Thank you for the extensive tutorial, in the code I just would change the if statements to check the end of items, with modulus operator, and put the prev/next variables inside the loop as consts like so: const int item_sel_previous = (item_selected - 1) % NUM_ITEMS;
no need to banch out code.
Good point! I also try to avoid branching and this is a good idea. Thank you
This is great - can you show a version with a rotary encoder (with push button) instead of separate buttons?
Thank you and sure, I will try rotary encoder for some of my future projects.
Truly amazing video, how much inch is the oled you used? I got one of those 0.96 inch oleds but it appears a little bit smaller than the one you used in the video 🤔
Thank you. The OLED screen used is 1.54", it´s much better compared to the 0.96inch screens - it´s both bigger and brighter - s.click.aliexpress.com/e/_DlmCRtR
@@upir_upir Oh wow, thank you so much. I'm gonna order these ASAP! I'm trying to make a PID-based humidity and (hot/cold) temperature controller for my tropical plants growtent. Your tutorials are a huge help for me to move my project a whole different league! Thanks again and stay awesome.
That’s great to hear, thank you for your nice comment and good luck with your project!
I love it.
Thank you, and good luck with your projects!
Nice video, would be interesting to see the same thing done in micropython so we could see the differences between C and python 👍
Thank you for your comment! Even when I have used micropython for few of the projects, I still don´t have the knowledge to put together menu like this... but who knows, maybe in the future. It´s surely a good idea to compare speed.
Lots of great tools in here, thanks! Can I ask what's the name or part number of the transparent keycaps so I can find it on Mouser or somewhere? Cheers.
Thank you, Chris! Here is a link on AliExpress - s.click.aliexpress.com/e/_DmXS8B9
Great video!
Thank you, I´m glad you enjoyed it!
UPIR - Thank you so much for this set of tutorials!! incredible tha quality, the speed, the details .. I was giving up to do something using OLED but based in your videos make me re think about use it!!!
Any chance to convert it to NodeMCU? Thank you in advance!!! Leo
Thank you for such a nice comment, I really appreciate it! I hope you will be able to create something great. I will take a look at the NodeMCU, but I have a lot of projects in progress, so it will take some time. Thanks again and good luck with the projects!
I'd love to see a version of this that can also display the same output on an HTML5 Canvas at the same time for web clients connected.
That would be cool, but unfortunately, it is currently outside the scope of my knowledge.
Excellent work …. Am curious tho could you make a boost controller from this project to control a MAC valve ?
Thank you! I think it should be possible, what do you plan to use it for?
@@upir_upir well I would like it to read inputs from the can network or directly from the ecu and control a Mac valve to control turbo boost levels and maybe display other parameters using one of those displays… me personally wold love one of those transparent displays
That load of info was fast to acquire. Why did you divide128/8? Do you have a video teaching how to do submenus?
I´m glad the video was helpful. The 128/8 is because the used draw function requires the width to be in bytes, not in pixels. I don´t have a submenu tutorial (yet), but I´m working on it...
How are you handeling the buttons ? are you using external interrupts, and how are you dealing with the bounces ?
You may want to view to the end
No interrupts, just reading the pin value in the loop function. There is no need to deal with the bounces, as the drawing loop takes quite a lot of time, so there is actually the opposite problem - not registering the button press sometime. I´m sure the interrupts would help, but I wanted to keep it simple for now.
Is it possible to use a external EEPROM to store images so it doesn't take the space in the main sketch ??
You can, but probably a better way would be to use a different Arduino or Arduino compatible board with bigger memory. There are plenty of those.
super!
Thank you, Michal!
Really cool video. At this point in my journey I have a good bit of familiarity with coding logical statements in Arduino and basic circuit design, so I’m trying to come back through and familiarize myself with how to control more ‘snazzy’ things like an actual graphic display (compared to the standard 16X2 that comes with Arduino kits, if you know what I mean).
When it comes to telling which menu items should be displayed for next and previous items from the array, wouldn’t it be easier to simply write something like
‘prevItem = (currItem-1)%menuCount)’ and
‘nextItem = (currItem+1)%menuCount)’ ?
Thank you for your comment. I agree that your code is easier, but might be slightly too advanced for novice users.
@@upir_upirGood point. 😅
Hi i really like this and i am going to modify it so i have a list of ir codes that i can send
But is this possible for the nano maybe it has not so big storage?
Thank you for your comment, the Nano has also 32KB of flash memory, so there should be no problem running this sketch on this board.
@@upir_upir no! Thank you for the tutorial
Could be show me an example or explain how i could make a menu like this but then with submenus and functions
I´m working on the video with the menu project that also has submenus, hope that will answer all of your questions.
Great video as always, but how would you make each selected option not be a photo. So if i selected the Turbo option on the menu, the turbo code would start and so on for the rest of the options. It would take a lot of coding right?
Thank you. It should not be hard since I already have sketches for all the designs, but it would definitely not fit on the Arduino UNO with the limited memory. That said, it might be possible to fit on something like ESP32. I might try it, since I would be also interested about the memory usage, and how smooth it would run. I would also need to make sure I´m not using the variables with the same names in those sketches, as they would collide.
hello good day What would I have to change if I want to put a larger screen? I'm thinking about making a digital cluster for my VW MK1. and your videos are helping me a lot, I just don't know what it would take to get if I want to add a 7-inch screen (I don't know what type of screen either) greetings from Mexico.
Thank you for your comment. The approach for bigger screen is quite different compared to those small oled displays, but I would like to cover those as well in my future videos. What exactly are you trying to display?
The 4th letter in the alphabet is a D like DATA. Therefore A4 = SDA.
Someone else mentioned CLOCK = 5 letters = A5, DATA = 4 letters = A4.
Hey can you make tutorial for TFT full color displays? especially for ili9341
Sure!
This is God Sent been working onthis just today. if youcould show a video with a rotary encoder for direction and internal button for ok
Thank you! Yep, I might record another video if there will be enough interest..
Is there a tutorial for an AFR Gauge?
Do you have a dedicated sensor connected to Arduino, or are you getting those values from OBDII port?
@@upir_upir I basically want an AFR Reading from a Wideband O2 Lambda Sensor Bosch LSU 4.2 to be specific
Thank you for this video, it was very helpful for a project i am working on. however i am having a coding issue, i made up 9 different screens, all assigned to different menu options. when i switch between screens and options, the options don't start at the first menu option, and the text for the screen menu as well as other screen menu text becomes an option. any idea how to fix?
Thank you for your comment. Perhaps watching my other OLED-related tutorials will help? I have a lot of those on my channel.
This is amazing work!
Do you think I can edit the menu list and add link http link to the menu for playing internet radio.
Thinking of using EPS32
Thank you for your nice comment. Sure, I don´t see any reason why you couldn´t update the menu to do what you mention. Please feel free to post link to your project once you have it finished. I would be interested to see it!
Instead of buttons, can we integrate them into a rotary encoder?
Yes, that might be a good idea. I might try that in the future.
Im trying to build a motorcycle dash and your videos are helping a lot! How would you make something work based on a button state? Right now i have dozen of bitmaps for each icon on the dash and it draws them if the pin is set to high, but its too hardcoded to work smooth as your projects.
Thank you for your comment, Roger! Unfortunatelly, it´s not 100% clear to me what you are trying to achieve. Could you please provide more details? If you don´t want to share it publicly, please feel free to send me an e-mail. It should be listed on the about page. Thank you and good luck with your project!
Thanks sir
You are welcome! Good luck with your project
nice video it helped me alot! im new to Arduino so i dont know much but im working on a project that requires the buttons to be usable on multiple screens. is there a way to do this?
Thank you for your comment, that’s great to hear! Please take a look at my other video where I use buttons to jump between the screens, hope it will help you. Feel free to ask any questions.
ua-cam.com/video/HVHVkKt-ldc/v-deo.html
@@upir_upir thats the video i meant to comment under im sorry and in the code you wrote a comment saying up and down buttons only work for main screen, is there a way i can make these buttons work on multiple screens?
@@trevorflores1019 It only works for main screen because there is an IF statement to work for the main screen. If you remove the IF statement, it will work for any screen. Let me know if that makes sense. Thank you.
@@upir_upir IT WORKED!!! THANK YOU!
@@trevorflores1019 Perfect, that´s great to hear!
Awesome video. Can you explain how to make menu with encoder, but on 1.8" TFT ST7735 display. Thank you for great explanation!
Thank you! I will record another video with the encoder, and probably slightly different graphics, but at this point, I do not plan to use color LCD, as it would require different library and I need to first get familiar with it a little bit... but for the future, who knows :)
I have a question. I'm trying to use a button interface in one of my projects with the Arduino Uno. But I'm encountering the problem where some button presses do not register because of the code not reading that precise line when the button gets klicked.
You seem to have gotten this to work without even using hardware interrupts. Could you please share how you have gotten your menu buttons so responsive?
Can you maybe measure how long your loop takes? This sketch updates I believe at least 10x in a second, so it´s a big chance that you catch the button press. If that would not be the case, using interrupts would be a good idea.
@@upir_upir WOW, Thanks for the answer! Means a lot for me that you take a part of your invaluable time to answer my question.
I will take that into consideration. I will check how long it takes for my sketch to update tomorrow!
Thank you for your video. Please allow me to make a suggestion. You need to slow down your narration. You speak too fast and it is sometimes difficult to understand what you are trying to convey. Otherwise, great video. Thanks
Sorry for that, I always try to find balance between too fast and too boring. I will try to work on this more.
Can you do same kind of tutorials for esp32 with u8g2 library!
Yep, that’s also on my todo list. In the meantime, here is the u8g2 version for Arduino-
ua-cam.com/video/K5e0lFRvZ2E/v-deo.html
make an air fuel ratio sensor with a lambda wideband please
Do you have any examples? Is this something you want to add to your own car?
it would be easier to decode existing CAN bus lines with arduino
@@upir_upir AEM's X-Series Wideband UEGO Air/Fuel Ratio Sensor Controller Gauges
@@isaacfuertes is something like this what you are looking for? www.instructables.com/Boost-and-Air-Fuel-Ratio-LCD-Gauge/
Of course the second possible way is to directly read the CANBUS values and do not use a separate sensor.
@@upir_upir Something like that would be nice. It would be more interesting with the separate sensor, it is more universal.
From where did u get those keyboard like buttons
The link should be in the description of the video.
@@upir_upir no, didn't find anything
Okay,that was a really great tutorial and I appreciate it very much.But I want to know where and how to connect it to car to get dashboard and boost gauge data?I just don't get it.
Thank you for your comment. This was mainly about creating the menu, not connecting it to the car.
For GPS speed, you don´t need to connect it to the car, as you can use external GPS sensor as described here - ua-cam.com/video/dSD02o3M2sw/v-deo.html
For turbo boost pressure, you can use external sensor that acts in the similar was as a potentiomater - i.e. reporting different voltage based on the pressure - s.click.aliexpress.com/e/_DFhEWPX
You can also connect it to the car with OBD2 and read the data from there. I do plan to record a tutorial on how to do that soon.
awesomeee
Thank you, I’m glad you like it!
I am using u8g2 lib with an esp32 and it seems that it draws also the black parts, for example when I draw first the srcollbar and then the selectedIcon the scrollbar dissapear in the middle. So i have to draw first the selectedIcon and then de scrollbar. Maybe there is an option for this.
Yes, u8g2 library has two modes for drawing bitmaps, just make sure to set it to transparent and you should be fine. github.com/olikraus/u8g2/wiki/u8g2reference#setbitmapmode
@@upir_upir Oh, Thanks!
Sure, you are welcome. Good luck with your projects!
Great tutorial. Thank you. I am using the OLED with a nano ble and have checked that my IC address is correct. The problem I am having is that only the top 10% of the screen shows the display. The bottom 90% is just white and black dots. I tried a second display and have the same result. Any suggestions?
Thank you for your comment! Try using this initialization line if that helps:
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK);