Skip to content

Serial Interfaces Overview

HALSER provides three physical serial interfaces:

  • RS-485 — Differential signaling, standard for NMEA 0183
  • RS-232 — Legacy serial voltage levels
  • UART — Raw TTL-level serial (3.3 V or 5 V, selectable via jumper)

Each interface has its own terminal block connector on the board.

Transmit and Receive

Transmit: All three interfaces transmit simultaneously. The UART TX signal is converted to RS-485, RS-232, and TTL levels in parallel. In practice, you connect the transmit terminal block of whichever interface your receiving device expects.

Receive: Only one interface can receive at a time, selected by the RX SEL hardware jumper:

Position Active Receive Interface
N NMEA 0183 (RS-485)
R RS-232
U UART

Place the jumper on the pin pair corresponding to the interface you want to receive on.

Note

RS-485 has separate TX and RX terminal blocks since it uses differential signaling with separate driver and receiver chips. RS-232 and UART each have TX and RX on a single 3-pin terminal block.

Using Different Bit Rates for RX and TX

Normally, the same bit rate is used for transmit and receive. However, since UART0 is available (USB CDC handles the console), custom firmware can assign UART0 to the TX pins and UART1 to the RX pins (or vice versa) via the ESP32-C3 GPIO matrix, allowing independent bit rates. For example, you could receive AIS at 38400 bit/s on RS-485 while transmitting NMEA 0183 at 4800 bit/s.

Interface Details

See the individual pages for wiring instructions and device-specific guidance: