Is there a way to connect a digital transducer to Sparkfun RTK facet (GPS-19984) either through the QWIIC or DATA input?

Hi all

This is urgently needed for research.

Is there a way to connect a digital transducer to Sparkfun RTK facet (GPS-19984) either through the QWIIC or DATA input?

Could this measurement automatically be added to the data then you simply add the pole length in SWMAPS? So you only have to adjust the pole distance.

This would be a massive upgrade for the product.

Also what low budget digital transducer would you suggest and can you provide a wiring diagram of the setup?

The Arduino or raspberry pi method is too complex for my programming skillset and prefer a plug and play method

Thanks
Chris Hopper

2 Likes

Hi @christopher187811 - welcome to the forums :slight_smile:

From the docs:

The short answer is I don’t think there are any plug-and-play options.

The Facet is open-source and customisable.

It looks like adding the functionality you desire will require the following steps:

  • identify the I2C sensor you want to bring to the party
    • if it is a QWIIC sensor, there will be a driver for it by SparkFun, else
    • find / write a driver for it in Arduino
  • integrate new firmware into the factory firmware to add the functions you desire eg. datalogging the new sensor.
  • (optional) post-process the logged data or add some algorithm to the Facet firmware to make use of this new data eg. Kalman Filtering.

I hope this helps in some way


Do you mean some kind of distance sensor? It sounds like you wish to apply a correction factor to the GPS measurement to correct for the length of the pole that the Facet is mounted to.
Sounds pretty reasonable, given there are QWIIC distance sensors.
My only concern is that the RTK Facet might be more accurate than any of these sensors - and so introducing the distance sensor in a naive way could actually be more harmful. Which is why i mentioned Kalman Filtering as one approach.

It seems like the simplest solution might be to introduce a constant offset in code to account for the pole length. Does that sound reasonable?

2 Likes

I think results could be smoothed out in in post data collection using hecras

There is some what of a need to calibrate the transducer in turbid water using a lead line

My concern is finding a digital water transducer on a budget over a single beam echosounder and get then get the transducer to tell the the GPS module the the addition measurement

Right! We’re definitely in the research-project-zone here :sweat_smile: In any case, there I’ve provided one recipe you could follow.

Alternatively, you could treat the Facet as any other sensor. Pull data from the Facet and other transducers using some host microcontroller and combine readings there.

1 Like

I’m now have an adurino and trying to work have to get the rtkgps facet to talk to get.
side note
Using tera term I can change the settings in the facet and get it to connect to WIFI then connect to an ntrip internally.
There is a ping 2 from blue robotics and I would want it to add to the Z from the gps.
Ideally every 3 or 5 seconds I want a table output be X,Y,(Z+polelength+ping2-Ausgeoid09)
Im waiting on a QWIIC cable to do more.
Sparkfun has a RTKGPS library for Arduino but no clue on how to get it to work.

Hi @christopher187811

This is the Git Repo you need.
Do you need some guidance cloning and building a code base from github or are you already familiar? :slight_smile:

1 Like

yeh I have never done this before

Hi Christopher

Is this transducer of the type used in Echo Sounders?? If so I have never heard of a digital one. The ones I have dealt with are strictly analog at that point. They are hit with several Watts (sometimes 100s) of 50 or 200kHz (I think those are common frequencies) and receive an echo, measure the time then calculate and display the results in some visible manner. Obviously at some point tis process is digital for calculation and display purposes but at the transducer itself I think not.

If this is in water I assume you know the actual speed of the pulse in the water will depend on whether it is fresh or salt and will even depend on the salinity. So the accuracy of any measurement would not be terribly accurate without some specialised equipment or determine water type and salinity and add/subtract a correction.
Cheers Bob

One other thing. You speak of turbulent water. If this has lots of bubbles in it as caused by a boat propeller you can pretty much forget the transducer. It will not work successfully.

Im sure there is a way to calibrate it like any transducer on a boat.
You could simply drop a lead weight on a rope and measure to the device.

Its more about horizontal and changes in surface water height for the rtk fix.

This is to fill in the gaps of lidar data not replace those methods of collection.
Eg on a major river in queensland there is missing 25% of its bathymetry data.

There are commerical USV available with this setup and I really doubt they measure salinity because the application Hydromagic doesnt have this input. Neither do the trimble handheld gps transducers.

Hi Christopher
I apologise. I did not realise the vast changes that must have taken place since I had anything to do with this sort of thing. In those times you requires Watts @ 200kHz or 50kHz to get a result. On larger commercial vessels the echo sounder could be in the 100s of watts.

When I looked at that link the bit about using this as an Altimeter had me a bit confused as there is a VAST difference between sound speed in air and water. The video explained this. By measuring the distance to sea bed from an underwater vessel the device was referred to as an altimeter. That is the distance from the vessel to the sea floor.

So you do indeed have a transducer with a digital output.

But the comments re sound (ultrasonic) speed in different types of water still hold. That is physics. But the resolution and accuracy quoted would probably take care of this. After all measuring distance to the bottom of the waterway (sea, river etc) to the nearest few millimetres would be stretching it a bit.
Also the performance in turbulent water if full of air bubbles. Experiment would confirm this.
Cheers Bob

Hi Christopher
Add on.

This is possible. The bottom of rivers and indeed the sea floor is constantly changing.
That is why the Navy have several survey vessels (and their satellite boats) constantly surveying the sea floor around our coast. Like painting the Harbour bridge, when you get to the end you start again.
Cheers Bob

No worries.

Good news! I was just reading the README of the repository and apparently this library can be installed via the Arduino IDE Library manager. :slight_smile:
That’s the best way :+1:
I’d just run a search for “SparkFun u-blox GNSS”.

Pix :heavy_heart_exclamation:

1 Like

This is for rivers, creeks and maybe intertidal zones. Max 10m deep

I found this piece of info and its at the low end of my concerns now.

The speed of sound increases as water temperature, salinity and water pressure increases, and all of the above vary with depth. The speed of sound varies from about 1432 metres/sec. in fresh water, to about 1535 metres/sec. in salt water of high salinity. For depth sounding equipment design purpose a sound speed value of 1500 metres/sec. are assumed.

For normal applications on merchant vessels, the indication of the depth value based on the average speed of sound (1500 m/sec.) causes a minor error when changing from Salt Water (SW) to Fresh Water (FW). Assuming there is a small correction adjustment for SW, the true depth in FW is found to be about 3% less than the indicated depth. As can be seen, this deviation is very small and thus insignificant for practical considerations.

Yes I seen this but when I verify i get this error
C:\Users\cmhop\AppData\Local\Temp\arduino\sketches\0B0861ACDAAEBD214892C7F189B18E0E/…..\cores\arduino_renesas_uno_unor4wifi_86f939dcb9a4040cfff840dd87b1ea4e\core.a(main.cpp.o): In function arduino_main()': C:\Users\cmhop\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.1.0\cores\arduino/main.cpp:114: undefined reference to setup’
C:\Users\cmhop\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.1.0\cores\arduino/main.cpp:117: undefined reference to `loop’
collect2.exe: error: ld returned 1 exit status

exit status 1

Compilation error: exit status 1

Ah ok.
Can you clarify what steps you took to generate this error?
What are you verifying?

1 Like

I think I was trying to add the whole library

I found this Example10_GetHighPrecisionPositionAndAccuracy.ino
It seems to be easier to understand but I need a QWIIC cable which is in the post
I dont want to go the RX/TX Method on pin 10 and pin 9 because hopefully later I can add the PING code an it uses those pins

1 Like

Hi Christopher

Yes that is what I was getting at. I wasn’t sure of the actual numbers but I suppose I could have looked them up as you did.

The master of any commercial vessel would be well aware of all this and would make corrections if the occasion need it. The echo sounder is not normally used for a warning system for rapidly disappearing water. By the time this condition is detected the ship would be aground anyway as the front of the ship could be quite a distance ahead of the sounder transducer. In normal usage I think an accuracy of +/- a foot or so would be of little consequence.

There was a device I came across at Wewak, PNG a good many years ago which may interest you. If you can now find any info on it. It was call a “Wave Rider” and it was tethered or anchored a bit off shore and apparently the weather boffins were measuring and recording the vertical movement of the sea at that point.

As for getting your Ping Sonar info into some other useful form I am afraid I am unable to help there. That is one for the Digital programming Gurus.
Cheers Bob

1 Like