GPS Time for Small Unmanned Aerial Systems: A primer for better drone technology, Part One
Embedded systems in small drone technology have evolved rapidly in light of the availability and ubiquitous nature of commercial and hobby grade small UAS. Part one of this series tells us why the GPS technology these drones rely so heavily upon needs more indepth design and engineering rigor to max out capabilities of the hardware. Subsequent parts in this series will tell us the how, and more importantly the application and use case example.
Most commercial drones rely on 6 degree of freedom sensors for orientation in a 3d space (MEMS gyroscope and accelerometer), an additional 3 degrees of freedom via an internal compass, and a small GPS receiver for navigation data and autonomous flight planning. The GPS used in most consumer applications utilizes the legacy US GPS constellation (L1/CA for civil use) in addition to the Russian GLONASS, European Galileo, and Chinese BeiDou. The models typically used in small drones are made by Ublox and marketed as the NEO 7 and 8 series, with the 8 series or newer being the only modules capable of all four constellations. Only the relatively new Ublox ZED F9 series capable of more modern US constellations and real time kinematics (accuracy down to millimeters). For comparison the Ublox 8 series features horizontal position accuracy to half a meter. Newer Ublox models also boast a faster Time To First Fix (TTFF), thus reducing “warm up time” when the application is readied to be operational.
Choosing the right GPS module for your application is important, but even more vital is knowing how to leverage the module outputs in your embedded application (Drone FMU, companion computer, other sensors and systems).
Let us talk about pulse per second (PPS) output. PPS is a time synchronization signal that calls for an electrical pulse width of less than one second followed by a steep rise or fall. In a nutshell, it can accurately count seconds. Most, if not all, of Ublox modules allow for PPS output. Its now up to the user to utilize this signal via GPIO, UART, Serial, I2C, or other means. GPS time synchronization supplanted the need for early microcontrollers and embedded microprocessors to use a real time clock (RTC) module. This legacy module used a crystal oscillator and battery to keep time, and is far less accurate than GPS. Further, with PPS signal you have the potential to bring better timing solutions to single board computers such as the Raspberry Pi, or GPU driven computing solutions, such as the Jetson Nano.
These embedded systems rely on the CPU scheduler and Operating system to time events, which can be inaccurate or unreliable at times, especially across different processors on the same system. A modern approach for time discipline of multiple processors on a system connected to a network is Network Time Protocol (NTP), but not all embedded systems have a connection to discipline via NTP. This is generally true of most drones used in small industry operations or where cellular/wifi signal is not available. These network independent drones can really benefit from GPS time, and more specifically, PPS, when dealing with timing of I/O and periodic event driven actions by the CPUs and/or microcontrollers in the same system.
In Part Two of this series, we will go over an example setup using PPS on a Linux embedded system mounted to a Quadcopter. Stay tuned!