Low Cost Telemetry and Data Logger Turnigy GTY-i6

by yves.morele | October 24, 2020 | (0) Posted in How To

 1 INTRO:             

In a previous article, I describe a low cost GPS data logger for rc aircraft, but without telemetry.

The telemetry is very important in aeromodelling for controlling battery level, altitude and more.

This project describes a very low cost data logger for rc aircraft with real telemetry on the transmitter for put in in a radio controlled plane.

More, the power for arduino be made by the receiver of the plane to have less weight on the plane and with a small size.



For the microcontroller : Arduino nano generic

For the GPS : UBLOX NEO-6M V2

For the sd card reader/writer : generic but the less weight as posssible

For the box : ABS box

I made this choice so as to have the smallest components possible (I did not choose the arduino micro for lack of memory) and with the least weight.




The wiring must be done with the minimum length of wire and without the connectors on the electronic cards so as to lighten the final assembly to the maximum.


The data is displayed on the transmitter by selecting the sensors and setting the alarm



5 Schematics:



6 Code :



#include <iBUSTelemetry.h> //https://github.com/adis1313/iBUSTelemetry-Arduino

#include <Wire.h>

#include <TinyGPS++.h>

#include <SPI.h>

#include <SD.h>


//pin pour carte SD

const int cs_sd=2;


TinyGPSPlus gps;




// pin voltage

#define dP A0 


iBUSTelemetry telemetry(9); // arduino pin pour donnes iBUS 



  uint32_t prevMillis =0// neessaire pour updateValues()




     const int verte = 3;

     const int rouge = 4


     float maxspeed = 0speed1 = 0;

     int maxhigh = 0high1 = 0;

     int maxsatelite = 0satelite1 = 0;


  float meters ; 

  float voltage=0.0;


void setup()








  //Condition vrifiant si la carte SD est prsente dans l'appareil





  digitalWrite(rougeHIGH);//absence SD




 digitalWrite(rougeLOW);// carte SD absente


     File data = SD.open("donnees.txt",FILE_WRITE);              // Ouvre le fichier "donnees.txt"

     data.println(""); data.println("Demarrage acquisition ibus"); // Ecrit dans ce fichier

     data.println(""); data.println("date      heure       latitude       longitude   altitude    vitesse"); 






 // definition capteurs


  telemetry.addSensor(IBUS_MEAS_TYPE_ALT); //altitude

  telemetry.addSensor(IBUS_MEAS_TYPE_EXTV); //batterie

  telemetry.addSensor(IBUS_MEAS_TYPE_SPE); //vitesse km/h

  telemetry.addSensor(IBUS_MEAS_TYPE_GPS_LAT); // latitude

  telemetry.addSensor(IBUS_MEAS_TYPE_GPS_LON); // longitde





void loop()







void updateValues()



// lecture donnes Gps et allumage LED si OK


    if (Serial.available()) {

      digitalWrite(verteHIGH);//donnes Gps OK








  float meters = (gps.altitude.meters());


  float airSpeed = (gps.speed.kmph());


// definition vitesse max


     speed1 = (gps.speed.kmph());

     if ( speed1 > maxspeed) {

      maxspeed = speed1;




  // recuperation date et heure du GPS pour datalogging


       String Temps=String(gps.time.hour()+1)+(":")+(gps.time.minute())+(":")+(gps.time.second());

       String Date=String(gps.date.day())+("/")+(gps.date.month())+("/")+(gps.date.year());


// Temporisation


    uint32_t currMillis = millis();


     if (currMillis - prevMillis >= UPDATE_INTERVAL) { // Code in the middle of these brackets will be performed every 500ms.

         prevMillis = currMillis;



// affichage donnes capteur sur radiocommande


  telemetry.setSensorValue(1, (meters )*100.0  ); //  altitude


 telemetry.setSensorValue(2voltage*100  );


 telemetry.setSensorValue(3speed1 );


 telemetry.setSensorValue(4, (gps.location.lat()*10000000));


 telemetry.setSensorValue(5, (gps.location.lng()*10000000)) ;




    // Ecriture des donnes dans le fichier texte



     File data=SD.open("donnees.txt",FILE_WRITE);


     data.println(Date + " " + Temps + " " + String(gps.location.lat(), 6)+" "+String(gps.location.lng(), 6)+(" ")+String(gps.altitude.meters(),0)+(" ")+String(speed1)+(" ")+String(maxspeed)); 






Download the ibus library here




In the next video you can see the result.

The data can be import in google earth for visualisation of the trajectory of the plane.



No Comments Yet

Be the first to leave one!

You need to log-in to comment on articles.

Low Cost Telemetry and Data Logger Turnigy GTY-i6