pdf-icon

Arduino Quick Start

PaperS3 microSD Card

API and example programs related to the PaperS3 microSD card.

Example Program

Compilation Requirements

  • M5Stack Board Manager version >= 2.1.4
  • Board selection = M5PaperS3
  • 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 47
#define SD_SPI_SCK_PIN 39
#define SD_SPI_MOSI_PIN 38
#define SD_SPI_MISO_PIN 40
void setup() {
M5.begin();
M5.Display.setRotation(1);
M5.Display.setFont(&fonts::FreeMonoBold18pt7b);
// 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 960*540 resolution PNG images in the root directory, named TestPicture01.png and TestPicture02.png. (You can also directly download Sample Image 1 and Sample Image 2. If the resolution of the images is not 960*540, the program will decide the display method based on presets, which may cause display issues.)

Insert the SD card into PaperS3, ensuring the SD card contacts are facing the same direction as the PaperS3 screen. Copy the above code into Arduino IDE, compile it, and upload it to PaperS3.

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

The PaperS3 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