This code allows you to use the TD Loader application to update the firmware on the Telecom Design module serially.

Dependencies:   mbed

Update the firmware of your TD1208 or TD1204 modem

Load this program into the Nucleo board to allow for a serial update of the TD-module firmware. You can use the following tool to load the binary file for the Telecom Design modem: /media/uploads/quicksand/tdloader.exe (made by Telecom Design).

Components / QW SIGFOX Development Kit
The QW ecosystem is designed to rapidly explore the Sigfox network.

Step 1: program the Nucleo board

Import this program, compile and load it onto the Nucleo board.

/media/uploads/quicksand/import.png

/media/uploads/quicksand/import_2.png

/media/uploads/quicksand/compile_program.png

Optionally: you can download the bin only /media/uploads/quicksand/bootloader.bin

/media/uploads/quicksand/flashbin.png

Step 2: Check current firmware version

Open a serial terminal (like Putty) and check the current firmware version using the following command: AT&V

/media/uploads/quicksand/putty.png

/media/uploads/quicksand/atv.png

Hint: You can find the connected COM-port using device manager.

/media/uploads/quicksand/devicemanager_1.png

/media/uploads/quicksand/devicemanager_2.png

If the version doesn't match, then an update is needed. If the version is already up-to-date, no further actions are needed.

Step 3: Flash with TD Loader tool

Launch TDLoader.exe, fill in the COM-port, fill in the path to the binary and select the correct modem version (TD1204 or TD1208). Click on "Acquire" to begin the flashing. The software will first sync up with the modem and then start updating the firmware.

/media/uploads/quicksand/tdloader.png

/media/uploads/quicksand/sync.png

/media/uploads/quicksand/upgrading.png

/media/uploads/quicksand/done.png

Once the upgrade is done, close the TD Loader software and press the reset button next to the Telecom Design modem.

Step 4: Reset the board using the reset button

Once the board has been reset, check if the firmware version now corresponds with the firmware you've just flashed.

/media/uploads/quicksand/updated.png

Committer:
quicksand
Date:
Tue Nov 03 10:40:08 2015 +0000
Revision:
0:1ccc476f2eb0
This code allows you to update the firmware inside the Telecom Design modem on the QW shield using the TD Loader tool.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
quicksand 0:1ccc476f2eb0 1 #include "mbed.h"
quicksand 0:1ccc476f2eb0 2
quicksand 0:1ccc476f2eb0 3 DigitalOut LED_0 (PB_6);
quicksand 0:1ccc476f2eb0 4
quicksand 0:1ccc476f2eb0 5 //Virtual serial port over USB
quicksand 0:1ccc476f2eb0 6 Serial pc(USBTX, USBRX);
quicksand 0:1ccc476f2eb0 7 Serial modem(PA_9, PA_10);
quicksand 0:1ccc476f2eb0 8
quicksand 0:1ccc476f2eb0 9 bool once = true;
quicksand 0:1ccc476f2eb0 10
quicksand 0:1ccc476f2eb0 11 int main() {
quicksand 0:1ccc476f2eb0 12 pc.baud(9600);
quicksand 0:1ccc476f2eb0 13 modem.baud(9600);
quicksand 0:1ccc476f2eb0 14 char c;
quicksand 0:1ccc476f2eb0 15
quicksand 0:1ccc476f2eb0 16 LED_0 = 1;
quicksand 0:1ccc476f2eb0 17
quicksand 0:1ccc476f2eb0 18 char responsebuffer[3];
quicksand 0:1ccc476f2eb0 19
quicksand 0:1ccc476f2eb0 20 while(1) {
quicksand 0:1ccc476f2eb0 21 if(modem.readable()) {
quicksand 0:1ccc476f2eb0 22 pc.putc(modem.getc());
quicksand 0:1ccc476f2eb0 23 }
quicksand 0:1ccc476f2eb0 24
quicksand 0:1ccc476f2eb0 25 if(pc.readable()) {
quicksand 0:1ccc476f2eb0 26 c = pc.getc();
quicksand 0:1ccc476f2eb0 27 responsebuffer[0] = responsebuffer[1];
quicksand 0:1ccc476f2eb0 28 responsebuffer[1] = responsebuffer[2];
quicksand 0:1ccc476f2eb0 29 responsebuffer[2] = c;
quicksand 0:1ccc476f2eb0 30 if( once && responsebuffer[0] == 'A' && responsebuffer[1] == 'T' && responsebuffer[2] == 'Z' )
quicksand 0:1ccc476f2eb0 31 {
quicksand 0:1ccc476f2eb0 32 LED_0 = 0;
quicksand 0:1ccc476f2eb0 33 wait(3);
quicksand 0:1ccc476f2eb0 34 modem.printf("ATZ\n\rATZ\n\r");
quicksand 0:1ccc476f2eb0 35 wait(0.1);
quicksand 0:1ccc476f2eb0 36 modem.baud(115200);
quicksand 0:1ccc476f2eb0 37 pc.baud(115200);
quicksand 0:1ccc476f2eb0 38 wait(0.1);
quicksand 0:1ccc476f2eb0 39 once = false;
quicksand 0:1ccc476f2eb0 40 }
quicksand 0:1ccc476f2eb0 41 modem.putc(c);
quicksand 0:1ccc476f2eb0 42 }
quicksand 0:1ccc476f2eb0 43 }
quicksand 0:1ccc476f2eb0 44 }