Skip to content

NMEA0183 Input

Purpose

The regulator has an RX-only NMEA0183 serial input on UART_RX2, isolated and wired for a GPS, AIS, or depth/wind talker (or the combined output of an NMEA multiplexer). There is no TX path; the regulator does not transmit NMEA0183 sentences.

Firmware parsing is planned, not yet shipped

The hardware channel is present and the UART is initialized, but the firmware does not yet parse NMEA0183 sentences — this input is reserved for a future release. Today the regulator obtains GPS speed, position, wind, and depth from the NMEA2000 (CAN) network instead. None of that data gates or qualifies charging: charging is driven by engine RPM, ignition, battery voltage/current, and temperature. GPS, speed, and wind data feed the boat-performance, trip, fuel-economy, and leaderboard features only.

For the underlying isolation circuit (HCPL2531 optocoupler, current-limiting resistors, pull-ups, ESD), see NMEA0183 and VeDirect Hardware. This page covers the protocol-level configuration and physical wiring.

Electrical

Parameter Value Notes
Signal level (talker side) RS-422 differential or single-ended ≤ 15 V Both compatible — see Wiring below
Baud rate (firmware) 19200 baud, fixed Set for the combined output of an NMEA multiplexer (e.g. YachtDevices) — the talker must be configured to 19200
Data format 8 data bits, no parity, 1 stop bit (8N1) Standard
Isolation 2500 VRMS via HCPL2531 See linked hardware doc
Internal pull-up 13 kΩ to 3.3 V on UART_RX2_ISOL Inactive line idles HIGH

Connector Pin

Cable Connector Pin Wire color (T568B) Signal ESP32 GPIO
3 RJ3 — left port 4 Blue UART_RX2 GPIO6

See the Data Cables & Pinout page for the full pinout of cable 3 and the rest of the RJ45 jacks.

Wiring to a Typical NMEA0183 Talker

Most NMEA0183 talkers (GPS, AIS, depth/wind) expose two output signals labeled NMEA OUT A (or "+") and NMEA OUT B (or "-") plus a chassis ground. There are three valid wiring approaches:

Talker NMEA OUT A   → RJ3 pin 4 (Blue / UART_RX2)
Talker NMEA OUT B   → unconnected (taped off)
Talker chassis GND  → RJ3 pin 16 (Brown / GND)

Works for ~99 % of consumer NMEA0183 devices. The HCPL2531 optocoupler treats the input as a current loop — it fires the LED whenever A goes high relative to GND. The B (-) line is not needed.

Differential receivers (RS-422 talkers)

If the talker is a true RS-422 differential driver and is referenced to a different ground (large vessel with isolated bus), connect both A and B and omit the talker chassis GND wire:

Talker NMEA OUT A   → RJ3 pin 4 (Blue / UART_RX2)
Talker NMEA OUT B   → RJ3 pin 16 (Brown / GND)

The optocoupler will still work — the LED fires on the A-vs-B differential. The "GND" wire on the regulator side then acts as the negative leg of the differential pair, not as a true ground reference. This is electrically safe because the HCPL2531 isolation barrier prevents any ground-loop current.

NEVER

Do not connect more than one talker's NMEA OUT A to the same pin in parallel. NMEA0183 talkers are not bus-arbitrated — two simultaneous senders will collide and corrupt both messages. Use an NMEA0183 combiner/multiplexer upstream if you need to aggregate multiple sources.

Software Notes

NMEA0183 sentence parsing is not implemented in the current firmware — the UART is initialized at 19200 baud, 8N1, but received bytes are not decoded yet (see the note under Purpose). The details below describe the intended behavior once parsing ships:

  • The UART driver expects standard 8N1 framing and CR/LF line terminators (the NMEA0183 sentence convention).
  • Sentence acceptance will be gated by checksum (*hh field at end of each sentence); bad-checksum sentences dropped silently.
  • No specific sentence types will be required; the parser will use whatever recognized data it sees.

Troubleshooting

Symptom Likely cause
No NMEA data appearing in regulator console Wrong wire (verify Blue is RX, not the Brown GND), or talker is not at 19200 baud — the firmware listens at a fixed 19200
Garbled characters Baud rate mismatch — set the talker/multiplexer output to 19200 (raw 4800 or 38400 talkers will not parse)
Some sentences pass, others rejected Checksum failure on noisy line — try shorter wire run, or add the second wire if currently single-ended
Continuous chatter when no talker connected Floating input — leave Blue wire taped off, do not let it sit unterminated near a noisy harness