This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Just purchased very old CC3000 devices from Mouser UK

Other Parts Discussed in Thread: MSP-EXP430FR5739, CC3200, CC3100

HI,

We are a professional IOT product consultancy.

I have a problem. We have just had some Custom hardware manufactured that uses the CC3000MOD.

The parts that we purchased from Mouser UK were Release Pack 1.10.1 / Service Pack 1.10 - at least 18 months old.

I need to update these parts to Service Pack 1.28 / release Pack 1.13.

The Custom Hardware we have gives me access through test Pads to the CC3000 SPI Bus.

I have looked at the following page

http://processors.wiki.ti.com/index.php/CC3000_Patch_Programmer

Which talks about using 

MSP-EXP430FR5739 - MSP-EXP430FR5739 Experimenter Board

CC3000 Eval Module CC3000EM

However the Evaluation Module is now discontinued.

therefore, please could you advise me the simplest way to upgrade a CC3000MOD device, already placed on a PCB, using TI hardware /firmware and software, as it is not at all clear from the web site?

Also because the firmware is so old, I understand that i will need to use an earlier version of the patch programmer to begin with - so migrate up the versions. Is this true, and does it have an impact on the question above?

Regards

Giles Hutchison

Actifi Limited 

  • What type of MCU is your custom board using? The easiest option might be to port the latest patch programmer to your MCU and upgrade the CC3000 firmware directly from there.

    Whoever designed your board and firmware should have put upgrading the CC3000MOD as a requirement, since TI does not guarantee that any specific version of the firmware will be on the chips when they are sold.

    P. S. Even though the CC3000EM is discontinued from the TI store, you can still find it around:

       http://www.findchips.com/search/cc3000em

    Also the CC3000BOOST is still available and it also works with the MSP-EXP430FR5739 Experimenter Board:

       http://www.ti.com/tool/CC3000BOOST?keyMatch=CC3000BOOST&tisearch=Search-EN

  • Ivor Sargoytchev said:

    What type of MCU is your custom board using?

    The Micro is an NXP LPC1347 running mbed, quite successfully. 

    Ivor Sargoytchev said:

    The easiest option might be to port the latest patch programmer to your MCU and upgrade the CC3000 firmware directly from there.

    I strongly question this. As mentioned in my first post, I am specifically concerned that such an early version of the CC3000MOD firmware will not support the latest patch programmer. I don't particularly want to port multiple Patch Programer versions to our platform.

    As mentioned in my first post, I would rather use TI hardware / software.

    (and give the TI hardware access to the CC3000MOD using a bed of nails / flying leads.).

    Ivor Sargoytchev said:

    "Whoever designed your board and firmware should have put upgrading the CC3000MOD as a requirement, since TI does not guarantee that any specific version of the firmware will be on the chips when they are sold."

    We designed the Board - it was designed with upgrading the firmware in mind. The Micro can be tristated allowing access to the SPI bus and other control pins on the CC3000MOD.

    My question still is 

    What TI hardware/ firmware and software can I use to upgrade a standalone CC3000MOD device from V1.10 to V1.28 ?

    Many thanks for your input

    Kind regards

    Giles Hutchison

  • Hi Giles,

    A couple of important points:

    1. All versions support the latest patch programmer, no matter how old. This is true, because the patch programmer is not really patching from one version to the next. Instead it contains the entire firmware in a form of two large arrays. This is actually a good thing as you can go up or down any version of the firmware you like.

    2. There is no hardware that can upgrade a standalone CC3000MOD device, since such a hardware would require a socket, and as far as I know no such socket exists. Of course you can build one yourself from testing probes, but it is not really worth it. The best thing to do is design your firmware, so that it can patch the CC3000MOD once it is already on a PCB.

    So, I still think that the best option for you is to just port the latest patch programmer and run it.

    The only other option for you is to buy a  MSP-EXP430FR5739 Experimenter Board and a CC3000BOOST board. Then figure out how to patch the CC3000 on the BOOST board (it takes about an hour learning time, installing all the software etc.). Then you need to disconnect the CC3000BOOST and connect and power up your own board through SPI.

    But why do all this when you can just port the patch programmer into your MCU and then be able to put any version of the firmware you like?

  • Hi Ivor,

    Thanks for your reply - its helpful.

    Could you point me at the relevant Patch software, so that I can evaluate the porting work that needs doing?

    Do I need Host and Target software? 

    We are running Windows 7 PC's and simply downloading code into our MCU using an SSD interface provided by the NXP LPC1347 Micro.

  • Hello Giles,

    when I remember correctly you can download the patch software from here:

    http://www.ti.com/tool/CC3000-PATCH-MSP

    (Earlier there was a single step version, don't know if latest software is only done as two steps.

    This was done because used MCU had too less flash to hold both parts of flash.

    The single part version be perhaps be found with "CC3000 patch programmer LM4F232" (Google),

    but TI web server gave me error again and again).

    After installation you find the patch programmer source in a similar location like this:

    C:\ti\PatchProgrammerLM4F232H5QD-4.11.7.14.24\Patch Programmer Source\Source\Patch Programmer

    (depends on patch programmer MCU and version you have downloaded).

    BTW: Normally you can't break CC3000 when patching, I was able to get all CC3000 back to life even after patch programmer porting failures. Sometimes TI software must be changed a bit to get it back to life. Also search this TI forum for some pitfalls and problems, which you perhaps get...

    To get the patch programmer working, you normal startup must be running and you must be able to access the CC3000. Then patch programmer is an "easy" thing.

    Patch programming is a MCU/CC3000 thing, no PC is involved in this. No software on PC is needed, once the patching is implemented in the MCU.

    Note: Are you sure you want to use the old CC3000 and not switch to CC3100 or CC3200?

    Best regards,

    Martin

  • Great reply from Martin as usual! Just a couple of additional points I would like to make:

    My suggestion that it would be easier for you to port the patch programmer into your MCU's firmware was based on a couple of assumptions, which might not be correct. I assumed that you have ported most of the host driver for your MCU and have the NVMEM and all the dependent layers below it:

    If this is the case, porting the patch programmer should be a piece of cake for you, since it sits on top of the NVMEM API layer. But if this is not the case, perhaps the best way to go is your suggestion, which is to get an EXP430FR5739 Experimenter’s board + a CC3000EM or CC3000BOOST and design a connector that plugs your own PCB to the SPI of the Experimenter's board.

    There are great walkthroughs on how to get from zero to patching, programming and debugging an EXP430FR5739 Experimenter’s board + a CC3000EM (or CC3000BOOST) in about an hour or two. Here is one:

    http://www.ti.com/lit/ml/slab066/slab066.pdf

  • Many thanks Ivor!

    Perhaps another idea:

    There is "WiFi DipCortex" (perhaps also other projects with CC3000 and LPC type MCUs), which uses also a LPC1347 and a CC3000. See here

    http://www.soldersplash.co.uk/products/wifi-dipcortex/

    or here (I think this is older page)

    http://www.lpcware.com/content/blog/wifi-dipcortex-lpc1347-wifi-module

    Perhaps they already have some running system and perhaps including patch programmer...

    Or ask them if they offer firmware update to latest firmware version...

    PS: There is a github for the sources, even if I have not seen a patch or patch programmer when I had a quick look

    https://github.com/SolderSplashLabs/WiFi-DipCortex

  • Martin Maurer said:

    Hello Giles,

    when I remember correctly you can download the patch software from here:

    http://www.ti.com/tool/CC3000-PATCH-MSP

    (Earlier there was a single step version, don't know if latest software is only done as two steps.

    This was done because used MCU had too less flash to hold both parts of flash.

    The single part version be perhaps be found with "CC3000 patch programmer LM4F232" (Google),

    Hi Martin,

    Thanks for your reply, it is much appreciated.

    The LM4F232 support stopped some time ago at V1.10.2 We need V1.13.7

    The only platform that appears to support the latest Patch Code is MPS430FR5739 

    Martin Maurer said:

    Note: Are you sure you want to use the old CC3000 and not switch to CC3100 or CC3200?

    These parts aren't available, (except on Launch Pads) and I suspect won't be to less strategic customers until early Q2 2015, so not viable for us, but thanks for the thought.
  • Hi Giles,

    > The LM4F232 support stopped some time ago at V1.10.2 We need V1.13.7

    when "patching" is running in general, going from one version to the other is just like exchanging two arrays in source code.

    Just throw out the two arrays from V1.10.2 and fill in the two new arrays from V1.13.7.

    Best regards,


    Martin

  • Ivor Sargoytchev said:

    Great reply from Martin as usual! Just a couple of additional points I would like to make:

    My suggestion that it would be easier for you to port the patch programmer into your MCU's firmware was based on a couple of assumptions, which might not be correct. I assumed that you have ported most of the host driver for your MCU and have the NVMEM and all the dependent layers below it:

    Hi Igor, Thanks for the reply, indeed we have.

    Ivor Sargoytchev said:

    If this is the case, porting the patch programmer should be a piece of cake for you, since it sits on top of the NVMEM API layer.

    I don't believe TI have released the source code for the CC3000 Patch Programmer software, this would be a preferred solution.

    Have you or anyone else seen this?

    Having done a great deal of trawling through the TI web site - I agree that the only platform that suports the later versions of the CC3000 Patch software is the EXP430FR5739 

    Also, Its a bit scary that the Links to CC3000 Booster Packs have been removed....

  • Hi Martin,

    Thanks for your feedback.

    Could you elaborate where the two arrays can be located for  V1.10.2 and V1.13.7 ?

    Regards

    Giles

     

  • Hi Martin,

    Just found the two arrays you are talking about in the PatchProgrammer.c file

    Sorry for not hunting first !

    Best regards

    Giles

  • Hi Giles,

    I want to make a few more points clear, as it seems to me that you might have a slightly different impression about the situation.

    • The CC3000 contains a micro controller inside of it. TI would not even comment on the type, even though it is common knowledge that it is some type of ARM based chip. This is why they will most likely never release the source code of the firmware itself.
    • You can update the firmware by using the patch programmer, which should actually be called "CC3000 Flasher".
    • The patch programmer comes with full source code. In contains two large binary arrays with the CC3000 compiled firmware. The patch programmer is meant to run from your MCU and is meant to flash the CC3000 from there.
    • Each version of the firmware is meant to run with the corresponding version of the SDK. This is why the Patch Programmer path includes the SDK version. So if you are running an older SDK on your MCU, you should not upgrade just the CC3000 firmware,but the SDK as well.

    Regarding the CC3000 Booster Pack being discontinued:

    • The Booster Pack was just a collection of things that you can still buy. It included some cheap router, a FRAM experimenter's board and either a CC3000EM or CC3000BOOST.

    Also take a look at the following topic - it was another user asking very similar questions:

    http://e2e.ti.com/support/wireless_connectivity/f/851/p/338070/1182224.aspx#1182224

  • Hi Martin,

    Thanks for this post too.

    We have some WiFi DIP Cortex devices, and have updated CC3000 fimware on their devices.

    Their updating software would probably work on our Hardware, howeverthere is the issue that they are in the Business of selling hardware, so using their software to re-flash our hardware might not be very ethical. I will however get in touch with them to see if they are happy with us doing that / agree some commercial terms with them.

    Regards

    Giles

  • I completely understand that I need to re-flash the code that the Micro runs in the CC3000.

    I was never expecting source code for the CC3000 code - but rather the Patch Programmer.

    Having now dowloaded and installed the software for an MSP430F5529LP and inspected the files, and read posts from Martin, I understand that

    (1) The Patch Programmer source code is included in the LaunchPad / Eval Module download packages. This is what I was looking for, to allow us to potentially port to the LPC1347.

    (2) The CC3000 firmware is contained in a couple of Arrays defined in the PatchProgrammer.c file

    I will check but suspect these are consistent across platforms.

    As noted in my first post, and as you also comment the Patch Programmer software has changed to support modifications in the CC3000 firmware , so multiple Patch Programmer versions may be needed, if the Porting Software route is followed. Not nice. See http://processors.wiki.ti.com/index.php/CC3000_Release_Notes 

    Neither C3000EM or CC3000BOOST are available through the web site.

    Also, thanks for the last link - it looks usefull - I will take a look at that !

    Best regards

    Giles

    Ivor Sargoytchev said:

    • You can update the firmware by using the patch programmer, which should actually be called "CC3000 Flasher".
    • The patch programmer comes with full source code. In contains two large binary arrays with the CC3000 compiled firmware. The patch programmer is meant to run from your MCU and is meant to flash the CC3000 from there.
    • Each version of the firmware is meant to run with the corresponding version of the SDK. This is why the Patch Programmer path includes the SDK version. So if you are running an older SDK on your MCU, you should not upgrade just the CC3000 firmware,but the SDK as well.

    Regarding the CC3000 Booster Pack being discontinued:

    • The Booster Pack was just a collection of things that you can still buy. It included some cheap router, a FRAM experimenter's board and either a CC3000EM or CC3000BOOST.

    Also take a look at the following topic - it was another user asking very similar questions:

    http://e2e.ti.com/support/wireless_connectivity/f/851/p/338070/1182224.aspx#1182224

  • Giles Hutchison said:

    As noted in my first post, and as you also comment the Patch Programmer software has changed to support modifications in the CC3000 firmware , so multiple Patch Programmer versions may be needed, if the Porting Software route is followed. Not nice. See http://processors.wiki.ti.com/index.php/CC3000_Release_Notes 

    This is true, but none of the modifications are in the code needed by the Patch Programmer, so you only need to port the latest Patch Programmer. My point was that you need to port all the changes of the latest SDK into your firmware, in case you have ported an earlier version of the SDK. This is not for the Patch Programmer, but for the operation of your firmware.

    Giles Hutchison said:

    Neither C3000EM or CC3000BOOST are available through the web site.

    Which website are you looking at? They are right here and you can buy them:

    http://www.ti.com/tool/cc3000em#buy

    NRND simply means "not recommended for new design".

    Sorry, I meant:

    http://www.digikey.com/product-search/en?lang=en&site=us&vendor=0&WT.z_cid=ref_findchips0311_dkc_buynow&mpart=CC3000EM

    or:

    http://www.newark.com/texas-instruments/cc3000em/eval-module-cc3000-wireless-network/dp/52W9531?CMP=AFC-SF-T11-US