The 2.4GHz radio in the nRF24LE1 is very easy get on air quickly but it gets really fun when using the Gazell library included in the nRFgo SDK. The only thing we have to do is to edit some default values in a header file and add the source files to our project. Most of the default values can be left unchanged and I changed three of them; I reduced the bit rate from 2mbps to 250kbps, increased the payload length to 32 bytes and the RX period to 10ms.
Even if we do not need the full 32 bytes payload length at once, I will use this length from start so I do not need to increase it later. I will also add a packet type to the beginning of each packet such that I can add other packet types later. For example the SunSaver MPPT store 32 days of historical data that can be read out through the Modbus. Maybe I will add this in a future version of the firmware. The figure below shows the suggested format for RF packet type 1.

RF packet type 1 format
Here:
PID is a packet identifier that increments for each packet sent. This makes it easier for the receiver to keep track of any lost packets (more on this later).
VB is the battery voltage reported by the SS MPPT
VP is the solar array voltage reported by the SS MPPT
VL is the load voltage reported by the SS MPPT
VI is the inverter voltage (not used yet)
IL is the load current reported by the SS MPPT
IC is the charge current reported by the SS MPPT
IS is the shunt current measured by the ADC discussed below
II is the inverter current (not used yet)
TA is the ambient temperature reported by the SS MPPT
TB is the battery temperature reported by the SS MPPT
TI is the inverter temperature (not used yet)
All currents and voltages are split into high byte and low byte (e.g. VBH and VBL). If they are read from he SunSaver MPPT they are sent in the format read. The blank boxes are for future expansion.