# Register mapping

{% hint style="info" %}
Minimal P1 Modbus Dongle firmware version for using with the Teltonika TeltoCharge = 1.2.1
{% endhint %}

Update instruction: [update](https://docs.smart-stuff.nl/p1-modbus-dongle/update)

### Default settings

The default settings are:

* Modbus device id: `43`
* RS485: `8E1 38400 bps`
* P1: `115200 8N1` for SMR v4 / v5 smart meters
* Older Dutch SMR v2 / v3 meters need external power and FC06 register `6` should be set to `1`

### General information

The P1 Modbus Dongle supports multiple register mappings.

There is:

* a native default P1 mapping
* a compact float-based mapping
* several meter emulations for integrations that expect a specific Modbus register layout

General notes:

* The mappings below are based on the current firmware implementation.
* Only registers that are actually implemented in code are documented.
* Depending on the selected mapping, registers are returned as `uint16`, `uint32`, `int16`, `int32` or `float32`.
* Signed values are transferred as raw Modbus register data. Negative values therefore use two's complement representation.
* Some emulation mappings intentionally expose only the subset of registers required by a specific inverter, charger or EMS integration.

### Available mappings

#### Native mappings

* Default P1 mapping
* Default float mapping

#### Meter emulations

* SDM630 emulation
* EM330 / EM340 emulation
* DTSU666 emulation
* ABB B21 emulation
* Inepro / KLEFR 6924 emulation
* Schneider Charge Pro emulation

### Choosing a mapping

* Use the default mapping when you want direct access to the native P1 values from the dongle.
* Use the float mapping when your Modbus client works better with engineering values as `float32`.
* Use one of the emulation mappings when your integration expects the register layout of a specific power meter.
