Calling on the community for offering a Low-cost wifi option

@ Baxter
how do i change the idle state of the clock?

@ MikeCormier

Well, it’s set in SPI configuration (CC3000Driver.cs):


  //make our spi (mode 1)
            spi = new SPI(new SPI.Configuration(
                (Cpu.Pin)(-1),        // SS-pin (we will manually do it)
                false,                // SS-pin active state (low)
                1,                    // The setup time for the SS port YYY 50 uSec
                1,                    // The hold time for the SS port
      CPOL -->  false,                // The idle state of the clock (low)
      CPHA -->  false,                // The sampling clock edge (trailing)
                100,                // The SPI clock rate in KHz
                spiMod));    // The used SPI bus (refers to a MOSI MISO and SCLK pinset)


The correct CPOL, CPHA signals for mode 1 should be output to your CC3000 module if your wiring is correct. Valkyrie-MT’s CodePlex code is working just fine to connect. I am currently using an Embedded Adventures module (WRL-CC3000V2) with a Netduino Plus 2 and the module has been connected for about 1 week (e.g. ping ok).

var ap = new AccessPoint() { Ssid = "tplink", Key = "", Security = WifiSecurityType.Open };
//var ap = new AccessPoint() { Ssid = "ret13x", Key = "XXXXXXXX", Security = WifiSecurityType.WPA2 };

The tplink is an access point connected to the main router and ret13x is the main network SSID. All of the modules I have (TI CC3000 Boost, a Parallax seller CC3000 and the wRL-CC3000V2) work as advertised. In any case, you need to determine why the clock idle state is wrong.

That is the exact setting i have for spi.
i’m getting no difference in the clock state(always high) if it is true or false with several main boards boards that i have.

The only thing that comes to mind is,

(1) something wrong in firmware and/or MF for SPI mode 1 (seems unlikely)

(2) your logic analyzer is connected to the wrong pins

With my Saleae Logic, selecting Analyzers --> SPI, a bad clock idle will
show the attached.

How can i order cc3000 wifi module? there are no option to add this module to cart in website( written preview only). kindly suggest me about how to buy this
odule. I want try this module. Thanks in advance.

I have a couple of these,

You can also buy one from Adafruit,

Or, directly from TI; look for CC3000 Boost Module.

Finally got the Adafruit boards to communicate. using

wifi = new CC3000Driver((Cpu.Pin)7, (Cpu.Pin)8, (Cpu.Pin)32, SPI.SPI_module.SPI1);

on a cerb40 with 4.2 firmware

i’m going to try the ghi one next and do the firmware update.
what are the pin outs for the ghi cc3000 module? i need to go through a breakout board so i am doing this manually.

2 Likes

It is standard S socket I thought which confirms to the gadgeteer socket specification:

http://gadgeteer.codeplex.com/wikipage?title=Socket%20Type%20S

more specifically i assume int is connected to pin 3
and cs is pin 6
what about vben is it pin 4 or 5?

also is it 3.3 v or 5 v powered?

Yes it is 3.3V powered module (according to the description).
I would assume ā€œintā€ is on an interrupt guaranteed pin 3 and cs is pin 6.

Not sure about vben, though.

If you can get to the vben’s via on the bottom of the module you can check what pin it is with a multi-meter.

@ Valkyrie-MT,
Downloaded your code update on codplex and the patcher worked great on my 2 Adafruit boards.updates from .19 to 0.6.1.24. Nice work!!
I still cant get GHIs board to communicate have you been able to?
how have you got it connected?

Actually, I wasn’t going to mention that check-in to anyone because I think I broke some stuff… But, the firmware flasher does work :slight_smile: I actually lost about 11 days of work in a disk crash. I am almost back to where I was before. But, my new policy will be to check-in more frequently, even if the code does not fully work…

The GHI device will be awesome. But I am really not a hardware guy; sometimes it works and sometimes it doesn’t and I don’t know why. It is just connected to Socket 1 on my CerbuinoBee. I have added a resistor to it (on one of the SPI lines, can’t remember which) and it has been working for 3 days now perfectly. The GHI device is so close… If I had a scope, I’m sure I could figure out what’s going on…

Pics of the CerbuinoBee with the cc3000

sorry about letting that slip.

by the way thanks for the pics i’ll try the resister on the ghi device.
is it in series on the clock? how many ohms?

Yeah, I think it’s an 80 or 100 ohm resistor on the SPI clock. I’ll take a look tonight to double check.

Woohoo, first time patching and my original boost went from 19 to 24. And that succeeded in connecting the boost to the CerbuinoBee on 4.2 with the Adhoc profile. And not using any resistors at all.


CC3000 Wifi Patch Programmer
Starting up CC3000...
Sending - Simple Link Start
Response Received -- Simple Link Start Confirmed
Setting Event Mask
Response Received -- Event Mask confirmed
Requesting SP Version
Response Received -- SP Version is 0.6.1.19
Requesting Buffer Size
Response Received -- Buffer Available: 6, Size: 1500
Configuring DHCP
Response Received -- DHCP Configured. 
The thread '<No Name>' (0x4) has exited with code 0 (0x0).
Shutting down CC3000...
Starting up CC3000...
Sending - Simple Link Start (2)
Response Received -- Simple Link Start Confirmed
Handling Response for OpCode: 0201, Payload: 0401020100
Handling Response for OpCode: 0201, Payload: 0401020100
Handling Response for OpCode: 0201, Payload: 0401020100
FAT: 4C530000F301A0015100A0019303001093130010932300209343002093631000A1631000B3634000F36340003164000433680002836A1000336A50000000000000000000
Your MAC address is: 08002856D381
WRITE IT DOWN!!!!!!!!!!!!!!!!!!  
If this patch fails, you may need to restore it manually!  
If you lose your MAC address, it is gone forever!
Radio Stuff: 03000101101000272727272727272727272727272723252525252525252525232323230000000000000000000000000000000000000000005050505050505050505050505050505050505050505050505050505050505050505050017780501F22252527501F22252527501F222525271E2D01020202020011111511150F0EFF

****  PATCHING FIRMWARE NOW *****   -- PLEASE WAIT!
Writing File 4
Writing File 5
******* FIRMWARE UPDATE COMPLETE *******
Rebooting with new firmware (fingers crossed)
Shutting down CC3000...
Starting up CC3000...
Sending - Simple Link Start
Response Received -- Simple Link Start Confirmed
Setting Event Mask
Response Received -- Event Mask confirmed
Requesting SP Version
Response Received -- SP Version is 0.6.1.24
Requesting Buffer Size
Response Received -- Buffer Available: 6, Size: 1500
Configuring DHCP
Response Received -- DHCP Configured. 
The thread '<No Name>' (0x5) has exited with code 0 (0x0).
WOO HOO, Firmware successfully patched!
The thread '<No Name>' (0x1) has exited with code 0 (0x0).
Done.
The program '[5] Micro Framework application: Managed' has exited with code 0 (0x0).

And the missing pic running some examples on the firmware 24 bases:

NetworkDiscovery - Picked up 4 out of 6 thru my pc’s wifi but it did not pick up the wifi ap just a few inches away where my pc is connected. Different SSIDs. Works grand though, let it run in a loop several times with a 5 second delay and it was stable and consistent, great job.

Found 4 WiFi Networks:
SSID - Signal Strength - Security

renorbert 48 Secured
AK16-US 83 Secured
ZeHage3 32 Secured
WLAN-EC5BD6 30 Secured

DNS Test - Ran just through with expected debug output but how to see the CC3000 was advertised correctly ?

InternetTime - Didn’t work in my setup.

WebServer - Running but only once, after hitting F5=Refresh in the browser, in ran forever refreshing.

PatchProgrammer worked as stated before.

So far it is quite stable I must admit … at least running the several examples and switching the projects. I’m using VS2012 and deploying to MF 4.2.

On the way to 4.3 … and long running tests …

2 Likes

[quote=ā€œPiWiā€]
And the missing pic running some examples on the firmware 24 bases[/quote]

Thanks for the report!

Are you powering the CC3000 via the TI board?

If so, have you tried to connect it only to the Cerbuino?

Another alternative lib for cc3000

https://code.google.com/p/cc3000-non-blocking-lib/