For years we’ve seen all sorts of microcontroller-friendly WiFi modules but none of them were really Adafruit-worthy. Either they were too slowor too difficult to useor required signing an NDAor had limited functionalityor too expensiveor too large. So we shied away from creating or developing a WiFi Arduino shield.
The CC3000 hits that sweet spot of usabilityprice and capability. It uses SPI for communication (not UART!) so you can push data as fast as you want or as slow as you want. It has a proper interrupt system with IRQ pin so you can have asynchronous connections. It supports 802.11b/gopen/WEP/WPA/WPA2 securityTKIP & AES. A built in TCP/IP stack with a “BSD socket” interface. TCP and UDP in both client and server modeup to 4 concurrent sockets. It does not support “AP” modeit can connect to an access point but it cannot be an access point.
We carefully wrapped this little silver module into an Arduino shield. We also added a microSD socket and a reset button. It has an onboard 3.3V regulator that can handle the 350mA peak currentand a level shifter to allow 3 or 5V logic level. The antenna layout is identical to TI’s suggested layout and we’re using the same componentstrace arrangementand antenna so the board maintains its FCC emitter compliance (you’ll still need to perform FCC validation for a finished productbut the WiFi part is taken care of). Even though it’s got an onboard antenna we were pretty surprised at the rangeas good as a smartphone’s.
Each order comes with one fully assembled and tested shieldsome male header for attaching it to an Arduino and a 2×3 female header that you can use to plug it into the ICSP port of a Mega. We don’t have a detailed tutorial yet but to get you startedwe’ve got a fully working Arduino library that is based off of TI’s codebase but adapted for use with the AVR. We also have example code showing how to scan the SSID’sconnect to your access point and run DHCPdo a DNS lookup to IP addressping a site and connect to a remote TCP socket such as a website and print out the page.
Please note the hardware is goodbut the library code does not yet support all of the CC3000’s functionality. At this momentSSID scanningconnectionDHCPDNS lookuppingand UDP/TCP client & TCP server connections (eg connect to a website and grab data or host a very short website) all work and are tested with example code.
For use with Arduino Uno & Mega only at this time – we’ll try to get the code ported to the Leonardo/Due at some point but no ETA.