I've given up on the CC3000, it's just too buggy and problematic.
TI themselves say this on the CC3000 page:
TI recommends CC3200 & CC3100 for all new and existing embedded Wi-Fi & Internet of Things applications.
And they've removed references to the CC3000 on their SimpleLink WiFi page at http://www.ti.com/ww/en/simplelink_embedded_wi-fi/home.html
I'm going to leave these pages here so people searching the web for help don't find dead links, but I recommend you abandon your quest to make this half-baked module work. Best of luck to you.
This code released into the public domain, with no usefulness implied blah blah blah.
!!!!WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING ! ! WARNING! This will delete the current firmware on your CC3000. If this ! upgrade fails you will be left with a useless piece of metal where ! your nice WiFi module used to be. ! !!!!WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING
Having said that, I've tested this code now on 2 CC3000 modules I made myself, an AdaFruit CC3000 breakout (http://www.adafruit.com/products/1469), and an official TI CC3000EM (https://estore.ti.com/CC3000EM-CC3000-Evaluation-Module-P4257.aspx) and so far so good.
This code has been tested with an Arduino Nano upgraded to the OptiBoot bootloader and a Uno R3. The code takes up nearly the entire 32K Flash space of an ATMega328 so it won't fit on a board with a larger bootloader, e.g. the Duemilanove, stock Nano, etc.
This version does NOT work with the Teensy 3. I'm working on it!
Many thanks to AdaFruit for the Adafruit_CC3000 library.
This code is based on a combination of the TI patch programmers: PatchProgrammerMSP430F5529_6_11_7_14_24windows_installer.exe PatchProgrammerMSP430FR5739_1_11_7_14_24windows_installer.exe Both are available on the T.I. website.
To use:
For options 0 - 3 you just type in the number and hit Enter or press 'Send' but options 4-9 require you to also type UPPERCASE Y or D to confirm you want to make a (potentially) destructive change.
If the CC3000 initializes but you can't read the MAC or the firmware version then everything else may be working but the CC3000's NVRAM may be corrupt. You may be able to recover from this by: