Cruisers Forum
 


Reply
  This discussion is proudly sponsored by:
Please support our sponsors and let them know you heard about their products on Cruisers Forums. Advertise Here
 
Thread Tools Search this Thread Rate Thread Display Modes
Old 15-07-2017, 12:23   #16
Registered User

Join Date: Nov 2015
Location: Ireland
Posts: 468
Re: Nmea recording device needed

If you use a Pi with OpenPlotter then you can modify the kplex configuration file so that it always saves to a file every time it starts up. Then modify the startup script to create a custom configuration file every time with the file name unique for each date. Then you are done.
AedanC is offline   Reply With Quote
Old 17-07-2017, 01:00   #17
Registered User
 
jram's Avatar

Join Date: Oct 2010
Posts: 72
Re: Nmea recording device needed

I have this set up on the boat. As Conachair says a Pi and Node red can do it for you.

1. Get a Pi.
2. Load DietPi (google it). Dietpi is a slimmed down version of the official software with an excellent configuration tool. Use it to install Node-Red. Use it also to configure your Pi to save user data to the USB stick.
3. connect to your pi with a browser from your laptop. Plug in the USB lead from the NMEA source.
4. Get a serial node from Node Red and configure with the usual serial parameters. This will give you a stream of NMEA (to a debug node if you connect one).
5. Set up a file node connected to the serial node and configure it. It will write your NMEA stream to a file.

You'll probably need to restart your Pi for it to recognise the NMEA stream. The Pi prefers to be running before the NMEA arrives. That's the outline - very simple - very lightweight and inexpensive. Sure I haven't gone into all the details but it will be a positive learning experience

When you get hooked on Node-Red you can do all sorts of useful things - like keeping an eye on your boat parameters when you're away. I have mine at http://54.201.11.179:1880/ui/#/0
jram is offline   Reply With Quote
Old 17-07-2017, 09:31   #18
Registered User
 
jram's Avatar

Join Date: Oct 2010
Posts: 72
Re: Nmea recording device needed

There is also this: NMEA 0183 data logger for bathymetric contour map data recording
jram is offline   Reply With Quote
Old 17-07-2017, 10:26   #19
Moo
Registered User

Join Date: Mar 2017
Posts: 804
Re: Nmea recording device needed

For years I have been running a little Nettop computer as my nav computer. It was running Windows 7 and now Windows 10. Anyway the solution is easy if you have some kind of computer running windows. Run Franson's GpsGate client and set and NMEA logger output. I set it to save the file hourly.

It has worked for several years on my boat recording every NMEA sentence. Every now and again I use the data for some project. A while ago I use it with some GNUPlot scripts to plot weather data over a voyage.

No connection with the company except that it is one of the more useful and satisfactory bits of software that I every paid money for ... and most of the time it is totally invisible.
Moo is offline   Reply With Quote
Old 17-07-2017, 11:51   #20
cruiser

Join Date: Nov 2007
Location: Probably in an anchorage or a boatyard..
Boat: Ebbtide 33' steel cutter
Posts: 5,030
Re: Nmea recording device needed

Quote:
Originally Posted by rgleason View Post
Awesome. Can you help me? I would need rpi-3 for about $40 a box and power source off the 12vdc. What else?

I might make one for myself, but would want a small screen I think to setup and debug it before putting it on Summer Wind.
OK, been having a play around with this - should be easy to set up!

A (very) few notes..

Quote:
* Download from here > Download OpenPlotter RPI v0.10.0 NOOBS | Sailoog
* Unzip and copy onto SD card ( I used a 8Gb 10x ) , there's a text file with directions how to install > INSTRUCTIONS-README.txt
* Put card into Pi, turn on and wait for ages, if it has installed & rebooted you'll see an access point called OpenPlotter, password 12345678
This can all be done without a monitor, did here anyway. Once you're logged onto the OpenPlotter access point you should be able to get in headless using the likes of VNC viewer in chrome.

Next - node red. So how do you want the data recorded? I'm guessing to be easy to get at something like a file with CSV values of maybe SOG,COG, AWS,AWA , ... , ... depending on what data is available? Plus maybe a file of just every nmea message. I've had a quick play around , it actually seems a bit easier to get at the numbers by using the signalk data openplotter creates so picking individual types is pretty easy.

So once you have openplotter up and running on a Pi getting into node-red is just pointing a browser at 10.10.10.1:1880 .
Then as a little taster press ctrl-I & insert this then click import -

This creates a little dashboard on a webpage at 10.10.10.1:1880/ui/#/0 which lets you reboot or shutdown the Pi from any device which can view a webpage.

More to come....

Code:
[
    {
        "id": "4f567893.b6b0f8",
        "type": "inject",
        "z": "5d05d790.eae1e8",
        "name": "shutdown!",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": false,
        "x": 161.8958282470703,
        "y": 175.9999986216426,
        "wires": [
            [
                "72fe6d31.9b5444"
            ]
        ]
    },
    {
        "id": "72fe6d31.9b5444",
        "type": "exec",
        "z": "5d05d790.eae1e8",
        "command": "killall -s TERM opencpn ",
        "addpay": false,
        "append": "",
        "useSpawn": "",
        "timer": "",
        "name": "Shutdown Opencpn",
        "x": 331.8958282470703,
        "y": 155.9999986216426,
        "wires": [
            [],
            [
                "1840341a.2a42cc"
            ],
            []
        ]
    },
    {
        "id": "1840341a.2a42cc",
        "type": "delay",
        "z": "5d05d790.eae1e8",
        "name": "",
        "pauseType": "delay",
        "timeout": "5",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "x": 501.8958282470703,
        "y": 155.9999986216426,
        "wires": [
            [
                "eea4fd3f.97578"
            ]
        ]
    },
    {
        "id": "2a145054.29467",
        "type": "ui_button",
        "z": "5d05d790.eae1e8",
        "name": "shutdown",
        "group": "cffe91b.a9de87",
        "order": 8,
        "width": "3",
        "height": "1",
        "label": "Shutdown!",
        "color": "red",
        "bgcolor": "",
        "icon": "",
        "payload": "",
        "payloadType": "date",
        "topic": "",
        "x": 161.8958282470703,
        "y": 135.9999986216426,
        "wires": [
            [
                "72fe6d31.9b5444"
            ]
        ]
    },
    {
        "id": "eea4fd3f.97578",
        "type": "exec",
        "z": "5d05d790.eae1e8",
        "command": "sudo shutdown -h now",
        "addpay": true,
        "append": "",
        "useSpawn": "",
        "timer": "",
        "name": "Shutdown Pi",
        "x": 651.8958282470703,
        "y": 155.9999986216426,
        "wires": [
            [],
            [],
            []
        ]
    },
    {
        "id": "fb4af55f.90d6c8",
        "type": "inject",
        "z": "5d05d790.eae1e8",
        "name": "Reboot",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": false,
        "x": 171.8958282470703,
        "y": 255.9999986216426,
        "wires": [
            [
                "f35b1bd3.e1da78"
            ]
        ]
    },
    {
        "id": "f35b1bd3.e1da78",
        "type": "exec",
        "z": "5d05d790.eae1e8",
        "command": "killall -s TERM opencpn ",
        "addpay": false,
        "append": "",
        "useSpawn": "",
        "timer": "",
        "name": "Shutdown Opencpn",
        "x": 331.8958282470703,
        "y": 235.9999986216426,
        "wires": [
            [],
            [
                "cf364a17.7ed578"
            ],
            []
        ]
    },
    {
        "id": "cf364a17.7ed578",
        "type": "delay",
        "z": "5d05d790.eae1e8",
        "name": "",
        "pauseType": "delay",
        "timeout": "5",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "x": 501.8958282470703,
        "y": 235.9999986216426,
        "wires": [
            [
                "cfccfd21.e3a6c"
            ]
        ]
    },
    {
        "id": "e166663.1398d98",
        "type": "ui_button",
        "z": "5d05d790.eae1e8",
        "name": "Reboot",
        "group": "cffe91b.a9de87",
        "order": 8,
        "width": "3",
        "height": "1",
        "label": "Reboot",
        "color": "green",
        "bgcolor": "",
        "icon": "",
        "payload": "",
        "payloadType": "date",
        "topic": "",
        "x": 141.8958282470703,
        "y": 215.9999986216426,
        "wires": [
            [
                "f35b1bd3.e1da78"
            ]
        ]
    },
    {
        "id": "cfccfd21.e3a6c",
        "type": "exec",
        "z": "5d05d790.eae1e8",
        "command": "sudo reboot",
        "addpay": true,
        "append": "",
        "useSpawn": "",
        "timer": "",
        "name": "Reboot Pi",
        "x": 641.8958282470703,
        "y": 235.9999986216426,
        "wires": [
            [],
            [],
            []
        ]
    },
    {
        "id": "778967c.ca57598",
        "type": "comment",
        "z": "5d05d790.eae1e8",
        "name": "Nicely reboot or shutdown the Pi",
        "info": "",
        "x": 261.8958282470703,
        "y": 95.99999862164259,
        "wires": []
    },
    {
        "id": "cffe91b.a9de87",
        "type": "ui_group",
        "z": "",
        "name": "Shutdown",
        "tab": "dcaffb50.5e4798",
        "disp": true,
        "width": "6"
    },
    {
        "id": "dcaffb50.5e4798",
        "type": "ui_tab",
        "z": "",
        "name": "Home",
        "icon": "dashboard",
        "order": 1
    }
]
conachair is offline   Reply With Quote
Old 17-07-2017, 12:26   #21
cruiser

Join Date: Nov 2007
Location: Probably in an anchorage or a boatyard..
Boat: Ebbtide 33' steel cutter
Posts: 5,030
Re: Nmea recording device needed

Writing to a USB drive seems to work OK, this is recording every COG signalk to a file on a usb pendrive with a timestamp:

19:54:13-17-6-2017,134
19:54:15-17-6-2017,138
19:54:17-17-6-2017,144
19:54:19-17-6-2017,150
19:54:21-17-6-2017,153
19:54:23-17-6-2017,154
19:54:25-17-6-2017,162
19:54:27-17-6-2017,167
19:54:30-17-6-2017,168

Might be better to save onto the SD card then copy across though, or maybe both, in case the USB pen gets knocked.

Code:
[
    {
        "id": "78094386.889bfc",
        "type": "debug",
        "z": "1c9585c0.d604ea",
        "name": "",
        "active": false,
        "console": "false",
        "complete": "true",
        "x": 302.8958206176758,
        "y": 184.8888921737671,
        "wires": []
    },
    {
        "id": "a1243b90.10fb38",
        "type": "websocket in",
        "z": "1c9585c0.d604ea",
        "name": "",
        "server": "bf7d28f7.f45188",
        "client": "",
        "x": 219.8958282470703,
        "y": 89.88888549804688,
        "wires": [
            [
                "b9cb42d0.38ded"
            ]
        ]
    },
    {
        "id": "b9cb42d0.38ded",
        "type": "jsonpath",
        "z": "1c9585c0.d604ea",
        "expression": "$.updates..values[*]",
        "split": false,
        "name": "Signal K delta values",
        "x": 519.8958282470703,
        "y": 89.88888549804688,
        "wires": [
            [
                "bc81790.0594d88"
            ]
        ]
    },
    {
        "id": "bc81790.0594d88",
        "type": "function",
        "z": "1c9585c0.d604ea",
        "name": "merge values",
        "func": "var paths={};\nvar arrayLength = msg.payload.length;\nfor (var i = 0; i < arrayLength; i++) {\n    paths[msg.payload[i].path]=msg.payload[i].value;\n}\nmsg.payload = paths;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 739.8958282470703,
        "y": 89.88888549804688,
        "wires": [
            [
                "e66cebb4.3a3128",
                "78094386.889bfc",
                "14b98be1.3dfda4",
                "8db7aa52.cbadf8",
                "e30de528.3b0788"
            ]
        ]
    },
    {
        "id": "e66cebb4.3a3128",
        "type": "function",
        "z": "1c9585c0.d604ea",
        "name": "navigation.speedOverGround",
        "func": "var signalk_key=\"navigation.speedOverGround\";\n\nif(msg.payload.hasOwnProperty(signalk_key)){\n    msg.payload=msg.payload[signalk_key];\n    return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 229.8958282470703,
        "y": 289.8888854980469,
        "wires": [
            [
                "fe72d87.7337628"
            ]
        ]
    },
    {
        "id": "fe72d87.7337628",
        "type": "function",
        "z": "1c9585c0.d604ea",
        "name": "m/s to knots",
        "func": "msg.payload = Number(msg.payload)*1.94384\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 469.8958282470703,
        "y": 289.8888854980469,
        "wires": [
            [
                "f48bc5ac.5e4ac8"
            ]
        ]
    },
    {
        "id": "14b98be1.3dfda4",
        "type": "function",
        "z": "1c9585c0.d604ea",
        "name": "navigation.position.latitude",
        "func": "var signalk_key=\"navigation.position\";\n\nif(msg.payload.hasOwnProperty(signalk_key)){\n    msg.payload=msg.payload[signalk_key][\"latitude\"];\n    return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 219.8958282470703,
        "y": 409.8888854980469,
        "wires": [
            [
                "a82db9e.99deb48"
            ]
        ]
    },
    {
        "id": "e30de528.3b0788",
        "type": "function",
        "z": "1c9585c0.d604ea",
        "name": "navigation.position.longitude",
        "func": "var signalk_key=\"navigation.position\";\n\nif(msg.payload.hasOwnProperty(signalk_key)){\n    msg.payload=msg.payload[signalk_key][\"longitude\"];\n    return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 219.8958282470703,
        "y": 469.8888854980469,
        "wires": [
            [
                "65e14e67.54aaf"
            ]
        ]
    },
    {
        "id": "8db7aa52.cbadf8",
        "type": "function",
        "z": "1c9585c0.d604ea",
        "name": "navigation.courseOverGroundTrue",
        "func": "var signalk_key=\"navigation.courseOverGroundTrue\";\n\nif(msg.payload.hasOwnProperty(signalk_key)){\n    msg.payload=msg.payload[signalk_key];\n    return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 239.8958282470703,
        "y": 349.8888854980469,
        "wires": [
            [
                "f410845b.5e18f8"
            ]
        ]
    },
    {
        "id": "f48bc5ac.5e4ac8",
        "type": "debug",
        "z": "1c9585c0.d604ea",
        "name": "",
        "active": false,
        "console": "false",
        "complete": "false",
        "x": 711.8333892822266,
        "y": 291.5555725097656,
        "wires": []
    },
    {
        "id": "a15ccb83.6f3f58",
        "type": "debug",
        "z": "1c9585c0.d604ea",
        "name": "",
        "active": false,
        "console": "false",
        "complete": "false",
        "x": 703.8958282470703,
        "y": 329.888897895813,
        "wires": []
    },
    {
        "id": "a82db9e.99deb48",
        "type": "debug",
        "z": "1c9585c0.d604ea",
        "name": "",
        "active": false,
        "console": "false",
        "complete": "false",
        "x": 695.8958206176758,
        "y": 391.8889217376709,
        "wires": []
    },
    {
        "id": "65e14e67.54aaf",
        "type": "debug",
        "z": "1c9585c0.d604ea",
        "name": "",
        "active": false,
        "console": "false",
        "complete": "false",
        "x": 704.8958206176758,
        "y": 453.88891983032227,
        "wires": []
    },
    {
        "id": "e85d960a.fae3e8",
        "type": "file",
        "z": "1c9585c0.d604ea",
        "name": "",
        "filename": "/media/pi/Lexar/testSOG.txt",
        "appendNewline": true,
        "createDir": false,
        "overwriteFile": "false",
        "x": 754.8299331665039,
        "y": 545.9167213439941,
        "wires": []
    },
    {
        "id": "91b29409.3d7378",
        "type": "function",
        "z": "1c9585c0.d604ea",
        "name": "",
        "func": "var today = new Date();\nvar second = today.getSeconds();\nvar minute = today.getMinutes();\nvar hour = today.getHours();\nvar day = today.getDate();\nvar month = today.getMonth();\nvar year = today.getFullYear();\n\nmsg.payload= hour + ':' + minute + ':' + second + \"-\" + day +'-' + month + '-' + year + \",\" + msg.payload;\n\nreturn msg;\n",
        "outputs": 1,
        "noerr": 0,
        "x": 466.8333282470703,
        "y": 544.2638854980469,
        "wires": [
            [
                "aca61afd.4f4958",
                "e85d960a.fae3e8"
            ]
        ]
    },
    {
        "id": "78be5637.e601f8",
        "type": "inject",
        "z": "1c9585c0.d604ea",
        "name": "",
        "topic": "",
        "payload": "test",
        "payloadType": "str",
        "repeat": "",
        "crontab": "",
        "once": false,
        "x": 248.8298797607422,
        "y": 541.0694885253906,
        "wires": [
            [
                "91b29409.3d7378"
            ]
        ]
    },
    {
        "id": "aca61afd.4f4958",
        "type": "debug",
        "z": "1c9585c0.d604ea",
        "name": "",
        "active": false,
        "console": "false",
        "complete": "false",
        "x": 731.8333892822266,
        "y": 602.5451965332031,
        "wires": []
    },
    {
        "id": "f410845b.5e18f8",
        "type": "function",
        "z": "1c9585c0.d604ea",
        "name": "Radians to degrees",
        "func": "msg.payload = (Number(msg.payload)*180/3.14159265359).toFixed(0);\n\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 476.8957977294922,
        "y": 343.00003719329834,
        "wires": [
            [
                "a15ccb83.6f3f58",
                "91b29409.3d7378"
            ]
        ]
    },
    {
        "id": "bf7d28f7.f45188",
        "type": "websocket-listener",
        "z": "",
        "path": "ws://localhost:3000/signalk/v1/stream",
        "wholemsg": "false"
    }
]
conachair is offline   Reply With Quote
Old 18-07-2017, 08:55   #22
Registered User

Join Date: Oct 2012
Location: Brighton, UK
Boat: Westerly Oceanlord
Posts: 513
Re: Nmea recording device needed

Quote:
Originally Posted by AedanC View Post
If you use a Pi with OpenPlotter then you can modify the kplex configuration file so that it always saves to a file every time it starts up.
to flesh this concept out a bit...

kplex will save data to a file and (if you ask it with the "timestamp=" option) precede sentences with a timestamp in NMEA-0183v4 TAG format (second or millisecond resolution). You can also filter the data to only sentences you're interested in and rate limit, so if you've got certain sentences being pumped out at 10Hz but only need one a second you can limit to that. Plus you can send your data over the network and view it in real time on opencpn.

The question is how to start up / shut down. If doing on boot / shutdown (and you already have a nice way to shutdown your pi) it's all easy enough: To log to a file named after the day on which kplex is invoked, add your log specification to the end of the start invocation in /etc/init.d/kplex:
file:filename=/path/to/log/data.`date +%d-%m-%Y`,append=yes,timestamp=ms
(changing the filename as appropriate, substituting "s" for "ms" if you only want second-resolution timestamps, adding in any filters you need and adding ",eol=rn" if you want lines to be \r\n terminated instead of simple newlines in the file.

If you only ever want your data for recording purposes, you could write a simple script called from a udev rule which starts logging when the actisense usb device is plugged in and stops when it's pulled out. You could do something similar to start logging to a usb mass storage device when it's plugged in. Unfortunately you'd like it to stop and sync *before* it's pulled out so the reverse trick won't work there.

Alternatively why not use a physical switch. On to start recording, off to stop. There's any number of tutorials on the web about using buttons and switches with a pi, e.g.:
https://www.cl.cam.ac.uk/projects/ra..._and_switches/
Have the usb nmea data permanently connected and fed out to the network using kplex (e.g. in openplotter) as per normal. Additionally you have your physical switch and a little python program monitoring it. When you turn the switch on it invokes a new instance of kplex which reads data from the "normal" kplex instance (either from a tcp server or from a FIFO or pty you've created for the purpose) and writes to a log file, saving the pid of the "logger kplex" to a file. When the user turns the switch off, the python program kills to process with the previously saved pid. For extra merit add in an LED which turns on when logging and maybe a udev rule which starts logging to a usb storage device when plugged in (but still needs a button push to turn off).

Of course instead of kplex you could write your own with the above bits of string and duct tape if you prefer.
muttnik is offline   Reply With Quote
Old 18-07-2017, 09:49   #23
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,633
Images: 2
Re: Nmea recording device needed

Conachair, Muttnik, Moo, Jram & Aedian

These are wonderfully helpful suggestions & instructions. I think I'll go the rpi3 route.
At this point I have one question about the Artisense nmea0183 converter which requires a driver installation. I know there is a windows 10 driver, but do not yet know about a linux driver for this device. Will check on the website next.

This all seems achievable! Great.

Openplotter has the OS and Ocpn so that is possibly the best route?

RPI3 has wifi so once it is setup we can access & control the rpi3 via laptop and browser.

Would there be a way to provide Cell & Tablet access to nmea0183 as a secondary benefit? -not essential though, at this point?

Great How to thread! Thanks.
rgleason is offline   Reply With Quote
Old 18-07-2017, 10:03   #24
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,633
Images: 2
Re: Nmea recording device needed

Regarding modifying kplex to save out to a file when a switch to "off" is sensed.
I would enhance the rpi3 with a switch which would turn "on" and turn off the recording of the nmea data stream. Each time the switch is turned "on" a new file would be created abd the 0183nmea data stream recorded until the switch is turned off.
The power to the RPI3 and Artisense will be separate and should be turned on first with the RPI3 setup and receiving the 0183 signals at high speed for Ais too.

Then the hardware switch would be turned on when conitions are good to record polars, or whatever is needed.

We could access the data files via laptop & wifi and copy them over, or perhaps simply remove a USB key to take the recording home for analysis.
rgleason is offline   Reply With Quote
Old 18-07-2017, 10:04   #25
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,633
Images: 2
Re: Nmea recording device needed

How hard would it be to wire the hard switch?
rgleason is offline   Reply With Quote
Old 18-07-2017, 10:11   #26
Registered User
 
rgleason's Avatar

Join Date: Mar 2012
Location: Boston, MA
Boat: 1981 Bristol 32 Sloop
Posts: 17,633
Images: 2
Re: Nmea recording device needed

Looking at the link Muttnik peovided for buttons an switches, I would need a breadboard and flat cable rather than wire direct to the pi?
rgleason is offline   Reply With Quote
Old 18-07-2017, 10:14   #27
Moo
Registered User

Join Date: Mar 2017
Posts: 804
Re: Nmea recording device needed

Quote:
Originally Posted by rgleason View Post
At this point I have one question about the Artisense nmea0183 converter which requires a driver installation. I know there is a windows 10 driver, but do not yet know about a linux driver for this device. Will check on the website next.
You shouldn't need a driver for Linux. The windows driver for that device is just the serial chipset driver. Should work just fine. However there is no need to buy the actisense device just use any USB/Serial cable or buy a USB/RS422 cable (you can get them with opto isolation) if you want to more exactly match the NMEA specification, but it is not necessary.

Cheers
Moo is offline   Reply With Quote
Old 18-07-2017, 10:21   #28
Moo
Registered User

Join Date: Mar 2017
Posts: 804
Re: Nmea recording device needed

Quote:
Originally Posted by rgleason View Post
Looking at the link Muttnik peovided for buttons an switches, I would need a breadboard and flat cable rather than wire direct to the pi?
Nope you can wire it direct to the GPIO pins. Breadboard is great for testing though and if you are going to build you should have a block.
Moo is offline   Reply With Quote
Old 18-07-2017, 12:49   #29
Registered User

Join Date: Oct 2012
Location: Brighton, UK
Boat: Westerly Oceanlord
Posts: 513
Re: Nmea recording device needed

Quote:
Originally Posted by rgleason View Post
Would there be a way to provide Cell & Tablet access to nmea0183 as a secondary benefit? -not essential though, at this point?
Yes. I don't use openplotter but many here do and this seems your easiest option.
- use the standard config. I believe (others can correct me here) this provides (or can easily provide) all your data to the network
- Have a script which starts up a second instance of kplex which takes data from the primary kplex instance and writes out what you want to a file with a timestamp. I'm happy to help out here: let me know the sentences you're interested in logging
- Wire up your switch. Use a little python program cribbed from one of the many tutorials around to invoke the script with the parameter "start" to start logging and "stop" to stop logging
- The astute will say "what's with the shell script? Why not just fork kplex in python?". OK that's actually the right way to do it but I don't really do python and I volunteered to do the shell script part :-)
- The little LED to tell you when logging is "on" would be a really nice touch
- As Moo says: no ribbon cable or breadboard required. You could use a bulkhead-moused switch, but there are also those add-on HATs you can put switches etc on (the more hardware oriented can comment further :-)
- much finessing can be done but let's get t working first :-)
muttnik is offline   Reply With Quote
Old 19-07-2017, 18:07   #30
Registered User

Join Date: Jul 2017
Posts: 67
Re: Nmea recording device needed

I am new to the forum, I am using a Kbox which has a built in SD card that logs all the NMEA data from my instruments. I did not develop Kbox, but I purchased one (you can find more info on the google forum here:
https://groups.google.com/forum/?utm...box-discussion

Kbox, collects input from NMEA 0183 and NMEA 2000 instruments, plus it adds, barometer, pitch and roll as well as voltage monitoring capability for the batteries. It saves all the data to an SD card and sends all the data out over a wifi network to be read by programs like OpenCPN and INavX. I have both and Kbox wifi works with both. I get my instrument data, gps data and AIS data all over the wifi and displayed in these programs.

the Kbox costs are more than a Raspberry Pi (likely around $150 US) but most of the work is done for you.

Ron
CapnRon47 is offline   Reply With Quote
Reply

Tags
nmea, record


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Recording Radar Spokes str-alorman OpenCPN 4 26-05-2017 13:57
For Sale: Comar NMEA-2-WIFI NMEA 0183 Converter $230 4arch Classifieds Archive 1 02-11-2015 03:02
Multiplexing NMEA on a router (NMEA over WiFi redux) Mollymawk Marine Electronics 16 21-10-2014 05:18
Polauto Recording cansailor OpenCPN 8 17-06-2013 16:50
Recording Costs of Ownership Therapy Dollars & Cents 11 10-07-2009 11:36

Advertise Here


All times are GMT -7. The time now is 20:34.


Google+
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Social Knowledge Networks
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

ShowCase vBulletin Plugins by Drive Thru Online, Inc.