Welcome to the Panbo Marine Technology Forums.
Based on a prototype demo and Furuno claims, I believe that a compact marine satellite compass like the new SCX design can accurately and quickly measure all sorts of boat motion besides compass-type Heading. Can this also be done at much less expensive with modern DIY electronics? Is there real-world on-the-ocean evidence?
https://panbo.com/furuno-scx20-scx21-satellite-compasses-the-impressive-demo-at-nmea
Is a 3-axis speed of any special use measuring the performance of sailboats?
I am confused why gps compasses look to put all the receivers in the same housing. Why not split in two, put on each end of the boat, allow the user to enter information on how far each sensor is off the centerline? The separation between receivers should make COG extremely accurate.
Switching this discussion over got a little confusing so I'm reposting Andy's latest here:
"Anyways, I have thought about this more, settling for single frequency and sourcing GPS units with raw timing aka carrier phase measurements from Aliexpress (many options):
https://www.aliexpress.com/item/32816656706.html
And using Raspberry Pi with rtklib results in satellite compass with BOM less than 50 USD and with long enough baseline unlimited accuracy - well dimensions of boat do limit this somehow, but sub 0.1 deg is achievable in practise. As a bonus, doing this type of project teaches you how these things _really_ work and that is priceless in my opinion.
Options for DIY GNSS compass:
1. cheapest possible, external calculations:
- 2 x aliexpress sourced ublox 8T receivers with integrated antenna, sub 15 usd each
- Raspberry Pi running Rasbian linux, around 20 usd
- RTKLIB - doing the RTK calculations, free
- optional Arduino with can-shield or Yacht Devices NMEA2000 gateway or Actisense NGT-1 to interface this to NMEA 2000 -network
2. mid range, onboard calculations
- preconfigured kit with (nearly) everything
<a href=" removed link " rel="nofollow ugc"> removed link
Ublox F9 receiver inside, absolutely the best receiver available today, does all the constellations and on dual bands as well.
- optional Arduino with can-shield to interface this to NMEA 2000 -network
- or Raspberry Pi (required for interfacing) and Yacht Devices NMEA2000 gateway or Actisense NGT-1 to interface this to NMEA 2000 -network
I have had both types running, first type for a couple of years and second type now for almost a year. The dual frequency beats single frequency every way. Time to fix is seconds instead of sometimes minutes, solution is rock stable and I have yet to see a false fix. With single frequency it is a bit flaky, but works fine once you get it working.
Easiest way to try this out:
- get two of of these 12 usd unit from Aliexpress, 25 usd total including the shipping
The unit can be any model, but it has to have ublox 8T or similar receiver that outputs raw GNSS messages, these are required for carrier phase measurements
- connect them to any laptop via two usb ports or get an usb hub
- set them say 1-2 meters apart. More is better. Sky has to be visible 360 degrees, boat is an ideal place to try, backyard of a house not so ideal.
- configure them to output raw gnss messages with free Ublox U-Center sowtware. Also select constellations to be used
The relevant messages are called UBX-RXM-SFRBX and UBX-RXM-RAWX. Good value for testing is say 1 Hz repeation rate. It can be set higher later on when everything works
GPS + Glonass + Galileo is a good starting point. 8T can only do three out of four at one time, 9T/9P can do all four + on dual frequency also - but on higher price
- Open the connection to the receivers with Rtknavi, which is included in RTKLIB package
- Select one USB/Com-port as base and another as rover
- Select constellations and set mode to moving base
- Wait till it shows first "float" (partial solution) and then "fix" (full RTK solution)
- Now the baseline heading indicated is true heading between the units
- From Rtknavi you can set to output this data as NMEA 0183. No N2K support unfortunatelly, that has to be dealt seperately
Anyway, here is a walkthrough for 30 minute and 25 usd satellite compass. As a bonus you will learn endless amount of new things about GNSS once you dig into the details.
ps. Laptop can well be a Windows laptop for trying and evaluating, though for long term use Raspberry with linux is cheaper, more stable and uses less power
Something like a precision9 compass uses magnetic compass to determine heading which is prone to interference in normal ways that GPS compass are not affected.
The mems sensor for 3-axis orientation supplements the data derived from the GPS antennas moving in 3d space. This is useful to autopilots for rate-of-turn and 3d systems like DFF3D, timezero professional, etc.. Some sounders can use it to remove boat motion from the depth finder picture.. Going over waves makes it so you can't see if the bottom is bumpy or smooth, etc... Sometimes autopilots get misbehaving because of magnetic interference.
DFF3D has a mems type of motion sensor IN the transducer which is useful but not perfect. They will recommend a sat compass for better detail. If you're in 100' of water and your boat rocks 1 degree without the computer knowing about it, you can do the high school geometry and figure out the distance change between 60 and 61 degrees with the vertical leg being 100' ... It does make a difference.
It's a good project I suppose.. It also has to output data in a format useful... Furuno uses different sentences than Si-Tex for example for heave/roll data. So keep that compatibility in mind. But since these devices have come down so much in cost, it's attractive to just buy the new antenna.
I would like to suggest to try Ublox mounted on Raspberry Pi. Simple and easy to install. Ublox output NMEA 0183 sentences and Raspberry Pi can convert it to be whatever format data you needed.
Is there any links out there, to find more info about these Diy compasses?
Something like a precision9 compass uses magnetic compass to determine heading which is prone to interference in normal ways that GPS compass are not affected.
The mems sensor for 3-axis orientation supplements the data derived from the GPS antennas moving in 3d space. This is useful to autopilots for rate-of-turn and 3d systems like DFF3D, timezero professional, etc.. Some sounders can use it to remove boat motion from the depth finder picture.. Going over waves makes it so you can't see if the bottom is bumpy or smooth, etc... Sometimes autopilots get misbehaving because of magnetic interference.
DFF3D has a mems type of motion sensor IN the transducer which is useful but not perfect. They will recommend a sat compass for better detail. If you're in 100' of water and your boat rocks 1 degree without the computer knowing about it, you can do the high school geometry and figure out the distance change between 60 and 61 degrees with the vertical leg being 100' ... It does make a difference.
It's a good project I suppose.. It also has to output data in a format useful... Furuno uses different sentences than Si-Tex for example for heave/roll data. So keep that compatibility in mind. But since these devices have come down so much in cost, it's attractive to just buy the new antenna.
On the offnote, do you guys have any advice on binoculars? I have a good pair of hunting binoculars https://gritroutdoors.com/optics/sport-optics/binoculars/ on my hand, but not sure if those would cut for sailing.
So motion sensor would be the worst of the 3 I'd assume?
Has anyone tried the Unicore UM982? https://en.unicore.com/products/dual-antenna-gnss-um982/
This is a dual antenna module which claims to calculate Heading onboard and output NMEA sentences at a cheaper price than 2 x UBlox RTK modules
For those of us not able to follow thru on DIY, the Furuno is an excellent product.
Baseline length does indeed limit performance, and I too find it a bit surprising that the antennas have to be squeezed so close together. This does limit the absolute accuracy and reliability, which has to fixed/estimated/masked in the clever software code of the unit. There are multi-antenna solutions available, but I fear this is not cheap:
https://www.hemispheregnss.com/product/vector-vs330-gnss-receiver/
For DIY minded, you can always make your own:
https://www.ardusimple.com/product/simplertk2b-heading-basic-starter-kit-ip67/
Ublox F9 receiver inside, absolutely the best receiver available today, does all the constellations and on dual bands as well. Dunno if any commercial gnss compasses are dual band, don’t think so. Interfacing this to NMEA2000 is pretty simple with some DIY parts, eg. Arduino with CAN shield.
What is the compass accuracy of the DIY version? Is multipath performance an issue that is dealt with in packaging, software, other?
Is multipath an issue for DIY users to work out, or is it already solved at the sensor or software level of the Arduino components?
Does DIY require that the sensors are in line with each other, or can you provide an offset between where each sensor is installed and the centerline of the object (boat) you want to determine the compass heading of?
It does not.
You can align sensor freely. Then you end up with baseline length and direction between antennas, or antenna phase centers to be exact, and can deduce vessel true heading from this.
Also being RTK units you can feed external RTCM stream for outside source, either your own RTK basestation or a public free/paid service, and end up with centimeter accurate position as well. But this is another topic in itself, but this hardware can do this also. Could be used for precision docking for example, could steer the boat to exact spot in full darkness and fog. Same techinique they use for offshore drilling for example.
I would not worry about multipath that much, it helps a lot when you have so many channels available on dual frequency. False fixes resulting from multipath simply don’t happen in practise.
Accuracy is limited by baseline length, and even few meters is enough for sub 0.1 deg accuracy I think. I think this is a non-issue.
Well, I’d like to see some evidence from real ocean use. But I’d also like to see this discussion move to the Forum where I just created a “DIY Satellite Compass” topic. Let’s please keep this entry about the SCX. There much to discuss just about this design — like the fact that it is dual-frequency — and units will soon be in real use.
It seems that the DIY version has no gyro / accelerometer sensors as backup in case of no GNSS signals, or am I wrong?
No this particural GNSS receiver pair does not have a gyro/ahrs integrated (but you can get one from Ublox with internal one). Though refresh rate is usually high enough that external reference is not 100% necessary, at least not on a slow moving boat like mine.
Though you could be to have external gyro/ahrs if you want one. You can get MEMS based bare sensors compatible with Arduino for few dollars to tens of dollars (hundreds of options):
https://www.pololu.com/product/2738
I have similar to one above, but it is a discontinued model.
or you can buy one with onboard calculations (also many many options):
https://www.pololu.com/product/2763
or you can buy a ring laser gyroscope for a couple of big bucks 🙂
“Is a 3-axis speed of any special use measuring the performance of sailboats?”
Special I don’t know, but wonder: Is there any measurement of boat motion — especially if delivered in a standard N2K PGN — that could not be useful to thorough performance analysis, at least stabilization of other sensor info?
I wonder if that is best dealt with by having a DIY version monitor a second compass (I have Precision 9 for example), and should a GNSS receiver drop out, substitute the value of the 2nd compass temporarily. If someone got a little fancy, they could be constantly comparing the secondary source to their own, create a table of correction values, and apply those correction values when temporarily repeating the secondary source.
Dan, I don’t understand the problem you are trying to solve. Compact satellite compasses deliver very accurate COG, and quite accurate Heading. Hope you realize that they are not deriving Heading by comparing two or more GPS locations. The technology is quite different from that, as you can learn in this brochure for an older Furuno model:
https://www.furunousa.com/-/media/sites/furuno/document_library/documents/brochures/brochures/sc120_brochure.pdf
I doubt there’s a DIY version of carrier frequency phase decoding tech.
Well, the one I linked is indeed a DIY carrier phase RTK engine, and 4 constellation dual frequency one. RTK calculations resulting in accurate baseline length and heading between two antennas involved can be carried onboard or externally using raw gnss messages and open source RTKLIB library.
Similar setup used to cost 50k usd few years ago, now it is sub 500 usd including antennas and all. Impressive progress.