But they're not making a big deal in their product description or tutorial about what many people find the most exciting feature of the CC3000.
This is the ability to tell the CC3000 your network name and password without having to hardcode it in your Arduino code.
This has been a big problem for Internet of Things enthusiasts: you ship a small wifi enabled embedded device to an end user, it doesn't come with a screen or keyboard so how does the end user tell it the name and password for their wifi network?
TI think they've cracked it with the CC3000. You install a simple little app on your smartphone or desktop and you enter your network name and password into the app and it then auto-magically transmits these details to the CC3000 enabled device.
TI call this technology Smart Config.
Note: other people have come up with completely different solutions to this problem , e.g. Electric Imp use what they call BlinkUp - where an application running on a smartphone flashes its screen to pass the data optically to the device.
Adafruit have included a sketch that demonstrates Smart Config in their CC3000 repository.
You've probably already downloaded this if you've worked through the library section of their CC3000 tutorial.
They don't cover the Smart Config sketch in the tutorial but you can find it in the "examples/smartconfigtest" subdirectory of their library.
If you upload this sketch to your Arduino and look at its output on the serial console, you'll see it going through some initial setup and then you'll see:
Code: Select all
Waiting for SmartConfig connection (~60s) ...
I've written a blog post covering where you can get a Smart Config app for iOS, Android, Mac OS X, Windows and Linux here.
Smart Config isn't perfect yet and this may be why Adafruit aren't making a big deal about it. In particular the TI Java library used for Mac OS X, Windows and Linux doesn't work under some circumstances if the machine you're running it on is connected to your wifi access point using 802.11n - this is covered in more detail in my blog post.
TI have provided ok Smart Config apps for iOS and Android, but their implementation for desktop OSes was a rather unsatisfactory Java applet.
I've developed a more normal stand alone application and I'd be interested in your feedback.
It's now ready - above you can see how it looks on Mac OS X, Windows 8 and Ubuntu 12.04. You can find all the details here:
http://depletionregion.blogspot.ch/2013 ... lient.html
I'd really appreciate any feedback on how you get along using either the ready to go binary distribution or compiling things up yourself and running from source.
Before people get too excited only the UI is open source, it still depends on a closed source library from TI.
I've also put together blog posts on:
- How a CC3000 enabled device announces its presence once it has successfully connected to a network - http://depletionregion.blogspot.ch/2013 ... twork.html
- How to tell what 802.11 protocol you are currently using to connect to your wifi access point and how to force the use of a particular protocol - http://depletionregion.blogspot.ch/2013 ... -or-n.html
I apologize in advance for my TL;DR style - the DNS-SD/mDNS related post in particular is way too long for what it covers.
Again any feedback is really very much appreciated,
/George