My receiver outputs received signal strength and I have connected this to the A0 pin on the APM. I have set the RSSI_PIN paramenter appropriately and can display the RSSI correctly in the MP while the quad is attached to my PC. Is there any way I can log this parameter during a flight? While I do have the RSSI available on my transmitter via telemetry, it would be nice to now exactly how the RSSI varies with regard to the distance and orientation of my quad so I can optimise my antenna and also keep it in range while sending it on missions (just in case...)
Great question! Have you found a solution yet James?
Hi Bruce, unfortunately I found no provision for this in the existing code so I had to 'roll my own' solution. If you are comfortable compiling the code from scratch then I would be happy to share what I have done - it is relatively straight forward
Cool. I can handle the code if you'd be so gracious!
I have implemented this a number of different ways while playing around but the simplest way that does not compromise any existing functionality is:
Add to defines.h:
#define DATA_RSSI 30
Uncomment (remove the preceding slashes from) the following line in APM_Config.h:
#define USERHOOK_SLOWLOOP userhook_SlowLoop(); // for code to be run at 3.3hz
Add to the function userhook_SlowLoop() in UserCode.ino after
// put your 3.3Hz code here
Compile and upload...
A D16 entry will appear in your log file every 0.3 seconds with the ID number 30 followed by the RSSI
You can obviously choose to have the entry appear more or less frequently by choosing the appropriate userhook loop.