Using the built in MicroSD card slot with Arduino involves installing the Adafruit Fork of the SdFat library, and running the provided example code.
The MicroSD card slot is located at the end of the board between the Analog pins and the 6-pin AVR-ICSP header.

Library Installation
You can install the Adafruit Fork of the SDFat library for Arduino using the Library Manager in the Arduino IDE.
Click the Manage Libraries ... menu item, search for Adafruit SDFat and select the SDFat - Adafruit Fork library:
// SPDX-FileCopyrightText: 2025 Liz Clark for Adafruit Industries // // SPDX-License-Identifier: MIT /* SD card read/write This example shows how to read and write data to and from an SD card file The circuit: * SD card attached to SPI bus as follows: ** MOSI - pin 35 ** MISO - pin 36 ** CLK - pin 34 created Nov 2010 by David A. Mellis modified 9 Apr 2012 by Tom Igoe modified 14 Feb 2023 by Liz Clark modified 25 Aug 2023 by Kattni Rembor modified 18 Feb 2025 by Tim Cocks This example code is in the public domain. */ #include <SPI.h> #include "SdFat.h" #define SD_CS_PIN 39 SdFat SD; FsFile myFile; SdSpiConfig config(SD_CS_PIN, DEDICATED_SPI, SD_SCK_MHZ(16), &SPI1); void setup() { // Open serial communications and wait for port to open: Serial.begin(115200); while (!Serial) { yield(); delay(10); } // wait till serial port is opened delay(100); // RP2040 delay is not a bad idea Serial.print("Initializing SD card..."); // Retry mechanism for SD card initialization while (!SD.begin(config)) { Serial.println("initialization failed! Retrying..."); delay(1000); // Wait for a second before retrying } Serial.println("initialization done."); // open the file. note that only one file can be open at a time, // so you have to close this one before opening another. myFile = SD.open("test.txt", FILE_WRITE); // if the file opened okay, write to it: if (myFile) { Serial.print("Writing to test.txt..."); myFile.println("testing 1, 2, 3."); myFile.println("hello world!"); // close the file: myFile.close(); Serial.println("done."); } else { // if the file didn't open, print an error: Serial.println("error opening test.txt"); } // re-open the file for reading: myFile = SD.open("test.txt"); if (myFile) { Serial.println("test.txt:"); // read from the file until there's nothing else in it: while (myFile.available()) { Serial.write(myFile.read()); } // close the file: myFile.close(); } else { // if the file didn't open, print an error: Serial.println("error opening test.txt"); } } void loop() { // nothing happens after setup }
Upload the sketch to your board and open up the Serial Monitor (Tools -> Serial Monitor) at 115200 baud. A test text file will be created and written to on the SD card. Then, the text file will be read back with its contents printed to the Serial Monitor.
Page last edited February 24, 2025
Text editor powered by tinymce.