The aim of this project is to build a “budget” NTP Server using CoreELEC on an Odroid N2+ using Entware
First Caveat, can I say straight away to avoid wasting anyone’s time that if you need picosecond timing using pulse per second (PPS) timing from the GPS signal then stop reading and go to your countries Raspberry Pi distributor and order a Raspberry Pi 4 to base it on and use the Raspberry Pi OS the best your going to be able to achieve is nanosecond accuracy with CoreELEC as the PPS support is not enabled in the operating system unless you recompile the kernel which is something that’s above my paygrade.
The Hardware List
GPS Board, as of May 2021 the IC shortages caused by the Covid-19 pandemic are affecting supplies and there are a lot of counterfeit chips on the market, I am currently using a MakerHawk GPS module however its not a U-Blox Neo 6 its a copy of the U-Blox Neo 7 and also does not have flash memory that you can flash the v1.01 firmware onto to enable Galileo unless you swap out the flash chip (Credit: Jochen Schurich) I am also on the lookout for a replacement module that will work with Galileo probably based around the U-Blox Neo 8 or 9 chipset however these are currently hard to find.
Antenna + Ground Plane, the supplied ceramic antenna was way too small so I replaced it with a 25mm square high gain ceramic antenna I initially used a 100mm x 6mm mild steel disk as the ground plane until I stumbled onto this discussion that the Sales Director from Tallysman regarding their testing and the “detuning” of GPS Antenna’s so I ordered up a 100mm x 5mm square aluminium plate and it makes a large amount of difference, before I was gaining a 3D lock with about 4-5 GPS satellites on the steel plate, now the 3D lock is on about 7-8 GPS satellites which is about all that the sky map shows should be visible in my location.
For reference the ground plane is a plate of radio frequency reflective material designed to reflect the radio waves from the other antenna elements, in this example upwards towards the satellites, if you need a simple demonstration of this then run the GPS app on your phone and put in on a sheet of aluminium foil and there are some anecdotes online about people lost in the wilderness using a foil survival blanket to increase the mobile signal strength to call the emergency services.
Networking Elements, as my Odroid N2+ is under the TV with connected audio equipment there is quite a lot of RF Interference so avoid this I am using a USR-TCP232-302 RS232 converter connected to the GPS board through a RS232 to TTL converter to enable the GPSD daemon to connect to a fixed TCP address.
A word of warning, I orginally bought a simpler RS232 to TTL converter based on the excellent Maxim MAX3232 chipset (which is also manufactured by TI) I ordered it from a reputable supplier that I have used in the past, but when the board arrived and I connected it up I could not obtain any data out of the network and then when I went to double check the connections I burned the tip of my finger quite badly on the IC. After checking its a counterfeit MAX3232 chip and as I discovered there are a lot of them around at the moment that seem to output no data and get extremely hot. So if your looking to buy an RS232 to TTL board at the moment and they look anything like this then they are best avoided.
I mean no disrespect to the supplier who out of fairness I wont name, Maxim Integrated or Texas Instruments who make quality products and have and are taking steps to get these out of the supply chain and prosecute the counterfeiters and I strongly suggest if you need one of these board then obtain it from one of the Maxim or Texas Instruments authorised distributors.
You are also going to need various connectors, such as Dupont female to female jumper wires to connect pins plus a 5.5v DC 2.1mm 2 way splitter cable and a DC female to micro USB connector to use the power supply that came with the USR-TCP232-302 to power the GPS board.
I was going to write a long guide on software setup however I came across this guide written by Gary Miller and Eric Raymond that is very well written and once you have installed the software from Entware is very easy to do, but you will need to install coreutils-stty to be able to test that you are getting communication from the GPS unit I opted to use Chrony which is very easy to use and added the NTP servers for my geographic location.