Over the last weeks we have received several e-mails asking wether the OpenMote-CC2538
could be flashed via UART using the USB-to-UART (FTDI) port on the OpenBase
. The answer was in all cases "Yes, indeed!
", but the devil is hidden in the details (as usual). Let's start by getting back to the basics. The Texas Instruments CC2538 supports flashing through UART or SPI under two conditions as described in the CC2538 User's Guide
. First, if no valid image is found in the Flash memory. Second, forcing it by pulling a configurable GPIO pin of port A to a certain level, e.g. high or low, within 10 us from startup. In both cases the CC2538 will enter a bootloader mode where it can be programmed through either port using the commands described in the CC2538 ROM User's Guide
. Said that, it is technically possible to flash the OpenMote-CC2538
via UART. In fact, it was specifically designed to enable that and there are already certain tools that allow you to do it already: the cc2538-bsl
and the cc2538-prog
. Both are available at GitHub
under an open source license; the first is written in Python and the second is written in C. We have only tried the first one since it is more portable, but we have to say that it works really good! However, with the two first batches of OpenMote-CC2538
boards that we have shipped so far it impossible to do BSL programming out of the box since the Flash image that we loaded to test them after production has a locked bootloader. We know it's a setback, but at that time we thought everyone would be using a JTAG probe to program the boards, since it is more convenient for debugging purposes. Of course, we were wrong and we have changed that. Now all the OpenMote-CC2538 boards that we ship come with a Flash image that has an unlocked bootloader. Thus, for all those that have an OpenMote-CC2538
shipped prior to July 1st you will need a JTAG, for example the Segger J-Link
, to upload a Flash image that has the bootloader unlocked. You can find information on how to upload the Flash image using the Segger J-Link here
. In the upcoming weeks we will publish a tutorial that describes in detail how to unlock the bootloader and program the OpenMote-CC2538 using the cc2538-bsl, so stay tuned. The OpenMote team.