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

Поделиться
HTML-код
  • Опубликовано: 20 янв 2025

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

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

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

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

      i will definetely buy you a cofee when i start earning

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

      Sorry, I was really interested but you spoke so fast, didn’t finish

  • @ChristianBehnke
    @ChristianBehnke 2 года назад +75

    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  2 года назад +10

      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 Год назад +33

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

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

      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 Год назад

      @@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 2 года назад +10

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

    • @upir_upir
      @upir_upir  2 года назад +1

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

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

    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  Год назад

      I´m glad it was still useful!

  • @starpatrick889
    @starpatrick889 8 месяцев назад +3

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

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

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

  • @biiLL4bonG
    @biiLL4bonG 2 года назад +9

    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  2 года назад +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 2 года назад +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.

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

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

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

      Wow, thanks! I really appreciate your comment.

  • @tb303wpf1
    @tb303wpf1 7 месяцев назад +3

    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  7 месяцев назад +1

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

  • @RamBrosWorkshop
    @RamBrosWorkshop 2 года назад +5

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

    • @upir_upir
      @upir_upir  2 года назад +1

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

    • @RamBrosWorkshop
      @RamBrosWorkshop 2 года назад +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  2 года назад +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 года назад +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  2 года назад +1

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

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

    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 Год назад +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 Год назад +2

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

  • @baron8611
    @baron8611 3 месяца назад +2

    A very superb video, it helped me through the dark sad times in my life when no one was there for me.

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

      I´m glad that a simple menu has such a power!

  • @leonardogalli6237
    @leonardogalli6237 2 года назад +4

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

    • @upir_upir
      @upir_upir  2 года назад

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

  • @ОлексійГончаров
    @ОлексійГончаров Год назад +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.

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

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

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

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

  • @kshysztof9649
    @kshysztof9649 2 года назад +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  2 года назад

      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!

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

    Extremely informative ! , keep uploading such great contents

    • @upir_upir
      @upir_upir  2 года назад

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

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

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

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

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

  • @aripjamaludinrumi
    @aripjamaludinrumi 4 дня назад

    woow wooow woowwww This is the best tutorial video I have ever watched

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

    Thanks for sharing, the video is really detailed and easy to understand. I will learn your way to develop IOT products!

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

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

  • @johnhunter9877
    @johnhunter9877 2 года назад +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  2 года назад

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

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

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

    Freaking useful! thank you, subscribed for sure

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

      Thanks for the sub!

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

    Keep it up! I love your work!

    • @upir_upir
      @upir_upir  2 года назад

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

  • @EmirAliYldrm-lo2tp
    @EmirAliYldrm-lo2tp 3 месяца назад +1

    Thank you! I learned a lot with this video.

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

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

  • @debarjo
    @debarjo 2 года назад +1

    Wow! C`est magnifique Upir!!!!

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

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

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

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

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

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

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

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

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

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

      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!

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

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

  • @DuroLabs85
    @DuroLabs85 8 месяцев назад +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  8 месяцев назад +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.

  • @SpGIIFaCeZz
    @SpGIIFaCeZz 9 месяцев назад +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  9 месяцев назад +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 8 месяцев назад

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

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

  • @nyfaz
    @nyfaz 2 года назад +1

    Thank you very much. Always appreciate your content :)

    • @upir_upir
      @upir_upir  2 года назад

      Thank you, I´m glad you like it!

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

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

    excellent work :)

  • @TrevorFlores123
    @TrevorFlores123 18 дней назад +1

    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?

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

      Thank you for your comment. Perhaps watching my other OLED-related tutorials will help? I have a lot of those on my channel.

  • @nkronert
    @nkronert Год назад +19

    Don't you just hate it when someone draws a 16x16 pixel black and white image and it looks perfect in one go? 😂

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

      I hate it as well!! Thankfully, I can cut out all the unsuccessful tries and only include the one that looks good :)

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

    This is great - can you show a version with a rotary encoder (with push button) instead of separate buttons?

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

      Thank you and sure, I will try rotary encoder for some of my future projects.

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

    mükemmel bir anlatım olmuş. teşekkür ederim

    • @upir_upir
      @upir_upir  29 дней назад

      Thank you, I´m glad you like it!

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

    Thanks for the video, great job 👍

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

    insanely informative

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

      Thank you, I´m glad you like it!

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

    thanks, new subscriber!!

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

      Thank you, and welcome! :)

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

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

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

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

  • @MrBenG3
    @MrBenG3 2 года назад +1

    I'm having trouble, I want to add an oscilloscope script into the menu, but i can't get my head around it pointing towards screenshot and not pointing towards the oscillator code

    • @MrBenG3
      @MrBenG3 2 года назад +1

      Even combining your other video codes with this code is rough!!! Im trying to add it into the else if's down the bottom but have no idea what to use, like a goto? There is soo many errors lol

    • @upir_upir
      @upir_upir  2 года назад

      Jumping to other pages are lines 1412 and 1415.
      On line 1412, comment the current code and you can add something like:
      if (item_selected == 0) {show some other content}
      else if (item_selected == XXX) {show some other content}
      .
      .
      .
      Hope it makes sense!

    • @MrBenG3
      @MrBenG3 2 года назад

      @@upir_upir thank you, it does somewhat but the loop keeps running after my selection has been made unfortunately

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

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

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

    I'm trying to use the Pixel Operator font, but no matter what style I set it to (None, Sharp, Crisp, etc) it remains some sort of blurry. How do I fix this?

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

      Do you use real Photoshop or Photopea? I would check that the position is on internet value, and if the problem persists, apply the threshold effect.

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

      @@upir_upir Photopea

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

      Yep, Photopea sometime has a hard time rendering pixel fonts properly. Again, I would suggest using Threshold effect on top of everything.

  • @masiyundanfauzana
    @masiyundanfauzana Год назад +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…

  • @Barzar100
    @Barzar100 2 года назад +1

    Absolutly awesome

    • @upir_upir
      @upir_upir  2 года назад

      Thank you, I’m glad you like it!

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

      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 Год назад

      @@upir_upir So what should I do?

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

    Great video!

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

      Thank you, I´m glad you enjoyed it!

  • @chitraksh.7
    @chitraksh.7 8 месяцев назад +1

    how will you link this menu to app for example i have a option called game in the menu and i want it so that when the game is selected then the game should open. Someone help me

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

      Right now, clicking the menu item jumps to the "page" (i.e., code) that shows a fullscreen image. You can replace the code and based on the selected item, do something different. Does that make sense?

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

    How much memory does this consume? I want to make a menu and have two small games imbedded in the code. I have a feeling this will take up too much memory.🤔

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

      I guess you should be to fit it. This menu takes entire memory on UNO, but only because I have many fullscreen screenshots. Without them, the memory consumption is relatively small.

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

      @@upir_upir thanks! I’ll see what I can do. 🤔

  • @yusufceyhan5560
    @yusufceyhan5560 9 месяцев назад +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  9 месяцев назад

      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 9 месяцев назад

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

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

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

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

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

    so coool man, gratsss and thzz!

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

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

  • @adityashigam3948
    @adityashigam3948 11 месяцев назад +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  11 месяцев назад

      Could you be more specific?

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

      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

  • @Proto_Turk
    @Proto_Turk 11 месяцев назад +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  11 месяцев назад

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

  • @ABG_3D
    @ABG_3D 2 года назад +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?

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

    Great job!!!
    Thank you very mutch

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

      Thank you, I´m glad you like it!

  • @andymouse
    @andymouse 2 года назад +1

    Always interesting !...cheers.

    • @upir_upir
      @upir_upir  2 года назад +1

      Thank you for your continuous support! :)

  • @JuliaNedelcheva-b8w
    @JuliaNedelcheva-b8w Месяц назад +1

    I made the same menu as yours but I use a joystick stick instead of buttons and it works but if I leave my OLED display for around 5 minutes and it freezes and I need to restart the whole board. Any tips?

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

      Try putting pull-up resistors on the data lines, make the wires shorter, and check if the display uses this exact chip or perhaps a different one

    • @JuliaNedelcheva-b8w
      @JuliaNedelcheva-b8w Месяц назад

      ​@@upir_upir, thanks for the tips! But in examples of Adafruit SSD1306 it hasn't got this problem and I use the same cables and ports. Is there anything in common about falling stars in the Adafruit library and temporary static images in U8G library?

  • @josueberumen2883
    @josueberumen2883 9 месяцев назад +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  9 месяцев назад

      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?

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

    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.

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

      That would be cool, but unfortunately, it is currently outside the scope of my knowledge.

  • @Meganano
    @Meganano 2 года назад +1

    Great video thank you👍
    ❤ Arduino

    • @upir_upir
      @upir_upir  2 года назад +1

      Thank you, I´m glad you like it!

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

  • @pipsqueak2009
    @pipsqueak2009 2 года назад +1

    Really useful - thank you for sharing

    • @upir_upir
      @upir_upir  2 года назад

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

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

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

      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.

  • @VolosProjects
    @VolosProjects 2 года назад +1

    Great, tnx.

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

    I see the OLED is connected to 5 Volt !
    I heard that OLED must be connected to 3,3 Volt.
    Are there different OLEDS with different voltage ?
    I have mine permanently connected to 5 V and fear damage.
    ???

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

      It depends on the use OLED module, some are for 3.3V, some are for 5V and some are for both. Unfortunately, many times it’s not listed, especially for those cheap ones.

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

      @@upir_upir Thank you very much for the information !
      Unfortunately my OLED ( it looks like yours ) has no labeling exept GND, VCC, SCL, SDA, nothing else, even no part Number or Manufactor.
      No info about the voltage.

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

    Hi, how would I make it so the options light up an LED?

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

      Sure, just add the code to set any digital pin LOW or HIGH..
      pinMode(pin_number, OUTPUT);
      digitalWrite(pin_number, HIGH);

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

      @@upir_upir thanks!

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

    the u8glib freezes my display after a few seconds of working. Can you help me, cuz I don't want to use u8g2lib?

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

      So it´s working with the u8g2 and not working with u8g?

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

      @@upir_upiryes, i tried different versions but still

  • @Kulderzipke123
    @Kulderzipke123 11 месяцев назад +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  11 месяцев назад

      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.

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

      @@upir_upir no! Thank you for the tutorial

  • @shreechandansamal5206
    @shreechandansamal5206 2 года назад +1

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

    • @upir_upir
      @upir_upir  2 года назад

      Thank you, I´m glad you like it!

  • @ChronoGXay
    @ChronoGXay 9 месяцев назад +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  9 месяцев назад +1

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

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

      @@upir_upirGood point. 😅

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

    how can i set it up on the screen , 1.3 inch oled SH1106 , thanks a lot

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

      I have another video with 128x128 SH1107 display, perhaps that could be a good start? The physical size (1.3inch in your case) it not important, but the connection (IIC / SPI) and pixel resolution is. If you open the u8g2 documentation, it lists all the supported displays and corresponding initializations.

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

      @@upir_upir i see 1.3 inch oled screen. i2c . driver SH1106 . as declared by the manufacturer. it has no functionality , scrolling and , generating code . for objects, motion,

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

      Could you try the sketch from the other video to see if that one works? Is the “Arduino clock” one.

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

      @@upir_upir ok thanks very much !

  • @igort5418
    @igort5418 2 года назад +1

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

    • @RocketMan66666
      @RocketMan66666 2 года назад +1

      You may want to view to the end

    • @upir_upir
      @upir_upir  2 года назад +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.

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

  • @zwtsch
    @zwtsch 25 дней назад +1

    Instead of buttons, can we integrate them into a rotary encoder?

    • @upir_upir
      @upir_upir  25 дней назад

      Yes, that might be a good idea. I might try that in the future.

  • @sammessina3849
    @sammessina3849 9 месяцев назад +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  9 месяцев назад

      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.

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

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

    • @upir_upir
      @upir_upir  2 года назад

      This is very helpful, thank you!

    • @Meganano
      @Meganano 2 года назад

      thats a great way to remember👍👌

    • @mitsos_306
      @mitsos_306 Год назад +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.

  • @joshuastables6726
    @joshuastables6726 10 месяцев назад +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  10 месяцев назад

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

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

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

    Hey can you make tutorial for TFT full color displays? especially for ili9341

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

    Is there a tutorial for an AFR Gauge?

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

      Do you have a dedicated sensor connected to Arduino, or are you getting those values from OBDII port?

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

      @@upir_upir I basically want an AFR Reading from a Wideband O2 Lambda Sensor Bosch LSU 4.2 to be specific

  • @maddida
    @maddida 2 года назад +1

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

    • @upir_upir
      @upir_upir  2 года назад

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

    • @maddida
      @maddida 2 года назад

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

  • @isaacfuertes
    @isaacfuertes 2 года назад +1

    make an air fuel ratio sensor with a lambda wideband please

    • @upir_upir
      @upir_upir  2 года назад

      Do you have any examples? Is this something you want to add to your own car?

    • @kshysztof9649
      @kshysztof9649 2 года назад

      it would be easier to decode existing CAN bus lines with arduino

    • @isaacfuertes
      @isaacfuertes 2 года назад +1

      @@upir_upir AEM's X-Series Wideband UEGO Air/Fuel Ratio Sensor Controller Gauges

    • @upir_upir
      @upir_upir  2 года назад

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

    • @isaacfuertes
      @isaacfuertes 2 года назад

      @@upir_upir Something like that would be nice. It would be more interesting with the separate sensor, it is more universal.

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

    why not using an external eeprom and store all the data there?

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

      That´s surely possible, there are many different ways how to improve this project. You can also use SD card to store more images, or - I think the best solution is to simply use a different board with more memory. Arduino Mega has 256kB (instead of 32kB for Uno), ESP32 and other boards have even more memory.

  • @ravindupramod5998
    @ravindupramod5998 2 года назад +1

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

    • @upir_upir
      @upir_upir  2 года назад

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

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

    From where did u get those keyboard like buttons

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

      The link should be in the description of the video.

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

      @@upir_upir no, didn't find anything

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

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

    I used oled 64 *48 can you worked these program?

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

      Yes, you can use it as well, but you need to adjust the graphics accordingly since the resolution is smaller.

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

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

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

    Hi which library is best for showing some variables fom different pages without flickering display (its happening when clear display command is used)

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

      I don´t see any flickering with the u8g2 or u8g libraries. It´s most likely not a problem with clearing the displays but with a slow update of the buffer/displays. Perhaps the Arduino is too slow, or you are trying to do too many calculations/drawings. Try simplifying your code to see if that helps, or perhaps use a faster Arduino, like the UNO R4?

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

      @@upir_upir adafruit ssd1306 library working without flickering.im using Arduino nano.its memory getting full. so i change to small size library but the problem is flickering. now im looking for esp 32 s2 mini. thanks for reply.

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

      @pkp8559 switching to ESP32 should solve the issue. Good luck with your project!

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

    is it possible to get an animator like wokwi for a 128 by 128 oled display?

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

      You can open a gif file in Photopea and export sequence of images and use image2cpp to generate C file for that animation - slightly more clicks compared to using the animator, but still should not be very complicated.

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

    I have question for you. Can I operate some Devices using Arduino Uno and application and canBus shield ? That is, can I connect Arduino with Canbus Shield and Oled lcd?

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

      Yes, that should be possible. There are many canbus shields for Arduino UNO, it´s just a question how hard it would be to also connect the OLED display - i.e. how easy would be to access those pins.

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

      @@upir_upir canbus shield is uno comfortable and is connected to all pins from the top. In this case, will the canbus shield work correctly and stably on oled lcd while using all pins ? Or can’t we know without trying this ?