GPS TinyShield does not provide actual altitude


  • Jr. Member
  • **
    • Posts: 8
    • View Profile
The Telit JF2 GPS on the GPS TinyShield showed not to be able to follow rapid changes in height.

Based on the example from the GPS TinyShield Tutorial I have made a data logger with a TinyZero Processor Board with accelerometer, a GPS TinyShield and a MicroSD TinyShield. This logger is primarily meant for model rocket applications.
Using two separate buffer memories GPS NMEA strings are recorded in a .txt file and accelerometer outputs, time stamps and other administrative data like buffer usage are recorded in a .csv file.

The NMEA GPS string set consists of GGA, GSA and VTG strings at 5 Hz and GSV strings (normally 3 strings) at 1 Hz.
The 5 Hz command for the Telit JF2 GPS  has been taken from the chapter ” Enable 5Hz Update NMEA” from “Telit_Jupiter_JF2_EVK_User_Manual_r0.pdf” found on internet:

To enable sufficiently fast communication between Telit JF2 GPS and TinyZero the baud rate has been increased from 9600 to 19200 after first initialization of the Telit JF2. To set this baud rate at the Telit JF2 side I have used the NMEA command:

The functionality of this logger application has been tested under static and dynamic conditions, e.g. car trips. Overall, it works fine on standard, x-y trajectories.

A vertical oriented trajectory was tested using a medium sized low power model rocket, MER-75.
The data logger with the GPS was placed in a specially prepared payload bay in the nose cone of the model rocket. A 2nd data logger consisting of a TinyZero Processor Board, a Combo Sensor TinyShield and a MicroSD TinyShield was placed in another payload bay at the bottom of the model rocket between the model rocket motors. Accurate time synchronization of the logger recordings was done afterwards by matching the z-axis accelerations during the start ramp of the boost phase. This synchronization enables direct comparison of the altitude from the GPS TinyShield and the altitude from the barometric pressure sensor of the Combo Sensor TinyShield. Furthermore, a separate Altimeter 2 was included in the payload bay in the nose cone.

The trial was executed on July, 11 near Almere, The Netherlands, with a surface height of -6 m with respect to sea level. Readings of the Altimeter 2: Apogee: 94m, altitude at parachute ejection: 90 m above ground level.

The attached figure vertically shows the altitude (in m) derived  from the barometric pressure sensor and the GPS for the time interval including model rocket launch, boost phase, ballistic phase, parachute ejection etc up to soft landing. The horizontal axis shows the time in milliseconds.

The part of the barometric sensor altitude curve during rocket motor trust (between 2.2 and 4.0 s) is not correct because the rocket motor trust influences the pressure, but after 4 s, when the motors have burnt out, it is reliable.
The GPS altitude only shows a decent increase with small steps up to 17.5 m and starts decreasing again when the rocket on the parachute is at about 10 m above ground.

It is clear that the GPS is not losing track; latitude and longitude values are not strange.
The minimum number of satellites tracked varies from 8 to 10. All GGA messages during the shown time interval show a fix.

However, it is obvious that the GPS altitude is incorrect during the most interesting parts of the model rocket trajectory. It seems to me that a very slow filter is applied on altitude data inside the GPS .

From my point of view this incorrect GPS altitude is related to the Telit JF2 functionality.
My main question: How can I get perhaps more noisy, but actual GPS altitude output?


  • Jr. Member
  • **
    • Posts: 8
    • View Profile
In the mean time I have found another Telit JF2 GPS related document on the web, “JF2 Hardware User Guide”, in which it is mentioned in paragraph 11.6.3:

“By default, the JF2 will compute a 2-D solution when possible when performing initial acquisition. In a 2-D solution, the receiver assumes a value for altitude and uses it to estimate the horizontal position.” And also

“To accommodate applications for which these situations are a concern, a version of JF2 firmware is offered that requires a calculated altitude, i.e. a 3-D navigational solution, in order for the receiver to first enter navigation.”

So in fact it is stated that the JF2 by default does not directly calculate the altitude, but basically only a 2D solution instead of a 3D solution. However, the GPS fixes coming from the JF2 are indicated as 3D. I think that this 2D solution based process is the root cause of not providing the actual altitude in a dynamic vertical oriented trajectory.

It is also stated that another version of JF2 firmware is offered that provides a 3D solution. Can TinyCircuits provide this alternative JF2 firmware?


  • Administrator
  • Sr. Member
  • *****
    • Posts: 95
    • View Profile
Hello Willem,

Can you link where you found this information?

The Telit firmware might not be open source, but I would be happy to look further into the firmware discrepancies and a possible fix.

Thank you,



  • Jr. Member
  • **
    • Posts: 8
    • View Profile
Hello Laveréna,

It would be nice to find a fix for the JF2, because it is a nice small solution.

In the mean time I am experimenting with the Sparkfun GPS 15210 connected to a TinyZero set through a proto shield. This Sparkfun board has a very flexible GPS:  u-blox SAM-M8Q. In fact it is a GNSS with default GPS and GLONASS and features e.g. different dynamic platform models. Only drawback is the large size of the Sparkfun breakout board.  The SAM-M8Q GPS chip including patch antenna is small, only 15.5 x 15.5 x 6.3 mm. Perhaps it would fit on a bit higher TinyShield. That it is higher would not be a problem, because it is logical to use it as top shield because of the antenna.

The Telit “JF2 Hardware User Guide” can be found e.g. by Google using the search term “JF2 Hardware User Guide”.

Two results in the top 10 give access to this pdf document Rev.4 from 2013-04-09, links:

In the top 10 there is also a link for r5 (Rev. 5 I assume) to the Telit download zone, but that is only for direct Telit customers, and I am not. Perhaps TinyCircuits is a direct customer.

I hope this information is useful.



SMF spam blocked by CleanTalk