Radar image data is not transported in NMEA sentences. It's all proprietary, which is why raymarine radar only works with raymarine plotters, garmin with garmin etc. The Garmin and Navico formats have been reverse engineered by the OpenCPN folks. There doesn't seem to be much info about on the DRS4W. Garmin/Navico/Raymarine radars use multicast for their imaging data. This works rather badly with wifi (see
http://stripydog.blogspot.com/2015/01/radar-over-wifi-not-always-pretty.html ) so I'll guess the DRS4W will use a TCP connection (I did ask Furuno this when it came out, once directly and once via a dealer and never got a reply).
Many radar units will also put out NMEA sentences, but these contain target tracking and radar system data, NOT radar images. If you just wanted that NMEA data my approach would be:
* Join the Pi wifi to the DRS4W network. Arthur describes wpa_supplicant configuration above but there's probably a graphical tool for configuring things easily (sorry haven't played with that part of raspbian for a long while). You will save yourself some hassle by using a static IP address (and therefore not worrying about any weirdness like having the furuno's dhcp adding static routes or dns servers which may or may not happen). This doc:
...in the "
How can I use external instruments (GPS, Heading, etc.) and the DRS4W at the same time?" section suggests using 172.31.3.100 with a subnet mask of 255.255.0.0, so your /etc/network/interfaces file would need additional lines something like: (**
Anyone feel free to contradict this: I don't have a pi to experiment wth at the moment and they change this stuff**). Check your actual wireless device name: it may not be wlan0 depending on your OS.
auto wlan0
iface wlan0 inet static
address 172.31.3.100
netmask 255.255.0.0
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
* You could restart networking or just reboot
* If you have kplex providing a tcp server with no address specified (ie just mode=server so it will listen on all interfaces), If you join an ipad or something to the furuno network you should be able to get your boat data from kplex on 172.31.3.100. If you didn't reboot your pi above, you'll need to restart kplex.
* Assuming you have kplex running on the pi, add in a new stanza:
[tcp]
address=<address>
port=<port>
persist=fromstart
...replacing <address> and <port> as appropriate
This assumes (a) that you're interested in NMEA target tracking data (you might not be), (b) that the device uses TCP (a good bet), (c) that it does actually produce NMEA target tracking sentences (maybe) and that these are available on a fixed address and port (if they're produced, this is also a reasonable assumption). So what's the value of <address> and <port>? I've mailed furuno support again. Maybe I'll get an answer this time. Some screen shots I've seen of the firmware update process makes me suspect the address is 172.31.3.17. If Furuno tell us what port (if any) NMEA data are available on, we plug that in there. If not we'll have to use nmap to do some port scanning and experiment (but let's leave that for the time being). If the drs4w does provide nmea data and it does it on a separate port to the image data then all good. If it's somehow interleaved with the image data then the pi will be doing a log of unnecessary processing throwing out the image data.
If anyone has the technical details of the drs4w in this respect, do post and make our lives easier :-)
So how do we get an ipad on the "main" network to speak to the radar? Well that depends on how the app finds the radar. If it's via some service discovery mechanism then that may be tricky. If it's by simple IP address (e.g. a known value like "172.31.3.17") then we might have more luck.
First you'd have to add a static route on your router directing traffic for
172.16.0.0/16 to the pi (I'm not sure if you can add a static route into an ipad but I'm sure it'll respond to redirects)
Then you need to set up the pi to route traffic, and because I very much doubt we can add a route back to your main network onto the furuno, you'll need to set up the pi to NAT any connections from the main network.
Assuming you have no current iptables rules, add the following to /etc/sysctl.conf:
net.ipv4.ip_forward=1
Then:
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
...you'll need to save that so it persists across a reboot and that's different on all flavours of Linux. I've seen a note that:
sudo netfilter-persistent save
...will achieve this, but it may be different on different raspbian versions and like I said, I haven't played with raspbian for a while.
Note I didn't address adding a static route into your router: I'm not familiar with your router but this should be straightforward.
Apologies: You'll see there's a lot of "unknown"s in here and I'm a little rusty on raspbian. Really I could do with getting my hands on one of these furuno units to play with and come up with a definitive step by step answer. Perhaps I can ask around at my marina to see if anyone has one although with covid-19 stepping aboard a stranger's boat for a beer and a play with their technology is not so straightforward any more.