🤖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 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 Offline
        cepics
        last edited by

        nobody??

        1 Reply Last reply Reply Quote 0
        • m5stackM Online
          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 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