Get start with the SigRPI Shield

Raspberry PI Shiel Hat standard

Raspberry PI Shiel Hat standard

The SigRPI shield is a HAT standard board providing SigFox connectivity to your Raspberry PI. As it is not certified for this network it can’t be used in production for this usage, but you can use it as a long range RF that does not need certification. I will later details this with a project related to this function.

By-the-way, the purpose of this board is to let you play easily with sigfox. The raspberry-pi offering a really efficient way to code and to make prototypes.

The shield comes with TD1204 (including accelerometer & GPS) of TD1208 (sigfox modem). You can use it with the standard firmware or upload your own one.

The shield can be ordered in the shop section : here

This posts details how to setup it and use it.

Continue reading

IoT, M2M, quick panorama on main technologies

rfrpi_3This year M2M and IoT are two of the most heard keywords in our technological domain. One of these is fresh new, I mean a couple of year old, when the other one is pretty much older. M2M, standing for Machine to Machine is a capability for two machines (or more) to discuss together and take actions. Like a temperature sensor allowing your boiler to decide when to start or stop. In the industry where automatism are in place since many year, M2M is something in place, running, not new. IoT, standing for Internet of Things is part of the M2M technology but actually raising. In IoT the main word is Internet and it stands for the capability of an object to talk over Internet on its own. Why only now ? mostly because now it starts to be possible.

Continue reading

Sigfox Rf test first experience

This morning, some colleagues helped me to test the rf performance of one of my sigfox tracker. I’m really not an RF expert, I try to improve but there still be a long way to go…

In this design I’m using a TD1204 and a Wurth smd 868 antenna ; I have a 100 ohm impedance net between both (sure it is bad) and LC circuit (that sound not to be the good one – btw).

Continue reading

Running sigfox with a Raspberry-Pi

Sigfox on Raspberry Pi

Sigfox on Raspberry Pi

Based on my sigfox multi-board shield, it is possible to hack sigfox with a raspberry pi. The standard telecom Design firmware allow to use it as a modem. The raspberry Pi just have to send the expected AT commands

 

 

 

Continue reading

Hack the SigFox KeyApp demonstrator / tool

Sigfox keyapp

Sigfox keyapp

The Sigfox keyapp is a useful tool you can buy or you can get when reaching the Sigfox kick-start session. Basically, this tool send a message each time you click on the button. This allow to check the network availability where you want just clicking on the button. Easy, useful !

The KeyApp have an internal battery, one led, one button. It is refill with the usb connector and it is based on TD1208. The internal firmware is a partial modem ; it can be used as a modem on serial port from a PC but not all the AT command are implemented on it.

My purpose was to modify this tool to send automatically message every 12 minutes. The firmware can be modified and upload on the standard way (take a look to my other posts). For sure by doing a such thing you take the risk of loosing warranty and you do it at your own risk.

To make it works you just have to know some of the cabling.

  • The Led is active HIGH and located on USR4 signal.
  • To enable the battery power, you must activate USR1 LOW
  • To read the button you must take a look on USR0

The battery is by default not powering the system until you switch USR1 to LOW. If you do not do this, the system will only work on the usb power. It means you can switch off the system simply by switching USR1 to high.

Will come soon a basic sample code.

 

One day at SigFox

sigfox

sigfox

I had the opportunity, today, to be at the sigfox kickoff day, in Toulouse,  with the company I work for. This is an opportunity to post a summary of the technology as it is today.

Sigfox is a network operator for Internet Of Things running on free frequency band (868Mhz in France). Sigfox is deploying itself network in some countries like France. In some other they have partner to deploy it like arquiva in UK (on going actually 10 biggest cities); abertis in Spain, Aerea in Netherland. Actually some European cities are also deployed as pilot : Munich, Menlo, Milan, Warsaw, Dublin, Autria. San Fransisco & Silicon Valley will come soon this year. The target is to have 60 countries in the next 5 Years. Thanks to the long range radio characteristic of the network, Spain has been deployed in 7 months. As to now, the network does not includes roaming constraints & fee. A French licensed device works in any country where the network exists.

The network is high sensitivity with 2 way communication 140 *12 bytes messages a day uplink / 4 * 8 bytes messages downlink. Each of the messages are sent 3 times on different frequency to ensure it will be delivered. The devices are running ultra low energy with 10-25mW radio power. The technology is plug & play : you do not have any peering process to accomplish to make it works (but you have to activate the device in the backend at least…). Data are sent to a global backend whatever the network provider you are passing through and you have contract with. This backend will let you have access to your data in real time and will execute callback (data post) to you own specific backend to proceed your data.

Limits : due to low bandwidth / small messages architecture, the technology does not allow voice, video … transfer for sure. But it is really fitting security, smart cities (traffic, parking waste, street lights…) monitoring, automatic meter reading, leak detection, billing automation…, tracking & security, healthcare (fall detection, distress buttons…), Agriculture.

Continue reading

Manage sigfox device for consumer deployment

sigfoxWhen you plan to deploy / sell sigfox based solution to consumer, you have to manage you device park. The sigfox network have a restricted radio medium to ensure you will not emit more than what you payed for you will be charged by them if a device you own is emitting, even if it is emitting out of your control. There is no network subscription like in 3G before being able to emit so anyone can emit.  That is why, to ensure every one is clear, you have an extra cost if you emit more than you are allowed or if you emit from a non registered device.

When you are designing end-user system you have no control on the device and if you propose a monthly fee to use your solution you will never sure the end user will unplug it once he stop to pay for your service. It means you could have a consumer stopping to pay for your service but a device continuing to emit and sigfox request you to pay for it.

Since the network allow you to have downlink message, now you have the capability to send order to your device and as a consequence allowing you to kill the device remotely. This is a good solution !

Next you have a new scenario where your end user finally decide to reuse your service and want to reactivate the device. At this step you won’t be able to communicate with it and you will have to find another way to reset its state to normal. You can eventually add a “factory reset” button or request to reflash it. There is another funny when : playing with the reboot time.

This post will describe how to lock a device to stop emit on network and how to play with the startup sequence to reset it. Read more !

Continue reading

Telecom Design sdk – track your stack usage

When trying to see what is happening with your code, you could try to follow stack size and current running time. Here is a simple function for doing the work :

void dsk_printDebug() {
#ifdef DEBUG
    uint64_t time;
    uint32_t msec, t;
    uint16_t hour, min, sec;
    time = TD_SCHEDULER_GetTime();


    msec = time & 0x3FFF;
    time >>= 15;
    t = time;

    sec = t % 60;
    t = t / 60;
    min = t % 60;
    t = t / 60;
    hour = t % 24;
    t = t / 24;


    #ifndef __ICCARM__
        extern char __cs3_stack[];
        char *limit=__cs3_stack;
    #else
        extern char CSTACK$$Limit[];
        char *limit = CSTACK$$Limit;
    #endif
        uint32_t *sp = (uint32_t *) __get_MSP();

    tfp_printf("[debug] Time:%d.%02d:%02d:%02d.%3d || Stack size : %d / %d \r\n",
        (uint32_t) t, hour, min, sec, (msec * 1000) >> 15,
        ((uint32_t)limit - (uint32_t)sp), CONFIG_STACK_SIZE
    );
#endif
}