Satellite GPS locator with Iridium and LTE in the Arctic
I wanted to present a project that I have spent a total of several weeks of my life on.
A GPS tracker that sends data to the cloud via Iridium satellites or the LTE mobile network. The project was battle-tested on an expedition yacht that reached Spitzbergen by sailing through the open waters of the Arctic Ocean visiting, among other places: Polish Polar Station Hornsund.
.
Background
I travel quite a lot on my motorbike and 4x4 vehicle, both on and off-road. In the case of the latter, navigation is done using topographical maps, we record and drive along so-called tracks, which are routes saved using navigation devices and apps like Garmin. These tracks can be saved and shared with others using GPX format.
I am the author of the application for drawing such tracks (https://gpxlab.net), and because we record routes while driving somewhere, I use GPS locators mounted in vehicles that send position data to a server. This data can be exported to GPX.
The most interesting journeys are to inaccessible places, where there is often no mobile network coverage and civilisation is even hundreds of kilometres away: oceans, deserts, exotic countries. In such places, basically the only way to communicate with the world is via Iridium, which is used, for example, by the Garmin InReach. This is an important topic because these devices not only allow you to record GPX tracks, but also allow you to send messages or call for help when there is a serious problem.
The next step, as an amateur electronics technician, is to build your own tracker. While building a locator using the GSM network is relatively simple: controller + gps + sim800l, a project with LTE and satellite communication requires more expensive and better components.
The ultimate motivation for building the project was the opportunity to join the crew of the yacht S/Y Southern Star, which sails in the Arctic.
Below is a description of the device that was successfully spun out.
.
Assumptions
- is to work everywhere (!)
- in civilisation sends data up to 10 s via LTE
- outside civilisation sends data every 1 hour via Iridium
- data recording on SD card
- clear data display
- relatively easy expansion, exposed IO pins
- connection of additional sensors (I2C)
- power supply 12V (car / ship)
- backup power supply from batteries (approx. 2 hours)
- Environmentally resistant housing
Hardware consists of the following blocks:
- microcontroller: STM32F401 on BlackPill board
- receiver GPS: NEO 8M
- Iridium transceiver: RockBlock 9603N
- LTE module: SIM7600G, SIM card from 1NCE (coverage in more than 170 countries)
- 128x64 OLED display on SPI
- SD module
- power supply module
- emergency power supply module (Waveshare)
- the PCB that holds the whole thing together
Firmware I wrote in C using the FreeRTOS and CMSISv1 implementation provided by STM (CubeMX). The real-time system made it easy to distribute tasks between different blocks of the program like a person thread for displaying or collecting data from the GPS module. I used the BlackPill module from the STM32F401 because of the increased amount of RAM, so there was no problem to fit the programme data without exorbitant optimisation. The STM32F401 offers three hardware UARTs to which GPS, LTE and Iridium are connected. However, to make debugging easy, I used a trick with hardware UART emulation, so you can connect a separate UART->USB converter under one pin and track the device's performance.
The microcontroller is programmed using the STLink dongle.
In brief: .
- every 10 s the device adds a report to the queue with position, speed, course and altitude
- if LTE is available, reports are sent immediately
- if LTE is not available or an hour has passed since the last report was sent, an attempt is made to send via Iridium
- in order to send via Iridium, the status of "network availability" is monitored, i.e. whether the transceiver "sees" the satellite or not
- in addition, a snapshot of the reports is saved to the SD card every 10 s
- a separate thread controls the display of information with GPS, LTE and Iridium status, GPS data and UTC clock from GPS.
The firmware was written on my knee, so of course it could be done better, display more information and add more logic.
GPS: .
The NEO 8M GNSS module sends data every 1 s via the UART in NMEA format. The module has an external low-cost GPS antenna connected. Importantly, although the module supports Baidou and Glonass, the antenna itself has a filter on the GPS frequency, so the other GNSS systems were unlikely to be used for positioning in this case. The unit catches a fix after about a minute and is able to determine position with perhaps 4 or more satellites. For parsing NMEA there is a very good library https://github.com/kosma/minmea.
Iridium:
The Iridium module is a RockBlock board with an Iridium 9603N transceiver. It communicates via UART using dedicated AT commands. In addition, there is a pin informing about the visibility of the satellite network, which is important, because the module is able to send something sometimes every few minutes, when a satellite happens to fly over the device. RockBlock is an intermediary between us and Iridium so you need to pay for line availability and purchase a data package.
LTE: .
After various adventures with LTE, I used the SIM7600G module together with a SIM card from 1nce, so the device should have coverage in about 170 countries worldwide. The LTE module is connected to an external antenna for the band LTE and interestingly, in tests in the Arctic, the device was catching the signal much earlier than iPhone and Android mobile phones. Communication over the UART using AT commands.
Display: .
OLED 128x64 bought from majfriends, operated via SPI.
Power supply: .
The project has two components for power supply, the first to a standard step-down inverter with a capacity of up to 3A set at 5V so that the device can be powered with voltages from 7V to about 32V. It works with 12-14V battery voltages without problems. As an option, the board supports a UPS power module with three batteries, which provide continuous operation of the device for about 2 hr. In addition, there are several electrolytes, as both LTE and Iridium have spikes in power requirements when communicating with the grid.
Cloud: .
The device was intended to send data to the system I created earlier. SkySpy is an application that collects data from GPS locators, displays it on a map and allows you to export the data to GPX.
Body: .
I bought it "by eye" before I made the board I was designing to fit it. It is housed in G 214C polycarbonate, and the transparent lid simplified the assembly of the display.
PCB: .
I did the design on the fly in EasyEDA, as there were ready-made public components available in the cloud to represent the modules used, which sped up the work considerably. I sent the board design to be done in JLCPCB. Of course, there were errors, but a few path cuts and jumpers took care of the problem. The layout of the components was chosen to fit them all in, which also caused some problems such as the lack of a switch and a hard-to-reach SD card slot.
Prototype: .
I made the first approach on a simple contact board, so I tested the modules before I had a finished device that would be hard to modify anymore.
Tests:
The motivation to finish the project was the plan for a sea expedition to Spitzbergen.
I mounted the device above the yacht's gangway, where I had access to 12V power. The three external antennas for LTE, Iridium, GPS were simply next door. We also had a Garmin InReach satellite phone and an Iridium Edge terminal on board, so there was something to compare the project's performance with.
We set off from Tromso in northern Norway and, due to a storm in the Barents Sea, sailed through the fjords to the north-east. When the weather window appeared we headed north towards Bear Island and on to Spitzbergen. From the south, the first base on Spitzbergen is the Polish Polar Station Hornsund, which we visited courtesy of the scientists. Sailing further north we reached Prince Charles Land and the highest point of the expedition 78°44'N, then sailed down to Isfjord to the port of Longyearbyen.
.
As expected, the locator sent data to the server every 10 s in the coastal water zone, i.e. the entire Norwegian fjords have LTE coverage. Coverage was lost approximately 20 Nm (37 km from the Norwegian coast). On the ocean in polar areas, the only way to communicate is with Iridium and here we had satellites almost all the time overhead, so without much problem the device sent positions every 1 h. LTE coverage reappeared around Isfjord where Longyearbyen, the capital of Svalbard and the largest settlement on the island of Spitzbergen, is located.
Commercialisation: .
The project essentially ends with this expedition. It is unlikely to make sense to develop it further due to the horrendous cost of Iridium transmission via RockBlock, i.e. £13 for line rental for a month and £14 for the cheapest package of 100 credits or 5kB (!?). In comparison, it is cheaper to subscribe to Garmin InReach, which sends credits every 10 minutes. For me, on the other hand, this has been the hardest electronic project I have completed to date. It forced me to learn both STM and FreeRTOS, so in that respect it was worth it, and there is the eternal satisfaction that it actually worked in the Arctic
.
For those interested, links:
- full route as sent by the locator after corrections: https://app.gpxlab.net/share/5b85c2e5-82e0-42d7-afcc-8595f449a423
- RockBlock 9603N: https://www.groundcontrol.com/product/rockblo...-compact-plug-and-play-satellite-transmitter/
- S/Y Southern Star: https://www.sysouthernstar.com/
A GPS tracker that sends data to the cloud via Iridium satellites or the LTE mobile network. The project was battle-tested on an expedition yacht that reached Spitzbergen by sailing through the open waters of the Arctic Ocean visiting, among other places: Polish Polar Station Hornsund.











Background
I travel quite a lot on my motorbike and 4x4 vehicle, both on and off-road. In the case of the latter, navigation is done using topographical maps, we record and drive along so-called tracks, which are routes saved using navigation devices and apps like Garmin. These tracks can be saved and shared with others using GPX format.
I am the author of the application for drawing such tracks (https://gpxlab.net), and because we record routes while driving somewhere, I use GPS locators mounted in vehicles that send position data to a server. This data can be exported to GPX.
The most interesting journeys are to inaccessible places, where there is often no mobile network coverage and civilisation is even hundreds of kilometres away: oceans, deserts, exotic countries. In such places, basically the only way to communicate with the world is via Iridium, which is used, for example, by the Garmin InReach. This is an important topic because these devices not only allow you to record GPX tracks, but also allow you to send messages or call for help when there is a serious problem.
The next step, as an amateur electronics technician, is to build your own tracker. While building a locator using the GSM network is relatively simple: controller + gps + sim800l, a project with LTE and satellite communication requires more expensive and better components.
The ultimate motivation for building the project was the opportunity to join the crew of the yacht S/Y Southern Star, which sails in the Arctic.
Below is a description of the device that was successfully spun out.



Assumptions
- is to work everywhere (!)
- in civilisation sends data up to 10 s via LTE
- outside civilisation sends data every 1 hour via Iridium
- data recording on SD card
- clear data display
- relatively easy expansion, exposed IO pins
- connection of additional sensors (I2C)
- power supply 12V (car / ship)
- backup power supply from batteries (approx. 2 hours)
- Environmentally resistant housing
Hardware consists of the following blocks:
- microcontroller: STM32F401 on BlackPill board
- receiver GPS: NEO 8M
- Iridium transceiver: RockBlock 9603N
- LTE module: SIM7600G, SIM card from 1NCE (coverage in more than 170 countries)
- 128x64 OLED display on SPI
- SD module
- power supply module
- emergency power supply module (Waveshare)
- the PCB that holds the whole thing together
Firmware I wrote in C using the FreeRTOS and CMSISv1 implementation provided by STM (CubeMX). The real-time system made it easy to distribute tasks between different blocks of the program like a person thread for displaying or collecting data from the GPS module. I used the BlackPill module from the STM32F401 because of the increased amount of RAM, so there was no problem to fit the programme data without exorbitant optimisation. The STM32F401 offers three hardware UARTs to which GPS, LTE and Iridium are connected. However, to make debugging easy, I used a trick with hardware UART emulation, so you can connect a separate UART->USB converter under one pin and track the device's performance.
The microcontroller is programmed using the STLink dongle.
In brief: .
- every 10 s the device adds a report to the queue with position, speed, course and altitude
- if LTE is available, reports are sent immediately
- if LTE is not available or an hour has passed since the last report was sent, an attempt is made to send via Iridium
- in order to send via Iridium, the status of "network availability" is monitored, i.e. whether the transceiver "sees" the satellite or not
- in addition, a snapshot of the reports is saved to the SD card every 10 s
- a separate thread controls the display of information with GPS, LTE and Iridium status, GPS data and UTC clock from GPS.
The firmware was written on my knee, so of course it could be done better, display more information and add more logic.
GPS: .
The NEO 8M GNSS module sends data every 1 s via the UART in NMEA format. The module has an external low-cost GPS antenna connected. Importantly, although the module supports Baidou and Glonass, the antenna itself has a filter on the GPS frequency, so the other GNSS systems were unlikely to be used for positioning in this case. The unit catches a fix after about a minute and is able to determine position with perhaps 4 or more satellites. For parsing NMEA there is a very good library https://github.com/kosma/minmea.
Iridium:
The Iridium module is a RockBlock board with an Iridium 9603N transceiver. It communicates via UART using dedicated AT commands. In addition, there is a pin informing about the visibility of the satellite network, which is important, because the module is able to send something sometimes every few minutes, when a satellite happens to fly over the device. RockBlock is an intermediary between us and Iridium so you need to pay for line availability and purchase a data package.
LTE: .
After various adventures with LTE, I used the SIM7600G module together with a SIM card from 1nce, so the device should have coverage in about 170 countries worldwide. The LTE module is connected to an external antenna for the band LTE and interestingly, in tests in the Arctic, the device was catching the signal much earlier than iPhone and Android mobile phones. Communication over the UART using AT commands.
Display: .
OLED 128x64 bought from majfriends, operated via SPI.
Power supply: .
The project has two components for power supply, the first to a standard step-down inverter with a capacity of up to 3A set at 5V so that the device can be powered with voltages from 7V to about 32V. It works with 12-14V battery voltages without problems. As an option, the board supports a UPS power module with three batteries, which provide continuous operation of the device for about 2 hr. In addition, there are several electrolytes, as both LTE and Iridium have spikes in power requirements when communicating with the grid.
Cloud: .
The device was intended to send data to the system I created earlier. SkySpy is an application that collects data from GPS locators, displays it on a map and allows you to export the data to GPX.
Body: .
I bought it "by eye" before I made the board I was designing to fit it. It is housed in G 214C polycarbonate, and the transparent lid simplified the assembly of the display.
PCB: .
I did the design on the fly in EasyEDA, as there were ready-made public components available in the cloud to represent the modules used, which sped up the work considerably. I sent the board design to be done in JLCPCB. Of course, there were errors, but a few path cuts and jumpers took care of the problem. The layout of the components was chosen to fit them all in, which also caused some problems such as the lack of a switch and a hard-to-reach SD card slot.
Prototype: .
I made the first approach on a simple contact board, so I tested the modules before I had a finished device that would be hard to modify anymore.










Tests:
The motivation to finish the project was the plan for a sea expedition to Spitzbergen.
I mounted the device above the yacht's gangway, where I had access to 12V power. The three external antennas for LTE, Iridium, GPS were simply next door. We also had a Garmin InReach satellite phone and an Iridium Edge terminal on board, so there was something to compare the project's performance with.
We set off from Tromso in northern Norway and, due to a storm in the Barents Sea, sailed through the fjords to the north-east. When the weather window appeared we headed north towards Bear Island and on to Spitzbergen. From the south, the first base on Spitzbergen is the Polish Polar Station Hornsund, which we visited courtesy of the scientists. Sailing further north we reached Prince Charles Land and the highest point of the expedition 78°44'N, then sailed down to Isfjord to the port of Longyearbyen.
.
As expected, the locator sent data to the server every 10 s in the coastal water zone, i.e. the entire Norwegian fjords have LTE coverage. Coverage was lost approximately 20 Nm (37 km from the Norwegian coast). On the ocean in polar areas, the only way to communicate is with Iridium and here we had satellites almost all the time overhead, so without much problem the device sent positions every 1 h. LTE coverage reappeared around Isfjord where Longyearbyen, the capital of Svalbard and the largest settlement on the island of Spitzbergen, is located.
Commercialisation: .
The project essentially ends with this expedition. It is unlikely to make sense to develop it further due to the horrendous cost of Iridium transmission via RockBlock, i.e. £13 for line rental for a month and £14 for the cheapest package of 100 credits or 5kB (!?). In comparison, it is cheaper to subscribe to Garmin InReach, which sends credits every 10 minutes. For me, on the other hand, this has been the hardest electronic project I have completed to date. It forced me to learn both STM and FreeRTOS, so in that respect it was worth it, and there is the eternal satisfaction that it actually worked in the Arctic

For those interested, links:
- full route as sent by the locator after corrections: https://app.gpxlab.net/share/5b85c2e5-82e0-42d7-afcc-8595f449a423
- RockBlock 9603N: https://www.groundcontrol.com/product/rockblo...-compact-plug-and-play-satellite-transmitter/
- S/Y Southern Star: https://www.sysouthernstar.com/
Comments
Revelation, huge interest in your project. 300 views, 20 plus in 5h. I envy the travelling. If you give me a Parcel Post in Private Message, I'll send a small gift :) . [Read more]
Actually beautiful device, but I would like to ask why the Author - Colleague chose the most expensive operator of satellite communications , "Irydium", because after all Turaya, Inmarsat or Globalstar... [Read more]
. Well not really, the plan was to operate above 70*N and 70*S, so polar areas and there neither Turaya, Inmarsat nor Globalstar have coverage. Ba, our onboard AIS from Raymarine "ran out" around 75*N... [Read more]
Very interesting project and story, maybe you would like to appear on the elektroda.pl podcast? https://www.elektroda.pl/rtvforum/audio.php The expedition and project looks like you are pushing some... [Read more]
Interesting project, worth getting to know more about the project I think. Congratulations on your interesting journey. [Read more]
A very interesting premise which resulted in, for me, a super design and execution. Thanks to you I've scoured the internet and learned something new. Maybe you will actually agree to do a podcast. [Read more]
How many writes will the SD card hold? Wouldn't it be better to a RAM buffer of some kind with backup and write, say, once an hour or in the event of a power failure? Apart from that - great project... [Read more]
. In the case of an aircraft, that's a lot, but in the case of a boat, an hour is probably acceptable? [Read more]
I think only Iridium (price) provides planetary connectivity in general, and probably because the US Department of Defense has a hand in it. Prices Link Knocks your socks off [Read more]
Iridium was created with funding from Motorola in the 1990s with the idea that it would be a technology that would allow people to call from anywhere in the world. In the meantime, the market has moved... [Read more]
I think I would use a 7 seg display instead of one like this. It would save a bit of energy especially since it's only the digits that change and the descriptions next to the display. You probably need... [Read more]
Layman's question. Wouldn't it be possible to use starlink and swarm for transmission ? https://swarm.space/ [Read more]
. maybe yes, you would have to test here is an interesting comparison: https://nootropicdesign.com/projectlab/2022/07/30/swarm-vs-iridium-for-satellite-iot/ [Read more]
I see there are cheaper SMS/mail services to Iridium too: https://www.sparkfun.com/products/13745 Whereas looking at the scale and cost of swarm.... this solution may further limit the popularity of ... [Read more]
You can't use Starlink because you have an area assigned there from which you "operate". - this is the "normal" version Of course there are global options but the prices are rising fast Besides, there... [Read more]
Yacht prices aren't small either. If it were a scooter locator, it would indeed be expensive. But sailing around the remote corners of the globe, it's better to be assured of continuous operation, even... [Read more]
There are professional and off-the-shelf systems for satellite location if that is how we want to approach :) . [Read more]
. I think there are even a few manufacturers, known and bought. [Read more]
. Are you sure we are talking about the same thing? Where do you get the information that starlink (swarm) is assigned to an area ? Same issue with the antenna... Example of a tracker. https://ww... [Read more]