Alex M0TOT has been back in the workshop. In fact I think we can probably call it a 'laboratory' now, as he's experimenting with a whole new toolset.
Interestingly, he's been finding his way around the world of experimental microcontroller boards, and has ended up building himself a really neat little GPS receiver.
I'm going to guess that this may be of interest to other members too, as coincidentally, Alex is the third person in the club to have built himself something like this that I know of - myself and Merv have already constructed similar projects.
Here are the hardware building blocks that Alex used:

It's a 'standard' Arduino Uno (a great universal starting point) which has then been paired with a GP-20U7 GPS module from Sparkfun Electronics. The Uno's are getting relatively expensive now, what with all the global semiconductor shortages, but this project will also work with most of the cheaper Arduinos, as well as similar microcontrollers like the Seeeduino Xiao, which is what I used. The GPS modules are fairly generic too, and as long as you can find a suitable library for them, you're laughing. The basic raw serial read below doesn't even require this, and will happily deliver you all the data you need from Low Earth Orbit. More on manipulating and interpreting that data later on, but here is the basic Sketch which will give you that data:

It's a serial UART read loop and print, that's all, but it gives you instant access to the GPS data. Here is a sample of that data as provided by Alex:
"$GPGGA,165405.000,0405.4230,N,10511.10842,W,1,09,0.91,1584.0,M,21.4,M,1.0,0000*53"
and here's what some of it means when parsed:
$GPGGA: GPS fix data
165405.000: UTC Timestamp - 16:54:05.000
0405.4230,N: Latitude = 40 Degrees + 5.4230/60 = 40.09038 N
10511.10842,W: Longitude = 105 Degrees +11.10842/60 = 105.18514 W
09 = Number of satellites used in calculation
1584.0M: 1584 Meters above sea level (estimated)
Alex is therefore having a lovely time in Inner Mongolia. Yes, of course I checked.
Different GPS modules give you access to various and possibly multiple geo-location satellite systems, including GPS, GLONASS and GALILEO.
Here's what Alex had to say about his latest project:
This is a side of ‘radio’ in which I have recently become interested. The Longitude and Latitude are for my own house in Balcombe but the project will work anywhere. I am not a specialist in ‘C’ Language Programming, so I obtained the Sketch from SparkFun (see web site below). I have a feeling that the original Sketch needed correcting, so I went onto the Arduino Forum, to find some help. The ‘VisualGPSView’ figures are from the web site below. Maybe this is a side of radio in which other members might be interested. I believe that Merv is a bit of an expert in using GPS and Arduino.
GPS Receiver GP-20U7
Connections to Arduino:
RED wire to 3.3 Volt +Ve
BLACK wire to Gnd.
WHITE wire to ~D10 PB2 - The '10' is the Rx pin definition in the SoftwareSerial declaration in the above Sketch. It's easy to get the Rx and Tx round the wrong way!
Sources:
Alex has then used some software called 'Visual GPS View', something I've never used before, but I guess you just feed it the raw GPS stream and some basic configuration data and it does the rest.
Here are some screengrabs:



Mervyn and I have extended the GPS functionality by incorporating a LoRa radio uplink via The Things Network, though that is a whole different world. We use TTN for many projects other than GPS builds, and it's a great way of getting data up onto an application server or into a cloud-based repository from where you can manipulate and view it on any number of different 'dashboards'.
If you fancy having a go at building a GPS gadget, it's very straightforward and is a great educational tool. You just need an Arduino, a GPS module, a computer and a USB cable. The Arduino IDE (programming environment) is free and easy to use. Download and install the IDE if you want to avoid any usage (compiler) limitations.
Berni M0XYF & Alex M0TOT


