You may have read some of my post about RF433 and Raspberry PI. Basically with RPI 1, I was using wiringPi interrupt handler to manage the RF433 decoding. The problem is that with RPI2 and RPI B+ the delay to take an interrupt that was becomes unpredictable. And the timing constraints are not respected. As a consequence part of the messages are loss because for these delay.
One of the solution (the software one) is to be more efficient to proceed the interrupts and the way to do this is to compile a kernel driver for directly handling the interrupts. This is what this post is about. This comes to complete the RFRPI code and associated hardware. A complete source code and software for using it is on the rfrpi bitbucket repository.
Challenge of the coming days : write a kernel driver to manage interruption quicker on a raspberry pi 2. I’m happy to find a lot of example on Internet and in particular this one, that is really looking like what I’m trying to do. This post is describing all the step needed to do this.
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
In a previous post I explained why the IoT is appearing in this period thanks to the network technology evolution. It would not be a complete analysis if I would not care about the social evolution. In parallel of IoT and technologies there are other rising trends : Makers, Fablabs, embedded systems,3d printing and crowd-founding.
Take a look at personal computing some decades ago when guys like Jobs or Gates make the first line of code and solder the first micro-processors in their garage ; they just used the technological elements available that time and were able to make them doing much more than what they have been made for. They did it because they were able to do it. The same story appends in the late 90’s with Internet : anyone was able to code some PHP stuff and create a service in his garage thanks to this students have created Facebook and many more.
At the opposite, when smart phone appeared in the middle of the 90’s it was a technology that requires strong industrial assets and this technology has been limited to major companies. The smart-phone revolution had been the same opening door to programmer to an new area with applications (apps). In fact all previous hardware evolutions since the Personal Computer beginning was requiring huge technological assets to be part of it.
IoT disruption is breaking these last 40 years where only software were hackable by getting hardware accessible.
When you want to design a shield for Raspberry Pi, you have to follow the HAT standard. This standards describes the form factor of the shield to ensure future compatibility. It also describes the configuration solution for the board based on a flash containing necessary information. The Hat standard link gives all the detailed specification to design a such shield. In this post I’ll describe my experience of designing such shield and you will find the basic elements I build and now sharing with you.
The new version of kernel now activate the device-tree standard, it means that instead of having all module activated by default with some stopped by a blacklist system, now, all are disable and activated only when described in a device tree.
Device tree details the system architecture and dependencies following configuration files. The device tree can be owned by the shield itself in an attached eprom.
As a consequence, now, i2c / spi are not activated by default. So if you need to activate it on startup. For this, edit /boot/config.txt and add line at the end like :
dtparam=i2c_arm=on # for i2c 1
dtparam=i2c_vc=on # for i2c 0
I fixed tonight a problem with rfrpi and Raspberry 2+ ; it seems that wiringPi 2.25 have a bug with delayMicroseconds() function that works perfectly when less than 99us and do not work correctly with larger values.
Waiting for the fix the code have been updated to work correctly with RPI2+ ; so please if you are using the shield with RPI2+, update the rfrpi code from bitbucket.
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
Privacy & Cookies Policy
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.