Interface your mote to a CC3200

Interface a CC3200 to a mote using the SmartMesh C library!

The CC3200 is a Wi-Fi single-chip wireless MCU. Besides its Wi-Fi capabilities, it is a regular ARM Cortex-M4 microcontroller. This means you can interface it to a SmartMesh device: wire the boards up, run the C-library on the CC3200 and get it to talk to a SmartMesh IP mote or manager in minutes. And if you're using the CC3200 LaunchPad, you do all of that from the trivially simple to use Energia tool!

This recipe follows the exact same flow as the ArduinoDue example of the C Library.

Wiring the boards together

You first need to connect the serial port of your SmartMesh device to the serial port of the CC3200 LaunchPad. Although we are assuming you are using a DC9003 board, the process is equivalent for any SmartMesh device.

To avoid erroneous connections, we recommend you power off the SmartMesh device and the LaunchPad boards.

Furthermore, remove the battery from the SmartMesh device. It will be powered by the LaunchPad.

http://energia.nu/pin-maps/guide_cc3200launchpad/ shows you the pinout of the CC3200 LaunchPad.

CC3200 LaunchPad pinDC9003 pin
namepin
GNDany pin marked "GND"GND
VCCany pin marked "VCC"VSUPPLY
TX (1)header P1, pin 9RX
RX (1)header P1, pin 10TX
GNDany pin marked "GND"TX CTSn
VCCany pin marked "VCC"RX RTSn

Geeky detail

The connections above allow the following:

  • the CC3200 board powers the DC9003 mote (through its VCC pin)
  • the two boards can talk over serial (through the TX/RX pins)
  • the connections to the DC9003's TX CTSn and RX RTSn pins are there to effectively disable flow control. That is, it tells the DC9003 that the CC3200 is always ready to receive bytes over its serial port.

Install CC3200 LaunchPad drivers

Follow the instructions at http://energia.nu/guide/guide_windows/ to install the drivers for the CC3200 launchpad.

http://energia.nu/ contains similar pages for Linux and Mac OS.

Install Energia

  • Download the latest Energia from http://energia.nu/
  • No need to install it, just launch the program. On my Windows machine, I created the C:\energia\ folder and unzipped the program there.
  • To start the program, I just double-click on C:\energia\energia-1.6.10E18\energia.exe
  • Add support for the CC3200 by opening the board manager...
  • Look for "CC3200" and click "Install"
  • Select the CC3200 launchpad as the board
     

Download source code

  • You are going to run the "Triangle2Manager" sample application from the SmartMesh C library developed for the Arduino Due
  • Download the source code from https://github.com/dustcloud/sm_clib

Import the Triangle2Manager Sample Application

This application is documented in the ArduinoDue page of the C Library. When running this application, the CC3200 regularly sends a 2-byte number to the manager.

  • In the source code, zip the following directories

    directoryzip name
    C:\Users\Thomas\Desktop\sm_clib-master\sm_clib\sm_clib.zip
    C:\Users\Thomas\Desktop\sm_clib-master\examples\arduino\Libraries\IpMgWrapper\IpMgWrapper.zip
    C:\Users\Thomas\Desktop\sm_clib-master\examples\arduino\Libraries\IpMtWrapper\IpMtWrapper.zip
    C:\Users\Thomas\Desktop\sm_clib-master\examples\arduino\Libraries\TriangleGenerator\TriangleGenerator.zip
  • Use the "Add .ZIP Library..." utility to add all 4 libraries to Energia

  • Verify that all 4 appear in the available libraries
  • Open C:\Users\Thomas\Desktop\sm_clib-master\examples\arduino\Triangle2manager\Triangle2manager.ino using Energia
  • Make sure your CC3200 launchpad is connected to your computer and upload the sketch onto your board

Running the Triangle2Manager sample application

The Triangle2manager sample application interacts with a SmartMesh IP mote. It drives the mote through the process of joining the network, and then periodically sends a 2-byte value (a triangle wave) to the SmartMesh IP manager.

The SmartMesh IP mote you connect to needs to operate in "slave" mode.

To see the data received by the SmartMesh IP manager, use the SmartMesh SDK SensorDataReceiver sample application:

  1. Connect your SmartMesh IP manager to your computer.
  2. On the computer, start the SensorDataReceiver sample application from the SmartMesh SDK, and connect that to the SmartMesh IP manager.
  3. Load the Triangle2manager.ino sketch onto your board.
  4. Reset the SmartMesh IP mote and open the Serial Monitor.
  5. On the monitor, you can follow how your SmartMesh IP mote joins the network.
  6. After the mote has joined, the slider on the SensorDataReceiver application is set to the value the mote periodically sends.
  7. The state machine implemented in the Triangle2manager.ino sketch gracefully handles the resets.

Where Next?

The Triangle2Manager just sends a hardcoded 2-byte value to the manager. It's a great starting point to develop code which sends readings collected from other sensors connected to the CC3200.