> 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/abb-b21.md).

# ABB B21

## Mapping behaviour

* Device Manager mapping value: `5`
* Profile: `ABB_B21`
* Read function codes: `FC03` and `FC04`
* Register widths: 32-bit entries unless a text/fill range is shown
* 32-bit word order: high word first (MSW-LSW)
* Unmapped register handling: Modbus exception

{% 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         |
| ----------------------- | ----: | -------- | --------------------------------- | ---------- | --------------- |
| `23296` / `0x5B00`      |     2 | `uint32` | `voltage_l1_v`                    | scale 10   | source\_default |
| `23298` / `0x5B02`      |     2 | `uint32` | `voltage_l2_v`                    | scale 10   | source\_default |
| `23300` / `0x5B04`      |     2 | `uint32` | `voltage_l3_v`                    | scale 10   | source\_default |
| `23308` / `0x5B0C`      |     2 | `uint32` | `derived_current_l1_a`            | scale 100  | source\_default |
| `23310` / `0x5B0E`      |     2 | `uint32` | `current_l2_a`                    | scale 100  | source\_default |
| `23312` / `0x5B10`      |     2 | `uint32` | `derived_current_l3_a`            | scale 100  | source\_default |
| `23316` / `0x5B14`      |     2 | `int32`  | `net_power_total_int_x100_legacy` | —          | source\_default |
| `23318` / `0x5B16`      |     2 | `int32`  | `net_power_l1_int_x100_legacy`    | —          | source\_default |
| `23320` / `0x5B18`      |     2 | `int32`  | `net_power_l2_int_x100_legacy`    | —          | source\_default |
| `23322` / `0x5B1A`      |     2 | `int32`  | `net_power_l3_int_x100_legacy`    | —          | 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.
