TI’s CC3000 WiFi Chip Gets A Library

About six months ago, Texas Instruments released a simple, cheap, single-chip WiFi module. At $10 a piece in quantities of 1000, the CC3000 is a much better solution to the problem of an ‘Internet of Things’ than a $50 Arduino Ethernet modules, or even the $30 Electric Imp. All indications, especially the frequent out of stock status for the dev board on TI’s web site, show the CC3000 will be a popular chip, but until now we haven’t seen a CC3000 library for the Arduino or other microcontrollers.

[Chris] just solved that problem for us with a CC3000 WiFi library for the Arduino. He ported TI’s MSP430 CC3000 library to the Arduino, allowing even the bare-bones Arduino Uno to connect to a WiFi network with just a handful of parts. The code itself takes about 12k of Flash and 350 bytes of RAM, giving anyone using the CC3000 enough room left over to do some really interesting stuff. There’s even a slimmed down library that uses somewhere between 2k and 6k of Flash, making an ATtiny-powered web server a reality.

There are a few caveats in using the CC3000 with an Arduino; it’s a 3.3 Volt part, so you’ll need a level shifter or some resistors. Also, the chip draws about 250 mA when it’s being used, so you’ll need a beefy battery if you want your project to last an entire day of use.

Now that the library is out of the way, be on the lookout for a CC3000 breakout board. Here’s one, but expect some more on the market soon.

43 thoughts on “TI’s CC3000 WiFi Chip Gets A Library

    1. Hi, I’m the author of the library.

      I am very excited about the Spark Core too, it seems like it could be the ultimate easy way to get Arduino + WiFi. Unfortunately so far their documentation (http://docs.sparkdevices.com) is really sparse, so at this point I don’t know how much of the CC3000 API they’ll make available to Arduino code or if they’re going to require everything to go “through the cloud”. Also, the Kickstarter’s finished but there’s no specific date on when you can actually buy (and receive) one.

      In the meantime I’ve got the CC3000EM (evaluation module) working with a Teensy 3.0 right now, and it’s pretty fancy.

    2. The Sparkcore isn’t really an Arduino to me. It’s has a Wiring port that runs on ARM. I believe they are really building on top of the work that Leaflabs did. Don’t expect libraries you download for Arduino to just work. They oftentimes will not because the Sparkcore is an ARM platform and not AVR.

    1. You don’t have to buy 1,000 of them at once, that’s just the number you have to buy to get the $10/ea bulk rate. Both Mouser and Digi-Key have them listed for individual sale (though they naturally cost more).

  1. Yeah, they’re $10 if you buy a thousand of them. They’re more like $20 in single unit quantities, which is the price most readers of this site would be interested in. W

  2. Still costly, i prefer an RT5350F based ready to use UART-WiFi-ETH (soldering and breadboarding friendly! ) module! it’s only $16 in dx (shipping included!), AT-command manageable, so an arduino library it’s an easy task to develop!, TI it’s in good direction but price have to decrease more !!

    1. I had never seen that module before, thanks.

      A quick glance at it tells me the biggest difference between the RT5350F and the CC3000 is the documentation. There’s not much at all in the datasheet for the RT5350F; the TI chip has a pretty complete implementation of Berkeley sockets etc. The devil, as they say, is in the details.

      1. Product Page
        http://www.hlktech.net/product_detail.php?ProId=39

        Datasheet & circuit examples
        http://www.hlktech.net/inc/lib/download/download.php?DId=20

        Configuration tools
        http://www.hlktech.net/inc/lib/download/download.php?DId=18

        The module features a router-on-a-chip and external memory with OpenWRT so the whole TCP/IP stack is programmed there.

        Just add PHY transformer and RJ45 connector, and there is LAN solution in the same chip!!. I think it’s the perfect solution for Arduinos!!

  3. I don’t know it is just me or what, but TPlink MR3020 wifi router modded with OpenWRT + little configuration provides more powerful solution at a cheap price (around $20). Especially when local store sells this kind of sophisticated module/parts at a steep price and low stock.

    1. The Arduino IO pins (MOSI, CS, SCK, Enable) will be 5V, which will blow up the module. You need level shifters to convert these signal pins to 3.3V so the CC3000 can use them.

      Also note that even though Arduinos have 3.3V pins they can only supply about 50mA of current. The CC3000 needs 275mA when transmitting.

        1. Um…no…? I’m not sure I understand your question. My statement above was on interfacing the IO pins of the CC3000 (which aren’t 5V tolerant) with Arduino IO pins (which are 5V).

    1. Or Arduino story a day…

      It’s no wonder america is failing. Young engineers and techs know absolutely nothing. Why should they? Google, Arduino sketchs and libraries, wikipedia. Never ask them anything they can’t look up… I get tired of teaching people who have electronics degrees – ELECTRONICS. “Which way does this resistor go? I don’t want to get the polarity wrong” “Why are these capacitor things used on the power supply lines?” “Can you show me how to solder?” It never ends… Don’t even get me started on programming… I forgive you if you don’t have a degree, but when you come out here to the work force and show up not know jack shit….

  4. On the power requirements: It is transmitting you know, you just can’t avoid putting some power in to have a range of any significance I expect. Laws of physics apply.

  5. just got a druinofun shield to work. had to use the correct library in arduino IDE. but it works. now i can make a cheap wifi mega clone with sd card on my own pcb for much less. THANK THANK THANK YOU

Leave a Reply to Chris MagagnaCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.