Low cost BLE programmer fail

In my quest to find a low cost programmer for the CC2540 and CC2541 series of Bluetooth Low Energy Soc devices, commonly used as BLE beacons, I bought a device sold as a “Zigbee debugger emulator” from eBay.

On paper this device looked very promising, it contains a Silicon Labs C8051F320 which is the same as used in Texas Instruments own CC-Debugger, and it also claim to emulate the Ti SmartRF04EB device, which is part of TI’s BLE evaluation board.

The board arrived a few days ago, and on plugging it into my PC, it was detected as a SmartRF04EB device, and after I downloaded and installed TI’s SmartRF Studio, the software recognised the board and indicated that the firmware was out of date and needed to be updated by SmartRF Studio.

As it appeared that the board would not work with SmartRF Studio without doing an update, I pressed the button, but the update failed, with a message about needing to change some link settings.

The board had 3 empty pins on it, which looked like a jumper could be connected, so I soldered on 3 pins and carefully checked with a current meter that shorting the middle pin to either of the outer pins, would not draw a large current.

The connecting 2 pins seems to cause a LED to light up, labelled run, and connecting the other 2 pins didnt seem to do anything, which I presume is the default condition.

In “run” mode the USB device vanished from the PC, and I was unable to update, nor did it update with the lump link in the default position

Undeterred, I did some research and found what appeared to be the original supplier details on this board.


Which seemed to contain the pinout for the 10 pin connector to the BLE module, which seemed identical to the pinout of the TI CC-Debugger.

So I wired the programmer to a HM10 (CC2540) using Reset, clock, data, power, gnd and power sense.

But unfortunately Smartrf Studio still didn’t show the SmartRF04 as having any devices connected to it.

Using an oscilloscope I looked to see if the Reset line was being toggled at any time, or whether the data or clock lines were changing, but none of them were. So my best guess is either the connection required are different to those published on the original supplier website, or the board is defective, or there is a chance that my attempt to update the firmware failed and caused problems. However I don’t think its a firmware update issue, as the device still appears on USB as before, and SmartRF Studio still reports the programmer and its version number.

Its possible that if the firmware on the C8051F320 was updated to a newer version it may work, but that would require a Silicon labs programmer, which would defeat the reason I bought the board, i.e because it could be a budget programmer for CC2540 and CC2541 devices.

Since I ordered this device, 3 or 4 weeks ago, some clone CC-Debuggers have come onto the market for $16 USD (21 AUD), so I have now ordered one of those, and I will post again when it arrives and hopefully I will finally be able to replace the firmware on my BLE modules

8 Responses

  1. strpcb

    did you get it work with this new debugger ?

  2. Roger Clark

    Its a long story, but yes, I did manage to program the HM10 with the CCDebugger clone I bought from eBay.

    However, the first CC Debugger I bought from eBay did not have any firmware in it. So was useless.
    So I had to order another one, after first confirming with the vendor that it work straight away and not need to be programmed its self.

    And in the end, I borrowed another CCdebugger, and read back the firmware from my 2nd Cc Debugger and flashed it into the one that came without firmware, so that I now have 2 working CC Debuggers.

    The only problem is, that to develop for HM10 you have to use the very expensive IAR compiler ( because TI have only compiled their BlE API libraries for the IAR compiler.
    (Well, i have heard rumoured that if you are a big company and sign an NDA you can get TIs source code and compile using a free compiler, but that was only a rumour)

    Which means you can reslly only Flash the HMSoft firmware or BlueBasic ( as Bluebasic is released a s source code and a precompiled binary)

    That is… Unless you can lay your hands on the IAR compiler, e.g through work etc

  3. Dmitry

    By the way, no need to buy a CC-Debugger in order to flash BLE112 – you can use Arduino (even very basic one) to do the job: http://magictale.com/2884/flashing-ble112-with-arduino-based-cc-debugger/
    Good luck,

  4. Roger Clark

    Thanks Dmitry

    I do now have 2 CC-Debuggers, but being able to program using an Arduino is really interesting.

    I wonder if it work work with my STM32 (Mini Maple) boards, They are already 3.3V so I would not need the voltage dividers

    But I’m not sure if the USB Serial implementation in Arduino-STM32 would be fast enough


    Thanks again for the tip.

  5. Dmitry

    Thanks Roger,

    I don’t see why STM32 board would not be fast enough. An entry level Arduino with 115200 bps baudrate needs only 80 seconds to flash the module. Anything more advanced like Arduino-STM32 should be only better IMHO. Given that Mini Maple pretends to be Arduino it should be really easy to port the code across.

    Thank you,

  6. Roger Clark

    I think the libmaple (Arduino core) USB Serial implementation is not very fast.

    I tried to program an ESP8266 using a STM32 (Arduino) as a USB to Serial bridge at 115200 but it didnt work (but I’m not sure why)

    But I’m sure a STM32F103 would be fast enough using ST’s own USB serial implementation



  7. darth_llamah

    Have you seen this: https://github.com/RedBearLab/CCLoader ?

  8. Roger Clark

    No. I’d not seen that.

    It will save people having to buy the expensive CC Debugger.