🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    [SOLVED] ATOM LITE + OLED Unit 1.3" 128 × 64 Display

    Atom
    3
    15
    20.3k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      cepics
      last edited by cepics

      Hi all, I'm looking for a working arduino code for ATOM LITE + OLED Unit 1.3" 128 × 64 Display to work with......

      best regards

      1 Reply Last reply Reply Quote 0
      • C
        cepics
        last edited by

        nobody??

        1 Reply Last reply Reply Quote 0
        • m5stackM
          m5stack
          last edited by

          just use the M5GFX library.

          https://github.com/m5stack/M5GFX

          1 Reply Last reply Reply Quote 0
          • C
            cepics
            last edited by

            the library examples doesn't work for me

            I tryed with core gray, core2, atom lite without any result...

            may be I'm missing something......

            1 Reply Last reply Reply Quote 0
            • C
              cepics
              last edited by

              some tips???

              1 Reply Last reply Reply Quote 0
              • O
                otosan-maker
                last edited by

                why is it not working? Any error code? it is difficult to help you if you give no information.

                1 Reply Last reply Reply Quote 0
                • C
                  cepics
                  last edited by

                  I can upload the exemples sketches but nothing is on the display....

                  1 Reply Last reply Reply Quote 0
                  • C
                    cepics
                    last edited by

                    • arduino envirement
                    • atom lite
                    • oled unit
                    • up to date M5GFX

                    this is a test sketch:

                    #include <M5GFX.h>
                    
                    M5GFX display;
                    M5Canvas canvas(&display);
                    
                    static constexpr char text0[] = "hello world";
                    static constexpr char text1[] = "this";
                    static constexpr char text2[] = "is";
                    static constexpr char text3[] = "text";
                    static constexpr char text4[] = "log";
                    static constexpr char text5[] = "vertical";
                    static constexpr char text6[] = "scroll";
                    static constexpr char text7[] = "sample";
                    static constexpr const char* text[] = { text0, text1, text2, text3, text4, text5, text6, text7 };
                    
                    void setup(void)
                    {
                      display.begin();
                    
                      if (display.isEPD())
                      {
                        display.setEpdMode(epd_mode_t::epd_fastest);
                        display.invertDisplay(true);
                        display.clear(TFT_BLACK);
                      }
                      if (display.width() < display.height())
                      {
                        display.setRotation(display.getRotation() ^ 1);
                      }
                    
                      canvas.setColorDepth(1); // mono color
                      canvas.createSprite(display.width(), display.height());
                      canvas.setTextSize((float)canvas.width() / 160);
                      canvas.setTextScroll(true);
                    }
                    
                    void loop(void)
                    {
                      static int count = 0;
                    
                      canvas.printf("%04d:%s\r\n", count, text[count & 7]);
                      canvas.pushSprite(0, 0);
                      ++count;
                    }
                    

                    this is the arduino ide output:

                    Lo sketch usa 301153 byte (22%) dello spazio disponibile per i programmi. Il massimo è 1310720 byte.
                    Le variabili globali usano 17052 byte (5%) di memoria dinamica, lasciando altri 310628 byte liberi per le variabili locali. Il massimo è 327680 byte.
                    esptool.py v3.0-dev
                    Serial port COM8
                    Connecting.....
                    Chip is ESP32-PICO-D4 (revision 1)
                    Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
                    Crystal is 40MHz
                    MAC: d8:a0:1d:5c:95:0c
                    Uploading stub...
                    Running stub...
                    Stub running...
                    Changing baud rate to 1500000
                    Changed.
                    Configuring flash size...
                    Auto-detected Flash size: 4MB
                    Compressed 8192 bytes to 47...
                    Writing at 0x0000e000... (100 %)
                    Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 4096.1 kbit/s)...
                    Hash of data verified.
                    Compressed 15856 bytes to 10276...
                    Writing at 0x00001000... (100 %)
                    Wrote 15856 bytes (10276 compressed) at 0x00001000 in 0.1 seconds (effective 991.0 kbit/s)...
                    Hash of data verified.
                    Compressed 301264 bytes to 153424...
                    Writing at 0x00010000... (10 %)
                    Writing at 0x00014000... (20 %)
                    Writing at 0x00018000... (30 %)
                    Writing at 0x0001c000... (40 %)
                    Writing at 0x00020000... (50 %)
                    Writing at 0x00024000... (60 %)
                    Writing at 0x00028000... (70 %)
                    Writing at 0x0002c000... (80 %)
                    Writing at 0x00030000... (90 %)
                    Writing at 0x00034000... (100 %)
                    Wrote 301264 bytes (153424 compressed) at 0x00010000 in 2.8 seconds (effective 870.7 kbit/s)...
                    Hash of data verified.
                    Compressed 3072 bytes to 128...
                    Writing at 0x00008000... (100 %)
                    Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 1365.3 kbit/s)...
                    Hash of data verified.
                    
                    Leaving...
                    Hard resetting via RTS pin...
                    Trovata libreria non valida in C:\Users\Documents\Arduino\libraries\M5Stack_LovyanLauncher-master: Nessun header file (.h) trovato in C:\Users\Documents\Arduino\libraries\M5Stack_LovyanLauncher-master
                    Trovata libreria non valida in C:\Users\Documents\Arduino\libraries\URM-master: Nessun header file (.h) trovato in C:\Users\Documents\Arduino\libraries\URM-master
                    
                    

                    this is the serial monitor booting the atom lite

                    ets Jun  8 2016 00:22:57
                    
                    rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
                    configsip: 188777542, SPIWP:0xee
                    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
                    mode:DIO, clock div:1
                    load:0x3fff0018,len:4
                    load:0x3fff001c,len:1044
                    load:0x40078000,len:8896
                    load:0x40080400,len:5816
                    entry 0x400806ac
                    
                    O 1 Reply Last reply Reply Quote 0
                    • C
                      cepics
                      last edited by

                      I think I have to change the i2c pin in the library..... but where??

                      1 Reply Last reply Reply Quote 0
                      • m5stackM
                        m5stack
                        last edited by m5stack

                        you need to #include <M5UnitOLED.h>

                        #include <M5UnitOLED.h>
                        
                        M5UnitOLED display;
                        
                        M5Canvas canvas(&display);
                        
                        static constexpr char text[] = "Hello world ! こんにちは世界! this is long long string sample. 寿限無、寿限無、五劫の擦り切れ、海砂利水魚の、水行末・雲来末・風来末、喰う寝る処に住む処、藪ら柑子の藪柑子、パイポ・パイポ・パイポのシューリンガン、シューリンガンのグーリンダイ、グーリンダイのポンポコピーのポンポコナの、長久命の長助";
                        static constexpr size_t textlen = sizeof(text) / sizeof(text[0]);
                        int textpos = 0;
                        int scrollstep = 2;
                        
                        void setup(void) 
                        {
                          display.init();
                          display.setRotation(2);
                          canvas.setColorDepth(1); // mono color
                          canvas.setFont(&fonts::lgfxJapanMinchoP_32);
                          canvas.setTextWrap(false);
                          canvas.setTextSize(2);
                          canvas.createSprite(display.width() + 64, 72);
                        }
                        
                        void loop(void)
                        {
                          int32_t cursor_x = canvas.getCursorX() - scrollstep;
                          if (cursor_x <= 0)
                          {
                            textpos = 0;
                            cursor_x = display.width();
                          }
                        
                          canvas.setCursor(cursor_x, 0);
                          canvas.scroll(-scrollstep, 0);
                          while (textpos < textlen && cursor_x <= display.width())
                          {
                            canvas.print(text[textpos++]);
                            cursor_x = canvas.getCursorX();
                          }
                          display.waitDisplay();
                          canvas.pushSprite(&display, 0, (display.height() - canvas.height()) >> 1);
                        }
                        
                        
                        C 1 Reply Last reply Reply Quote 1
                        • C
                          cepics @m5stack
                          last edited by

                          @m5stack said in ATOM LITE + OLED Unit 1.3" 128 × 64 Display:

                          you need to #include <M5UnitOLED.h>

                          #include <M5UnitOLED.h>
                          
                          M5UnitOLED display;
                          
                          M5Canvas canvas(&display);
                          
                          static constexpr char text[] = "Hello world ! こんにちは世界! this is long long string sample. 寿限無、寿限無、五劫の擦り切れ、海砂利水魚の、水行末・雲来末・風来末、喰う寝る処に住む処、藪ら柑子の藪柑子、パイポ・パイポ・パイポのシューリンガン、シューリンガンのグーリンダイ、グーリンダイのポンポコピーのポンポコナの、長久命の長助";
                          static constexpr size_t textlen = sizeof(text) / sizeof(text[0]);
                          int textpos = 0;
                          int scrollstep = 2;
                          
                          void setup(void) 
                          {
                            display.init();
                            display.setRotation(2);
                            canvas.setColorDepth(1); // mono color
                            canvas.setFont(&fonts::lgfxJapanMinchoP_32);
                            canvas.setTextWrap(false);
                            canvas.setTextSize(2);
                            canvas.createSprite(display.width() + 64, 72);
                          }
                          
                          void loop(void)
                          {
                            int32_t cursor_x = canvas.getCursorX() - scrollstep;
                            if (cursor_x <= 0)
                            {
                              textpos = 0;
                              cursor_x = display.width();
                            }
                          
                            canvas.setCursor(cursor_x, 0);
                            canvas.scroll(-scrollstep, 0);
                            while (textpos < textlen && cursor_x <= display.width())
                            {
                              canvas.print(text[textpos++]);
                              cursor_x = canvas.getCursorX();
                            }
                            display.waitDisplay();
                            canvas.pushSprite(&display, 0, (display.height() - canvas.height()) >> 1);
                          }
                          
                          

                          this sketch compile but doesn't display nothing

                          no error message

                          this is the atom lite boot on serial monitor after uploaded sketch

                          rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
                          configsip: 188777542, SPIWP:0xee
                          clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
                          mode:DIO, clock div:1
                          load:0x3fff0018,len:4
                          load:0x3fff001c,len:1044
                          load:0x40078000,len:8896
                          load:0x40080400,len:5816
                          entry 0x400806ac
                          
                          
                          1 Reply Last reply Reply Quote 0
                          • O
                            otosan-maker @cepics
                            last edited by

                            @cepics said in ATOM LITE + OLED Unit 1.3" 128 × 64 Display:

                            static constexpr const char* text[] = { text0, text1, text2, text3, text4, text5, text6, text7 };

                            I don´t like it ... please remove it and give a try in the loop with a static string ...

                            And also, put any serial.println() debug code to see what code are you running

                            1 Reply Last reply Reply Quote 0
                            • C
                              cepics
                              last edited by

                              @otosan-maker said in ATOM LITE + OLED Unit 1.3" 128 × 64 Display:

                              ...and give a try in the loop with a static string ...

                              sorry but I don't understand ...

                              I deleted :
                              static constexpr const char* text[] = { text0, text1, text2, text3, text4, text5, text6, text7 };

                              this is the compiling error message

                                  Arduino:1.8.13 (Windows 10), Scheda:"M5Stick-C, Default, 1500000, None
                              
                                  C:\Users\Documents\Arduino\OLEDDAJE\OLEDDAJE.ino: In function 'void loop()':
                                  
                                  
                                  OLEDDAJE:41:39: error: 'text' was not declared in this scope
                                  
                                  
                                     canvas.printf("%04d:%s\r\n", count, text[count & 7]);
                                  
                                  
                                                                         ^
                                  
                                  
                                  Più di una libreria trovata per "SPI.h"
                                  
                                  
                                  Usata: C:\Users\AppData\Local\Arduino15\packages\m5stack\hardware\esp32\1.0.7\libraries\SPI
                                  
                                  
                                  Non usata: C:\Users\Documents\Arduino\libraries\SPI
                                  
                                  
                                  exit status 1
                                  
                                  
                                  'text' was not declared in this scope
                              
                                  Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
                                  
                                  "Mostra un output dettagliato durante la compilazione"
                                  
                                  in "File -> Impostazioni
                              1 Reply Last reply Reply Quote 0
                              • m5stackM
                                m5stack
                                last edited by

                                @otosan-maker said in ATOM LITE + OLED Unit 1.3" 128 × 64 Display:

                                I don´t like it ... please remove it and give a try in the loop with a static string ...
                                And also, put any serial.println() debug code to see what code are you running

                                #include <M5UnitOLED.h>
                                
                                //M5UnitOLED display; // default setting
                                
                                M5UnitOLED display ( 21, 22, 400000 ); // SDA, SCL, FREQ
                                
                                
                                1 Reply Last reply Reply Quote 0
                                • C
                                  cepics
                                  last edited by

                                  tnks a lot !!!!
                                  this sketch is working for me

                                  #include <M5UnitOLED.h>
                                  M5UnitOLED display ( 26, 32, 400000 ); // SDA, SCL, FREQ
                                  M5Canvas canvas(&display);
                                  
                                  static constexpr char text[] = "Hello world ! こんにちは世界! this is long long string sample. 寿限無、寿限無、五劫の擦り切れ、海砂利水魚の、水行末・雲来末・風来末、喰う寝る処に住む処、藪ら柑子の藪柑子、パイポ・パイポ・パイポのシューリンガン、シューリンガンのグーリンダイ、グーリンダイのポンポコピーのポンポコナの、長久命の長助";
                                  static constexpr size_t textlen = sizeof(text) / sizeof(text[0]);
                                  int textpos = 0;
                                  int scrollstep = 2;
                                  
                                  void setup(void) 
                                  {
                                    display.begin();
                                  
                                    if (display.width() < display.height())
                                    {
                                      display.setRotation(display.getRotation() ^ 1);
                                    }
                                  
                                  
                                    canvas.setColorDepth(1); // mono color
                                    canvas.setFont(&fonts::lgfxJapanMinchoP_32);
                                    canvas.setTextWrap(false);
                                    canvas.setTextSize(2);
                                    canvas.createSprite(display.width() + 64, 72);
                                  }
                                  
                                  void loop(void)
                                  {
                                    int32_t cursor_x = canvas.getCursorX() - scrollstep;
                                    if (cursor_x <= 0)
                                    {
                                      textpos = 0;
                                      cursor_x = display.width();
                                    }
                                  
                                    canvas.setCursor(cursor_x, 0);
                                    canvas.scroll(-scrollstep, 0);
                                    while (textpos < textlen && cursor_x <= display.width())
                                    {
                                      canvas.print(text[textpos++]);
                                      cursor_x = canvas.getCursorX();
                                    }
                                    display.waitDisplay();
                                    canvas.pushSprite(&display, 0, (display.height() - canvas.height()) >> 1);
                                  }
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post