> For the complete documentation index, see [llms.txt](https://docs.smart-stuff.nl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.smart-stuff.nl/p1-modbus-dongle/firmware-v2-current/register-mapping/dtsu666.md).

# DTSU666

## Mapping behaviour

* Device Manager mapping value: `2`
* Profile: `DTSU666`
* Read function codes: `FC03` and `FC04`
* Register widths: mixed 16-bit and 32-bit
* 32-bit word order: high word first (MSW-LSW)
* Unmapped register handling: Zero-filled

{% hint style="info" %}
Device ID, baud rate and serial format are global firmware v2 settings. They are not changed when this mapping is selected.
{% endhint %}

## Register overview

| Address (decimal / hex) | Words | Type      | Source or fixed value            | Conversion        | Missing         |
| ----------------------- | ----: | --------- | -------------------------------- | ----------------- | --------------- |
| `0` / `0x0000`          |     1 | `int16`   | `constant 204`                   | —                 | source\_default |
| `1` / `0x0001`          |     1 | `int16`   | `constant 701`                   | —                 | source\_default |
| `2` / `0x0002`          |     1 | `int16`   | `constant 0`                     | —                 | source\_default |
| `3` / `0x0003`          |     1 | `int16`   | `constant 0`                     | —                 | source\_default |
| `5` / `0x0005`          |     1 | `int16`   | `constant 0`                     | —                 | source\_default |
| `6` / `0x0006`          |     1 | `int16`   | `constant 1`                     | —                 | source\_default |
| `7` / `0x0007`          |     1 | `int16`   | `constant 10`                    | —                 | source\_default |
| `10` / `0x000A`         |     1 | `int16`   | `constant 0`                     | —                 | source\_default |
| `12` / `0x000C`         |     1 | `int16`   | `constant 0`                     | —                 | source\_default |
| `44` / `0x002C`         |     1 | `int16`   | `constant 3`                     | —                 | source\_default |
| `45` / `0x002D`         |     1 | `int16`   | `baudrate`                       | baud\_index\_dtsu | source\_default |
| `46` / `0x002E`         |     1 | `int16`   | `dev_id`                         | —                 | source\_default |
| `8192` / `0x2000`       |     2 | `float32` | `line_voltage_l12_v`             | scale 10          | source\_default |
| `8194` / `0x2002`       |     2 | `float32` | `line_voltage_l23_v`             | scale 10          | source\_default |
| `8196` / `0x2004`       |     2 | `float32` | `line_voltage_l31_v`             | scale 10          | source\_default |
| `8198` / `0x2006`       |     2 | `float32` | `voltage_l1_v`                   | scale 10          | source\_default |
| `8200` / `0x2008`       |     2 | `float32` | `voltage_l2_v`                   | scale 10          | source\_default |
| `8202` / `0x200A`       |     2 | `float32` | `voltage_l3_v`                   | scale 10          | source\_default |
| `8204` / `0x200C`       |     2 | `float32` | `derived_current_l1_a`           | scale 1000        | source\_default |
| `8206` / `0x200E`       |     2 | `float32` | `derived_current_l2_a`           | scale 1000        | source\_default |
| `8208` / `0x2010`       |     2 | `float32` | `derived_current_l3_a`           | scale 1000        | source\_default |
| `8210` / `0x2012`       |     2 | `float32` | `net_power_total_int_x10_legacy` | —                 | source\_default |
| `8212` / `0x2014`       |     2 | `float32` | `net_power_l1_int_x10_legacy`    | —                 | source\_default |
| `8214` / `0x2016`       |     2 | `float32` | `net_power_l2_int_x10_legacy`    | —                 | source\_default |
| `8216` / `0x2018`       |     2 | `float32` | `net_power_l3_int_x10_legacy`    | —                 | source\_default |
| `8218` / `0x201A`       |     2 | `float32` | `net_power_total_int_x10_legacy` | —                 | source\_default |
| `8220` / `0x201C`       |     2 | `float32` | `net_power_l1_int_x10_legacy`    | —                 | source\_default |
| `8222` / `0x201E`       |     2 | `float32` | `net_power_l2_int_x10_legacy`    | —                 | source\_default |
| `8224` / `0x2020`       |     2 | `float32` | `net_power_l3_int_x10_legacy`    | —                 | source\_default |
| `8234` / `0x202A`       |     2 | `float32` | `direction_total`                | scale 1000        | source\_default |
| `8236` / `0x202C`       |     2 | `float32` | `direction_l1`                   | scale 1000        | source\_default |
| `8238` / `0x202E`       |     2 | `float32` | `direction_l2_or_zero`           | scale 1000        | source\_default |
| `8240` / `0x2030`       |     2 | `float32` | `direction_l3_or_zero`           | scale 1000        | source\_default |
| `8260` / `0x2044`       |     2 | `float32` | `constant 5000.0f`               | —                 | —               |
| `4126` / `0x101E`       |     2 | `float32` | `energy_delivered_total_kwh`     | —                 | source\_default |
| `4136` / `0x1028`       |     2 | `float32` | `energy_returned_total_kwh`      | —                 | source\_default |
| `16390` / `0x4006`      |     2 | `float32` | `pre40`                          | —                 | source\_default |
| `16392` / `0x4008`      |     2 | `uint32`  | `firmware_version_packed`        | —                 | source\_default |
| `16400` / `0x4010`      |     2 | `uint32`  | `p1_device_magic`                | —                 | source\_default |

## Reading the table

* **Words** is the number of consecutive 16-bit Modbus registers occupied by the entry.
* **Source** names correspond directly to the firmware v2 recipe source.
* **Conversion** records the exact scale, transform or direction handling configured by the recipe.
* This page is generated from `mb_recipe.h` and `modbus_profiles.h` for firmware 2.3.0.
