cc3000 simple socket demo (not using EthernetInterface) !

Dependencies:   NVIC_set_all_priorities cc3000_hostdriver_mbedsocket mbed

Info

Simple Socket demo application for the wireless CC3000 module.

Warning

The on-board Firmware must be updated to mbed enable the wireless module.
Goto the Component page to get the FirmwareUpdate tool (scroll down to the FirmwareUpdate topic).

Setup

Note

It is recommended to run an initial test WITHOUT security settings.

Changing network parameters in main.h

  • Setup a wireless router with a non-secure wireless connection using the wireless settings stored in main.h
    or set SSID to your wireless router SSID. For now, do not change USE_SMART_CONFIG and AP_KEY,
    only change AP_SECURITY to NONE.

// use smart config
#define USE_SMART_CONFIG 0

 // Default SSID Settings
#define AP_KEY       "test"
#define AP_SECURITY  NONE
#define SSID         "test"
  • By default, DHCP is used to obtain the IP address.
    When you want to use a fixed IP address, set IP_ALLOC_METHOD USE_STATIC_IP and enter your preferred values for STATIC_IP_OCT_x (device IP address) and STATIC_GW_OCT4 (4th number of your gateway IP address) .
    See the next chapter on how to use USE_SMART_CONFIG.

Setting up the Python script

  • Download Python 2.7 from http://www.python.org/download/
    Install it on a computer connected to the router you previously set up (wireless or wired).
  • Download this Python script to the Python2.7 folder (credit : Jim Carver from Avnet).
  • Compile the CC3000_Simple_Socket_demo code and save it to your board.

Running the application for the first time

  • Open a terminal program (eg: TeraTerm) and connect to your board (serial speed : 115200 baud).
  • Press the reset button on your board.
  • Following startup screen will appear :

Note

The version info can be different.
the dots in the MAC address will show your CC3000's real MAC address.

cc3000 simple socket demo.
MAC address + cc3000 info
 MAC address ..:..:..:..:..:..

 FTC        0
 PP_version 3.4
 SERV_PACK  1.11
 DRV_VER    7.14.24
 FW_VER     7.12.14
User's AP setup: SSID: "test", Password: "test", Security: 3

<0> Normal run. SmartConfig will
    start if no valid connection exists.
<1> Connect using fixed SSID without AP_KEY: test
<2> Connect using fixed SSID with AP_KEY: test
<8> Erase all stored profiles.
<9> SmartConfig.


  • For the initial test, select option <1> (Connect using fixed SSID without AP_KEY: ...).
  • If all goes well, the following screen is shown (the IP address can be different):
Attempting SSID Connection.
DHCP request
  Waiting for dhcp to be set.
  Waiting for dhcp to be set.
DHCP assigned IP Address = 192.168.1.100


  • On the computer where you installed Python2.7:
    • Make sure the connection between your computer and the wireless router is active.
    • Open a DOS prompt and go to the folder where Python2.7 is installed.
    • Type following command :
python wigo_test.py -a 192.168.0.101 -p 15000


Note

Don't forget to replace the IP address with the real IP address assigned by DHCP to the CC3000 module.

If a connection is established, the DOS window will show

-----------------
run tcp client
-----------------
connected to  remote ip=192.168.0.101 remote port=15000
Press ENTER ....


In return the controller board will send following info to the serial port:

Connection from: 192.168.1.101


When we press Enter in the DOS window, the controller board will send following info to the serial port:

Connection from: 192.168.0.10
Received: Hello Wi-Go
Sending the message to the server.


And the DOS window will show:

recv from :  data:  Hello Python


Using option <2>

  • In your wireless router, change the non-secure wireless connection to WEP, WPA or WPA2 and enter a security key.
  • In main.h, update AP_SECURITY and AP_KEY with the values you set in your wireless router.
    Valid values for AP_SECURITY are : NONE, WEP, WPA and WPA2
  • Recompile the code and save it to your board. Reconnect the terminal program and press reset on your board.
  • When the selection menu appears, choose option <2>.
    The communication sequence for option <2> is identical as described for option <1> but now a secure connection is used.

Using the application's options <0>, <8> and <9>

  • Options <0> (Normal run) and <9> (SmartConfig) are very similar.
    They both allow us to connect the CC3000 to another wireless network, without changing the pre-configured wireless settings stored in main.h.
    Option <0> will only start SmartConfig if no valid connection exists (First Time Config),
    but if the CC3000 was previously configured using SmartConfig, it will automatically connect using the stored wireless network profile.
  • Option <8> : As there are only 7 profile slots available, this option can be used to erase all stored profiles.
  • Option <9> allows the user to switch to another wireless connection.
    This connection is stored in one of the 7 profiles. More info on profile priorities is available here.


See TI's pages on how to use the SmartConfig tool:

Committer:
Kojto
Date:
Fri Sep 13 18:02:03 2013 +0000
Revision:
1:99076f2d9408
tcp server addition

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 1:99076f2d9408 1 #ifndef DOTCPIP_H
Kojto 1:99076f2d9408 2 #define DOTCPIP_H
Kojto 1:99076f2d9408 3
Kojto 1:99076f2d9408 4 #include "cc3000.h"
Kojto 1:99076f2d9408 5
Kojto 1:99076f2d9408 6 /** TCP/IP Functions
Kojto 1:99076f2d9408 7 *
Kojto 1:99076f2d9408 8 */
Kojto 1:99076f2d9408 9 #ifndef FALSE
Kojto 1:99076f2d9408 10 #define FALSE 0
Kojto 1:99076f2d9408 11 #endif
Kojto 1:99076f2d9408 12
Kojto 1:99076f2d9408 13 #ifndef TRUE
Kojto 1:99076f2d9408 14 #define TRUE 1
Kojto 1:99076f2d9408 15 #endif
Kojto 1:99076f2d9408 16
Kojto 1:99076f2d9408 17 #define SMART_CONFIG_SET 0x55
Kojto 1:99076f2d9408 18 #define TCPIP_PORT 15000
Kojto 1:99076f2d9408 19
Kojto 1:99076f2d9408 20 #define USE_DHCP 1
Kojto 1:99076f2d9408 21 #define USE_STATIC_IP 2
Kojto 1:99076f2d9408 22
Kojto 1:99076f2d9408 23 #define NONE 0
Kojto 1:99076f2d9408 24 #define WEP 1
Kojto 1:99076f2d9408 25 #define WPA 2
Kojto 1:99076f2d9408 26 #define WPA2 3
Kojto 1:99076f2d9408 27
Kojto 1:99076f2d9408 28 // Modify the following settings as necessary for your Wi-Fi Network setup:
Kojto 1:99076f2d9408 29 #define IP_ALLOC_METHOD USE_DHCP // for DHCP assigned IP address
Kojto 1:99076f2d9408 30 //#define IP_ALLOC_METHOD USE_STATIC_IP // for static IP address
Kojto 1:99076f2d9408 31
Kojto 1:99076f2d9408 32 // Default SSID Settings
Kojto 1:99076f2d9408 33 #define AP_KEY "87654321"
Kojto 1:99076f2d9408 34 #define AP_SECURITY WPA2 // WPA2 must be enabled for use with iPhone or Android phone hotspot!
Kojto 1:99076f2d9408 35 #define SSID "test"
Kojto 1:99076f2d9408 36 //#define AP_SECURITY NONE // no security but will connect quicker!
Kojto 1:99076f2d9408 37 #define STATIC_IP_OCT1 192
Kojto 1:99076f2d9408 38 #define STATIC_IP_OCT2 168
Kojto 1:99076f2d9408 39 #define STATIC_IP_OCT3 0
Kojto 1:99076f2d9408 40 #define STATIC_IP_OCT4 103
Kojto 1:99076f2d9408 41
Kojto 1:99076f2d9408 42 #define STATIC_GW_OCT4 1 // Static Gateway address = STATIC_IP_OCT1.STATIC_IP_OCT2.STATIC_IP_OCT3.STATIC_GW_OCT4
Kojto 1:99076f2d9408 43
Kojto 1:99076f2d9408 44 #define REQ_BUFFER_SIZE 400
Kojto 1:99076f2d9408 45
Kojto 1:99076f2d9408 46
Kojto 1:99076f2d9408 47 extern mbed_cc3000::tUserFS userFS;
Kojto 1:99076f2d9408 48
Kojto 1:99076f2d9408 49 extern uint8_t myMAC[8];
Kojto 1:99076f2d9408 50 extern uint8_t SmartConfigProfilestored;
Kojto 1:99076f2d9408 51
Kojto 1:99076f2d9408 52
Kojto 1:99076f2d9408 53 void check_dhcp(void);
Kojto 1:99076f2d9408 54 void start_smart_config(void);
Kojto 1:99076f2d9408 55 void create_tcp_connection(int32_t port);
Kojto 1:99076f2d9408 56 void init_dhcp(void);
Kojto 1:99076f2d9408 57 void run_tcp_server(void);
Kojto 1:99076f2d9408 58 void do_FTC(void);
Kojto 1:99076f2d9408 59 void set_dhcp(void);
Kojto 1:99076f2d9408 60
Kojto 1:99076f2d9408 61 #endif // DOTCPIP_H