Share My Creation The return of Peter's beetle

OLED 0.95", SSD1331, 96x64 displays bitmap. Online C sets the SPI and loads the B4X icon to the flash memory. The beetle is stored in the RAM.
The display module is from Ebay: https://www.ebay.co.uk/itm/282379866279?ssPageName=STRK:MEBIDX:IT&_trksid=p2060353.m2749.l2649
To create the array:
Convert bitmap to 16 bit BMP file, I used the online converter: https://online-converting.com/image/convert2bmp/
Use "HxD Hex Editor" to convert hex to code. Remove the first 66 bytes (the file header). https://mh-nexus.de/en/downloads.php?product=HxD20
B4X:
Sub Process_Globals

    Public Serial1 As Serial
    Private tmr As Timer
    Public CS As Pin
    Public DC As Pin
    Public SDA As Pin
    Public SCK As Pin
    Public RST As Pin

    Public  BLUE  As UInt=0x01F
    Public  RED   As UInt=0xF800
    Public  GREEN   As UInt=0x07E0
    Public  CYAN   As UInt=0x07FF
    Public  MAGENTA   As UInt=0xF81F
    Public  YELLOW   As UInt=0xFFE0
    Public  WHITE   As UInt=0xFFFF
    Private spires, spidata As Byte

    Private bug() As Byte = Array As Byte( _
    0xEF, 0x7B, 0xFF, 0xFF, 0xFF, 0xFF, _
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7B, 0xFF, 0xFF, 0xFF, 0xFF, _
    0xFF, 0xFF, 0xEF, 0x7B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, _
    0xEF, 0x7B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7B, 0xFF, 0xFF, _
    0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7B, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7B, _
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7B, 0x41, 0xFE, 0x41, 0xFE, _
    0x41, 0xFE, 0x41, 0xFE, 0x41, 0xFE, 0xEF, 0x7B, 0xFF, 0xFF, 0xFF, 0xFF, _
    0xEF, 0x7B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, _
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, _
    0x1D, 0x05, 0xE4, 0xE8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, _
    0xEF, 0x7B, 0x00, 0x00, 0x23, 0xB7, 0x23, 0xB7, 0x23, 0xB7, 0x23, 0xB7, _
    0x23, 0xB7, 0x00, 0x00, 0x1D, 0x05, 0x1D, 0x05, 0xFF, 0xFF, 0xFF, 0xFF, _
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, _
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x05, 0xE4, 0xE8, _
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7B, _
    0x41, 0xFE, 0x41, 0xFE, 0x41, 0xFE, 0x41, 0xFE, 0x41, 0xFE, 0xEF, 0x7B, _
    0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, _
    0xEF, 0x7B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7B, 0xFF, 0xFF, _
    0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7B, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7B, _
    0xFF, 0xFF, 0xEF, 0x7B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, _
    0xFF, 0xFF, 0xEF, 0x7B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7B, _
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF )    '252 bytes, 14x9 pix
 
End Sub

Private Sub AppStart
    'Serial1.Initialize(115200)
    tmr.Initialize("tmr_Tick", 10000)
    tmr.Enabled = False
    CS.Initialize(10, CS.MODE_OUTPUT)
    DC.Initialize(8, DC.MODE_OUTPUT)
    SCK.Initialize(13, SCK.MODE_OUTPUT)
    RST.Initialize(9, RST.MODE_OUTPUT)
    SDA.Initialize(11, SDA.MODE_OUTPUT)
    RunNative ("set_spi",Null)
    oled_init
    rectan(0,95,0,63,WHITE)    'clear scr
    rectan(30,63,14,47,RED)    'background
        'display icon
    Dim n As UInt
    command(0x15)
    command(31)
    command(62)
    command(0x75)
    command(15)
    command(46)
    For n=0 To 2047 Step 2
        send_data(GetByte(n+1))
        send_data(GetByte(n))
    Next
    tmr.Enabled = True

End Sub

Private Sub GetByte(Index As UInt) As Byte
    Return RunNative("getdata", Index)
End Sub

Sub tmr_Tick
    Dim j,k As Byte
    For j=0 To 12
        command(0x15)
        command(j*7)
        command(j*7+13)
        command(0x75)
        command(3)
        command(11)
        For k=0 To 251 Step 2
            send_data(bug(k+1))
            send_data(bug(k))
        Next
        If j=8 Then Delay(2000) Else Delay(100)
        command(0x15)
        command(j*7)
        command(j*7+13)
        command(0x75)
        command(3)
        command(11)
        For k=0 To 251 Step 2
            send_color(WHITE)
        Next
     Next
        'walk back
    Delay(2000)
    For j=0 To 12
        command(0x15)
        command(82-j*7)
        command(95-j*7)
        command(0x75)
        command(53)
        command(61)
        For k=0 To 251 Step 2
            send_data(bug(251-k))
            send_data(bug(250-k))
        Next
        If j=8 Then Delay(2000) Else Delay(100)
        command(0x15)
        command(82-j*7)
        command(95-j*7)
        command(0x75)
        command(53)
        command(61)
        For k=0 To 251 Step 2
            send_color(WHITE)
        Next
     Next

End Sub

Sub rectan(c0 As Byte,c1 As Byte, r0 As Byte, r1 As Byte, color As UInt)
    Dim i As UInt
    command(0x15)    'Column addr set
    command(c0)
    command(c1)
    command(0x75)    ' row addr set
    command(r0)
    command(r1)
    For i=0 To (c1 - c0 + 1) * (r1 - r0 + 1)
        send_color(color)    'color
    Next
End Sub

Sub send_color(color As UInt)
    send_data(color/16)
    send_data(color)
End Sub

Sub oled_init
    RST.DigitalWrite(True)    'hardware reset
    Delay(200)
    RST.DigitalWrite(False)
    Delay(10)
    RST.DigitalWrite(True)
    Delay(10)
    command(0xAE) 'display off

    command(0xA0) 'remap
    command(0x72) 'RGB=0x72, BGR=0x76

    command(0xA1) ' CMD STARTLINE
    command(0x0)
    command(0xA2)' CMD DISPLAYOFFSET
    command(0x0)
    command(0xA4)' CMD NORMALDISPLAY
    command(0xA8)' CMD SETMULTIPLEX
    command(0x3F)  ' 0x3F 1/64 duty
    command(0xAD)' CMD SETMASTER
    command(0x8E)
    command(0xB0)' CMD POWERMODE
    command(0x0B)
    command(0xB1)' CMD PRECHARGE
    command(0x31)
    command(0xB3)' CMD CLOCKDIV
    command(0xF0)' 7:4 = Oscillator Frequency, 3:0 = CLK Div Ratio
    ' (A[3:0]+1 = 1..16)
 
    command(0x8A)' CMD PRECHARGEA
    command(0x64)
    command(0x8B)' CMD PRECHARGEB
    command(0x78)
    command(0x8C)' CMD PRECHARGEC
    command(0x64)
    command(0xBB)' CMD PRECHARGELEVEL
    command(0x3A)
    command(0xBE)' CMD VCOMH
    command(0x3E)
    command(0x87)' CMD MASTERCURRENT 6
    command(0x01)
 
    command(0x81)' CMD CONTRASTA 91
    command(0xFF)
    command(0x82)' CMD CONTRASTB 50
    command(0xFF)
    command(0x83)' CMD CONTRASTC 7D
    command(0xFF)

    '  command(0xA4)'Normal display on
    command(0xAF)'Main screen turn on
End Sub


Sub spi(data As Byte)    'send byte over spi
    spidata=data
    RunNative ("spi",Null)
    Return
End Sub


Sub command(cmd As Byte)
    DC.DigitalWrite(False)    'command Mode
    CS.DigitalWrite(False)    'Select the LCD (active low)
      spi(cmd)'set up data on bus
      CS.DigitalWrite(True)    'Deselect LCD (active low)
End Sub

Sub send_data(data As Byte)
    DC.DigitalWrite(True)    'data mode
    CS.DigitalWrite(False)    'Select the LCD (active low)
    spi(data)    'set up data on bus
    CS.DigitalWrite(True)    'Deselect LCD (active low)
End Sub


    #if C
    void spi(B4R::Object* o)
    {
      SPDR = b4r_main::_spidata;  // Start transmission
      while (!(SPSR & _BV(SPIF)));  // Wait For transmission To complete
      b4r_main::_spires = SPDR;    // received byte
    }

    void set_spi(B4R::Object* o)
    {
      SPCR = 0B1011101;  // Enable spi, Master, mode3, set clock rate fck/16=1MHz
      SPSR = 1;    //set clock rate fck/2=2MHz
    }

    #include <avr/pgmspace.h>
    const PROGMEM byte data[] = { //2048 bytes, 32x32 pixel
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xF7,
    0x7E, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xE7, 0x7E, 0xAF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xDC, 0xBE, 0xBB, 0xBE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0x7F, 0xFE, 0x5E,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xF7, 0xF6, 0x54, 0xFC, 0xC6, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xE7,
    0x7C, 0x1E, 0xDD, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x5A, 0xA6, 0xF3, 0x23,
    0x7E, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xDF, 0xD7, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0x3E, 0x7F, 0xBE, 0x06, 0x7C, 0x1E, 0xBF, 0xDF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF,
    0x33, 0x2C, 0x33, 0x2C, 0xBF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xE7, 0xBF, 0xAF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xD7, 0x7C, 0x1E, 0x5C, 0x06, 0x5C, 0x06,
    0x7E, 0xAF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xF9, 0x95, 0xD3, 0x0B, 0x75, 0x3C, 0xBF, 0xF7, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x97, 0xBF, 0xBF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x66, 0x7D, 0x06,
    0x3B, 0x06, 0x7C, 0x06, 0xFD, 0x66, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0xDF, 0xF3, 0x23, 0xD3, 0x0B, 0x75, 0x3C,
    0xBF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xD7,
    0x5F, 0x47, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xC7,
    0x5C, 0x0E, 0x3B, 0x06, 0x1B, 0x06, 0x1B, 0x06, 0x3B, 0x1E, 0xDF, 0xE7,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x57, 0x75, 0xB2, 0x0B,
    0xB2, 0x0B, 0x54, 0x34, 0xBF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0x7F, 0x6F, 0x5F, 0x47, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xBC, 0x4E, 0x7C, 0x06, 0x1B, 0x06, 0xFA, 0x05, 0xDA, 0x05,
    0x1B, 0x06, 0xDC, 0x86, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xC6,
    0xD2, 0x1B, 0x92, 0x0B, 0x92, 0x0B, 0x13, 0x24, 0x7E, 0xE7, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xD7, 0x3F, 0x0F, 0x7F, 0x7F, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0xBF, 0x3B, 0x06, 0x1B, 0x06, 0xFA, 0x05,
    0xDA, 0x05, 0xDA, 0x05, 0xDA, 0x05, 0xFA, 0x1D, 0xBF, 0xDF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xF6, 0x54, 0xB2, 0x0B, 0x92, 0x0B, 0x92, 0x0B, 0xD2, 0x1B,
    0x1D, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x67, 0x9F, 0x07,
    0x9F, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x7C, 0x3E, 0x3B, 0x06,
    0xDA, 0x05, 0xDA, 0x05, 0xDA, 0x05, 0xB9, 0x05, 0x99, 0x05, 0xDA, 0x05,
    0x7B, 0x5E, 0xFF, 0xFF, 0x7A, 0xAE, 0xB2, 0x0B, 0x92, 0x0B, 0x92, 0x0B,
    0x92, 0x0B, 0xB2, 0x0B, 0x5A, 0xA6, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xC7,
    0x3F, 0x0F, 0x3F, 0x07, 0xBF, 0xAF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0x9F,
    0x1B, 0x06, 0xDA, 0x05, 0xDA, 0x05, 0xB9, 0x05, 0x99, 0x05, 0x99, 0x05,
    0x79, 0x05, 0x79, 0x05, 0x79, 0x05, 0xFC, 0x96, 0x95, 0x44, 0xB2, 0x0B,
    0x92, 0x0B, 0x71, 0x0B, 0x92, 0x0B, 0xB2, 0x0B, 0x57, 0x6D, 0xFF, 0xFF,
    0xFF, 0xFF, 0x5F, 0x57, 0x3F, 0x07, 0x1F, 0x07, 0xBF, 0xAF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xEF, 0x3B, 0x2E, 0xFA, 0x05, 0xB9, 0x05, 0x99, 0x05, 0x99, 0x05,
    0x79, 0x05, 0x79, 0x05, 0x79, 0x05, 0x58, 0x05, 0x58, 0x05, 0x9D, 0x0E,
    0x58, 0x25, 0x71, 0x13, 0x92, 0x0B, 0x92, 0x0B, 0x92, 0x0B, 0x92, 0x0B,
    0x13, 0x24, 0x9E, 0xF7, 0xBF, 0xBF, 0x1F, 0x07, 0xFF, 0x06, 0x3F, 0x07,
    0xBF, 0xA7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x86, 0xFA, 0x05, 0xB9, 0x05, 0x99, 0x05,
    0x79, 0x05, 0x79, 0x05, 0x58, 0x05, 0x58, 0x05, 0x58, 0x05, 0x17, 0x05,
    0xDA, 0x0D, 0x1F, 0x07, 0xFF, 0x0E, 0xF7, 0x14, 0x51, 0x0B, 0x92, 0x0B,
    0x92, 0x0B, 0x92, 0x0B, 0x92, 0x0B, 0x19, 0x8E, 0x5F, 0x47, 0x3F, 0x07,
    0xFF, 0x06, 0x5F, 0x07, 0x9F, 0x97, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xE7, 0xFA, 0x1D, 0xDA, 0x05,
    0x99, 0x05, 0x79, 0x05, 0x79, 0x05, 0x58, 0x05, 0x58, 0x05, 0x38, 0x05,
    0x17, 0x05, 0x17, 0x05, 0x9D, 0x06, 0x1F, 0x07, 0x1F, 0x07, 0xFF, 0x0E,
    0xF7, 0x14, 0x71, 0x0B, 0x71, 0x0B, 0xB2, 0x0B, 0x71, 0x0B, 0x55, 0x0C,
    0xFF, 0x06, 0x1F, 0x07, 0xFF, 0x06, 0x5F, 0x07, 0x7F, 0x6F, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x76,
    0xDA, 0x05, 0x79, 0x05, 0x79, 0x05, 0x58, 0x05, 0x58, 0x05, 0x38, 0x05,
    0x38, 0x05, 0x17, 0x05, 0xD6, 0x04, 0xDA, 0x0D, 0x1F, 0x07, 0xFF, 0x06,
    0xFF, 0x06, 0x1F, 0x07, 0xFF, 0x06, 0x58, 0x05, 0x71, 0x0B, 0x71, 0x0B,
    0x92, 0x0B, 0x71, 0x0B, 0x79, 0x05, 0x3F, 0x07, 0xFF, 0x06, 0x3F, 0x07,
    0x3F, 0x37, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xBF, 0xD7, 0xB9, 0x15, 0x79, 0x05, 0x58, 0x05, 0x58, 0x05, 0x38, 0x05,
    0x17, 0x05, 0xF7, 0x04, 0xF7, 0x04, 0xD6, 0x04, 0x17, 0x05, 0xBE, 0x06,
    0x1F, 0x07, 0xFF, 0x06, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06, 0x1F, 0x07,
    0x1B, 0x06, 0x33, 0x04, 0x51, 0x0B, 0x71, 0x0B, 0xB2, 0x03, 0x1B, 0x06,
    0x3F, 0x07, 0xFF, 0x06, 0xFF, 0x0E, 0xDF, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0x7B, 0x66, 0x99, 0x05, 0x58, 0x05, 0x38, 0x05,
    0x17, 0x05, 0xF7, 0x04, 0xF7, 0x04, 0xD6, 0x04, 0xD6, 0x04, 0xB5, 0x04,
    0xDA, 0x0D, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0x3F, 0x07, 0xBE, 0x06, 0x58, 0x05, 0xF3, 0x03,
    0x51, 0x0B, 0xB2, 0x03, 0x1B, 0x06, 0x3F, 0x07, 0x5F, 0x07, 0x7F, 0x6F,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0xBF, 0x79, 0x0D, 0x58, 0x05,
    0x38, 0x05, 0x17, 0x05, 0xF7, 0x04, 0xD6, 0x04, 0xD6, 0x04, 0xD6, 0x04,
    0x95, 0x04, 0xF6, 0x04, 0xBE, 0x06, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0x3F, 0x07, 0x9D, 0x06, 0x58, 0x05, 0xF3, 0x03, 0x91, 0x03, 0x79, 0x05,
    0x1F, 0x07, 0x3F, 0x0F, 0xDF, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0x1A, 0x4E,
    0x58, 0x05, 0x17, 0x05, 0x17, 0x05, 0xF7, 0x04, 0xD6, 0x04, 0xB6, 0x04,
    0xB6, 0x04, 0x95, 0x04, 0x74, 0x04, 0x17, 0x0D, 0xDE, 0x0E, 0x1F, 0x07,
    0xFF, 0x06, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0x1F, 0x07, 0x3F, 0x07, 0xBE, 0x06,
    0x99, 0x05, 0x95, 0x04, 0xD6, 0x04, 0x7C, 0x06, 0x3F, 0x3F, 0xFF, 0xEF,
    0xFF, 0xFF, 0xDC, 0x86, 0x38, 0x05, 0xF7, 0x04, 0xD6, 0x04, 0xB6, 0x04,
    0x95, 0x04, 0x95, 0x04, 0x95, 0x04, 0x74, 0x04, 0x54, 0x04, 0x95, 0x04,
    0x9D, 0x0E, 0x1F, 0x07, 0xFF, 0x06, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0x1F, 0x07, 0xFF, 0x06,
    0xFF, 0x06, 0x1F, 0x07, 0x3F, 0x07, 0xFF, 0x06, 0x7C, 0x06, 0xDA, 0x05,
    0x7D, 0x06, 0x5F, 0x57, 0xDF, 0xE7, 0xFF, 0xF7, 0x98, 0x35, 0xF7, 0x04,
    0xB6, 0x04, 0x95, 0x04, 0x95, 0x04, 0x74, 0x04, 0x54, 0x04, 0x54, 0x04,
    0x33, 0x04, 0x33, 0x04, 0x3B, 0x0E, 0x3F, 0x07, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0x3F, 0x07, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06, 0xBF, 0xB7, 0xFF, 0xFF,
    0x1D, 0xB7, 0xF6, 0x04, 0xB5, 0x04, 0x95, 0x04, 0x54, 0x04, 0x54, 0x04,
    0x33, 0x04, 0x33, 0x04, 0x33, 0x04, 0xF2, 0x03, 0x58, 0x0D, 0x1F, 0x07,
    0xFF, 0x06, 0x1F, 0x07, 0xFF, 0x06, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0x5F, 0x07, 0x3F, 0x3F,
    0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0x3A, 0x76, 0x95, 0x04, 0x74, 0x04,
    0x54, 0x04, 0x33, 0x04, 0x33, 0x04, 0x12, 0x04, 0xF2, 0x03, 0xD1, 0x03,
    0x33, 0x04, 0xBE, 0x06, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0x3F, 0x07, 0x9F, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xF7,
    0x57, 0x4D, 0x74, 0x04, 0x33, 0x04, 0x12, 0x04, 0xF2, 0x03, 0xF2, 0x03,
    0xD1, 0x03, 0x91, 0x03, 0x70, 0x03, 0x37, 0x0D, 0x3F, 0x07, 0xFF, 0x06,
    0xFF, 0x06, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0x3F, 0x07, 0x3F, 0x27, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0xEF, 0x57, 0x4D, 0x33, 0x04, 0xF2, 0x03,
    0xD1, 0x03, 0x91, 0x03, 0x91, 0x03, 0x70, 0x03, 0x30, 0x03, 0x70, 0x03,
    0x3B, 0x0E, 0x3F, 0x07, 0xFF, 0x06, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0x5F, 0x07, 0x7F, 0x7F, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0xEF,
    0x57, 0x5D, 0xB2, 0x03, 0x91, 0x03, 0x70, 0x03, 0x30, 0x03, 0x30, 0x03,
    0x0F, 0x03, 0xAE, 0x02, 0x70, 0x0B, 0x5C, 0x0E, 0x3F, 0x07, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0x1F, 0x07, 0x1F, 0x17,
    0xDF, 0xD7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xF7, 0xB8, 0x7D, 0x70, 0x0B, 0x30, 0x03,
    0x0F, 0x03, 0xEF, 0x02, 0xCE, 0x02, 0xCE, 0x02, 0xAD, 0x02, 0x70, 0x0B,
    0xFA, 0x0D, 0x3F, 0x07, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0xFF, 0x06, 0x1F, 0x07, 0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06,
    0x5F, 0x07, 0x7F, 0x67, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xBB, 0xBE, 0x33, 0x44, 0xCE, 0x02, 0xCE, 0x02, 0xAE, 0x02, 0xCE, 0x02,
    0xCE, 0x02, 0xAD, 0x02, 0xEF, 0x02, 0x17, 0x0D, 0xBE, 0x06, 0x3F, 0x07,
    0x1F, 0x07, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06, 0xFF, 0x06,
    0xFF, 0x06, 0x1F, 0x07, 0x1F, 0x07, 0xDF, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xF7, 0x39, 0xA6, 0x33, 0x44,
    0xEE, 0x0A, 0xCE, 0x02, 0xCE, 0x02, 0xCE, 0x02, 0xAD, 0x02, 0xAD, 0x02,
    0x91, 0x0B, 0x37, 0x0D, 0x7D, 0x06, 0x1F, 0x07, 0x3F, 0x07, 0x3F, 0x07,
    0x1F, 0x07, 0x1F, 0x07, 0x1F, 0x07, 0x5F, 0x07, 0x5F, 0x4F, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xC6, 0x57, 0x75, 0x12, 0x44, 0x4F, 0x1B,
    0xCE, 0x02, 0xCE, 0x02, 0xAE, 0x02, 0xAD, 0x02, 0x0F, 0x03, 0x12, 0x04,
    0x17, 0x05, 0xFA, 0x05, 0x7D, 0x06, 0xBE, 0x06, 0xFF, 0x06, 0x1F, 0x07,
    0xBF, 0xB7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xDF, 0xF7, 0x3D, 0xD7, 0x7A, 0xAE, 0x77, 0x85, 0xD5, 0x64, 0x33, 0x44,
    0xF1, 0x33, 0x70, 0x2B, 0x70, 0x2B, 0xF1, 0x33, 0x95, 0x44, 0x57, 0x5D,
    0x3A, 0x76, 0x7E, 0xAF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
    0xFF, 0xFF
    };

    B4R::Object beo1;
    B4R::Object* getdata(B4R::Object* o) {
       return beo1.wrapNumber(pgm_read_byte_near(data + o->toLong()));
    }
    #end if
 

Attachments

  • oled1331_beetle.zip
    4 KB · Views: 195
  • 16 bit bmp and c code.zip
    2.8 KB · Views: 204
  • 1331-405.jpg
    1331-405.jpg
    28.3 KB · Views: 1,917
  • oled_1331.gif
    oled_1331.gif
    4.3 KB · Views: 205
Last edited:
Top