Saturday, May 23, 2015

Depth Mapper in a Box, Weather in the Boat, and 3D Printer Magic

Let's start out with the "Depth Mapper in a Box".

The front panel consists of a red power on LED, a green GPS Fix LED, a power switch (USB power only) a SD card slot, a USB type 'B' jack and a barrel jack for power (7-12V)

On the back panel is a 2 conductor "microphone" jack for the NMEA serial output from one of my fish finders and the other is an SMA jack for an active (amplified) external GPS antenna

The internals consist of an Arduino Mega 2560 (clone) and Arduino compatible Data Logger shield that has the real time clock disabled (It gained 43 seconds per day rendering it useless) but is still useful because it has the level shifter (3.3v<-->5V)  needed for the SD card, a RS232 to TTL level converter for the Finder NMEA output and a uBlox NEO-6M GPS module. 

A closeup of the RS232 to TTL level converter which converts the +12V/-12V levels from the finder to the 0V-5V level used by the Mega. I'm only using the RX inputs and it is held in place with some 3M adhesive tape used in manufacturing

Here is a closeup of the GPS module. The PPS (pulse per second) output was configured to flash a green onboard LED when the GPS got a fix. I removed the resistor to the onboard LED and soldered a piece of 30ga, enameled wire to the pin 3 and wound a couple of turns of Kapton tape around the module to hold the wire in place. This feeds a resistor going to the front panel green LED as well as another resistor going to the Mega. I did this so on cold start up it doesn't start writing to the SD card until after it gets a fix.

The unit functions as a NMEA combiner/multiplexer and combines the $GPGGA, $GPRMC, and $GPGSA sentences from the GPS and combines it with the $SDDPT (depth) and $SDMTW (water temp) sentences and sends it out the USB port to my boat's tablet computer for processing. It also takes the $GPGGA, $GPRMC, and SDDPT sentences and sends it to the SD card as a NMEA.log file.

The unit can be used stand alone by providing 7-12V to the DC barrel jack or through the USB port using a cell phone charger or a rechargeable USB power booster battery and plugging in one of my finders and one of my antennas. I can also use it as a trip logger by placing one of the magnetic GPS antenna 'pucks' on the roof of my vehicle and plugging it into my cell phone/tablet charger. Basically I wanted to make a unit that automatically logs both position and depth from the time I hit the water until the time I pull out and without the need for a computer. This will serve mainly as a backup of data as well as a way to map even if I have a problem with the boat's computer.

The reason I wanted to go with this route is I'll be running 2 finders, my Lowrance Elite 7x HDI with the transducer on the transom when I'm mapping using the motor and my old (well 5 years old) Garmin 300C up front with the transducer mounted to the trolling motor for mapping tight spaces like the dead trees out at Lost Grove Lake. I have an active GPS 'puck' antenna located above each transducer. All I have to do to switch from motor to trolling is turn off the GPS and swap the finder NMEA serial and GPS antenna connections and turn it back on. I'll mount it on the side of the boat under the console which brings me to the brackets I designed and printed on my 3D printer

This unit cost me $44.80 in electronics and $3.15 in PLA for the case and mount for a total of $47.95.

Next is a weather station for my boat which contains DHT22 temperature and humidity sensor and a BMP180 barometric pressure/altitude sensor which will be mounted in a small Stevenson Shield I printed

The sensors feed an Arduino Nano clone which will get power from and send data to the powered USB hub in the console. Here it is along with the sensors on a bread board during programming and testing.

Currently I have it programmed to send temperature, humidity, dew point, heat index and barometric pressure to a serial terminal every 10 seconds but I'll likely lengthen that to once per minute. I'll eventually send the data a fancier interface but my main intent is to grab the temp and pressure data along with the position, depth and water temp data from the combiner/logger and have it automagically insert that data into my fishing log/database when I open up a new record (I don't know if I'll get that last part finished yet this year).

I have a marine antenna mount on the side of my console that I'm not using and I wanted to mount to that but adapters are hard to find and expensive when you do so the 3D printer came to the rescue. The standard size and threads of a marine antenna mount is 1" 14 TPI so I went to the McMaster-Carr website and found a flange nut with those specs and downloaded the CAD files in STEP format, opened it up in FreeCAD, chose select all and exported it as an STL file that my printer's software can use. Then I just printed it out and it's a perfect fit

I found a neat little box on Thingiverse that you can resize and a holder for 8mm smooth rod used for the slides in a 3D printer and came up with this to hold the Nano and support a 8mm 2-3ft long fiberglass rod which the Stevenson shield and sensor will be mounted on.I epoxied the box to the flange nut and 2 of the 8mm holders to the box.

I'll mount the Nano on a perf board and make a hole in the side for the USB mini jack. Then I'll have a self contained unit I can mount/unmount to any marine antenna mount and in the case of mine I can fold it down for travel and flip it up for use.

Cost of electronics $10.70, PLA material $4.25 for a total of $14.95

The Arduino 'sketches' for both units can be found in the public section of my Google Drive:

Due to problems with Google Drive I've moved these files as well as the Lost Grove Lake preliminary maps to my GitHub repository:

Netbook2Chartplotter GitHub Repository

I'll take some more pictures after I get everything mounted and get it out on the water.