🤖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.
    • 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 Online
                  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 Online
                          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