Background
My wife and I race and cruise our 1987 J/35 sailboat on Lake Erie . The J/35 is an amazing boat and a very competitive racer that can still be day-sailed and cruised with just two people. We love our boat.
Soon after we bought our boat in 1995, we bought a Silva Nexus "Classic" instrument system which is now 25 years old. The Nexus system has performed well for us and it has held up well, too. The system consists of the Nexus server, three LCD displays, and four sensors: a paddle wheel boat speed transducer, an ultrasonic depth transducer, a gimballed fluxgate compass, and a wind instrument. The Nexus server also receives input from a Garmin GPSMAP 76CSx for position and waypoint information.
The Problem
The Nexus system has performed well for all of these years; however, the LCD instrument displays have lost their contrast and have become very difficult to read. Figure 2 shows the displays with an e-paper display taped over the middle display to demonstrate the difference in contrast. I could attempt to replace the transflective LCDs but I've also been frustrated by the limitations of the Nexus server - the Nexus data bus is proprietary and I'd like more control over instrument calibration and what data get displayed. Someday I will replace the whole aged system but in the meantime I'm dabbling with my own concepts to replace the server and displays while retaining the sensors.
Overview of the Solution
To reverse engineer how the sensors work, I've piggy-backed an Arduino-based data logging system onto the Nexus server to record the sensor values. The Arduino also reads and logs the data from the Nexus server and from the Garmin GPS at the same time. All of the data are formatted in NMEA-style strings that are sent from the Arduino to an Android tablet using an HM10 BLE transceiver. The Android tablet is running an MIT App Inventor app that receives, parses, and logs the BLE data to a file on the SD card for later analysis. My purpose for collecting the data from all three sources (raw sensor data, Nexus data, and GPS data) is to allow me to correlate the responses collected by the different methods, to improve on the calibrations, and to devise my own responses.
The current state of the project is still experimental. I have my Arduino hardware cobbled together and temporarily wired to the Nexus server using a scavenged, chopped-in-half VGA cable so that I can remove the Arduino to work on it in a more comfortable and convenient location than the bowels of the boat.
All of the Nexus sensors produce analog signals with pulse widths proportional to boat performance responses. These sensors are archaic compared to modern smart sensors that collect and process their own data and put the processed data on a NMEA or a proprietary data bus.
Hardware
Silva Nexus Server
The Nexus server (Figure 3) is the brain of the instrument system. It is powered from the boat's 12VDC system, reads and processes sensor data and data from the GPS, and outputs data to three two-line instrument displays that are mounted up on deck. The server has an RS232 serial input port to receive data from external devices like a GPS and an RS422 serial output port for communication with a computer.
Boat Speed Transducer
The boat speed transducer is the simplest of the Nexus system's sensors. The transducer, show in Figure 4, consists of a plug that fits into a thru-hull fitting. At the end of the plug is a recess in which a paddle wheel is mounted on a stainless steel pin/axle. The paddle wheel has four blades. Two opposing blades contain small magnets, one with the north pole facing outward and the other with the south pole facing outward.
As the paddle wheel spins, the magnets pass by a bipolar Hall effect switch embedded in the plug face. The Hall effect switch output...
Read more »
Hello everyone, I'm starting my project to read a Nexus Depth Transducer / Amplifier just like the one that he has, but there is no server that I could retrieve data from.
I'm planning using one WeMos D1 Mini for reading the data from the Amplifier, but I still don't know how to do it, I'm a real beginner on this.
Could someone just give me a help on how to do something like that?
Thank you!