Skip to content

Default Firmware

HALSER ships with a pre-installed NMEA 0183 → NMEA 2000 gateway firmware. It is provided for quick evaluation and as a reference for custom firmware development. The source code is available at hatlabs/HALSER-default-firmware.

What It Does

The default firmware reads NMEA 0183 sentences from the RS-485 RX interface and translates them to NMEA 2000 messages on the CAN bus. It also provides WiFi connectivity with a web UI for configuration and Signal K output.

NMEA 0183 → NMEA 2000 Translation

NMEA 0183 Input N2K PGN Description Transmit Rate
GGA + RMC 129029 GNSS Position Data 1000 ms
RMC + VTG 129026 COG & SOG, Rapid Update 250 ms
HDG 127250 Vessel Heading 100 ms
VHW 128259 Speed, Water Referenced 1000 ms
DPT 128267 Water Depth 1000 ms
MWV 130306 Wind Data 1000 ms

Only the sentence types listed above are processed. All other NMEA 0183 sentences are silently ignored.

Value Expiry

If no update is received for a particular value within approximately 5 seconds, the corresponding NMEA 2000 message stops being transmitted. This prevents stale data from persisting on the network.

WiFi

On first boot, the firmware creates a WiFi access point:

  • SSID: halser-XXXXXX (where XXXXXX is derived from the MAC address)
  • IP address: 192.168.4.1

Connect to the access point and open the web UI in a browser to configure WiFi client mode and other settings.

Web UI

The SensESP web UI provides:

  • WiFi configuration — Connect to an existing network
  • NMEA 0183 bit rate — Default 4800 bit/s, configurable (requires restart)
  • Signal K connection — Configure Signal K server address
  • Device info — Firmware version, hostname, network status
  • OTA update — Upload new firmware over WiFi

NMEA 2000 Device Identity

Field Value
Manufacturer Hat Labs (code 2046)
Product code 100
Model ID HALSER NMEA 0183-N2K GW
Device class 25 (Inter/Intranetwork Device)
Device function 130 (PC Gateway)
Serial number Derived from WiFi MAC address

RGB LED Behavior

  • Rainbow color cycle — Running, waiting for data
  • Brief off-blink — NMEA 0183 sentence received (50 ms off per sentence)

Limitations

  • Only handles the seven NMEA 0183 sentence types listed above
  • Receives on whichever interface is selected by the RX SEL hardware jumper
  • One-directional: NMEA 0183 → NMEA 2000 only (no N2K → 0183 translation)
  • No AIS sentence support (VDM/VDO are ignored)

For use cases not covered by the default firmware, see Custom Firmware Development.