TD1204 – getting start with accelerometers

The Telecom Design TD 1204, used on Sigfox network have a builtin 3 axis accelerometer and a lack of documentation as usual… By the way, here is the result of my searches to make it work.

Basically, the provided libraries makes it easy to use, in the setup part you have to initialize the accelerometers and in the main loop you have to run a TD_ACCELERO_Process(); method to monitor the IRQ and call your callback function to read the data.

It means that the accelerometers is not automatically waking up the device but managed during the 32KHz wakeup look.

The next part is detailing how to use it.

Continue reading

Sample data from ADC with Sigfox / Telecom-Design

I just finished a program started a couple of month ago. When I stared to it, I had a hard work to find how to sample a group of  256 values at 32Khz with the EFM32 device embedded in the Telecom Design TD1204 / TD1208 used for my SigFox project. This post details how to do this task

Continue reading

Low consumption audio capture circuit for arduino

I had to work a little bit on an audio solution to get sound samples using a micro-controler. I based my design on an Internet really known circuit but I had to optimize it a little bit to be more efficient in terms of energy. This post is giving the result of my hack.

Continue reading

TD1208 – How to implement RF LAN

2 TD1208 configured as RF Lan

2 TD1208 configured as RF Lan

TD1208, SigFox chips, include a RF LAN fonction, this allow you to communicate between different TD1208 chip, locally, without using the SigFox network. This is really interesting if you have a network of sensor, you can connect them this way to a gateway. This gateway will then transmit the information to the SigFox network to reach your IoT service.

This post will describe how the rf_lan work and how to implement it.

I’m not fully sure I implement it the right way as the given example are really poor, the documentation is a mess and the source code of this part is not accessible… More over, my feeling is that this part of the SDK is still running bugs. What I mean is that in a future post you should find an update and a better way to do it than the one I’m going to describe. By-the-way, what is here is working, have fun with it !

Continue reading

Sigfox : how to upgrade firmware automatically

You may had some problem to reflash your TD1208 once you load the blink example or your own code in the device. This is because you need to reset the device to reach the firmware upgrade procedure during boot procedure.

On of the way to do it is to perform a hard reset putting Reset pin to ground during TDLoader Sync process. The other way is to add some lines in your code to create a soft reset. Here is an example on howto do it :

void TD_USER_Setup(void)
{
    // Initialize the LEUART
    init_printf(TD_UART_Init(9600, true, false),
                TD_UART_Putc,
                TD_UART_Start,
                TD_UART_Stop);
}

void TD_USER_Loop(void)
{
    while ((c = TD_UART_GetChar()) >= 0) {
        NVIC_SystemReset();
    }
}

When the loader is waiting for the bootloader sequence, it send communication over the serial line. In this example, when a such communication is detected, the system is calling a soft reset, starting the boot sequence and as a consequence the firmware upgrade automatically.

Continue reading