10 things you can’t ignore when writing a Firmware

When you write an IoT firmware, there are different things you may never forget to think about… The coming 10 things you can’t ignore are coming from my experience of smart object creation and the associated field experience.

The field experience is unfortunately the real step where you will improve your firmware and discover all you have forgotten when you have written the firmware and tested it in your laboratory. In laboratory everything is perfect.

The following 10 things you can’t ignore when writing a Firmware is a non exhaustive checklist of points to verify before pushing your code to the field. It is also a list of  test conditions you can execute to validate a Firmware / device made by a third party.

Continue reading

Send Sigfox messages with STM32 + S2LP

STM32 solution for using Sigfox is actually one of the best offer on the market has the solution is powerful, low consumption and allows global coverage with the use of the last Sigfox library versions including Monarq, Bubble… Different module providers are actually designing solutions based on this platform.

In this post we are going to see how to configure the STM32 platform, starting from a STM32L053 devkit plus a S2LP extension. Using a eclipse/gcc environment. The environment installation is described in this post about installing Eclipse for STM32.

Continue reading

Getting started with GNURadio & scapy

GNURadio is an open-source software for making Software Defined Radio. It can be used to model a radio transmission or the process a real radio communication.

Scapy is a python tool set able to interact with GNURadio. Basically GNURadio will receive an signal from a SDR key and process it to get a digital sequence. Scapy will process this sequence and potentially generate a new sequence to be process by GNURadio to be transmitted.

There are plenty of example of GNURadio/Scappy usage to hack, simulate, learn many radio protocols like WiFi, GSM, Bluetooth… I want to play a little with Sigfox also so that’s why I started to investigate on this tool.

As this tool is a bit complicated, this post details the key element having helped me to getting started with this tool.

Continue reading

Review Laird Sentrius LoRaWan Gateway

After having tested different LoRaWan gateway like Kerlink iFemToCell, TheThingsGateway and Kerlink Wirnet, in the past two years, I was looking for a new low cost indoor gateway for deploying TheThingsNetwork (the global crowd-sourced LoRaWan network) in my city.

Gateway are not all easy to shop, Kerlink at first. As one of my iFemToCell has burned into the hell this summer with no reason after only 3 months powered-on I was not looking for the same. TheThingsGateway has different semiconductor provider reseller but myne suffer of certain instabilities actually and I need to reboot on regular basis. So that’s the reason of this new try.

Let’s see how to setup on TTN.

Continue reading

STM32 and Low Power Mode

STM32 ARM MCU are proposing different low power mode for saving energy when running IoT on battery. Some basic example of low power are delivered with the SDK as part of CubeMx solution but these example are not really complete, not well documented and in my point of view difficult to use in a Fresh new project. Basically my current feeling with STM32 is these guy are pretty good to write thesis on how to do magic stuff with the MCU, writing hundreds of pdf pages about really detailed stuff but they are really bad for providing some line of code to illustrate this valuable content with something practicable you can use on the go. So after spending a week working on a working and understood example of low power code, I’ll share with you the result of this work…

Continue reading

STM32 and Arduino, working with a custom board

Arduino is supporting STM32 platform and after following the installation steps, you can easily work with the st-microelectronics development kit.

In the real life you need to create a specific setup once your prototype is transformed into a custom board. This setup redefines the pin mapping, the target MCU and needs to refine the firmware transfer method as you will use and external STLINK programmer.

In this post we are going to see the different step for doing this.

Continue reading

Arduino for STM32

In a previous post I explained how to getting started with STM32 with classical Eclipse or Keil environments. These environments are very cool for starting from scratch in designing firmware. That said, you have to recreate a lot of basic functions and libraries to create your firmware.

On the other hand, the Arduino community is proposing a lot a existing libraries and a development framework with a large number of supported features. The STM32 community looks active and that’s a good way to quickly create advanced firmware.

That said there is different point blocking in my point of view for using Arduino as a professional environment:

  • Outside of the core libs and some nice one, most of the lib are badly written
  • The official editor is a mess if you manage more than 3 files…
  • Writing libraries with official editor is… “impossible”

For this reason, in this tuto, I’ll use Visual Code Studio  to see if the 2 last point can be solved. Regarding the first point, there is nothing better than using well coded libraries and rewrite (and share) the badly written one.

Continue reading

Getting started with Arduino MKRWAN1300 & LoRaWan TTN

After making some post on Arduino MKRFOX1200, here I come with the first steps to use MKRWAN1300 board to send your first frame on TTN and also how to use them for discovering the TTN coverage around.

MKRWAN1300 board is a LoRaWan Arduino board based on the Murata CMWX1ZZABZ module. This module is capable for LoRaWan in Europe (868Mhz), NA (915MHz) Asia (923MHz) …. It is also capable for Sigfox in both zone (but actually not with this board as much as I know). Producing 14dB emission and capable for 20dB emission for FCC zone. The price of the Arduino board is about 40€ and it is largely available on Internet.

In this post we are going to see how to make the first steps with this board and create a device to map the TTN network coverage with and without a GPS.

Continue reading