Yes just to elaborate for any other users. be sure to connect the red (positive) wire to the top power rail on the breadboard. as shown on the breadboard section. ua-cam.com/video/Ts9JXbMvfTQ/v-deo.html
Great video, I have been struggling to get this Oled to work. I always get static noise and rapidly scrolling text on the first top lines? I2C scan works fine and I get the correct address back (0x3C). I also soldered the wires to make sure I get good connections but problem stays :-( any thoughts? Note: I run below small code on Pico with v1.19 because I don't have the temp sensor, also Pico with v1.20 gives me a bunch of errors when running the code: from machine import Pin, I2C from ssd1306 import SSD1306_I2C import framebuf import time WIDTH = 128 HEIGHT = 64 i2c = I2C(0, scl = Pin(17), sda = Pin(16), freq=100000) display = SSD1306_I2C(128, 64, i2c) # display.invert(1) #display.contrast(100) while True: display.text('Text 1...' ,0 ,0) display.text('Text 2...' ,0 ,14) display.show() display.fill(0)
It doesn't work differently than ESP32 if you take the USB power and reconnect it. Do I have to keep uploading it every time I do it? How does it work on batteries?
on the raspberry pi pico you upload it to main.py I assume the esp32 will have a boot.py so you don't have to keep uploading it and also a V-in for battery power supply. I am planning on covering the esp32 later this year
well you can, but the quality would not be super great, I think in video there is one of Elon musk, but due to the limited resolution it will be almost a silhouette
Theres an error i keep on getting. Any know on how to fix? Ill paste the whole message below Traceback (most recent call last): File "", line 11, in File "ssd1306.py", line 117, in __init__ File "ssd1306.py", line 36, in __init__ File "ssd1306.py", line 73, in init_display File "ssd1306.py", line 122, in write_cmd OSError: [Errno 5] EIO
diddnt work got the error Traceback (most recent call last): File "", line 9, in File "/lib/ssd1306.py", line 118, in __init__ File "/lib/ssd1306.py", line 37, in __init__ File "/lib/ssd1306.py", line 74, in init_display File "/lib/ssd1306.py", line 123, in write_cmd OSError: [Errno 5] EIO
Hello thanks for the tutorial. I got the first part with temperature correct. The last animation tutorial gave me an error. Could you tell me what I have done wrong? MicroPython v1.19.1 on 2022-06-18; Raspberry Pi Pico with RP2040 Type "help()" for more information. >>> %Run -c $EDITOR_CONTENT Traceback (most recent call last): File "", line 15, in OSError: [Errno 2] ENOENT >>>
@@NerdCaveYT thanks for the response. I got it working. I think it was something to do with the image numbering, also had to change some settings in EZgif. But it works!
the library doesnt save. i tried to do everything to the point where i even bough a new pico and used another usb cable. but still this error popped up: Could not write next block after having written 0 bytes to /ssd1306.py PROBLEM IN THONNY'S BACK-END: Exception while handling 'write_file' (OSError: [WinError Traceback (most recent call last): File "", line 1, in File "", line 4, in __W OSError: 28 ] __W(b'# MicroPython SSD1306 OLED driver, I2C and SPI interfaces
# Subclassing FrameBuffer provides support for graphics primitives # docs.micropython.org/en/latest/pyboard/library/framebuf.html class SSD1306(framebuf.FrameBuffer): def __init__(self, width, height, external_vcc): self.width = width self.height = height self.external_vcc = external_vcc self.pages = '): ''). See Thonny's backend.log for more info. You may need to press "Stop/Restart" or hard-reset your MicroPython device and try again. Process ended with exit code 1. pls help somoewne
How did you try to save the library, you just copy the code library code from github and paste it in a new file and save it to the pico as ssd1306.py and then in another file you will have from ssd1306 import SSD1306_I2C and this will import the library
the links are correct the code is correct but i am getting error like this. Sometimes it gives an error saying no module named 'ssd1306', can you help me? ♦Traceback (most recent call last): File "", line 9, in File "ssd1306.py", line 116, in __init__ File "ssd1306.py", line 35, in __init__ File "ssd1306.py", line 72, in init_display File "ssd1306.py", line 121, in write_cmd OSError: [Errno 5] EIO
A tiny mistake in the schematic of the ground wire that is in wrong rail.
Yes just to elaborate for any other users. be sure to connect the red (positive) wire to the top power rail on the breadboard. as shown on the breadboard section.
ua-cam.com/video/Ts9JXbMvfTQ/v-deo.html
Just to clarify, it's the black wire on the left-side; move UP 1 pin. At 1:20 it's correct.
Excellent, in-depth but brief, tutorial.
Glad it was helpful!
Really awesome video. Easy to follow and execute. Thanks heaps
Glad it helped!
Thank you again! Very usefull links👍
Glad you like them!
Excellent Video.
Thank you very much!
Thank you!!! This was super helpful!
Glad it was helpful!
Nice video, thank you.
Very cool, Thank you!
Glad you liked it!
Great Tutorial again! I´ve learned so much from you so far.
Is it possible tu run the animation only one time, not in a loop?
Yes you can! just make a function for it, then you can call that function where you need it to be displayed
Thank you i´ll try it! @@NerdCaveYT
Very Useful!
Great video, I have been struggling to get this Oled to work. I always get static noise and rapidly scrolling text on the first top lines? I2C scan works fine and I get the correct address back (0x3C).
I also soldered the wires to make sure I get good connections but problem stays :-( any thoughts?
Note: I run below small code on Pico with v1.19 because I don't have the temp sensor, also Pico with v1.20 gives me a bunch of errors when running the code:
from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
import framebuf
import time
WIDTH = 128
HEIGHT = 64
i2c = I2C(0, scl = Pin(17), sda = Pin(16), freq=100000)
display = SSD1306_I2C(128, 64, i2c)
# display.invert(1)
#display.contrast(100)
while True:
display.text('Text 1...' ,0 ,0)
display.text('Text 2...' ,0 ,14)
display.show()
display.fill(0)
sorry for the late reply what errors do you get?
Thank u
No problem, glad it was useful
Is there a way to do this with Arduino? Thanks for the info my friend.
Yes you should be able to should be easy using the Adafruit GFX library, I remember seeing a tutorial on it
Merci !!! 👍
It doesn't work differently than ESP32 if you take the USB power and reconnect it. Do I have to keep uploading it every time I do it? How does it work on batteries?
on the raspberry pi pico you upload it to main.py I assume the esp32 will have a boot.py so you don't have to keep uploading it and also a V-in for battery power supply. I am planning on covering the esp32 later this year
Can i do it for normal photo like of any pic ??
well you can, but the quality would not be super great, I think in video there is one of Elon musk, but due to the limited resolution it will be almost a silhouette
@@NerdCaveYT ohh okay
Theres an error i keep on getting. Any know on how to fix? Ill paste the whole message below
Traceback (most recent call last):
File "", line 11, in
File "ssd1306.py", line 117, in __init__
File "ssd1306.py", line 36, in __init__
File "ssd1306.py", line 73, in init_display
File "ssd1306.py", line 122, in write_cmd
OSError: [Errno 5] EIO
It seems to be a connection error you SSD1306 is the pinout the same as the one I used in the video I know there are different modules
how many frames per second ?
No idea, then not test it in that detail
Why did you eliminated the transcripts options?
I have not removed the transcript option from video, it might be UA-cam UI or browser causing it not to be seen.
my temperature is displaying too low do u know a fix
Is all the calculation correct as shown the factor that you need to multiply with
How do i run the code?
I am unsure in context of what, you mean the IDE used in the video?
yes @@NerdCaveYT
diddnt work got the error
Traceback (most recent call last):
File "", line 9, in
File "/lib/ssd1306.py", line 118, in __init__
File "/lib/ssd1306.py", line 37, in __init__
File "/lib/ssd1306.py", line 74, in init_display
File "/lib/ssd1306.py", line 123, in write_cmd
OSError: [Errno 5] EIO
Are you able to collaborate? I have a project I’m working on an I’m a newbie
Collaborate on what project?
Hello thanks for the tutorial. I got the first part with temperature correct. The last animation tutorial gave me an error. Could you tell me what I have done wrong?
MicroPython v1.19.1 on 2022-06-18; Raspberry Pi Pico with RP2040
Type "help()" for more information.
>>> %Run -c $EDITOR_CONTENT
Traceback (most recent call last):
File "", line 15, in
OSError: [Errno 2] ENOENT
>>>
What is line 15 it is giving the error
@@NerdCaveYT with open('/minecraft/image%s.pbm' % n, 'rb') as f: #open folder and image
@@NerdCaveYT thanks for the response. I got it working. I think it was something to do with the image numbering, also had to change some settings in EZgif. But it works!
@@alexfernandesportrai I think there are other methods as well I just used one I found on a blog, but some people wrote programs go to do it
Same
):
bad tutorial does not show how to even code
did you even watch the video? You are more then welcome making a better video and I can share it to the community :) Have a nice day
the library doesnt save. i tried to do everything to the point where i even bough a new pico and used another usb cable. but still this error popped up:
Could not write next block after having written 0 bytes to /ssd1306.py
PROBLEM IN THONNY'S BACK-END: Exception while handling 'write_file' (OSError: [WinError Traceback (most recent call last):
File "", line 1, in
File "", line 4, in __W
OSError: 28
] __W(b'# MicroPython SSD1306 OLED driver, I2C and SPI interfaces
from micropython import const
import framebuf
# register definitions
SET_CONTRAST = const(0x81)
SET_ENTIRE_ON = const(0xA4)
SET_NORM_INV = const(0xA6)
SET_DISP = const(0xAE)
SET_MEM_ADDR = const(0x20)
SET_COL_ADDR = const(0x21)
SET_PAGE_ADDR = const(0x22)
SET_DISP_START_LINE = const(0x40)
SET_SEG_REMAP = const(0xA0)
SET_MUX_RATIO = const(0xA8)
SET_IREF_SELECT = const(0xAD)
SET_COM_OUT_DIR = const(0xC0)
SET_DISP_OFFSET = const(0xD3)
SET_COM_PIN_CFG = const(0xDA)
SET_DISP_CLK_DIV = const(0xD5)
SET_PRECHARGE = const(0xD9)
SET_VCOM_DESEL = const(0xDB)
SET_CHARGE_PUMP = const(0x8D)
# Subclassing FrameBuffer provides support for graphics primitives
# docs.micropython.org/en/latest/pyboard/library/framebuf.html
class SSD1306(framebuf.FrameBuffer):
def __init__(self, width, height, external_vcc):
self.width = width
self.height = height
self.external_vcc = external_vcc
self.pages = '): '').
See Thonny's backend.log for more info.
You may need to press "Stop/Restart" or hard-reset your MicroPython device and try again.
Process ended with exit code 1.
pls help somoewne
How did you try to save the library, you just copy the code library code from github and paste it in a new file and save it to the pico as ssd1306.py and then in another file you will have from ssd1306 import SSD1306_I2C and this will import the library
the links are correct the code is correct but i am getting error like this. Sometimes it gives an error saying no module named 'ssd1306', can you help me?
♦Traceback (most recent call last):
File "", line 9, in
File "ssd1306.py", line 116, in __init__
File "ssd1306.py", line 35, in __init__
File "ssd1306.py", line 72, in init_display
File "ssd1306.py", line 121, in write_cmd
OSError: [Errno 5] EIO
you are only getting the error sometimes right, usually a bad connection has given me this error before