SSD1306 OLED and STM32 || 128x64 || SW4STM || CubeMX

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 134

  • @travishaycock723
    @travishaycock723 5 років тому +2

    Would be awesome to see you explore a camera periph... QV7670 is very popular among DIY - thank you for this video though it's great and got me on the right track!

    • @ControllersTech
      @ControllersTech  5 років тому

      Yeah sounds great. I'll order one and see what can be done with it.

    • @travishaycock723
      @travishaycock723 5 років тому

      @@ControllersTech Awesome, thank you. Looking forward to it!

    • @travishaycock723
      @travishaycock723 5 років тому

      @@ControllersTech Also, is there an alternative to pins b7, b6 when hooking up this interface I need them for a SDA and SCL? I need those pins for another sensor and am trying to work around this.

    • @ControllersTech
      @ControllersTech  5 років тому +1

      Yes there is. After selecting the I2C in the CubeMx, Keep pressing ctrl key and select that pin. CubeMx will show you the alternative for that. Just drag and drop the selection to the new pin.

  • @曲晉逸
    @曲晉逸 5 років тому +3

    Awasome tutorial!
    Thanks! Learning a lot!

  • @mfgkwmfgkw
    @mfgkwmfgkw 3 роки тому

    Thanks!
    With minor changes it runs fine on Nucleo-L432KC.

  • @tupoy_ytub_uberi_psevdonim
    @tupoy_ytub_uberi_psevdonim 2 роки тому

    Big thanks! All works. It's works on STMF4 series, just need modify 2 defines for HALF4 lib. I will use this lib in my projects with OLED displays.

    • @switcher3545
      @switcher3545 2 роки тому

      I have stn32f429i also, can I ask which particular defines you changed for it to work?

    • @tupoy_ytub_uberi_psevdonim
      @tupoy_ytub_uberi_psevdonim 2 роки тому

      @@switcher3545 In 2 files fonts.h and main.h find the string #include "stm32f1xx_hal.h" and replace it on #include "stm32f4xx_hal.h". Don't copy HAL files from downloaded project, copy only lib files.

    • @switcher3545
      @switcher3545 Рік тому

      @@tupoy_ytub_uberi_psevdonim do you know the i2c address of your oled? maybe the problem with mine is the address :(

    • @tupoy_ytub_uberi_psevdonim
      @tupoy_ytub_uberi_psevdonim Рік тому

      @@switcher3545 my oled addr is 0x78 (also can be 0x79, 0x3C)

    • @tupoy_ytub_uberi_psevdonim
      @tupoy_ytub_uberi_psevdonim Рік тому

      @@switcher3545 I can give fragment of code to check connection on I2C channel
      /* USER CODE BEGIN 2 */ place the code after this point
      if(HAL_I2C_IsDeviceReady(&hi2c1, OLED1.getCAddress(), 1, 10) == HAL_OK) //if ok led just ON
      {
      HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
      }
      else //if No correct addr led BLINK
      {
      while (1){
      HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); //my external led on this pin (replace it for y connection)
      HAL_Delay(500);}
      }

  • @mohdtanveer9552
    @mohdtanveer9552 5 років тому +2

    Great tutorial!!
    Please make a video on how to interface SSD1963 (480x864) with STM32F207 or STM32F407.
    Thanks Again!!!

  • @山路不换肩
    @山路不换肩 Рік тому

    It helps a lot. thanks very much.

  • @shahzaibshamim6524
    @shahzaibshamim6524 2 роки тому +4

    Will this library work with 128x32 SSD1306 OLED?

  • @elmirakassymova380
    @elmirakassymova380 2 роки тому

    THANKS A LOT, you are the best

  • @dioadadosite4516
    @dioadadosite4516 Рік тому

    Excelente Trabajo, aunque mi ssd1306, no muestra la imagen como se aprecia en el tuyo, a no ser que el mío se deba ajustar, pero es el TZT-SSD1306. Sabrías por qué?... lo hice con un stm32f4

  • @محمدمهدیبیات-ب8ن
    @محمدمهدیبیات-ب8ن Місяць тому

    Thanks for this lesson🫡

  • @MrGucluoglu
    @MrGucluoglu 4 місяці тому

    what about parallel data input GLCDs ?

  • @nefton001
    @nefton001 Рік тому

    Thank you! it is amazing! working

  • @sourabhkumawat4863
    @sourabhkumawat4863 Рік тому

    What we will need to do in order to run it on a larger display using some sort of VGA connection

  • @sureshp632
    @sureshp632 5 років тому +1

    thank u very much great tutorial very nice working perfectly thanks a lot!!!!!!!!!!!!!!

  • @sureshp632
    @sureshp632 5 років тому

    thanks a lot and one more how to sd card interfacing using SDIO mode and SPI mode using stm32f4

  • @elmirakassymova380
    @elmirakassymova380 2 роки тому

    Please, do you know how to add font? I need very big font. I have found font generators only for arduino libraries. they don't work with this library

  • @KSITREVS
    @KSITREVS 3 роки тому

    Hi, I had this working on an BluePill, but after swapping to an STM32 Nucleo board im not getting anything to work. I changed the #include "stm32f1xx_hal.h" to #include "stm32f3xx_hal.h" n the 1306.h file to get it to compile. Is there any reason why t isnt working? Thank you :)

  • @radoslavpantic9497
    @radoslavpantic9497 2 роки тому

    Hi, Im using Monochrome 0.96" 128x64 OLED from Adafruit, run the same code but it just doesn't work. Any suggestions? I'm using NUCLEO f411re development board

  • @hamedelahi2249
    @hamedelahi2249 3 роки тому

    That's great. Thanks.

  • @javidtahery3190
    @javidtahery3190 4 роки тому

    thank you. that was so useful

  • @artemryapolov1476
    @artemryapolov1476 4 роки тому

    Thank you for the video

  • @Basicguy1798
    @Basicguy1798 Рік тому

    I couldn't find the previous video you talk about i.e. interfacing with ssd1306
    could you link it?

    • @ControllersTech
      @ControllersTech  Рік тому +1

      There is no previous video. It was deleted. This video covers ssd1306.

  • @balazsgyenge9388
    @balazsgyenge9388 3 роки тому +1

    Great video :)
    It is possible to display float/double on oled?

    • @ControllersTech
      @ControllersTech  3 роки тому +1

      Yes but you need to convert them to characters using sprintf.
      Displays only accepts ascii

    • @balazsgyenge9388
      @balazsgyenge9388 3 роки тому

      @@ControllersTech Thanks for the reply.
      I did the next thing, which could be ok:
      Gain every digit from a float value and add the next character to the digit '0' and update the screen with Putc function.

  • @zeydane
    @zeydane 4 роки тому +1

    if i can only set my HCLK to max of 48MHz. can that affect the scrolling? Only top part scrolls and the rest doesnt. not sure if its the code or hardware.

    • @ControllersTech
      @ControllersTech  4 роки тому

      No, HCLK don't have any effect on scrolling. Might be the code. Try the diagonal scrolling..

    • @zeydane
      @zeydane 4 роки тому

      @@ControllersTech diagonal does the same thing where it only moves the top portion

  • @mojh725
    @mojh725 4 роки тому

    hello. can you do it for lpc1768 too? i need it so much, and i can not change code for lpc1768. thank you

  • @emersonrodrigues7476
    @emersonrodrigues7476 5 років тому

    You can make the fonts, test and ssd1306 point C and H. files not found for download.

    • @ControllersTech
      @ControllersTech  5 років тому

      What u mean not found ? Have u checked inside the src and inc folders ?

  • @abdelazizettalibi9763
    @abdelazizettalibi9763 2 дні тому

    where can I find the librairy

  • @suyamburajgmoorthilingam4098
    @suyamburajgmoorthilingam4098 3 роки тому

    Could not find the sample code
    Could you help on that

  • @kartikeyyendhe1840
    @kartikeyyendhe1840 7 місяців тому

    Can I use this library for SSD1309 for SPI communication mode???

  • @LeonardoGarcia-uq7ws
    @LeonardoGarcia-uq7ws 5 років тому

    Great tutorial! I have tried to access the link in the description, but it isn't accessible.

    • @ControllersTech
      @ControllersTech  5 років тому

      Try without https. There is some issue going on right now.

  • @vadimsolidity7228
    @vadimsolidity7228 5 років тому

    Thank you very much!!

  • @tanjiro3285
    @tanjiro3285 Рік тому

    im having a stm32 Nucleo G491RE can u help me with it, im unable to get it running even after changing the name in header files, what else i can d0 ?

    • @ControllersTech
      @ControllersTech  Рік тому

      @monjiro make sure you select the right pins for the i2c. Check the schematics of the board to see which pins you need to connect to.
      I am guessing that you have connected to the pins on the top right (scl and sda). When you enable i2c1 in cubemx, by default it will not configure these pins. You have to change the pin manually.

  • @stemprojects761
    @stemprojects761 3 роки тому

    Hello! amazing job. One question.. Can you add multiple OLED screens? is there an example for this? thanks in advance!

    • @stemprojects761
      @stemprojects761 3 роки тому

      i am trying to make it happen in a STM32 nucleo

    • @ControllersTech
      @ControllersTech  3 роки тому

      all SSD1306 have the same I2C address. So if u do connect them to the same I2C, they will show the same data. If you can somehow modify the address, then u can control them individually

  • @davidrosario3642
    @davidrosario3642 4 роки тому +1

    thank u, can i use it for a i2c 128x32?

    • @Pablo-ww5cn
      @Pablo-ww5cn 3 роки тому +4

      yes, but follow this:
      -open "ssd1306.c"
      -in line 194 change "SSD1306_WRITECOMMAND(0x3F);" to "SSD1306_WRITECOMMAND(0x1F);"
      -in line 203 change "SSD1306_WRITECOMMAND(0x12);" to "SSD1306_WRITECOMMAND(0x02);"
      if you do that, you are sending , with I2C protocol the especific command to OLED 0.91(128x32) to change 128x64 to 128x32.
      Otherwise it will never work.

    • @MegaEnterprice
      @MegaEnterprice 3 роки тому +1

      @@Pablo-ww5cn and SSD1306HEIGHT in ssd1306.h?

  • @Coulinator13124
    @Coulinator13124 4 роки тому

    Hi, Great video. Integration done with a 2.52 inch OLED I2C screen. Is it possible to get smallest font ? Currently the smallest one i've is a 7x10.

    • @ControllersTech
      @ControllersTech  4 роки тому

      check some arduino libraries. Maybe those fonts can be implemented

    • @Coulinator13124
      @Coulinator13124 4 роки тому

      @@ControllersTech The fonts i could found are not using the same "mapping". So using them result in ""hieroglyphe" writing :) . The smallest i found and compatible is a 6x8. I'm looking for a smaller one. If someone found it ... Thanks.

  • @andresfelipeparragafuquene4848
    @andresfelipeparragafuquene4848 5 років тому

    That video is nice but could you learn us how to use OLED working with SPI? It would be interesting thanks 👍

    • @ControllersTech
      @ControllersTech  5 років тому

      You can use the same code for it. Just make sure in the ssd1306.c, change the i2c operations to spi. That's all. You can watch my video about using spi generally.

    • @xiuyangzhang6955
      @xiuyangzhang6955 2 роки тому +1

      meto , i have try many times to use the hardware SPI in stm32 to drive oled, but i failed every times

  • @epartsvn
    @epartsvn Місяць тому

    Great!

  • @shrijithmjain2137
    @shrijithmjain2137 3 роки тому

    you are just awsome..........!!!!!!!!!!!!!!!!

  • @pusatberk4193
    @pusatberk4193 5 років тому

    Thanks a lot

  • @lazyvideos9525
    @lazyvideos9525 4 роки тому

    i tried oled with addres 0x3c and updated .h file.still oled not working.is mandatory pull up needed.pls help me

    • @ControllersTech
      @ControllersTech  4 роки тому

      What's 0x3C for ? Where you get that address from ?

  • @abhijithrajith4738
    @abhijithrajith4738 2 роки тому

    Hello, I'm using STM32F407G-Disc1 board interfacing with SSD1306 128x64 OLED. When I'm trying with Arduino, the OLED is working perfectly. But, it is not working with STM controller. Code is compiling without any errors. Still OLED is not giving any output. Do you know any possible solution ?

    • @meheredia
      @meheredia Рік тому

      Hi! I'm working on a STM32f411ve-Discovery and i have the same problem. I checked the address but it doesn't work. Did you find any solution??? Thaks

  • @vinothkannan1570
    @vinothkannan1570 3 роки тому

    i am using F3 version stm32 do i have to change I2c pins in library ?? where should i change the pins?

    • @ControllersTech
      @ControllersTech  3 роки тому

      That depends on you. Just choose some I2C and cubeMX will configure the pins automatically.

  • @farukemektar7231
    @farukemektar7231 11 місяців тому

    Hello, when I download the link, a file named I2c does not appear. Why could it be?

  • @DiegoPerez-bz8tv
    @DiegoPerez-bz8tv 2 роки тому

    Hello my screen has the sh1106 can I use this library?

    • @meheredia
      @meheredia Рік тому

      Hi! I´'m testing on OLED 1.3'' I2C with SH1106, can you find some library for them?

  • @Sotheareth8086
    @Sotheareth8086 4 роки тому

    I copy those those files to each directory and change address 0x3C oled and run but it does not show anything. Can you tell me somthing?

    • @lazyvideos9525
      @lazyvideos9525 4 роки тому

      YES same problem for me also.oled is not showing anything ....i changed oled adreess and tried but not working.pls let me know if u got the solution

    • @lazyvideos9525
      @lazyvideos9525 4 роки тому

      OK...SOLVED now ....
      no change in address with 0x78 only it working.but i dont know why its like that.previous mu oled is gone bad taken new oled and now its working

  • @omercebeci5405
    @omercebeci5405 3 роки тому

    Hi ,I use 128x160 oled lcd ,How can I change ssd1306.c 193. and 204. lines ? or What Can I do to use it ? Could you help me please?

    • @ControllersTech
      @ControllersTech  3 роки тому

      There is size defined somewhere.. just change it and test. I don't know whether it will work or not.

    • @omercebeci5405
      @omercebeci5405 3 роки тому

      @@ControllersTech I adjusted from ssd1306.h as (128x160) but it didn't work.I used 4.7k pull up resistor and I tried both address.Do you have any ideas?

    • @ControllersTech
      @ControllersTech  3 роки тому +1

      Can u send link to what oled you have ?

    • @ControllersTech
      @ControllersTech  3 роки тому

      I couldn't find any oled of 128x160, which uses ssd1306.
      I think you have some other display amd you are using wrong library

  • @bahadrguven6268
    @bahadrguven6268 4 роки тому +1

    spi ?

    • @ControllersTech
      @ControllersTech  4 роки тому

      well i don't have the one with SPI... But mostly it should be the same except you have to switch I2C transfer with SPI transfer

    • @bahadrguven6268
      @bahadrguven6268 4 роки тому

      @@ControllersTech thanks a lot.

  • @rea1013
    @rea1013 3 роки тому

    Sorry noobs question.
    Why use HSE but no external clock on the breadboard?

    • @ControllersTech
      @ControllersTech  3 роки тому +1

      HSE is external crystal. It is on the controller..

    • @rea1013
      @rea1013 3 роки тому

      @@ControllersTech Oh i see, thanks.

  • @mehmetdemir5655
    @mehmetdemir5655 2 роки тому

    Help me pls, how can i clean a specific area of screen

  • @AG-eg2xz
    @AG-eg2xz 4 роки тому

    'RCC_OscInitTypeDef' could not be resolved, what can I do?

    • @ControllersTech
      @ControllersTech  4 роки тому

      What controller? Are u using external clock ?

    • @AG-eg2xz
      @AG-eg2xz 4 роки тому

      @@ControllersTech It worked, I was not following the instructions properly. Thanks a lot for the tutorial.

    • @AG-eg2xz
      @AG-eg2xz 4 роки тому

      @@ControllersTech I am trying to simulate this in proteus, and the OLED has a reset pin, what can I do with it? Please help!

    • @ControllersTech
      @ControllersTech  4 роки тому +1

      Don't connect the reset pin than... Or connect it to the ground

  • @nhatduyhuynh5097
    @nhatduyhuynh5097 4 роки тому

    this library can use for SSD1306 OLED 128x32 ??? thanks

    • @ControllersTech
      @ControllersTech  4 роки тому

      Yeah but you need some adjustments.. read the comments. Someone did it

    • @nhatduyhuynh5097
      @nhatduyhuynh5097 4 роки тому

      @@ControllersTech i fixed height parameter in ssd1306.h but hadnt run yet

    • @ControllersTech
      @ControllersTech  4 роки тому

      Are u sure connection is right ?
      Try connecting pull up resistors to SDA and SCL pins.
      Also make sure the i2c speed is 400 KHz

    • @nhatduyhuynh5097
      @nhatduyhuynh5097 4 роки тому

      @@ControllersTech I2C address is 0x78 or 0x7A ?

    • @lazyvideos9525
      @lazyvideos9525 4 роки тому

      @@ControllersTech is pull up resistor needed externally by circuit.directly i coneected ssd1306 with addres 0x3c and changed adress in program.but not working

  • @dingga713
    @dingga713 5 років тому

    thanks you for making the wonderful tutorial about OLED display. I have try it and i am fail on display "hello world". i have double check the I2C (&hi2c1) and i am using stm32F103c8 which the pin for i2c (PA6 and PA7), BUT one this diff is i am using "STM32CubeIDE 1.0.0" to do it. CAN anyone help me by suggesting me about the possible problem, i suspect i must made a silly mistake. Thank you.

    • @ControllersTech
      @ControllersTech  5 років тому

      What error are u getting?
      Is the code compiling successfully?
      Make sure u update the display after writing anything. Or else you won't be able to see it.
      The code should work on all IDEs so stm32cube ide is not the problem

    • @dingga713
      @dingga713 5 років тому

      @@ControllersTech Thank you for the reply Controllers Tech, i getting not error, the code was successfully compiled, i have put the update of display which is "SSD1306_UpdateScreen()" after every writing, i even put the breakpoints to check the code is running and the result is: code is runing but OLED display nothing. i have check the OLED with my Arduino program and it is function well. I have run out of IDEA to test it, but i will keep trying to figure it out. Thanks for the help.

    • @dingga713
      @dingga713 5 років тому +1

      I am so blind, i can't believe i made this lower mistake. i am using the STM32F103 smart v2 MCU board and i confuse myself by the pin number .I even said that i use "PA6 and PA7" as hi2c1, but actually it is "PB6 and PB7", right now i am able to display "Hello world" on OLED. Thanks you for the help anyway and great video as always. I am appreciate, Thanks a lot .

  • @soutakbiswas3029
    @soutakbiswas3029 2 роки тому

    Whare can i find those header file?

  • @sylviabanerjee5920
    @sylviabanerjee5920 4 роки тому

    Hi I am not getting any link to download the header files.
    Please help

  • @artvnl6345
    @artvnl6345 4 роки тому

    Is it possible to use this code with a STM32L432KC? With STM32CubeIDE?

    • @ControllersTech
      @ControllersTech  4 роки тому

      If it have i2c, than yes

    • @artvnl6345
      @artvnl6345 4 роки тому

      @@ControllersTech Mhm I must be doing something wrong, it has 3 times I2C. No pin on the board was sending out a thing.

  • @amirhosseini4689
    @amirhosseini4689 3 роки тому

    hi
    your website link is incorrect

  • @flyfree6299
    @flyfree6299 4 роки тому

    What's os?

  • @yogicool3068
    @yogicool3068 5 років тому

    share link for libraries download....
    Thanks in advance

  • @NisalDilshan
    @NisalDilshan 2 роки тому

    Thank you very much

  • @edmelectronics4110
    @edmelectronics4110 3 роки тому

    Thank you very much!!