Five Best Arduino Shields

Adafruit Motor Shield

oomlout/Flickr/CC BY-SA 2.0

The success and versatility of the Arduino platform have been driven by its community of supporters and the expansion shield developed by the community. Arduino shields bring nearly an endless opportunity for expansion and projects, only limited by what shields are available or your own ability to make a new shield. Luckily with the abundance of shields, almost any feature can already be found on an Arduino shield.

Shield Evaluation Criteria

A few factors went into the selection of these Arduino shields. The number one evaluation criterion was capability, followed by support, documentation, feature set, and cost. Limited Arduino compatibility and soldering requirements are noted where possible. Be sure to make sure the shield is compatible with your Arduino variant before purchasing any shield.

Arduino Touchscreen

Few shields add the kind of capability that a full-color touchscreen does. While not a capacitive touchscreen, the Liquidware Touch Shield combines a 320x240 OLED screen with a resistive touchscreen. One of the best things about this shield is that it only uses two digital pins (D2 and D3) beyond power and ground. To allow the Arduino to display pictures the Touch Shield uses an additional processor on the underside of the shield; otherwise, the Arduino's capacity would be maxed out attempting to drive the display alone. The Liquidware Touch Shield costs $175 and is compatible with the Arduino, Duemilanove, and Mega. The shield uses a SubProcessing graphics API and graphics library is available. If additional expansion freedom is not needed, Adafruit also has a similar shield which includes a microSD card slot as well, for $34.95, although 12 pins are taken up by the shield, 13 if the microSD card is used.

Color Display, MicroSD and Joystick

A good display is often needed in projects and the 1.8" color TFT display shield is a great one. It boasts a 128x160 pixel TFT display with 18-bit color. The shield also includes a microSD card slot and a five-way joystick for navigation. One of the best parts about this shield, other than all the great features, is its price of $35. Unfortunately, the header does need to be soldered on, so have a soldering iron handy! Adafruit does have an open-source graphics library, as well as example code for Arduino support. Compatible with 3.3v and 5v Arduinos.

Xbee Shield

Standalone microcontroller systems are great, but adding the Xbee radio standard brings a wireless communication capability between Arduinos. Sparkfun's Xbee Shield is compatible with most Arduinos (just watch that USB port) and supports the Xbee radio modules. The shield supports the Xbee radio Series 1, Series 2, Standard and Pro models. Unfortunately to use the Xbee wireless communication you will need two sets of the radio modules and shields. The Xbee Shield comes in at $15.95 and the modules start at $17.95 each. Beware, soldering may be required to attach the headers!

Cellular Shield

Another wireless alternative is to give your Arduino cell phone capabilities. The Sparkfun Cellular Shield does just that, bringing SMS, GSM/GPRS, and TCP/IP capabilities to the Arduino. You will need an activated SIM card to make use of these capabilities (pre-paid or from your phone) and an antenna. The Cellular Shield runs $100 and you will also need a GSM/GPRS antenna module that runs $60. Beware, the Cellular Shield does require some soldering.


The last wireless communication shield to make the list is the WiShield which adds WiFi capability to the Arduino. Boasting 802.11b certification with 1-2Mbps throughput through the SPI interface, the WiShield supports infrastructure and ad hoc networks, and WEP, WPA, and WPA2 encryption. The WiShield is available for $55. The WiShield is compatible with Arduino Diecimila and Duemilanove. Alternatively, Sparkfun's Wi-Fi Shield for $85 has similar capabilities with the addition of a microSD card slot and is compatible with most Arduino boards, with some modifications required for older revision Arduinos.

Was this page helpful?