I have already made a working prototype. I will upload the details about it slowly. Right now here are some videos showing the prototype in action. The processor is ARM Cortex M3+, CC2650 from Texas Instruments. It is running a RTOS. One novel feature of CC2650 is the "Sensor Controller Core" which is a separate 16 bit core. It is optimized for extremely low power and autonomous operation form the rest of the core that can sleep. Here the Sensor Controller reads the Ambient light sensor OPT3001 via I2C and if the value is beyond a maximum value or below a minimum value then it glows an LED to notify that. (NOTE: Glowing LEDs to indicate that is really bad, because the whole system without the LED uses less than 1mA with non optimized code , but the LED itself consumes around 4mA !!. This was just for demonstration purposes.)
In the final prototype CC2650 will be replaced by CC1350. I had started this project before CC1350 was launched, hence i am still developing on CC2650. But the RTOS that runs is exactly the same, hence in the last prototype the changes to the code would be minimal. CC1350 is a SoC which has BOTH SubGHz and BLE. So majority of the nodes will use SubGHz for data transmission, but the central node would use both.
Here is a video of the same setup in action with some explanation and showing the supercapacitor charging under ambient light.
Before programming and everything i tested the Power Management circuit. Although i had worked before with BQ25570 and BQ25505 so i knew how to deal with them but it was still necessary to test every detail thoroughly. So here is a video that has 2 tests, one on a sunny day and the other on a cloudy day. To show that the Energy Harvesting circuit is working i replaced the Ferrite Bead with a LED in series with a resistor. Whenever the supercapacitor charges to a pre-programmed level (resistor programming of BQ25570) then the internal mosfet in BQ25570 turns ON the buck converter that produces a constant 1.9V from the linearly decreasing voltage of the Supercapacitor.
I have decided to wait till the module versions of CC1350 comes later this year from TI itself. Since both of them have the same core and the RTOS, porting the code form one device to other is just a matter of one day, because of the awesome SimpleLink APIs.
So we will be working with CC2650 itself for this project.
To better illustrate the difficulties that i am addressing by this project, i have made some images -
The first version of the prototype didn't have any feedback mechanisms, which has been addressed in the later versions. The block diagrams for before the feedback is something like this -
After the feedback -