An Arduino sketch to upgrade a TI CC3000 WiFi module to the latest firmware
C C++ Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
TISource
TISource1.12
Adafruit_CC3000_4Patching.cpp
Adafruit_CC3000_4Patching.cpp.backup
Adafruit_CC3000_4Patching.h
Adafruit_CC3000_4Patching.h.backup
CC3000Patch.ino
README.md
cc3000_common.cpp
cc3000_common.h
ccspi.cpp
ccspi.h
debug.cpp
debug.h
evnt_handler.cpp
evnt_handler.h
hci.cpp
hci.h
host_driver_version.h
netapp.cpp
netapp.h
nvmem.cpp
nvmem.h
security.cpp
security.h
socket.cpp
socket.h
wlan.cpp
wlan.h

README.md

This project is abandoned!

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.




The Arduino CC3000 Firmware Upgrader

Version 0.1 - September 19, 2013 - Chris Magagna
This will upgrade a CC3000 to: Service Pack Version 1.24 Release Package 1.11.1

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:

  1. Quit the Arduino IDE, if running
  2. Move the folder "Adafruit_CC3000_Library" out of your Library. This code uses a custom version of their library, and the two can't coexist. You won't be able to compile / upload this program if Arduino sees them both.
  3. Edit the pin assignments CC3000_IRQ, CC3000_VBAT, and CC3000_CS for your setup, as necessary.
  4. Wire up your CC3000 to your Arduino
  5. Upload this sketch to your Arduino
  6. Open the Serial Monitor with baud rate 115200
  7. Use option 0 to verify everything is working (see notes below)
  8. Use option 4Y to back up your CC3000's info to your Arduino's EEPROM
  9. Use option 6Y erase the CC3000's current firmware
  10. Use option 7Y to restore your CC3000's info from Arduino EEPROM
  11. Use option 8Y to update the first part of the new firmware
  12. Use option 9Y to update the second part of the new firmware
  13. Use option 0 to verify the CC3000 is now working with your new firmware

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:

  1. Restart your Arduino
  2. Use option 5D to generate a new random MAC address and load the T.I. defaults
  3. Use option 6Y erase the CC3000's current firmware
  4. Use option 7Y to restore your CC3000's info from Arduino EEPROM
  5. Use option 8Y to update the first part of the new firmware
  6. Use option 9Y to update the second part of the new firmware
  7. Use option 0 to verify the CC3000 is now working with your new firmware