pdf-icon

Arduino Quick Start

2. Devices & Examples

Basic/Gray/M5GO MicroSD Card

Basic/Gray/M5GO MicroSD Card related APIs and example program.

Example

Compilation Requirements

  • M5Stack Board Manager version >= 2.1.4
  • Board selection = M5Core
  • M5Unified library version >= 0.2.5
  • M5GFX library version >= 0.2.7
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
#include <Arduino.h>
#include <SPI.h>
#include <SD.h>
#include <M5Unified.h>
#include <M5GFX.h>

#define SD_SPI_CS_PIN   4
#define SD_SPI_SCK_PIN  18
#define SD_SPI_MISO_PIN 19
#define SD_SPI_MOSI_PIN 23

void setup() {
  M5.begin();

  M5.Display.setTextFont(&fonts::Orbitron_Light_24);
  M5.Display.setTextSize(1);

  // SD Card Initialization
  SPI.begin(SD_SPI_SCK_PIN, SD_SPI_MISO_PIN, SD_SPI_MOSI_PIN, SD_SPI_CS_PIN);
  if (!SD.begin(SD_SPI_CS_PIN, SPI, 25000000)) {
    // Print a message if SD card initialization failed or if the SD card does not exist.
    M5.Display.print("\n SD card not detected\n");
    while (1)
      ;
  } else {
    M5.Display.print("\n SD card detected\n");
  }
  delay(1000);

  // Write TXT file
  M5.Display.print("\n SD card write test...\n");
  auto file = SD.open("/WriteTest.txt", FILE_WRITE, true);
  if (file) {
    file.print("Hello, world! \nSD card write success! \n");
    file.close();
    M5.Display.print(" SD card write success\n");
  } else {
    M5.Display.print(" Failed to create TXT file\n");
  }
  delay(1000);

  M5.Display.print("\n SD card read test...\n");
  if (SD.open("/TestPicture01.png", FILE_READ, false)) {
    M5.Display.print(" PNG file 01 detected\n");
  } else {
    M5.Display.print(" PNG file 01 not detected\n");
  }
  if (SD.open("/TestPicture02.png", FILE_READ, false)) {
    M5.Display.print(" PNG file 02 detected\n");
  } else {
    M5.Display.print(" PNG file 02 not detected\n");
  }
}

void loop() {
  // Read PNG file and draw picture
  M5.Display.drawPngFile(SD, "/TestPicture01.png");
  delay(1000);
  M5.Display.drawPngFile(SD, "/TestPicture02.png");
  delay(1000);
}  

Prepare a MicroSD card, format it to FAT32, and place two 320*240 resolution PNG images in the root directory, named TestPicture01.pngTestPicture02.pngimages in the root directory, named Sample Image 1 and Sample Image 2. (If the resolution of the images is not 320*240, the program will decide the display method based on presets, which may cause display issues.)

Insert this SD card into the Basic/Gray/M5GO, ensuring the SD card's contacts face the same direction as the Fire's screen. Copy the code above into Arduino IDE, then compile and upload it to the Basic/Gray/M5GO。

This program will create a text file WriteTest.txt on the SD card and write a string into it, then loop and display the two PNG images from the SD card.

API

Basic/Gray/M5GO MicroSD card section uses the built-in Arduino SD library and the drawPngFile function from the M5GFX library. For more related APIs, refer to the documents below:

On This Page