> [!warning]
> You are viewing the documentation for an unreleased product.
The message protocol used by the PDM36 is designed as J1939 compatible.
A `.dbc` file containing the proprietary messages can be found in the artefacts of the latest firmware [release](https://github.com/umi-eng/pdm/releases).
# Source Address
The address can be selected via grounding a combination of the addressing pins.
| Address | ADR0 | ADR1 |
| ------- | ---- | ---- |
| `55h` | | |
| `56h` | Y | |
| `57h` | | Y |
| `58h` | Y | Y |
Y = Pin connected to ground.
# Output Control
PGN: `EF00h` Proprietary A
The output state may be set to one of the following values:
| Output state | |
| ------------ | ----------- |
| Value | Description |
| 0 | Off |
| 1 | On |
| 3 | No change |
## Control Outputs 1 - 12
Length: 6
PGN: `EF00h` Proprietary A
Example ID: `98EF5500h`
| Field | Bits | Allowed values | Description |
| --------- | ---- | -------------- | -------------------------------------------------------------------------- |
| Mux | 4 | 0 | Message multiplexing. |
| Output 1 | 2 | 0 ... 3 | Output state. |
| Output 2 | 2 | 0 ... 3 | Output state. |
| Output 3 | 2 | 0 ... 3 | Output state. |
| Output 4 | 2 | 0 ... 3 | Output state. |
| Output 5 | 2 | 0 ... 3 | Output state. |
| Output 6 | 2 | 0 ... 3 | Output state. |
| Output 7 | 2 | 0 ... 3 | Output state. |
| Output 8 | 2 | 0 ... 3 | Output state. |
| Output 9 | 2 | 0 ... 3 | Output state. |
| Output 10 | 2 | 0 ... 3 | Output state. |
| Output 11 | 2 | 0 ... 3 | Output state. |
| Output 12 | 2 | 0 ... 3 | Output state. |
| PWM duty | 8 | 0 ... 255 | Duty cycle. Set to 255 when PWM is not required.<br><br>0: 0%<br>255: 100% |
## Outputs 13 - 24
Length: 6
PGN: `EF00h` Proprietary A
Example ID: `98EF5500h`
| Field | Bits | Allowed values | Description |
| --------- | ---- | -------------- | -------------------------------------------------------------------------- |
| Mux | 4 | 1 | Message multiplexing. |
| Output 13 | 2 | 0 ... 3 | Output state. |
| Output 14 | 2 | 0 ... 3 | Output state. |
| Output 15 | 2 | 0 ... 3 | Output state. |
| Output 16 | 2 | 0 ... 3 | Output state. |
| Output 17 | 2 | 0 ... 3 | Output state. |
| Output 18 | 2 | 0 ... 3 | Output state. |
| Output 19 | 2 | 0 ... 3 | Output state. |
| Output 20 | 2 | 0 ... 3 | Output state. |
| Output 21 | 2 | 0 ... 3 | Output state. |
| Output 22 | 2 | 0 ... 3 | Output state. |
| Output 23 | 2 | 0 ... 3 | Output state. |
| Output 24 | 2 | 0 ... 3 | Output state. |
| PWM duty | 8 | 0 ... 255 | Duty cycle. Set to 255 when PWM is not required.<br><br>0: 0%<br>255: 100% |
## Outputs 25 - 36
Length: 6
PGN: `EF00h` Proprietary A
Example ID: `98EF5500h`
| Field | Bits | Allowed values | Description |
| --------- | ---- | -------------- | -------------------------------------------------------------------------- |
| Mux | 4 | 2 | Message multiplexing. |
| Output 25 | 2 | 0 ... 3 | Output state. |
| Output 26 | 2 | 0 ... 3 | Output state. |
| Output 27 | 2 | 0 ... 3 | Output state. |
| Output 28 | 2 | 0 ... 3 | Output state. |
| Output 29 | 2 | 0 ... 3 | Output state. |
| Output 30 | 2 | 0 ... 3 | Output state. |
| Output 31 | 2 | 0 ... 3 | Output state. |
| Output 32 | 2 | 0 ... 3 | Output state. |
| Output 33 | 2 | 0 ... 3 | Output state. |
| Output 34 | 2 | 0 ... 3 | Output state. |
| Output 35 | 2 | 0 ... 3 | Output state. |
| Output 36 | 2 | 0 ... 3 | Output state. |
| PWM duty | 8 | 0 ... 255 | Duty cycle. Set to 255 when PWM is not required.<br><br>0: 0%<br>255: 100% |
# Configure Outputs
Length: 8
PGN: `1EF00h` Proprietary A2
| Field | Bits | Allowed values | Description |
| ------------------- | ---- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Mux | 4 | 0 ... 2 | Message multiplexing.<br><br>0: Outputs 1 - 12<br>1: Outputs 13 - 24<br>2: Outputs 25 - 36 |
| Channel mask | 12 | 0 ... 4095 | Each bit corresponds to a channel starting at the least significant bit. |
| Open load detection | 1 | 0 ... 1 | Enable detecting open-load conditions. This will create a weak ~100kOhm pull-up on the output. |
| Reserved | 5 | ... | ... |
| Blanking window | 2 | 0 ... 3 | Blanking time when the output goes into shutdown due to thermal or power limitations.<br><br>0: Latch-off<br>1: 32ms<br>2: 96ms<br>3: 240ms |
| Current limit | 8 | 5 ... 255 | Set the soft current limit.<br><br>0: Disabled<br>1: 0.1A<br>2: 0.2A<br>...<br>249: 24.9A<br>250: 25.0A |
| Economize duty | 8 | 0 ... 255 | Duty cycle after economization delay.<br><br>0: 0%<br>255: 100% |
| Economize delay | 8 | 0 ... 15 | Delay before the economization PWM starts.<br><br>0: Disabled<br>1: 50ms<br>2: 100ms<br>...<br>14: 700ms<br>15: 750ms |