🤖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

      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