API and example programs related to the PaperS3 microSD card.
#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.
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: