Author Topic: Mobile device navigation  (Read 23703 times)

0 Members and 1 Guest are viewing this topic.

Graham W

  • Global Moderator
  • Demigod
  • *****
  • Posts: 2499
Re: Mobile device navigation
« Reply #30 on: 09 Dec 2023, 15:16 »
UK-based Quark-Elec is selling what looks like the old 8” Sailproof (before it was updated with a faster chip) under its own name https://www.quark-elec.com/product/ad08-rugged-marine-waterproof-tablet-8-inch-android/.  It’s more expensive than the old Sailproof version but considerably cheaper than the Tripltek, which is made in the USA.

It appears that all Sailproof models are made by Chinese company Geshem.  In theory and if you are feeling brave, you could buy one on Alibaba for about half the UK price https://www.alibaba.com/product-detail/Geshem-10-Inch-Android-10-0_1600281518491.html.  There are various options on things like screen brightness - if you're going to take the plunge, make doubly sure that you have the right specification.
Graham
Gunter-rigged GRP BR20 #59 Turaco III

Graham W

  • Global Moderator
  • Demigod
  • *****
  • Posts: 2499
Re: Mobile device navigation
« Reply #31 on: 13 Dec 2023, 11:30 »
This US-oriented post is a comprehensive review of marine apps for mobile devices, including those that can use NMEA data in both directions https://panbo.com/mobile-app-navigation-app-roundup/.  No mention of the Android version of iNavx’s fatal lack of UK charts, and no mention at all of one of my favourite apps, Memory-Map for All.
Graham
Gunter-rigged GRP BR20 #59 Turaco III

Graham W

  • Global Moderator
  • Demigod
  • *****
  • Posts: 2499
Re: Mobile device navigation
« Reply #32 on: 13 Jan 2024, 18:49 »
I’ve finally managed to get full integration between mobile devices and NMEA-connected instruments and sensors.  Full integration in the sense that the tablet/phone can receive all sorts of variables (wind, depth, position, speed over ground etc) but can also broadcast waypoint and route data to instrument displays in the other direction, the waypoint chosen simply by tapping a point on an electronic chart.  All without the benefit of a GPS/fishfinder from one of the oligopolists inhabiting their absurdly expensive technical silos.

I’ve managed to achieve this on iNavX, which as Andy has already noted, only has UK charts on Apple’s iOS, not Android.  So with iNavX I’ve only succeeded on a landlubberly iPad and iPhone, not on my waterproof Android Sailproof.  I think that I’ve also managed it on an Android app called i-Boating on my Sailproof. The problem with i-Boating is that it’s quite clunky and it’s sometimes difficult to tell what’s going on.  I can also get NMEA data into my Sailproof using Android versions of Navionics and Memory-Map but in one direction (incoming) only.

There seem to be two important criteria if bidirectional NMEA functionality is to be achieved on a mobile app:
1. The app must have the functionality to control an autopilot, the incidental benefit of which (to me) is that it broadcasts NMEA waypoint data in the opposite direction to incoming wind/speed/depth data.  I don’t have an autopilot but can make use of that data.
2. It has to be connected over WiFi on the TCP rather than the UDP protocol.  This means that only one tablet or mobile can be connected to the system at any one time (on my basic multiplexer anyway).  UDP allows several simultaneous connections.  I suppose this makes sense - you wouldn’t want several people trying to control an autopilot at the same time.  As an irrelevant aside, you might not want to control an autopilot from a tablet at all - apparently this raises  safety concerns.

In the absence of iNavX for UK waters, the hunt is now on for other Android apps that fulfil these bidirectional criteria.  It looks like OpenCPN and qtVlm may both be candidates.  However, unlike Navionics or iNavX, they are both fiendishly complicated with a very steep learning curve.  The journey continues….

This is an interesting (to me) use of my time during the long winter evenings.  However I suspect that during the sailing season, sailing on my own, I am more likely to use something simple like Navionics, with basic NMEA depth and GPS data flowing one way only onto my Sailproof.  Because Navionics is unidirectional, I can connect my Sailproof on UDP, which gives me the ability if needed to also connect my iPhone to the system and maybe simultaneously run a different NMEA app on that.

This will be at least until iNavX sort themselves and produce UK charts for Android as well as for iOS.  As Andy has noted above, iNavX unfortunately seem to have been knocked sideways by various factors beyond their control, including devious behaviour by competitor Garmin/Navionics.
Graham
Gunter-rigged GRP BR20 #59 Turaco III

AndyB

  • Full Member
  • ***
  • Posts: 68
Re: Mobile device navigation
« Reply #33 on: 17 Jan 2024, 10:13 »
Hi,
I just wanted to modify  some statements below if that is okay. Please do not take offence it is just to help others when they try what you have achieved. I do hope I have not confused it more :)

Firstly you are correct in that the app needs to provide all or some of the NMEA 0183 sentences or 2000 equivalent ( or indeed signal K)  for the  autopilot to work ( sentences RMB,RMC,APB,XTE and BWC) the hardest for me to build being XTE - cross track error.  These then need to be sent to the autopilot in some way.  I have also been looking at i-boating and it indeed sends these sentences and it works on Android so seems a good fit.  However the circles ( orange, green and red)  seem to clutter up the display - I am going to ask if there is a way or removing these but the maps themselves look really good for the Solent area.

With regard to networking I wanted to just correct a few areas.

Background

The User Datagram Protocol ( UDP) is primarily used for fast connectionless communications (fire and forget) . It used in video transmission such as streaming services. Although the original I believe was for DNS lookup.  It is fast as there is no checking. The messages are not guaranteed  to arrive in sequence or at all. It is broadcast on xxx.xxx.xxx.255 on a predetermined port number.  Any receiver ( or client) can open the port and read the data.   

If you want a reliable transmission then the Transmission Control Protocol ( TCP) should be used. The server establishes a 'hanging socket' which comprises an  ip address and port number. The client requests a connection to the hanging socket which then provides another port number where socket 2-way communication can occur.  This is difficult to programme as each connection needs to be handled synchronously and in the modern world is achieved using parallel computing and shared memory.  This is why TCP connections are restricted to one only. However sequence of transmission is guaranteed and delivery is guaranteed.

Port numbers are used to establish types of connections between computers on a common ethernet based network. For instance web pages use port 80 ( and 8080 for secure pages). Any program listening or providing messages on that port needs to comply with message construct for that port. There are fixed pre-defined purposes for port numbers but also a range of number that are not fixed - I use 8829. You usually find a free one by scanning the ports on the computers you are using.

To come back nearer to the real world....

The problem here is to find a bridge ( yet another computer term - your internet router has a wifi bridge) that will take the point to point NMEA0183 messages based on serial comms ( 4800 baud) to a wifi/ethernet network. This is usually accomplished via a multiplexor of which some allow 2 way communication.  The serial connections usually have an in and out connection which some devices can cope with. For example a wind sensor would have an 'out' port connection and the autopilot an 'in' connection. The multiplexor will be configured to receive NMEA messages from the wifi network and send those messages out on a pre-determined 'out' connection. It can also route messages from an 'in' port to an 'out' port. Not normally an issue as these are hardwired. I use the later to send wind information to the autopilot.

The Wi-Fi network can either be UDP or TCP. I prefer TCP as the wind displays seem more consistent than with UDP however I may be imagining things here.  So you could broadcast on one UDP port and receive on another UDP port. However most apps don't seem to want to do this ( prefer a single port) and those with auto pilot functionality prefer TCP as the sequence of NMEA messages are important.

I have moved completely over to TCP and programmed the raspberry pi to handle multiple TCP connections. It would appear that Graham's multiplexor can send messages on both TCP and UDP and receive on TCP. So I would set that up to have one TCP connection to the app that is going to provide the autopilot data and the other apps ( such as Navionics) which only receive to a UDP connection.

The NMEA 2000 network is not point to point. That means many messages from many sensors, chart plotters etc are flying around it.  There could as a result be a clash of messages ( 2 devices sending the same message such as GPS data) The NMEA 2000 message has a source id that allows the receiver to decide which takes priority. So the GPS unit rather than the phone GPS( coming through the wifi bridge)  would be used unless the GPS unit stops sending. Most chart plotters have this priority functionality which is setup by the installer.

In the world of Android/IOS networks it is the individual apps that provide the messages. So I would see a clash if say the Android tablet provides a GPS signal along with the phone and you have apps that transmit both over the network. In this case you would need to decide which app takes priority and turn off the other. I do this with Navionics on the Sailproof Android device. I turn off the Sailproof  GPS ( which saves a lot of power) and use the more accurate GPS unit which send the position over the multiplexor to the Wi-Fi network and then to Navionics.


So to summarise:
UDP comms is connectionless. You could use 2 ports to provide 2-way communication but it would be very difficult to synchronise the messages and why build it when there is one waiting to be used - TCP.

TCP comms is reliable and can perform 2-way comms. It is hard to programme.  Most simple multiplexors constrain the usage to one TCP connection.

Part of the chartplotter installation is to determine the priority of messages should the same one come from different devices.

When using a tablet/phone/pc based chart plotter when setting up the software priority of message source has to be determined by the installer.

It is interesting to note that most installations of multiplexors assume the only interesting bit of information you get back from the wifi network is autopilot information but I suspect a lot will use it as a means to get back GPS data to obtain say true wind from a wind sensor....

Please let me know if this type of message is inappropriate. I do not want to offend people.

Best regards
Andy B









Andy
Baycruiser 26 BagPuss

Willie The Rut Lander

  • Full Member
  • ***
  • Posts: 31
Re: Mobile device navigation
« Reply #34 on: 18 Jan 2024, 10:27 »
All this talk of TCP etc leaves me feeling quite queasy. I can just manage to switch on my Sailproof tablet so, sadly, will not have an integrated NASA and Sailproof setup as discussed (I think) by Andy and Graham. But it is interesting to hear what is possible.

On a more prosaic level, Sailproof are offering 20% off tablets atm, so perhaps worth a look for anyone in the market for an Android Nav tablet. I've been very pleased with my SP10, despite the battery not lasting a day - perhaps I can tweak the settings to extend the power.

 

BRe 001: Susannah (formerly Grace). Asymmetric, 6Hp, Jeckell's Rather Excellent Cockpit Tent

AndyB

  • Full Member
  • ***
  • Posts: 68
Re: Mobile device navigation
« Reply #35 on: 18 Jan 2024, 15:31 »
I do apologise for getting all technical.

When you buy sensors and a commercial chart plotter and want them all joined together you generally also purchase an installation service. This is why they are so expensive....

The same can be said if you purchase sensors and join them up to to chart plotters based on tablets/ phones etc.

For years on my previous boat I had a depth sounder with its own display ( NASA) and a mobile phone with Navionics and used the phone's GPS and it all worked just fine. Then I purchased a Bluetooth wind instrument which connected to my phone and flipped between the map and the wind instruments. I often wished I stayed that way.

Then I got the Baycruiser 26 and it came with all these NMEA based sensors and to integrate them all is complicated and you need some knowledge to do it. There must be an installation service out there for those that need it.

But please stay with a tablet , Navionics and a separate depth sounder and use the tablet's GPS. It is all so much simpler.

You can extend the battery life by turning the display intensity down. I find at 75% it lasts more than a day and you can still see it in the sun. Screen intensity is the largest consumer closely followed by the GPS sensors.



Andy
Baycruiser 26 BagPuss

Graham W

  • Global Moderator
  • Demigod
  • *****
  • Posts: 2499
Re: Mobile device navigation
« Reply #36 on: 17 Mar 2024, 17:22 »
A revised model of the Sailproof 10” Android tablet is coming out next month https://sailproof.shop/product/sp10x-high-end-10-inch-android-rugged-tablet/.

The main improvements are a faster and more capable CPU (including a barometric pressure sensor), a screen that can be read with polarised sunglasses and a waterproof charge socket and lead.  No change to battery capacity or to screen resolution or brightness, which are a bit on the low side compared to some competitors but still perfectly good enough for our sun-drenched sailing purposes.
Graham
Gunter-rigged GRP BR20 #59 Turaco III