First, the driver is a work in progress (some stuff does not work), but it’s totally usable right now! The driver is completely Managed code C# communicating completely over UART. I have added a gadgeteer port to one of my TI CC3100 Boost modules and it is working well. From a communication perspective, it’s rock solid actually.
Connect to wifi with SSID and Password (No SmartConfig or WPS, yet)
Internet Time example using client UDP sockets
Support for the integrated Dynamic HTML capability!! With this feature alone, you could do a web service and custom pages with the integrated web server.
Also, I have successfully sent an email using google’s SSL encrypted e-mail server on the CC3100 (not using my driver though). However, I have a Secure socket method coded, and it just needs debugging before that will work!
Agreed, what we need now is a way to simply turn the device usable for wider tests, and custom board/module if that makes sense. The Element14 price on the module here in AUS isn’t that great ($44 plus postage) so we really need someone who has quantity power to build and get the price down for us
Great question. Before this, I’d never used Uart on an embedded device. However, the cc3000 was very difficult to get working and stable over spi. My fear was that TI had a slightly different implementation of SPI. I had to add resistors on mosi, miso, and clk to make it work, and I’m still not sure why it was necessary. So, when i started with the cc3100 I decided to try uart first and do spi as a fallback. But, Uart worked immediately and I haven’t thought about it since. Also, since the web server is embedded, the bandwidth needed is going to be low, so even at the uart speed of 115200, it is probably excessive for nearly all use cases. Having said that, the driver can be made to support spi. I probably won’t do it, but you probably would just need a new constructor for the driver class and modify the read and write methods. Probably very similar to the cc3000 driver.
My next focus will be local name resolution. Maybe LLMNR, mDNS, and NetBios. Most of the code is already there from my work on the cc3000.
Also, I want to make a real web service using this dynamic html stuff. And, work out the SSL sockets.
All that will likely be done in the next couple weeks.
What I really want is the cc3100mod. That is the module TI is about to release that can be more easily added to a hobbyist board.
Yeah, we need a module. But until TI releases the cc3100mod, all anyone can do is modify the cc3100boost. I soldered on a gadgeteer socket onto mine last night. I’ll post the details if others are interested in making one.
Another cool thing… Since TI’s firmware update runs over uart on the PC, if there was a gadgeteer module, it could be updated with a simple PC adapter to connect USB to uart plus a converter to a gadgeteer socket. I could probably throw that together with parts I already have lying around. Heck, a USB to gadgeteer u socket might already exist for all I know…
Ok, just a quick note. The cc3100 driver works great. Not long after my last post, I got the profile stuff working and successfully implemented the AutoConnect. Also, methods wrapping the Access Point mode are used and it works great. I just checked in the latest to http://cc3100.codeplex.com .
I have already integrated the cc3100 into my old project and it immediately worked far better than the cc3000 ever did. So, at this point I encourage everyone to just use it. This driver and the cc3100 have some amazing capabilities.
P.S. I put the SmartConfig implementation on hold… for a variety of reasons. #1 - Under a variety of circumstances, Smartconfig does not work, so a backup way to pair would always be necessary. Two reasons SmartConfig does not always work – heavy packet traffic or 5GHz wifi. #2 - Other than making the user connect to an AP to configure, AutoConnect is no worse (from an end-user perspective) than SmartConfig (note: encryption can easily be added onto AutoConnect).
Still on the To do list: SSL socket testing, handling device reset (although it’s never been necessary yet), Reset profiles with push-button.
Note: although a custom web server example could work with TCP sockets, using the integrated Web server offers too much benefit and speed to even consider this. In fact, by offloading the web server, it just leaves the host CPU more responsive. Also, services can be implemented using the dynamic page rendering without using sockets. Trust me, unless you plan on implementing an SSL web server (good luck), I would not bother with the a socket based web server.
Yeah, SSL client TCP sockets are a key reason for my move to the cc3100. As with other commands, I sniffed serial communications while running the TI example. In this case, I successfully opened an SSL connection to GMail’s mail server and sent a message successfully. I captured all the message commands and implemented the special socket opening. I have not yet tested it though, but having seen the commands, I have little doubt that it will work.
If you have a cc3100, let me know and I’ll throw together what the example code should look like and you can test it for me. My intent is to have the SSL socket support and a higher level API for easy use of the Windows Notification Services.
the CC3100MOD module is meant to be a good reference design, but I haven’t seen them start selling them yet. You can see the reference design info but its not really usable for a punter to make a board.
@ PiWi - Yeah, we have no data sheet or components yet for the cc3100 module. As soon as the datasheet is available, I’ll design a board for some prototyping and maybe a gadgeteer version. But, right now we are still in a holding pattern waiting for TI. The last I heard, the datasheet was going to be available in “early November”, so it might be any day now. And, I would hope that modules will be available within a month.