Arduino OLED Menu Tutorial (for beginners - Arduino UNO, 128x64px SSD1306 OLED screen, u8g)

Поделиться
HTML-код
  • Опубликовано: 5 янв 2023
  • Do you like the video? Please consider buying me a coffee ☕, thank you! www.buymeacoffee.com/upir
    Source Files: github.com/upiir/arduino_oled...
    OLED display: s.click.aliexpress.com/e/_DF8...
    PCBWay - www.pcbway.com/setinvite.aspx...
    WOKWI - wokwi.com/projects/3531055619...
    ------------------------------------------------------------------------------
    In this tutorial, I will show you how to create a simple menu using a 128x64 SSD1306 OLED Display connected using the IIC (I2C) interface to Arduino UNO together with three push buttons. The menu is inspired by the menu from Flipper Zero - docs.flipperzero.one/basics/c...
    This tutorial is for beginners, and I try to describe every single step in an understandable way. We would be using Photopea to create graphics, image2cpp to convert images into C code arrays, and WOKWI online Arduino emulator to test our sketch before running this on the real Arduino UNO. The final project uses Arduino UNO, a prototyping shield (but any breadboard is fine), an OLED display, and 3 push buttons (and, of course, some wires).
    ------------------------------------------------------------------------------
    Links from the video:
    WOKWI start project progress bar - wokwi.com/projects/3008679867...
    128x64 SSD1306 OLED Display: s.click.aliexpress.com/e/_DCK...
    Transparent OLED display: s.click.aliexpress.com/e/_Dns...
    Arduino UNO: s.click.aliexpress.com/e/_AXDw1h
    Arduino UNO MINI: store.arduino.cc/products/uno...
    Big OLED Display: s.click.aliexpress.com/e/_ADL0T9
    Arduino breadboard prototyping shield: s.click.aliexpress.com/e/_ApbCwx
    u8g fonts (fonts available for u8g library): nodemcu-build.com/u8g-fonts.php
    u8g documentation: github.com/olikraus/u8glib/wi...
    Photopea (online Photoshop-like tool): www.photopea.com/
    image2cpp (convert images into C code): javl.github.io/image2cpp/
    Push buttons with caps - s.click.aliexpress.com/e/_DmX...
    Related videos:
    Arduino Parking Sensor - • DIY Parking Sensor wit...
    Turbo pressure gauge with Arduino and OLED display - • Turbo pressure gauge w...
    Arduino Car Cluster with OLED Display - • Arduino Car Cluster wi...
    Knob over OLED Display - • Knob over OLED Display...
    Arduino + OLED = 3D ? - • Arduino + OLED = 3D ?
    Arduino OLED Gauge - • Arduino OLED Gauge
    Smaller & Faster Arduino - • Smaller & Faster Arduino?
    ------------------------------------------------------------------------------
    PCBWay is a service for manufacturing custom PCBs. If you click the link above, you will get a coupon for $5, which is exactly the price of 10 pieces of custom PCBs. In that case, you will only pay for shipping. Do you have any experience doing this? Please let me know in the comment section!
    ------------------------------------------------------------------------------
    Hashtags:
    #OLED #arduino
    ------------------------------------------------------------------------------
    Do you have any questions? Suggestions for the next video? Please put those down in the comment section. I try to answer as many questions as I can. Thank you for watching and reading the video description, and I hope to see you next time. Good luck with your projects!
    ------------------------------------------------------------------------------

Комментарии • 358

  • @upir_upir
    @upir_upir  5 месяцев назад +8

    Do you like the video? Please consider buying me a coffee ☕, thank you! www.buymeacoffee.com/upir

    • @futuristicai268
      @futuristicai268 2 месяца назад

      i will definetely buy you a cofee when i start earning

  • @ChristianBehnke
    @ChristianBehnke Год назад +54

    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.

    • @upir_upir
      @upir_upir  Год назад +8

      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!

  • @ibendiben
    @ibendiben 5 месяцев назад +14

    Man, you went out of your way for this. You deserve a medal of honor!

    • @upir_upir
      @upir_upir  5 месяцев назад +1

      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?

    • @ibendiben
      @ibendiben 5 месяцев назад

      @@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.

  • @Shamanestr
    @Shamanestr Год назад +6

    Most useful material about OLED menu, i ever seen!
    Great work!
    TNX for doing these!

    • @upir_upir
      @upir_upir  Год назад +1

      That´s great to hear, thank you for your nice comment and good luck with your project!

  • @biiLL4bonG
    @biiLL4bonG Год назад +8

    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 👍

    • @upir_upir
      @upir_upir  Год назад +1

      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!

    • @johnhunter9877
      @johnhunter9877 Год назад +1

      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.

  • @leonardogalli6237
    @leonardogalli6237 Год назад +4

    I love your menus bro, keep going we need more of them ❤️

    • @upir_upir
      @upir_upir  Год назад

      Thank you! I really like those OLED displays, so I´m sure there will be more graphics-content in the near future..

  • @upir_upir
    @upir_upir  Год назад +10

    𝐃𝐨 𝐲𝐨𝐮 𝐥𝐢𝐤𝐞 𝐎𝐋𝐄𝐃𝐬? 𝐘𝐨𝐮 𝐰𝐢𝐥𝐥 𝐬𝐮𝐫𝐞𝐥𝐲 𝐥𝐢𝐤𝐞 𝐭𝐡𝐨𝐬𝐞 𝐯𝐢𝐝𝐞𝐨𝐬: ruclips.net/p/PLjQRaMdk7pBZ1UV3IL5ol8Qc7R9k-kwXA

  • @alexxustube
    @alexxustube 10 месяцев назад +2

    I've learned so much in this video. I'm just speechless. Thanks for your awesome work! 👍😊

    • @upir_upir
      @upir_upir  10 месяцев назад

      Happy to hear that! Thank you for your nice comment and good luck with your projects.

  • @damianwiecaw492
    @damianwiecaw492 Год назад +2

    Best tutorial i have seen... great job man!

    • @upir_upir
      @upir_upir  Год назад +1

      Wow, thanks! I really appreciate your comment.

  • @starpatrick889
    @starpatrick889 Месяц назад +1

    讲解太棒了,循序渐进,ui审美也非常在线,Like the video!

    • @upir_upir
      @upir_upir  Месяц назад

      Thank you for your nice comment, I´m glad you like it!

  • @angryalliance4958
    @angryalliance4958 Год назад +2

    Extremely informative ! , keep uploading such great contents

    • @upir_upir
      @upir_upir  Год назад

      Thank you for your nice comment, I don´t plan to stop yet :)

  • @rarenu
    @rarenu Год назад +1

    This is the best on OLED gauges, thank you for the wonderful presentation. With best regards.👌👌

    • @upir_upir
      @upir_upir  Год назад

      Thank you for your nice comments and good luck with your projects!

  • @johnhunter9877
    @johnhunter9877 Год назад +1

    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.

    • @upir_upir
      @upir_upir  Год назад

      Thank you, John! I really appreciate your nice comment and wish you luck with your own projects. Please feel free to share your creations.

  • @RamBrosWorkshop
    @RamBrosWorkshop Год назад +4

    I was just looking for this! Detailed and Easy to understand tutorial
    Thanks man

    • @upir_upir
      @upir_upir  Год назад +1

      That´s great to hear, feel free let me know if there is something else that you are looking for :)

    • @RamBrosWorkshop
      @RamBrosWorkshop Год назад +1

      @@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
      @upir_upir  Год назад +1

      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..

    • @RamBrosWorkshop
      @RamBrosWorkshop Год назад +2

      ​ @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.

    • @upir_upir
      @upir_upir  Год назад +1

      That’s strange, usually there is no problem with posting links. Could you please try it again?

  • @womacko
    @womacko Месяц назад +1

    This tutorial is very well-made! WOW thank you so much :)

    • @upir_upir
      @upir_upir  Месяц назад

      You're very welcome, I´m glad it was helpful!

  • @kshysztof9649
    @kshysztof9649 Год назад +2

    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 !

    • @upir_upir
      @upir_upir  Год назад

      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!

  • @user-jw2rm1hu1w
    @user-jw2rm1hu1w Год назад +1

    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)

    • @upir_upir
      @upir_upir  Год назад

      That´s great to hear. If the video inspires you to create you own project, then it fullfiled it´s purpose.

  • @elguapo3436
    @elguapo3436 4 месяца назад +1

    Freaking useful! thank you, subscribed for sure

    • @upir_upir
      @upir_upir  4 месяца назад

      Thanks for the sub!

  • @JeromeDemers
    @JeromeDemers Год назад +2

    Keep it up! I love your work!

    • @upir_upir
      @upir_upir  Год назад

      Thank you Jerome, I really appreciate your nice comment and support.

  • @memesedikitreceh
    @memesedikitreceh 9 месяцев назад +1

    I love this ❤️ thank you for the information, very valuable for me who is still a beginner 🙏

    • @upir_upir
      @upir_upir  9 месяцев назад

      That´s great to hear! Thank you for your nice comment and good luck with your projects.

  • @ABG_3D
    @ABG_3D Год назад +1

    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 ?

    • @upir_upir
      @upir_upir  Год назад

      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...

    • @ABG_3D
      @ABG_3D Год назад

      @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?

  • @tb303wpf1
    @tb303wpf1 22 дня назад +2

    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
      @upir_upir  21 день назад +1

      Thank you for your nice words, I would be glad even for a single coffee!

    • @tb303wpf1
      @tb303wpf1 15 дней назад

      I'm going to buy you several my friend.
      I've got my screen looking nice. Now I'm having a hard time trying to make other things happen while the current_screen is on 1 or 2.
      I'm trying to display sensor readings. Depending on what menu item is selected. But the display is going very slowly. I'm going to watch more of your videos tonight.
      Thanks again for this awesome tutorial. 🙏

  • @debarjo
    @debarjo Год назад +1

    Wow! C`est magnifique Upir!!!!

  • @yigitozen
    @yigitozen Год назад +1

    amazing tutorial, thanks for the tools introduced.

    • @upir_upir
      @upir_upir  Год назад +1

      You are second, I’m glad you like it! Thank you for your comment

  • @nyfaz
    @nyfaz Год назад +1

    Thank you very much. Always appreciate your content :)

    • @upir_upir
      @upir_upir  Год назад

      Thank you, I´m glad you like it!

  • @YourMomGay258
    @YourMomGay258 Год назад

    Parádní projekt!

  • @lmbruguera
    @lmbruguera 10 месяцев назад +1

    very good video, very interesting...
    i like you show all the process and get a better solution in the end

    • @upir_upir
      @upir_upir  10 месяцев назад

      Thank you for your comment, I´m glad you like it!

  • @WinChester_Ltd
    @WinChester_Ltd 8 месяцев назад +1

    Thanks for the video, great job 👍

    • @upir_upir
      @upir_upir  8 месяцев назад

      Thanks for watching!

  • @pipsqueak2009
    @pipsqueak2009 Год назад +1

    Really useful - thank you for sharing

    • @upir_upir
      @upir_upir  Год назад

      That´s great to hear, thank you for your comment!

  • @Barzar100
    @Barzar100 Год назад +1

    Absolutly awesome

    • @upir_upir
      @upir_upir  Год назад

      Thank you, I’m glad you like it!

  • @JCC__BMX
    @JCC__BMX Год назад +1

    Great job!!!
    Thank you very mutch

    • @upir_upir
      @upir_upir  Год назад

      Thank you, I´m glad you like it!

  • @chriscowan8470
    @chriscowan8470 11 месяцев назад +1

    excellent work :)

  • @raymondmichael4987
    @raymondmichael4987 Год назад +13

    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

    • @upir_upir
      @upir_upir  Год назад +4

      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!

    • @marcomeli9882
      @marcomeli9882 Год назад +3

      @@upir_upir +1 for rotary encoder; thank you for this fantastic tutorial, anyway!

    • @rarenu
      @rarenu Год назад +1

      @@upir_upir +1 I too need the rotary encoder option from you. With kind regards.

    • @himikotiro8487
      @himikotiro8487 8 месяцев назад +1

      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)

    • @raymondmichael4987
      @raymondmichael4987 8 месяцев назад +1

      @@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 :)

  • @giovanni4151
    @giovanni4151 11 месяцев назад +1

    Great video!

    • @upir_upir
      @upir_upir  11 месяцев назад

      Thank you, I´m glad you enjoyed it!

  • @andymouse
    @andymouse Год назад +1

    Always interesting !...cheers.

    • @upir_upir
      @upir_upir  Год назад +1

      Thank you for your continuous support! :)

  • @johnnyenglish3867
    @johnnyenglish3867 6 месяцев назад +1

    insanely informative

    • @upir_upir
      @upir_upir  6 месяцев назад

      Thank you, I´m glad you like it!

  • @bimokayoba
    @bimokayoba Год назад +2

    thanks, new subscriber!!

    • @upir_upir
      @upir_upir  Год назад +1

      Thank you, and welcome! :)

  • @ravindupramod5998
    @ravindupramod5998 Год назад +1

    Thank U very much for this video.its very informative .

    • @upir_upir
      @upir_upir  Год назад

      You are welcome, I’m glad you like it!

  • @yusufceyhan5560
    @yusufceyhan5560 3 месяца назад +1

    Thanks for video

    • @upir_upir
      @upir_upir  3 месяца назад +1

      You are welcome, I´m glad you like it!

  • @fullpower8382
    @fullpower8382 Год назад +1

    Thats real hot Stuff!!! Thx. Best Video ever for explaining all around! Niceee

    • @upir_upir
      @upir_upir  Год назад

      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.

    • @fullpower8382
      @fullpower8382 Год назад

      @@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

  • @etmax1
    @etmax1 Год назад +1

    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.

    • @upir_upir
      @upir_upir  Год назад

      I think you are right, also because the logo slightly resembles a pea stalk.. anyway, thank you for a nice comment!

  • @Meganano
    @Meganano Год назад +1

    Great video thank you👍
    ❤ Arduino

    • @upir_upir
      @upir_upir  Год назад +1

      Thank you, I´m glad you like it!

  • @jeanicezinho
    @jeanicezinho 11 месяцев назад +1

    so coool man, gratsss and thzz!

    • @upir_upir
      @upir_upir  11 месяцев назад +1

      Thank you, I’m glad you like it! Good luck with your projects

  • @ryleebrownfox
    @ryleebrownfox 5 месяцев назад +1

    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

    • @upir_upir
      @upir_upir  5 месяцев назад

      I´m glad it was still useful!

  • @CaminanteSinFinal
    @CaminanteSinFinal Год назад +1

    So much thanks!

  • @Jindraxx20
    @Jindraxx20 10 месяцев назад +2

    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 !

    • @upir_upir
      @upir_upir  10 месяцев назад

      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!

  • @upir_upir
    @upir_upir  Год назад +1

    Do you want to use this menu with U8G2 library instead? 𝐖𝐚𝐭𝐜𝐡 𝐭𝐡𝐢𝐬 𝐯𝐢𝐝𝐞𝐨 - ruclips.net/video/K5e0lFRvZ2E/видео.html

  • @VolosProjects
    @VolosProjects Год назад +1

    Great, tnx.

  • @Luka.Z.15
    @Luka.Z.15 Год назад +1

    Thx mate👍

    • @upir_upir
      @upir_upir  Год назад

      Thank you, Bojan! I´m glad you like it.

  • @m3lateef
    @m3lateef Год назад +1

    I love it.

    • @upir_upir
      @upir_upir  Год назад

      Thank you, and good luck with your projects!

  • @PCBWay
    @PCBWay Год назад +50

    First this time 🤟🤟🤟

    • @upir_upir
      @upir_upir  Год назад +9

      That´s right, thank you for your great support!

    • @andymouse
      @andymouse Год назад +3

      This guy is awesome thanks for supporting him !....cheers.

    • @PCBWay
      @PCBWay Год назад +2

      @@upir_upir There are more we should/could do together in the new 2023!🥳🥳

    • @PCBWay
      @PCBWay Год назад +2

      ​@@andymouse Couldn't agree more! @upir is an amazing partner to work with😀

    • @upir_upir
      @upir_upir  Год назад +1

      @@PCBWay Sounds like a plan, let´s do it! :)

  • @Gooloso98
    @Gooloso98 Год назад +1

    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.

    • @upir_upir
      @upir_upir  Год назад +1

      Good point! I also try to avoid branching and this is a good idea. Thank you

  • @916senna
    @916senna Год назад +2

    Nice video, would be interesting to see the same thing done in micropython so we could see the differences between C and python 👍

    • @upir_upir
      @upir_upir  Год назад +1

      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.

  • @SAMETELMACI
    @SAMETELMACI Год назад +1

    awesomeee

    • @upir_upir
      @upir_upir  Год назад

      Thank you, I’m glad you like it!

  • @donutoplack2436
    @donutoplack2436 3 месяца назад +1

    I knew nothing about coding getting into this video. But I somewhat sort of maybe kind of understand now

    • @upir_upir
      @upir_upir  3 месяца назад

      That´s great to hear, good luck with your learning and I hope my projects will help with that!

  • @leocapp7520
    @leocapp7520 11 месяцев назад +1

    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

    • @upir_upir
      @upir_upir  11 месяцев назад

      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!

  • @sammessina3849
    @sammessina3849 2 месяца назад +1

    The oled looks really crisp on camera! Did you do anything in code to stop the flickering or was it just camera settings?

    • @upir_upir
      @upir_upir  2 месяца назад

      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.

  • @michalchoma6112
    @michalchoma6112 Год назад +1

    super!

  • @pixelfrenzy
    @pixelfrenzy Год назад +1

    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_upir
      @upir_upir  Год назад +1

      Thank you, Chris! Here is a link on AliExpress - s.click.aliexpress.com/e/_DmXS8B9

  • @talkntrash
    @talkntrash Год назад +1

    Nice

  • @rogergoetty3701
    @rogergoetty3701 Год назад +1

    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.

    • @upir_upir
      @upir_upir  Год назад

      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!

  • @ADMINM-ld7vu
    @ADMINM-ld7vu Год назад +1

    that GUI reminds of the base model Mercedes Sprinter’s gauge screen GUI

  • @alberto1dh
    @alberto1dh 6 месяцев назад +1

    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?

    • @upir_upir
      @upir_upir  6 месяцев назад +1

      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.

    • @alberto1dh
      @alberto1dh 6 месяцев назад

      @@upir_upir looking forward to learn about obd and make it functional for me

  • @jinekaleko8706
    @jinekaleko8706 Год назад +1

    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

    • @upir_upir
      @upir_upir  Год назад

      Thank you! Yep, I might record another video if there will be enough interest..

  • @ChronoGXay
    @ChronoGXay 2 месяца назад +1

    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)’ ?

    • @upir_upir
      @upir_upir  2 месяца назад

      Thank you for your comment. I agree that your code is easier, but might be slightly too advanced for novice users.

  • @DjordjeKostic
    @DjordjeKostic Год назад +1

    Awesome video. Can you explain how to make menu with encoder, but on 1.8" TFT ST7735 display. Thank you for great explanation!

    • @upir_upir
      @upir_upir  Год назад +1

      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 :)

  • @erosionreactions
    @erosionreactions 7 месяцев назад +1

    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?

    • @upir_upir
      @upir_upir  7 месяцев назад

      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.

  • @bob-ny6kn
    @bob-ny6kn Год назад +3

    IIC PROTIP:
    A5 has 5 letters, as does CLOCK
    A4 has 4 letters, as does DATA

    • @upir_upir
      @upir_upir  Год назад

      This is very helpful, thank you!

    • @Meganano
      @Meganano Год назад

      thats a great way to remember👍👌

    • @mitsos306ify
      @mitsos306ify Год назад +1

      Hi, can you please explain, A4, A5 on one side and SDA,CLK on the other side side of the board are bridged?

    • @upir_upir
      @upir_upir  Год назад

      Yes, those are the same pins.

  • @josueberumen2883
    @josueberumen2883 3 месяца назад +1

    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.

    • @upir_upir
      @upir_upir  2 месяца назад

      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?

  • @alejandroperez5368
    @alejandroperez5368 Год назад +3

    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!

    • @upir_upir
      @upir_upir  Год назад +1

      Good idea! I do plan to record a second part soon...

  • @DDryTaste
    @DDryTaste Год назад +1

    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 🤔

    • @upir_upir
      @upir_upir  Год назад +1

      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

    • @DDryTaste
      @DDryTaste Год назад +1

      @@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.

    • @upir_upir
      @upir_upir  Год назад +1

      That’s great to hear, thank you for your nice comment and good luck with your project!

  • @iotan09
    @iotan09 Год назад +1

    Thanks sir

    • @upir_upir
      @upir_upir  Год назад

      You are welcome! Good luck with your project

  • @maddida
    @maddida Год назад +1

    Excellent work …. Am curious tho could you make a boost controller from this project to control a MAC valve ?

    • @upir_upir
      @upir_upir  Год назад

      Thank you! I think it should be possible, what do you plan to use it for?

    • @maddida
      @maddida Год назад

      @@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

  • @lmhfd2573
    @lmhfd2573 Год назад +2

    Wau sangat menginspirasi❤
    Tambahkan subtitle indonesia 😂

    • @upir_upir
      @upir_upir  Год назад

      Thank you, however, the subtitles were auto generated, so I hope it makes at least a little bit of sense…

  • @shreechandansamal5206
    @shreechandansamal5206 Год назад +1

    my godddddddddddddddddd.......................,,,,,,,,,,, really nice video..

    • @upir_upir
      @upir_upir  Год назад

      Thank you, I´m glad you like it!

  • @jbelmont72
    @jbelmont72 Год назад +1

    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?

    • @upir_upir
      @upir_upir  Год назад

      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);

  • @changpuak
    @changpuak Год назад +1

    The 4th letter in the alphabet is a D like DATA. Therefore A4 = SDA.

    • @upir_upir
      @upir_upir  Год назад

      Someone else mentioned CLOCK = 5 letters = A5, DATA = 4 letters = A4.

  • @rkd898
    @rkd898 Год назад +1

    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.

    • @upir_upir
      @upir_upir  Год назад

      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 - ruclips.net/video/dSD02o3M2sw/видео.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.

  • @joshuastables6726
    @joshuastables6726 3 месяца назад +1

    How would you save multiple animations to a single board? Also is it possible for these types of animations to be functional or are they more so just for entertainment purposes

    • @upir_upir
      @upir_upir  3 месяца назад

      Yes, you can have multiple animations, and yes, they can be fully functional. You are just limited by the available memory.

  • @igort5418
    @igort5418 Год назад +1

    How are you handeling the buttons ? are you using external interrupts, and how are you dealing with the bounces ?

    • @RocketMan66666
      @RocketMan66666 Год назад +1

      You may want to view to the end

    • @upir_upir
      @upir_upir  Год назад +1

      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.

  • @Proto_Turk
    @Proto_Turk 5 месяцев назад +1

    That load of info was fast to acquire. Why did you divide128/8? Do you have a video teaching how to do submenus?

    • @upir_upir
      @upir_upir  5 месяцев назад

      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...

  • @DuroLabs85
    @DuroLabs85 Месяц назад +3

    Is it possible to use a external EEPROM to store images so it doesn't take the space in the main sketch ??

    • @upir_upir
      @upir_upir  Месяц назад +2

      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.

  • @kleurendoof7257
    @kleurendoof7257 5 месяцев назад +1

    Could be show me an example or explain how i could make a menu like this but then with submenus and functions

    • @upir_upir
      @upir_upir  5 месяцев назад +1

      I´m working on the video with the menu project that also has submenus, hope that will answer all of your questions.

  • @methanesulfonic
    @methanesulfonic Год назад +1

    Is it possible to assign different loop function for each menu, for example one menu called gas sensor would display a value from gas sensor like mq-xxx and update it in real time and the second menu would called "temperature" would display a value from temperature sensor like dht11?

    • @upir_upir
      @upir_upir  Год назад

      Yes, that should be possible for sure. There might be a limit to how many screens you can fit to UNO with the limited memory.

  • @Adrian-yz7oe
    @Adrian-yz7oe 8 месяцев назад +1

    Wow I'm very impressed! You gained one subscriber thats for sure! Anyone knows how to adapt the code so that inside each menu you can change values up and down and enter with the same keys?

    • @upir_upir
      @upir_upir  8 месяцев назад

      Awesome, thanks for the sub! Do you have a link to the menu that you are trying to create? I do plan to record more menu-related tutorials soon.

    • @Adrian-yz7oe
      @Adrian-yz7oe 8 месяцев назад +1

      @@upir_upir I tried so hard and got so far.. but in the end.. I used async web server to control and display all the data I wanted to, and left the OLED display just for displaying data, this project is already getting a little big for me and a scrolling menu that you use with an IR remote was a cool but unecessary feature.
      Still with help of chatGPT I got it to display submenus finally, but had so many problems inputing data and retrieving it, also I tried it to remember the last selected value upon entering again in said submenu... it all went south fast :D
      Still I watch at least one of your videos daily, I llove your style and the topics you bring, keep it up!

    • @upir_upir
      @upir_upir  8 месяцев назад +1

      @Adrian-yz7oe I’m sure it will get better with time, I wish you all the best with your projects!

  • @AdamHaq
    @AdamHaq 6 месяцев назад +1

    Hello, so I have a question about the U8g library in regards of using an "Adafruit ESP32-S2 Reverse TFT Feather". The initiation for the pinouts is weird because unless I am missing a piece the pinouts listed include only Power, CS, DC, Reset, and Backlight pins for the display. Is there a way to still use the u8G library initiation for this? I've initiated it before with Adafruit GFX library, but that one only requires the pins CS, DC, and Reset. I have the backlight turned on, the TFT uses an arduino ST7789 Chipset

    • @upir_upir
      @upir_upir  6 месяцев назад

      In many cases, when it uses hardware I2c or hardware spi connection, those pins are not listed in the initialization, since you cannot change those pins.

    • @AdamHaq
      @AdamHaq 6 месяцев назад

      @@upir_upir So what should I do?

  • @byzoliaz
    @byzoliaz 8 месяцев назад

    thx

    • @upir_upir
      @upir_upir  8 месяцев назад

      You are welcome!

  • @SpGIIFaCeZz
    @SpGIIFaCeZz 2 месяца назад +1

    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?

    • @upir_upir
      @upir_upir  2 месяца назад +1

      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.

    • @SpGIIFaCeZz
      @SpGIIFaCeZz 2 месяца назад

      @@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!

  • @kennethvargas5953
    @kennethvargas5953 7 месяцев назад +1

    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

    • @upir_upir
      @upir_upir  7 месяцев назад +1

      Sorry for that, I always try to find balance between too fast and too boring. I will try to work on this more.

  • @AlexMartin-vi4eq
    @AlexMartin-vi4eq Год назад +2

    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.

    • @upir_upir
      @upir_upir  Год назад +2

      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

    • @AlexMartin-vi4eq
      @AlexMartin-vi4eq Год назад +1

      @@upir_upir Oh, Thanks!

    • @upir_upir
      @upir_upir  Год назад +2

      Sure, you are welcome. Good luck with your projects!

  • @xXvisualcortexXx
    @xXvisualcortexXx 4 месяца назад +2

    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?

    • @upir_upir
      @upir_upir  4 месяца назад

      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.

    • @xXvisualcortexXx
      @xXvisualcortexXx 4 месяца назад +1

      @@upir_upir no! Thank you for the tutorial

  • @trevorflores1019
    @trevorflores1019 Год назад +1

    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?

    • @upir_upir
      @upir_upir  Год назад

      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.
      ruclips.net/video/HVHVkKt-ldc/видео.html

    • @trevorflores1019
      @trevorflores1019 Год назад +1

      @@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?

    • @upir_upir
      @upir_upir  Год назад

      @@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.

    • @trevorflores1019
      @trevorflores1019 Год назад +1

      @@upir_upir IT WORKED!!! THANK YOU!

    • @upir_upir
      @upir_upir  Год назад

      @@trevorflores1019 Perfect, that´s great to hear!

  • @flickmew99
    @flickmew99 Год назад +1

    do you know how to add turn off/sleep the screen to save supply consumption (for battery supply based)? I'm still wondering how to do this, either sleep the main controller/MCU, or the OLED module itself.

    • @upir_upir
      @upir_upir  Год назад +1

      I have found for example this article about the power consumption of OLED displays - bitbanksoftware.blogspot.com/2019/06/how-much-current-do-oled-displays-use.html
      I think that based on those numbers, you don´t need to care that much to "sleep" the screen. Just don´t draw any pixels and the drawn current will be very small..

    • @flickmew99
      @flickmew99 Год назад

      @@upir_upir thank you so much for the info. I have found myself about how to switch the screen ON/OFF. The reason I do that is because I want to make a handwatch that use battery, that's why I need switch screen OFF let's say whenever I don't see the time

  • @elijahshepley7434
    @elijahshepley7434 Год назад +1

    Very cool
    But how do you connect to car obd2 port?

    • @upir_upir
      @upir_upir  Год назад +1

      Thank you. Probably the easiest way is to use some OBD2 Arduino Shield. I do plan to record a tutorial about how to do that.

  • @alejandroperez5368
    @alejandroperez5368 Год назад +1

    What screen diagonal is this?
    It's definitely larger than the linked 0.96" version

    • @upir_upir
      @upir_upir  Год назад

      Yes, this one is the 1.54" version, you can get it from here - s.click.aliexpress.com/e/_DlS3EOv
      And if this is still too small, you can get 2.42" version - s.click.aliexpress.com/e/_DnscNsD

  • @chellavee2248
    @chellavee2248 Год назад +1

    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.

    • @chellavee2248
      @chellavee2248 Год назад +1

      Thinking of using EPS32

    • @upir_upir
      @upir_upir  Год назад +1

      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!

  • @adityashigam3948
    @adityashigam3948 4 месяца назад +1

    Can we store multiple specific task in ( code to read sensor data and etc .) In menu items after selection it.

    • @upir_upir
      @upir_upir  4 месяца назад

      Could you be more specific?

    • @adityashigam3948
      @adityashigam3948 4 месяца назад

      I'm working on a college project where where we can measure sensor data (length, alcohol percentage, etc.) And save it with time and using RTC module in single device using arduino.....
      I want want to know how you are going into selected options doing the task and generating QR code

  • @dandzsemz9874
    @dandzsemz9874 Год назад +1

    Hello! Since the resolution of this OLED screen is the same, can I use the same code for the 0.96 inch OLED?

    • @upir_upir
      @upir_upir  Год назад

      That’s correct. The size of the OLED does not matter as long as it’s the same resolution, chip and connection.

  • @supunchathuranga5596
    @supunchathuranga5596 Год назад +1

    Can you do same kind of tutorials for esp32 with u8g2 library!

    • @upir_upir
      @upir_upir  Год назад

      Yep, that’s also on my todo list. In the meantime, here is the u8g2 version for Arduino-
      ruclips.net/video/K5e0lFRvZ2E/видео.html

  • @yusufceyhan5560
    @yusufceyhan5560 3 месяца назад +1

    When I select a title from the menu, does the new screen that appears need to be a photo? I want to make a menu for a brick break game. Can the oled go back to ordinary operation after selecting the "Start" option from the menu? Or should I make the game through photos?

    • @upir_upir
      @upir_upir  3 месяца назад

      For this demo the answer is yes, the "subscreen" is a fullscreen static image - just because I was lazy to make all the subscreens dynamic. You can adjust the code to use this menu to jump to whathere (dynamic) screen you want.

    • @yusufceyhan5560
      @yusufceyhan5560 3 месяца назад

      Actually, I haven't learned how to make the game yet.

    • @yusufceyhan5560
      @yusufceyhan5560 3 месяца назад

      @@upir_upir Thank you very much for your response. Do you have any suggestions for the brick break game? I'm kind of new to this.