Showing image with OLED and bytearray looks weird

All ESP8266 boards running MicroPython.
Official boards are the Adafruit Huzzah and Feather boards.
Target audience: MicroPython users with an ESP8266 board.
Post Reply
nirtz89
Posts: 7
Joined: Sat May 01, 2021 7:42 pm

Showing image with OLED and bytearray looks weird

Post by nirtz89 » Sat May 08, 2021 10:22 am

So this is my code:

Code: Select all

buffer = bytearray(b'\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x80\0x00\0x80\0x00\0x00\0x00\0x40\0x00\0x40\0x00\0x40\0x00\0x40\0x00\0x40\0x00\0x40\0x00\0x80\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x0C\0x00\0x00\0x04\0x01\0x02\0x00\0x00\0x00\0x00\0x00\0x40\0x00\0x00\0x00\0x60\0x00\0x80\0x00\0xA0\0x00\0x00\0x00\0x04\0x80\0x04\0x00\0x04\0x48\0x00\0x30\0x08\0x70\0x88\0x80\0xA0\0x18\0x24\0x41\0x9A\0x20\0x51\0x34\0xE1\0xDC\0x43\0xBA\0x2A\0x80\0x20\0x87\0x0A\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\	0x08\0x00\0x10\0x00\0x10\0x00\0x00\0x00\0x40\0x80\0x08\0x02\0x40\0x05\0x00\0x02\0x00\0x82\0x08\0x21\0xC0\0x0A\0x00\0x01\0x88\0x13\0x04\0x20\0x08\0x01\0x02\0x00\0x02\0x00\0x00\0x00\0x00\0x04\0x00\0x00\0x00\0x00\0x00\0x80\0x80\0x00\0x00\0x80\0x00\0x00\0x00\0x00\0x00\0x00\0x60\0x00\0x05\0x9A\0x05\0x88\0x00\0x02\0x00\0x02\0x00\0x01\0x00\0x01\0x00\0x55\0x22\0x48\0xA2\0x20\0xC0\0x00\0x05\0x00\0x10\0x00\0x00\0x03\0x00\0x08\0x02\0x18\0x06\0x13\0x9B\0x45\0x16\0x0A\0x80\0x10\0x94\0x34\0x83\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\	0xA2\0x00\0x01\0x80\0x08\0x20\0x01\0x00\0x02\0x00\0x00\0x00\0x00\0x00\0x00\0x01\0x00\0x00\0x00\0x01\0x00\0x00\0x01\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x28\0x35\0x2B\0x3D\0x1B\0x02\0x00\0x00\0x00\0x01\0x00\0x01\0x00\0x00\0x02\0x40\0x00\0x40\0xC0\0x00\0xE0\0x00\0x10\0x48\0x80\0x18\0xD8\0x20\0xA0\0xD0\0x84\0x00\0x28\0x01\0x04\0x08\0x02\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x01\0x00\0x00\0x14\0xAB\0x0C\0x6B\0x2A\0xA0\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\	0x00\0x10\0x08\0x02\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0xC0\0x80\0xC0\0x40\0x60\0x20\0x80\0x60\0xE0\0x80\0x80\0x80\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x0B\0x00\0x02\0x05\0x03\0x00\0x05\0x01\0x84\0x03\0x06\0x01\0x02\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x40\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x03\0x08\0x02\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\	0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x10\0xAE\0xFE\0x55\0x2B\0xF2\0x6C\0x95\0xFA\0xB9\0xCE\0x12\0x17\0x24\0x00\0x00\0x00\0x20\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0xC0\0x00\0x20\0x82\0x00\0x00\0x00\0x01\0x00\0x20\0x00\0x00\0x00\	0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x02\0x04\0x18\0x44\0x35\0xD0\0x75\0xD9\0x97\0x21\0x46\0x1A\0xD1\0x42\0x84\0x69\0x01\0xC1\0x40\0x85\0xC8\0x40\0xC0\0x20\0x60\0x40\0xA8\0x00\0x20\0x00\0x00\0x00\0x80\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x02\0x18\0x82\0x14\0xC8\0x00\0x80\0x09\0x00\0x01\0x00\0x00\0x80\0x00\	0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x01\0x05\0x01\0x00\0x04\0x01\0x09\0x00\0x01\0x01\0x03\0x4B\0x00\0x05\0x01\0x06\0x00\0x02\0x00\0x02\0x80\0x00\0xA0\0x00\0x40\0x00\0x80\0x00\0x10\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x20\0x00\0x80\0x20\0x00\0x08\0x30\0x42\0x90\0x01\0xA0\0x40\0xAA\0x41\0x04\0x11\0x08\0x22\0x08\0x40\0x20\0x04\	0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x02\0x04\0x80\0x00\0x01\0x02\0x40\0x10\0x00\0x02\0x00\0x10\0x00\0x00\0x00\0x00\0x00\0x80\0x00\0x00\0x00\0x40\0x00\0x00\0x10\0x00\0x00\0x00\0x00\0x00\0x00\0x0C\0x00\0x00\0x08\0x20\0x44\0x02\0x00\0x0D\0x10\0x00\0x20\0x8D\0x22\0x04\0x40\0x04\0x01\0x02\0x0C\0x00\0x02\0x00\0x00')
fb = framebuf.FrameBuffer(buffer, 128, 64, framebuf.MVLSB)
oled.fill(0)
oled.framebuf.blit(fb, 0, 0)
oled.show()
It should work but the image it shows is really wierd:
Image

Any ideas why this doesn't work?

User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: Showing image with OLED and bytearray looks weird

Post by pythoncoder » Sun May 09, 2021 8:22 am

What is framebuf.MVLSB? I'd expect framebuf.MONO_VLSB.
Peter Hinch
Index to my micropython libraries.

nirtz89
Posts: 7
Joined: Sat May 01, 2021 7:42 pm

Re: Showing image with OLED and bytearray looks weird

Post by nirtz89 » Sun May 09, 2021 9:18 am

pythoncoder wrote:
Sun May 09, 2021 8:22 am
What is framebuf.MVLSB? I'd expect framebuf.MONO_VLSB.
Replace with MONO_VSLB, still shows the same weird image.
Maybe my bytearray is not ok?

I think my problem is with the byte array, because this:

Code: Select all

buffer = bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x10\x8a\n0\x10$\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\xfe\xff?\xfe\xfd|\xfb\xf8\xfc\xff|\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc0@\xe0\xe0\xe0\xc0\xc1c\x9f\xff\x0f\xce\xff\xff\xcf\xe3\xf0pp\xa0\xe0\xe0\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xfb\xe7\xdf\x8e\x9e\xfd\x95"$%\x00\xfe\xff\xff\xed\xdd\xce\xce\xff\xe7\xe7\xf7\xfb\xf9\xfep\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@6\x9bg7\xcfo\x9d\xdb?\xbbws\xf7\xfa\xfa\xf9\xf4\xfd\xf7\xf3\xf1\xfdsy\xbd;\xd9\x9do\xcc6g\x9b6@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x01\x04\x03\t\x06\x13\x0c&\x19\r\x1b\x1b\r\x19&\x0c\x13\x06\t\x03\x04\x01\x02\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
fb = framebuf.FrameBuffer(buffer, 48, 48, framebuf.MVLSB)
oled.fill(0)
oled.framebuf.blit(fb, 8, 0)

Works well.

Post Reply