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 →

Go angular.js on mac os X from scratch

To go angular.js on Mac Os X from scratch, you need to do a couple of installation task ; After spending a full afternoon I can tell you it is not as easy as on Linux but now it works. Hope these line will help you to fire it in less than 15 minutes.

Continue reading →

Getting start with angularjs (installation)

angularHere are some key steps to make angularjs running on a CentOs 6. Angularsjs is a javascript framework from Google. This post is describing the first step to install nodejs, yeoman (bower, grunt) … up to the server start and kind of hello world display.

 

Continue reading →

Install GateOne – an HTML5 ssh client

gateone_loginWith the growing firewall constraints accessing a server over ssh is not always a pleasant journey ; I’ve read a korben post on GateOne html5 server side ssh client and I just got an opportunity to deploy it for a test. This post will detail how to install it and secure it a little bit.

 

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 →

Use a PIR sensor

Pir sensor

Pir sensor

This is a PIR ( Infra Red ) sensor ; this device is detecting movement of people by sending a signal on its output. This sensor is generating a +3.3V signal on output when a movement is detected. The duration and the sensitivity can be parametrized.

As you can see on this photo, you have 3 things you can configure on this device that will impact its behavior. The purpose of this post is to describe the use of each.

 

Continue reading →

Use & Create TheGimp header file format

Gimp header file format

Gimp header file format

For sure not a lot of people is using “save as .h” capability in TheGimp. But this is a really easy to use solution when you want to embed some icons or image into a C/C++ source code. I used this functionality with Arduino to display graphical elements and I was convinced of it.

I also reused this format to transfer an image over Bluetooth as this format have the advantage to encode RGB values into printable characters. The format is not too much expensive as 3x8bits RGB values are encoded with 4 chars.

This post gives detail on this encoding and a procedure example to encode your bitmap into this format. The decoding procedure is given by TheGimp in the .h file itself.

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 →