For years we've seen all sorts of microcontroller-friendly WiFi modules but none of them were really Adafruit-worthy. Either they were too slow, or too difficult to use, or required signing an NDA, or had limited functionality, or too expensive, or too large. So we shied away from creating or developing a WiFi Arduino shield.

NO LONGER!

The CC3000 hits that sweet spot of usability, price and capability. It uses SPI for communication so you can push data as fast as you want. It has a proper interrupt system with IRQ pin so you can have asynchronous connections. It supports 802.11b/g, open/WEP/WPA/WPA2 security, TKIP & AES. A built in TCP/IP stack with a "BSD socket" interface. TCP and UDP in both client and server mode, up to 4 concurrent sockets. It does not support "AP" mode, it can connect to an access point but it cannot be an access point.

Plug-and-Play Compatible Boards

The CC3000 WiFi Shield is tested and fully compatible with the following boards:
  • Arduino Uno (all revisions)
  • Arduino Duemilanove and Diecimila w/ATmega328 chip
  • Adafruit Menta (remove from tin for WiFi to work)
  • Arduino Mega 2560 (install 6-pin SPI header on shield, see notes below)
  • Arduino Mega ADK (install 6-pin SPI header on shield, see notes below)
This is a complex product and released only recently; compatibility is therefore limited. Additional boards may be supported as the code evolves, but there is no established timeframe nor guarantee that specific boards will ever be included.

Incompatible or Partially-Compatible Boards

This shield may work with other boards with some additional steps:

Arduino Mega 2560, Mega ADK

Both the WiFi and SD card work if 6-pin SPI header and solder jumpers are added as explained in CC3000 guide. With the header installed, you do not need to alter the SD library.

Arduino Leonardo

Does not work; WiFi library has not been adapted for this chip.

Arduino Due

Does not work; WiFi library has not been adapted for this chip.

Arduino Diecimila w/ATmega168 chip

Does not work; insufficient RAM and flash program space.

Pin Reference

The shield uses the following pins:
  • +5V
  • GND
  • Digital pin 3: IRQ for WiFi
  • Digital pin 4: Card Select for SD card
  • Digital pin 5: WiFi enable
  • Digital pin 10: Chip Select for WiFi
  • Digital pins 11, 12, 13 for SPI communication (both WiFi and SD). Even if optional 6-pin SPI header is used, these pins are unavailable for other use.

Untested Boards and Other Notes

  • Arduino Mega 1280: compatibility should be similar to the Mega 2560; 6-pin SPI header and solder jumpers required as explained above for that board.
  • Arduino NG or older: not expected to work due to limited RAM and flash space.
If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!

If experiencing trouble with a board listed as “compatible,” review the introduction for tips and visit the Adafruit Forums for assistance.

This guide was first published on Aug 14, 2013. It was last updated on Jul 22, 2013.

This page (CC3000 WiFi Shield) was last updated on Aug 12, 2013.

Text editor powered by tinymce.