Lets start with hardware components. As I already mentioned the main building blocks are, camera, RPI2B, NRF9160(IcarusV2) and power blocks. Power blocks have 4 components, 2 batteries, 1 solar charger and boost converter from LIPO battery to 5V. 

A several(weird) architecture choices were done as some components were not available or I would have to wait long time to get them delivered. The majority of the components were purchased over DIgikey( I will create a list later on). Additionally, I had to build this project only by using solar power with batteries. So I had to avoid having RPI powered on constantly. I have decided to use only UDP communication from NRF9160(with the exception of connection of Nrfcloud). For this reason I have built my own udp server(python script) to receive telemetry data and pictures. 

Let me go into more detailed description of the system. I have purchased 360 degrees(fish eye) RPI camera and installed it into a dedicated enclosure. RPI has read only filesystem, as it had to be booted every hour. RPI has a dedicated python script, that was adopted from another project. Once RPI was powered on by Icarus(NRF9160), the python script was ran. The python script waited for Icarus to ask to take a picture. Once a picture was taken it was send in blocks to Icarus.

The initial code that is used with NRF9160 IcarusV2 is uploaded to github.

Update: I have added another GIthub link, where my RPI CM4 custom carrier board is located. RPI CM4 project will be used for version 2 of this project. I would like to replace RPI2 with custom carrier board where I have two cameras and I can put board to deep sleep.