Wireless networks have been reduced to a component, for most of us. We fit a device, maybe an ESP8266 module or similar, and as if by magic a network exists. The underlying technology has been abstracted into the firmware of the device, and we never encounter it directly. This is no bad thing, because using wireless communication without having to worry about its mechanics gives us the freedom to get on with the rest of our work.
It is however interesting once in a while to take a look at the operation of a real wireless network, and [Alex Wong], [Brian Clark], and [Raghava Kumar] have given us a project with the opportunity to do just that. Their PIC Mesh university project is a distributed wireless mesh network using 2.4GHz NRF24L01 transceiver modules and PIC32 microcontrollers. They have it configured for demonstration purposes with a home automation system at the application layer, however it could be applied to many other applications.
The real value in this project is in its comprehensive but easy to read write-up of the kind you’d expect from a university project. The front page linked above has an overview of how the mesh works, but there are also pages taking us through the hardware, the networking software layer, and the home automation application layer. If you have ever wanted to understand a simple mesh networking system, this is a good place to start.
We’ve covered quite a few mesh networks over the years, but sadly we can only link you to a few of them. We’ve had a mesh network using the Raspberry Pi, Project Byzantium’s “ad-hoc wireless mesh networking for the zombie apocalypse“, and a 1000-node Xbee network for testing purposes.
Oh dear, the grinch in me is coming out. If you want to be a real engineer, you need to LABEL YOUR AXES on your graphs. And it wouldn’t hurt to embrace SI units.
PS. A spectrum analyser might have helped you understand your radio reliability issues better
PPS. Did you look at alternative error correction protocols?
I strongly suggest checking out PJON
https://github.com/gioblu/PJON
IoT security by default.
Great depth and breadth on this project. It took a while just to read through it. Just what I’m learning to expect from Bruce Land’s ECE 4760 class projects.
I hope Bruce Land will help share the details of the project if the students are willing.
“This ultimately proved to be a large tradeoff in both hardware and software as we dealt with packet collisions on the hardware side due to the 1-element FIFO included on the radios. In addition, this proved to be a software tradeoff as well as the radios weren’t capable of quick transitions from sending and receiving in our code.”
This is how hardware suffers from software race condition. (interrupt executing nrf RW during another RW in a main “thread”)
DMA
I haven’t read the university writing all long, but is that the same that MySensors ?