GNSS/GPS module/board for arctic research

Hi

As a part of our bachelor thesis in mechanical engineering we’re looking for a GPS module to be attached to an underwater buoy that is going to float up and down (to 200m) and when it reenters the surface it will send its coordinates back to a PC in order to find it at pick it up if necessary.

Therefore we’re looking at GPS-modules and in particular https://www.sparkfun.com/products/14414, https://www.sparkfun.com/products/11858 and finally https://www.sparkfun.com/products/15193.

As we will be monitoring far north at Greenland we guess we would need both GPS and GLONASS? Therefore we assume the 11858 Copernicus II DIP cannot be used? Does the other suit the case better and will they automatically search for both GPS and GLONASS satellites?

Do you have any recommendations or inputs we should take into account? To us the ZOE-M8Q looks best? And we assume we can use this with an original Arduino or any other board with either UART og I2C?

Thanks a lot :slight_smile:

Hi there,

Very interested to learn more about your underwater buoy project. I conduct research in the Canadian High Arctic and currently have 15 iceberg tracking beacons deployed at latitudes spanning 65°N to 82°N.(https://cryologger.org/tracking/). These beacons are using [Adafruit’s Ultimate GPS, which is based on the GlobalTop FGPMMOPA6H (MTK MT3339). Despite only having support for L1 GPS (1575.42 MHz), I’ve found that signal acquisition has never been a problem.

For your application, considerations I would take into account are: 1) What is the duration of your deployment? 2) What are the restrictions of your power budget and can the GNSS module be placed in a sleep or power-saving mode? 3) Would a simple active patch antenna suffice (XA1110/SAM-M8Q) ($), or would you prefer a passive helical antenna (ZOE-M8Q) ($$$)? The Gtop XA1110 and u-blox SAM/ZOE M8Q can all communicate over I2C or UART, which will allow you to interface with a wide range of Arduino microcontrollers.

I would personally disregard the Trimble GNSS module due to its cost, amongst other reasons. If the purpose of the GNSS module is simply to aid in recovery, and not intended for logging, I feel that the Gtop XA1110 or u-blox SAM-M8Q would suffice. I assume that the buoyancy of your drifter buoy will ensure that it is always pointed skywards when it reaches the surface, so acquisition times shouldn’t be an issue.

For the next version of my tracking beacons, I’m hoping to migrate to the SparkFun Qwiic ecosystem and was just reviewing the Qwiic u-blox M8Q boards a few minutes ago. I haven’t yet determined if the M8Q boards can be put in a deep sleep mode, but here’s hoping they can be!

Cheers,

Adam](Adafruit Ultimate GPS FeatherWing : ID 3133 : Adafruit Industries, Unique & fun DIY electronics and kits)

Hi Adam

Sounds very interesting. You are more than welcome to hear more about our project and maybe we could learn from eachother . I don’t know if we can share mails in private if you would like to hear more :slight_smile:

Our expectations is a buoyancy profiler to be deployed for about 1-3 months.

To me the ZOE-M8Q looks really great as it is ready for GELILEO as well as it can track both GPS and GLONASS. However I’m in the same struggle as you regarding energy consumption and sleep mode. The profiler/buoy is to send location 1-3 times a day and will have plenty of time to do so, so I’m considering just powering it off (eg use: https://www.sparkfun.com/products/15353) and on as it re-surfaces as the fix-time is not crucial and it will be pointing skywards, yes.

Do you just use the bulit-in-antenna? As we will have a (presumably) strong capsule to entain the electronics we are probably in the need of an external antenna, but this should of course be capable of 200m water pressure. Atm. we are looking at Trident Sensors (https://www.tridentsensors.com/images/D … hrough.pdf).

Thank you for your help

/Lucas

Hi Lucas,

Good to hear from you.

A deployment of 1-3 months won’t require significant battery capacity, especially given that you’ll be submerged in ocean waters varying in temperature between 0-4°C. I’m assuming that your deployment is also in the summer?

For my application, the built-in patch antennas have been sufficient, however I’ve noticed that in the event my beacons are tilted at greater angles, or flipped upside down, it can be more difficult to acquire a GPS signal and/or transmit data via the Iridium network.

For your buoys, the ZOE-M8Q is quite suitable, as it supports both passive and active antennas. I envision that you could easily connect it directly to the Trident Sensors combined GPS/Iridium antenna, which is a very interesting antenna by the way. Do you know its cost in GBP?

As for energy consumption, the TPL5110 could certainly be an option, though it is limited to a maximum of 2 hours. In this case, you’d have to program the code to count the power on/off cycles to determine when to transmit. The other option is to add an RTC and make use of the various Arduino sleep modes. There are some great libraries to put both AVR-based (e.g. Atmega328P) (e.g. https://github.com/rocketscream/Low-Power) and ARM-based Arduinos (e.g. SAMD21) to sleep (https://github.com/arduino-libraries/ArduinoLowPower). I use a Maxim DS3231SN RTC in all of my beacons, and control the wake-up alarms with Jack Christensen’s DS3232RTC library (https://github.com/JChristensen/DS3232RTC).

Happy to share my beacon code if you think it may help!

Cheers,

Adam

Hi Adam

Yes, the deployment is in the summer months, but expected temperatures are between -2 to +2°C.

If possible we would like to make it last for one year, but that seems like a major job regarding making the buoyancy engine very efficient and not loading the float with multiple kgs of batteries.

I have requested a price for the antenna - will let you know an estimated cost when we get that :slight_smile:

I think we will go with the ZOE-M8Q. Please let me know if you find any way to enter sleep mode (though I don’t see it from the datasheet). You are probably right according to the use of a RTC. However we will need to sample data continously and save it to a SD-card. Maybe we could use two MCU’s (I think we will use the Arduino Mini Pro) - one for sampling data and controlling the buoyancy engine (which will happen more often) and one for tracking GPS/sending data through iridium (as that will not happen very often)… As it seems right now we are in lack of digital ports in something like Arduino nano / mini Pro (with the Atmega328P MC). Thanks a lot for sharing your thoughts and knowledge!

We would be very grateful to see your code. As we are not really skilled programmers we could probably learn some tricks just by looking at it :slight_smile:

Best

Lucas

Hi Lucas,

I’ve delved into the [datasheet for the ZOE-M8Q and discovered that there may be a way to directly control the power to the ZOE-M8Q module. According to the section 1.14 EXTINT: External interrupt:

1.14.1 Pin control

The pin control feature allows overriding the automatic active/inactive cycle of power save mode.

The state of the receiver can be controlled through the EXTINT pin.

The receiver can also be forced OFF using EXTINT when power save mode is not active.

If you go further and look in the [u-blox 8 / u-blox M8 Receiver Description, you’ll see that it also says:

13.5 EXTINT pin control when Power Save Mode is not active

The receiver can be forced OFF also when the Power Save Mode is not active. This works the same

way as EXTINT pin control in Power Save Mode. Just as in Power Save Mode, this feature has to be

enabled and configured using UBX-CFG-PM2

So, it seems that by configuring UBX-CFG-PM2 (either via the u-blox u-center software, or directly via the SparkFun_Ublox_Arduino_Library), you may be able to power off the module by setting the EXTINT pin LOW. I don’t have either the SAM-M8Q or ZOE-M8Q modules on hand, but I may order one to do some testing. I’m also not sure what kind of power savings this would produce. The good news at least is that both SparkFun boards are quite barebones, and there aren’t any LDOs or other circuitry that would cause annoyingly large quiescent currents. The LEDs also have pads that where you can cut the traces to eliminate the constant current draw.

As for my iceberg tracking beacon code, [here is the link to my GitHub where I’ve uploaded the code that’s currently powering all of my beacons. V2 of my beacon is based on the SAMD21 microcontroller, whereas V1 made use of the ATmega328P.

Cheers,

Adam](GitHub - cryologger/ice-tracking-beacon: A low-cost, robust, and user-friendly ice drift tracking beacon based on the open-source electronics Arduino platform capable of providing long-term cryospheric observations.)](https://www.u-blox.com/sites/default/files/products/documents/u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221)_Public.pdf)](https://cdn.sparkfun.com/assets/1/c/f/8/a/ZOE-M8_DataSheet__UBX-16008094_.pdf)

Hi Adam

Sounds interesting with the ZOE-M8Q. Initially I would have bought that one, but as it is sold out now I will unfortunately have to buy another - and will probably go with the XA1110 (Qwiic) (https://www.sparkfun.com/products/14414).

Regarding the Trident deepsea antenna it is way too expensive (as expected) for our case. It is 810 pounds (!).

In addition to this: Do you have any issues with your connection? Is your beacon in water or is it always on the ice? We are a bit worried if waves will affect our sattelite-connection if we are not more than a couple of centimeters above water surface.

Thank you very much for your sharing. We have worked on our mechanical design the past months, but will get into the coding now. I’ll let you know if we find anything interesting :slight_smile:

Looks very cool with your beacons from the pictures btw. Great job!

Cheers,

Lucas