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:
Recommended — single-ended A-only¶
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 (
*hhfield 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 |