Tough microSD card related APIs and example programs.
#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_MOSI_PIN 23#define SD_SPI_MISO_PIN 38 void setup() { M5.begin(); M5.Display.setRotation(1); M5.Display.setFont(&fonts::FreeMono12pt7b); // 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"); } delay(1000);} void loop() { // Read PNG file and draw picture M5.Display.drawPngFile(SD, "/TestPicture01.png"); delay(500); M5.Display.drawPngFile(SD, "/TestPicture02.png"); delay(500);}
Prepare a microSD card, format it to FAT32, and place two 320*240
resolution PNG
images in the root directory. Name them TestPicture01.png
and TestPicture02.png
. (You can also directly download Sample Image 1 and Sample Image 2. If the resolution is not 320*240
, the program will decide the display mode based on presets, which may result in display issues.)
As shown in the image below, use the included 2.5mm hex wrench to loosen the four screws on the back of the device. Open the cover, and the arrow on the right side points to the Tough's microSD card slot.
Insert the prepared SD card into the Tough, making sure the metal contacts face the same direction as the Tough's screen. Copy the above code into the Arduino IDE, compile, and upload it to the Tough.
This program will create a text file WriteTest.txt
on the SD card and write a short message. Then, it will loop and display the two PNG images from the SD card.
The Tough microSD card functionality uses Arduino’s built-in SD
library and the drawPngFile
function from the M5GFX
library. For more details, refer to the following documentation: