CC3000 Hookup Guide

This Tutorial is Retired!

This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.

Pages
Contributors: Shawn Hymel
Favorited Favorite 3

SmartConfig and FastConnect

This example requires two different Arduino programs but illustrates the steps necessary to use TI's SmartConfig procedure. You could create a program that combines SmartConfig and FastConnect to allow users the option of selecting which method to connect to a network.

When the SmartConfig procedure is run, the CC3000 creates a connection profile in non-volatile memory (note that all previous connection profiles are deleted). The connection profile can be recalled later (even if the CC3000 and Arduino lose power!) to perform the FastConnect procedure, which allows the CC3000 to connect to the last access point stored in memory.

IMPORTANT: You must run the SmartConfig example before you run FastConnect!

SmartConfig

Connect the CC3000 Shield or Breakout Board to an Arduino. Open the Arduino program and select File → Examples → SFE_CC3000_Library → SmartConfig.

Open the SmartConfig sketch in Arduino

Plug in your Arduino board via USB cable, and select the correct COM port and Board type that corresponds to your Arduino. Click the “Upload” button.

Upload SmartConfig sketch to Arduino

Go to Tools → Serial Monitor and change the baud rate to 115200 baud. The program will print "Send connection details from app now!" and you will have 30 seconds to send connection info from the SmartConfig phone app.

SmartConfig sketch waiting for SmartConfig data

On your phone, go to Settings → WiFi (on either iPhone and Android) and connect to a wireless access point (enter your network's password if asked).

Phone WiFi config

Open the SmartConfig app and enter your network's password. Click "Start."

IMPORTANT: You need to click "Start" while the SmartConfig Arduino program is running and is "Waiting to connect..." If the Arduino program times out (you will see Errors printed in the Serial Monitor), reset the Arduino and try clicking "Start" in the phone app again.

TI SmartConfig app

If the CC3000 successfully received the connection packet from the SmartConfig app, you should see a "Connected Successfully" message appear in the app window (note: sometimes this message does not appear, but the CC3000 connects anyway. If this happens, just click "Stop" in the app).

TI SmartConfig success

If everything worked, the CC3000 will connect to an access point and ping www.sparkfun.com, which will be reported in the Serial Monitor.

SmartConfig connection and ping test results

FastConnect

Once you have successfully run the SmartConfig procedure, a connection profile will be stored on the CC3000. We can use that profile to reconnect to an AP by calling fastConnect() in the CC3000 Library. This example illustrates how to use FastConnect.

IMPORTANT: Do not reset the Arduino after running SmartConfig! Leave the Serial Monitor up after a successful SmartConfig and proceed directly to uploading the FastConnect example. If the Arduino is reset, startSmartConfig() will be called, which automatically deletes any connection profiles in memory.

Open the Arduino program and select File → Examples → SFE_CC3000_Library → FastConnect.

Open the CC3000 FastConnect Arduino sketch

Make sure that the correct COM port and correct Arduino board are still selected unded Tools. Click the "Upload" button.

Upload the CC3000 FastConnect Arduino sketch

Go to Tools → Serial Monitor and ensure that the baude rate is 115200 baud. If the FastConnect is successful, it should connect to the network setup by the SmartConfig example and ping www.sparkfun.com.

FastConnect connection and ping test results

If you would like to see how the connection profiles work using non-volatile memory, unplug the Arduino's USB cable for a few seconds and then plug it back in before running the FastConnect sketch again. You will see how FastConnect can connect to a stored profile even if the Arduino and CC3000 lose power!