🤖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

    Scheduled Pinned Locked Moved Atom
    15 Posts 3 Posters 25.5k Views
    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.
    • m5stackM Offline
      m5stack
      last edited by

      just use the M5GFX library.

      https://github.com/m5stack/M5GFX

      1 Reply Last reply Reply Quote 0
      • C Offline
        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 Offline
          cepics
          last edited by

          some tips???

          1 Reply Last reply Reply Quote 0
          • O Offline
            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 Offline
              cepics
              last edited by

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

              1 Reply Last reply Reply Quote 0
              • C Offline
                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 Offline
                  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 Offline
                    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 Offline
                      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 Offline
                        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 Offline
                          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 Offline
                            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 Offline
                              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

                              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                              With your input, this post could be even better 💗

                              Register Login
                              • First post
                                Last post