I am an enthusiast of IoT, and I really enjoy developing projects with some kind of RF in them, but in every project I had to face some problems or issues.
Using a cheap RF module (ebay, AliExpress...) can be suitable for most of the projects, but the components are not great, having problems of impedance matching at the antenna output and oscillators not suitable for RF (>+-30ppm). Also your final pcb will have daughter boards and the size can be compromise.
Because of that, I came up with the idea of developing a Radio Module with an embedded microcontroller, and as I have been using Microchip microcontrollers for a while I decided to use one of them in my project. I've seen a lot of projects based on arduino or other micros, so I though could be interesting to develop this one with Microchip.
There are in the market some microcontrollers with RF integrated which will reduce the size quite a bit, but I wanted to have some flexibility in terms of MCU. If after a while the MCU is not powerful enough, I could improve the module and re-use the code with no harm.
The core of the module is a PIC18LF26K22, with 64K of flash and 1024 Bytes of internal EEPROM, and the radio is a SI4432B from SiLabs, which can provide up to +20dBm.
Some other features in the module are the use of "good" quality components, NPO capacitors and proper RF inductors and a +-10ppm over temperature and age crystal, which will provide a really high stability in the system.
At the moment, the module is in an early stage, having only 3 prototypes built (manually!!), but the design looks promising and the applications are endless.
Having the prototypes built, I couldn't wait any longer to do a Range Test. For the test I didn't want to use really low bitrates, I just wanted to check under normal and usable settings, so I set the radio to 20 kbps, and 50 kHz deviation @ 869.4 MHz (G3). Radio module is ready!!!!
To check the distance I was using a GPS module connected to my laptop and to my "Range Test App" script. With this I could see the current distance with no need of internet or google maps (after the test I double check with Google Maps :) )
The test was longer than I thought (good news!), I walked more than 2KM, to be exact 2254m, and the RSSI was still not in the limit (-101dBm) I was really impress with the result. I reckon I could get more than 2.5Km @ -110dBm, but at that time I was surrounded of cows and bulls and they were looking at me in a non very friendly way, so I decided to walk the almost 2.5Km back.
The next picture has a laptop screenshot.
The reason being the RSSI not very consistent is because I wasn't holding straight the radio+antenna the whole time.And the Google Maps picture:
I am currently working in some other projects related with this radio, and I will update the post with my new gadgets.
My plan is to building some more, but trying to avoid doing manually, so if somebody finds interesting the project maybe I could build a panel.
Some test data using the Spectrum Analyzer.
The max output in the radio is suppose to be +20dBm, but as my prototypes are not production samples, I think is quite good performance. I guess once I get the some production prototypes I will tweak the matching values for squeezing the maximum output power and optimize the variability.
Great range! I'd be curious to know what the range was like @ 13dBm and what would happen if the messages were longer. A 10 byte msg e.g. could introduce bit errors maybe?