Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

Available: Smart Config details needed to create Windows Phone app

CC3000

  • Please log in to reply
4 replies to this topic

#1 George Hawkins

George Hawkins

    New Member

  • Members
  • Pip
  • 3 posts

Posted 08 October 2013 - 12:24 PM

I've put together a post that takes an in depth look at how a Smart Config client works:
 
 
I know this is a bit off topic as it's not really related to the netduino.
 
I see that @baxter, @hanzibal and others, in particular @Valkyrie-MT, have been putting in a lot of working creating a CC3000 managed driver for the .NET Micro Framework:
 
 
One of the cool features of the CC3000 is obviously Smart Config. And obviously you can use any of the available Smart Config clients to setup your CC3000 enabled device.
 
However, while there are iOS, Android and Java applet clients, there's currently no .NET client.
 
I see on the TI CC3000 related forum that Valkyrie-MT is keen to do one:
 
 
And I've seen Valkyrie-MT say he has a good idea what's going on in Smart Config after watching the network traffic:
 
 
So maybe people already know all the necessary details? If not then I've tried to cover everything major in my post mentioned up above.
 
And then to add AES support there are a few details in this post:
 
 
Most of the AES post is non-technical, but in the middle there's a bit about setting up the AES cipher in Java which might be a starting point for doing the same in .NET.
 
I have created a Java Smart Config client with AES support and no TI closed source component so I can confirm this isn't too hard to do.
 
So if I've left out any necessary details in my blog posts please just follow up with me.
 
/George
 
PS @Valkyrie-MT - I was Googling for Smart Config and Windows Phone and was amused to find that it was the same person interested in this as the one I'd just been sharing a discussion with on the TI forums about mDNS  :)


#2 George Hawkins

George Hawkins

    New Member

  • Members
  • Pip
  • 3 posts

Posted 10 October 2013 - 10:12 AM

I've added a third final post to my short series describing how Smart Config works:

 

http://depletionregi...-keyphrase.html

 

It covers actually emulating the CC3000 behavior and actively recovering the SSID and keyphrase transmitted by any Smart Config application without needing to be able to decrypt the relevant wifi traffic.

 

I do this using a combination of tshark (the command line version of Wireshark) and a small decoder program I wrote in Java (which is available on GitHub and is described in the post).

 

This should enable one to test the behavior of any Smart Config application one writes, i.e. one can see what a CC3000 would be able to reconstruct from the data transmitted by the application.



#3 Valkyrie-MT

Valkyrie-MT

    Advanced Member

  • Members
  • PipPipPip
  • 315 posts
  • LocationIndiana, USA

Posted 10 October 2013 - 10:43 PM

George,

 

What you have done here is phenomenal!  This is exactly what was needed to create  an integrated client app to configure the cc3000.  What a great contribution!

 

-Valkyrie-MT



#4 baxter

baxter

    Advanced Member

  • Members
  • PipPipPip
  • 415 posts

Posted 11 October 2013 - 05:39 AM

Hi George,

Welcome to the Forum. It's nice to finally encounter someone who knows about Smart Config. Your Blog topics contain a wealth of information ... many thanks for access to your work.

 

I have never been able to get Smart Config to work. I tried many times with a TI MSP430G2553 and a CC3000 Boost, but with no success using the TI iPad App and the PC Java applet. Valkyrie-MT's .NET Micro Framework managed code port is progressing nicely,
http://cc3000.codepl.../list/changeset
I am now working exclusively with this code and a WRL-CC3000V2 module from Embedded Adventures on a Netduino Plus 2. The CC3000 has been updated to SP Version 0.6.1.24.

 

I tried Valkyrie-MT's Smart Config Example with the TI apps, but again no success. This is strange because he demonstrated a working Smart Config. I also tried your net.betaengine.smartconfig-ui.jar program, but I got the message: "The AES key must contain exactly 16 characters". I am using a key with 8 characters so it won't run (not quite up to changing the keys of all my wireless stuff). I also tried your program with a Tplink pocket router connected to my main router as an access point with a fixed IP address and open security with SSID = "tplink", G only, but again with no success. This access point works with Valkyrie-MT's other example applications.

 

I am beginning to think it must be related to the G/N problem you mentioned; or perhaps not using a 16 character key. However, other G devices seem connect OK. My router is an ASUS RT-N56U using exclusively 2.4GHz. Under wireless mode, there are 3 modes,

  • Auto
  • N Only
  • Legacy
  • and a checkbox, entitled B/G Protected

I have tried Auto, legacy and the checkbox. The checkbox is a bit of a mystery as to what it does. In any case, changing these doesn't seem to have any effect on the non-successful outcome. By the way, what host hardware are you using?



#5 George Hawkins

George Hawkins

    New Member

  • Members
  • Pip
  • 3 posts

Posted 11 October 2013 - 09:55 AM

@Valkyrie-MT - thanks for the positive feedback  :)

 

I've added an answer to the question "How does TI CC3000 wifi smart config work?" on the StackOverflow sister site electronics.stackexchange.com. I know it's a not really acceptable to canvas for votes but if you like what I've written please consider voting for my answer as I think it's the most complete one. I'm looking for my 15 seconds of fame!
 

@baxter - sorry to hear you're not having more success with Smart Config. I don't have any obvious suggestions. I've been using the Adafruit CC3000 breakout board with their driver code for the Arduino rather than any Netduino related logic.

 

First thing I'd say though is to try and get things working without using AES. I hope it's clear that AES key has nothing to do with your overall network setup - it is part of an optional extra layer of protection and is used to encrypt your network password when it is being transmitted to a CC3000 enabled device. So simply don't configure an AES key when using the CC3000 driver on your device and don't enter an AES key in your Smart Config application.

 

And I would stick with the TI iPad app until you've got things working - TI's Java applet and my desktop Java application both use the closed source TI Java library. This library has someissues - including the one you pointed out, unlike the iOS and Android apps it imposes an arbitrary length constraint on the AES key - it must be exactly 16 letters long.

 

Your wifi options sound confusing  :( I use OpenWRT which isn't famed for user friendliness but there I have a simple choice between either n or g or mixed mode.

 

I have successfully used my iPad, communicating with my AP using 802.11n, to setup up my CC3000 via Smart Config - I think n is only an issue if Smart Config is running on a device capable of the higher MIMO dependant speeds - and this doesn't seem to be the case with smartphones and iPads. So I'd go back to auto on your AP (which I assume corresponds to mixed mode) and use your iPad.

 

Beyond that I don't have any real ideas  :(

 

Good luck,

 

/George






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.