Arduino Wireless SD Shield Tutorial




About: My name is Randy and I am a Community Manager in these here parts. In a previous life I had founded and run the Instructables Design Studio (RIP) @ Autodesk's Pier 9 Technology Center. I'm also the author ...

As the name implies, the Arduino Wireless SD shield serves two functions. Foremost, this shield allows you to easily interface with Xbee transceiver modules to create mesh networks, and other wireless devices. Secondly, the micro SD socket allows you to store and access a large amount of data. Whether using these functions by on their own or together, this chip greatly enhances the capabilities of a standard Arduino. The best part about this shield is how easy it is to use. In no time flat, you can have its various components up and running.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Plug in the Xbee

Plug in your Xbee modules in order to use the shield as a wireless transceiver.

Make sure the module's pointy end is lined up with the edge of the board.

If you are using the shield for wireless data transfer, you will need two or more of them.

Step 2: Plug It In

Plug your shields into your Arduinos.

Step 3: Features

The wireless SD shield supports Xbee modules. These modules allow for easy wireless serial communication. A standard module has the range of 100 - 300 feet.

It also boasts a micro SD socket. This can easily be interfaced with the Arduino SD library. Unfortunately, this library does not come bundled with the Arduino development environment, so you will have to set it up yourself.

The shield also boasts a perfboard grid for prototyping your own circuit, and a micro switch for toggling between the USB port and micro SD port.

For more technical information visit its official Arduino page.

Step 4: Program the Receiver

Plug one of the Arduinos into the computer. Make certain the micro switch is toggled to the "USB" option.

Upload the following code:

Step 5: Setup the Receiver

Unplug the Arduino from the computer. Toggle the micro switch from "USB" to "MICRO".

Plug the red wire from a 9V battery connector into the Vin pin. Plug the black wire into the GND pin.

Connect the positive leg of an LED to pin D2 and the other leg in series with a 220 ohm resistor to ground.

Plug in your battery.

It is now a standalone receiver.

Step 6: Program the Transmitter

Plug in the Arduino for the transmitter. Make certain the micro switch is toggled to the "USB" option.

Before you upload any code to the Arduino, open the serial monitor. Type in "h" and hit the "send" button. The LED on your receiver should light up. You have made a wireless connection!


Now upload the following code:

Step 7: Setup the Transmitter

Unplug the Arduino from the computer. Toggle the micro switch from "USB" to "MICRO".

Plug the red wire from a 9V battery connector into the Vin pin. Plug the black wire into the GND pin.

Connect a 10K resistor between pin D2 and ground. Also connect a push button switch between pin D2 and 5v.

Plug in your battery.

It is now a standalone transmitter.

Step 8: Prepare the SD Card

Before you can use the micro SD card, it needs to be formatted to either FAT16 or FAT32.

On a Mac:
  • Connect your SD card
  • Open Disk Utlity
  • Select the Disk
  • Click "Erase" at the top of the window
  • Select "Volume Format: MS-DOS(FAT)" and hit "erase"
  • It is now FAT32 formatted
On a PC:
  • Open "My Computer"
  • Right-click on the disk and select "Format"
  • Select "FAT" and click "start"
  • It is now formatted to FAT16
Once the disk is formatted, the next thing you have to do is make sure that you have the SD Card Library. For instructions on how to setup the library, check out the bottom of Adafruit's extremely thorough micro SD card tutorial.

Plug the SD card into the socket on the shield.

To test the SD card, plug the Arduino into the computer and upload the following code:

Arduino Challenge

Participated in the
Arduino Challenge

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    16 Discussions


    Question 11 months ago on Step 8

    Hello eveyone! Thanks for the tutofial. Well, I've tried it many times but no satisfaction: 'Initializing SD card...initialization failed!' is what I get.
    My SD card is 16GB formatted as FAT32 on Windows platform.
    Please help me. Thanks in advance...

    2 answers

    Reply 11 months ago

    when trying to format it on windows, I have these options: FAT32, exFAT and NTFS.


    1 year ago

    Hey there. I would like to use this, but to send datas directly to my computer via Wifi. Do you think I can adapt this to make only a wireless transceiver with my computer working as a receiver? (i'm new in this. I'm sure there is better board to use for my project but they are all sold out....)


    3 years ago

    Hi all

    I try to get this to work using two Mega 2560 instead of Unos. They dont show any sign of life. Has anyone done this with Megas or knows a solution ?


    Jorge LuisP1

    4 years ago on Introduction

    Hi all, I have an issue when trying to get data to my xbee connected to an Arduino Arduino Wireless SD Shield, not recivo data, this is my code.

    void setup() {

    Serial.begin(9600); // opens serial port, sets data rate to 9600 bps


    void loop() {

    if (Serial.available() >0) {

    byte temp=;




    I connect the XBee to a plate and see that XCTU and receipt data, but using the Arduino UNO and Arduino Wireless SD Shield does not work I do not get anything, please aid that could be wrong?

    I am sending data from another xbee connected to a PIC 16F877A using a 9600 baud rate on both sides.

    Please help me.. Thanks.


    5 years ago on Step 8

    Dear friends, thanks for the tutorial.

    Anyway I would like to ask some additional help.

    In my sketch I need to open a file from the SD in order to get two values (void loop) from a list, then I get two values from my sensor, and in the last step I want to save these two values into another or even same file into the SD. The problem is that if I close the SD file (a .txt) to switch the SD sate from READ to WRITE every time I return to the SD to read from the list I will be at the first data from the list, and I would like to continue reading the list.....

    1. open SD txt file (there is a list of data: 1. sassa 2.dadad 3.ffsfsf 4.fdfdf

    2. get first value of the list: sassa (READ SD)

    3. get value from my sensor: s = 122

    4. save that value into the file (WRITE SD).

    so my question is: how could I avoid to always return to sassa, into the first list position each time I acces the SD file, just because I have closed the SD file in order to be allowed to switch to WRITE the SD ?

    many thanks!


    5 years ago on Introduction

    Great tut !
    Question: I see that on the image with the SD card that you're using a 4GB. I read that the maximum SD size is supposed to be 2GB. Did you try it successfully with a 4GB ?


    7 years ago on Introduction

    Awesome! I was considering using a xbee zig bee pro for a model airplane/drone i am working on. Supposedly this particular xbee has a range of 2 miles outdoors line of sight. I want to use this shield to run the xbee during flight and to record flight data.
    However, i cannot figure out how many pins the shield uses? This will determine if I need an uno or a mega

    1 reply

    Reply 7 years ago on Introduction

    Also! Looks like the xbee I have chosen draws about 205mA in transmit and 50mA in receive mode. Do you think this board adds much to that? I don't really know how much current the SD card dongle consumes...

    Also, I assume (whoops) that I can program the xbee to switch between transmitter and reciever mode? This is why I want a transceiver instead of a normal model airplane radio. I need to send and receive data from the plane

    Hammock Boymawat

    Reply 7 years ago on Introduction

    Roughly 100ft indoors 300ft outdoors. There are 3 types of series 1 xbees so the one with the antenna probably has the best range. Sparkfun has a great information page