Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/Inflight Adjustments.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,10 @@ this reason ensure that you define enough ranges to cover the range channel's us
| 56 | NAV_FW_CONTROL_SMOOTHNESS |
| 57 | FW_TPA_TIME_CONSTANT |
| 58 | FW_LEVEL_TRIM |
| 59 | NAV_WP_MULTI_MISSION_INDEX |
| 60 | NAV_FW_ALT_CONTROL_RESPONSE |
| 61 | MZTC_ZOOM |
| 62 | MZTC_PALETTE |

## Examples

Expand Down
386 changes: 386 additions & 0 deletions docs/MassZero_Thermal_Camera.md

Large diffs are not rendered by default.

137 changes: 137 additions & 0 deletions docs/Settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -3631,6 +3631,143 @@ Mask of RX channels that may be overridden by MSP `SET_RAW_RC`. Note that this r

---

### mztc_auto_shutter

Auto shutter calibration mode

| Allowed Values | |
| --- | --- |
| TEMP_ONLY | |
| TIME_ONLY | |
| TIME_AND_TEMP | Default |

---

### mztc_brightness

Image brightness (0-100)

| Default | Min | Max |
| --- | --- | --- |
| 50 | 0 | 100 |

---

### mztc_contrast

Image contrast (0-100)

| Default | Min | Max |
| --- | --- | --- |
| 50 | 0 | 100 |

---

### mztc_digital_enhancement

Digital enhancement level (0-100)

| Default | Min | Max |
| --- | --- | --- |
| 50 | 0 | 100 |

---

### mztc_ffc_interval

Automatic shutter interval in minutes. The camera runs the schedule itself. Set mztc_auto_shutter to TEMP_ONLY to stop it correcting on a timer.

| Default | Min | Max |
| --- | --- | --- |
| 5 | 1 | 60 |

---

### mztc_mirror_mode

Image mirroring mode

| Allowed Values | |
| --- | --- |
| NONE | Default |
| HORIZONTAL | |
| VERTICAL | |
| CENTRAL | |

---

### mztc_palette_mode

Color palette mode

| Allowed Values | |
| --- | --- |
| WHITE_HOT | Default |
| BLACK_HOT | |
| FUSION_1 | |
| RAINBOW | |
| FUSION_2 | |
| IRON_RED_1 | |
| IRON_RED_2 | |
| SEPIA | |
| COLOR_1 | |
| COLOR_2 | |
| ICE_FIRE | |
| RAIN | |
| GREEN_HOT | |
| RED_HOT | |

---

### mztc_preset

Purpose preset for the MassZero Thermal Camera. Selecting one writes the palette, brightness, contrast, enhancement, denoise, shutter mode and correction interval. CUSTOM writes nothing and keeps hand-tuned values

| Allowed Values | |
| --- | --- |
| CUSTOM | Default |
| GENERAL | |
| FIRE | |
| SEARCH | |
| SURVEILLANCE | |
| INSPECTION | |
| MARITIME | |

---

### mztc_spatial_denoise

Spatial denoising level (0-100)

| Default | Min | Max |
| --- | --- | --- |
| 50 | 0 | 100 |

---

### mztc_temporal_denoise

Temporal denoising level (0-100)

| Default | Min | Max |
| --- | --- | --- |
| 50 | 0 | 100 |

---

### mztc_zoom_level

Digital zoom level

| Allowed Values | |
| --- | --- |
| 1X | Default |
| 2X | |
| 4X | |
| 8X | |

---

### name

Craft name
Expand Down
158 changes: 158 additions & 0 deletions docs/development/msp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -474,6 +474,16 @@ When the MSP JSON specification changes, bump `msp_messages.json` version:
[8754 - MSP2_INAV_MAG_UNALIGNED](#msp2_inav_mag_unaligned)
[8755 - MSP2_INAV_ESC_SRXL2_STATUS](#msp2_inav_esc_srxl2_status)
[8756 - MSP2_INAV_ESC_SRXL2_CALIBRATE](#msp2_inav_esc_srxl2_calibrate)
[8768 - MSP2_MZTC_CONFIG](#msp2_mztc_config)
[8769 - MSP2_MZTC_STATUS](#msp2_mztc_status)
[8770 - MSP2_SET_MZTC_CONFIG](#msp2_set_mztc_config)
[8771 - MSP2_SET_MZTC_PRESET](#msp2_set_mztc_preset)
[8772 - MSP2_SET_MZTC_PALETTE](#msp2_set_mztc_palette)
[8773 - MSP2_SET_MZTC_ZOOM](#msp2_set_mztc_zoom)
[8774 - MSP2_SET_MZTC_SHUTTER](#msp2_set_mztc_shutter)
[8775 - MSP2_SET_MZTC_IMAGE_PARAMS](#msp2_set_mztc_image_params)
[8776 - MSP2_SET_MZTC_CORRECTION](#msp2_set_mztc_correction)
[8777 - MSP2_SET_MZTC_VIGNETTING](#msp2_set_mztc_vignetting)
[12288 - MSP2_BETAFLIGHT_BIND](#msp2_betaflight_bind)
[12289 - MSP2_RX_BIND](#msp2_rx_bind)

Expand Down Expand Up @@ -5045,6 +5055,154 @@ When the MSP JSON specification changes, bump `msp_messages.json` version:

**Notes:** Requires USE_MOTOR_SRXL2 and at least one request byte. Accepted commands: 0 abort, 1 automatic start, 4 manual high, 5 manual low. Driver safety checks can reject start requests; read MSP2_INAV_ESC_SRXL2_STATUS for the reason. Other command values return an MSP error. Remove propellers before calibration.

## <a id="msp2_mztc_config"></a>`MSP2_MZTC_CONFIG (8768 / 0x2240)`
**Description:** Reads the MassZero thermal camera configuration.

**Request Payload:** **None**

**Reply Payload:**
|Field|C Type|Size (Bytes)|Units|Description|
|---|---|---|---|---|
| `preset` | `uint8_t` | 1 | - | Purpose preset. See `mztcPreset_e`. 0 CUSTOM, 1 GENERAL, 2 FIRE, 3 SEARCH, 4 SURVEILLANCE, 5 INSPECTION, 6 MARITIME. |
| `palette_mode` | `uint8_t` | 1 | - | Colour palette. See `mztcPaletteMode_e`. 0-13. |
| `auto_shutter` | `uint8_t` | 1 | - | Automatic shutter policy. See `mztcShutterMode_e`. 0-2. |
| `digital_enhancement` | `uint8_t` | 1 | % | Digital enhancement level. 0-100. |
| `spatial_denoise` | `uint8_t` | 1 | % | Spatial denoising level. 0-100. |
| `temporal_denoise` | `uint8_t` | 1 | % | Temporal denoising level. 0-100. |
| `brightness` | `uint8_t` | 1 | % | Image brightness. 0-100. |
| `contrast` | `uint8_t` | 1 | % | Image contrast. 0-100. |
| `zoom_level` | `uint8_t` | 1 | - | Digital zoom. See `mztcZoomLevel_e`. 0-3. |
| `mirror_mode` | `uint8_t` | 1 | - | Image mirroring. See `mztcMirrorMode_e`. 0-3. |
| `ffc_interval` | `uint8_t` | 1 | minutes | Automatic shutter interval in minutes. 1-60. The camera runs the schedule itself. |

**Notes:** Requires `USE_MZTC`. Fixed 12 byte reply. The serial port and its baud rate are not in this payload. They come from the Ports tab. Each field is written with the `sbufWrite*` helpers. The layout never depends on compiler padding.

## <a id="msp2_mztc_status"></a>`MSP2_MZTC_STATUS (8769 / 0x2241)`
**Description:** Reads the live state of the MassZero thermal camera link.

**Request Payload:** **None**

**Reply Payload:**
|Field|C Type|Size (Bytes)|Units|Description|
|---|---|---|---|---|
| `status` | `uint8_t` | 1 | - | Camera state. 0 offline, 1 initializing, 2 ready, 3 capturing, 4 calibrating, 5 error, 6 alert, 7 recording. |
| `preset` | `uint8_t` | 1 | - | Purpose preset currently in effect. See `mztcPreset_e`. |
| `connected` | `uint8_t` | 1 | - | Set once the camera has answered a command. Opening the serial port alone does not set it. |
| `connection_quality` | `uint8_t` | 1 | % | Share of recent identity probes the camera answered. 0-100. |
| `last_calibration` | `uint16_t` | 2 | minutes | Time since the last flat field correction. Saturates at 65535. |
| `error_flags` | `uint8_t` | 1 | - | Bit field. 0x01 communication, 0x02 calibration, 0x04 temperature, 0x08 memory, 0x10 timeout, 0x20 invalid config. |

**Notes:** Requires `USE_MZTC`. Fixed 7 byte reply.

## <a id="msp2_set_mztc_config"></a>`MSP2_SET_MZTC_CONFIG (8770 / 0x2242)`
**Description:** Writes the MassZero thermal camera configuration.

**Request Payload:**
|Field|C Type|Size (Bytes)|Units|Description|
|---|---|---|---|---|
| `preset` | `uint8_t` | 1 | - | Purpose preset. See `mztcPreset_e`. 0 CUSTOM, 1 GENERAL, 2 FIRE, 3 SEARCH, 4 SURVEILLANCE, 5 INSPECTION, 6 MARITIME. |
| `palette_mode` | `uint8_t` | 1 | - | Colour palette. See `mztcPaletteMode_e`. 0-13. |
| `auto_shutter` | `uint8_t` | 1 | - | Automatic shutter policy. See `mztcShutterMode_e`. 0-2. |
| `digital_enhancement` | `uint8_t` | 1 | % | Digital enhancement level. 0-100. |
| `spatial_denoise` | `uint8_t` | 1 | % | Spatial denoising level. 0-100. |
| `temporal_denoise` | `uint8_t` | 1 | % | Temporal denoising level. 0-100. |
| `brightness` | `uint8_t` | 1 | % | Image brightness. 0-100. |
| `contrast` | `uint8_t` | 1 | % | Image contrast. 0-100. |
| `zoom_level` | `uint8_t` | 1 | - | Digital zoom. See `mztcZoomLevel_e`. 0-3. |
| `mirror_mode` | `uint8_t` | 1 | - | Image mirroring. See `mztcMirrorMode_e`. 0-3. |
| `ffc_interval` | `uint8_t` | 1 | minutes | Automatic shutter interval in minutes. 1-60. The camera runs the schedule itself. |

**Reply Payload:** **None**

**Notes:** Requires `USE_MZTC`. Expects 11 bytes. The serial port and its baud rate are not in this payload. They come from the Ports tab. The whole request is validated against the `MZTC_*` limits before any field is applied. A rejected request leaves the running configuration untouched.

## <a id="msp2_set_mztc_preset"></a>`MSP2_SET_MZTC_PRESET (8771 / 0x2243)`
**Description:** Applies a purpose preset to the MassZero thermal camera. A preset writes the palette, brightness, contrast, digital enhancement, both denoise levels, the shutter mode and the correction interval. CUSTOM writes nothing.

**Request Payload:**
|Field|C Type|Size (Bytes)|Description|
|---|---|---|---|
| `preset` | `uint8_t` | 1 | Purpose preset. See `mztcPreset_e`. 0 CUSTOM, 1 GENERAL, 2 FIRE, 3 SEARCH, 4 SURVEILLANCE, 5 INSPECTION, 6 MARITIME. |

**Reply Payload:** **None**

**Notes:** Requires `USE_MZTC`. Expects 1 byte.

## <a id="msp2_set_mztc_palette"></a>`MSP2_SET_MZTC_PALETTE (8772 / 0x2244)`
**Description:** Sets the MassZero thermal camera colour palette.

**Request Payload:**
|Field|C Type|Size (Bytes)|Description|
|---|---|---|---|
| `palette` | `uint8_t` | 1 | Colour palette. See `mztcPaletteMode_e`. 0-13. |

**Reply Payload:** **None**

**Notes:** Requires `USE_MZTC`. Expects 1 byte. Returns an error if the camera is not connected.

## <a id="msp2_set_mztc_zoom"></a>`MSP2_SET_MZTC_ZOOM (8773 / 0x2245)`
**Description:** Sets the MassZero thermal camera digital zoom level.

**Request Payload:**
|Field|C Type|Size (Bytes)|Description|
|---|---|---|---|
| `zoom_level` | `uint8_t` | 1 | Digital zoom. See `mztcZoomLevel_e`. 0-3. |

**Reply Payload:** **None**

**Notes:** Requires `USE_MZTC`. Expects 1 byte. Returns an error if the camera is not connected.

## <a id="msp2_set_mztc_shutter"></a>`MSP2_SET_MZTC_SHUTTER (8774 / 0x2246)`
**Description:** Triggers a manual shutter cycle for a flat field correction.

**Request Payload:**
|Field|C Type|Size (Bytes)|Description|
|---|---|---|---|
| `trigger` | `uint8_t` | 1 | Ignored. The command itself is the trigger. |

**Reply Payload:** **None**

**Notes:** Requires `USE_MZTC`. Accepts 0 or 1 bytes. A manual shutter cycle is the flat field correction on this camera. The `mztc_calibrate` CLI command performs the same operation.

## <a id="msp2_set_mztc_image_params"></a>`MSP2_SET_MZTC_IMAGE_PARAMS (8775 / 0x2247)`
**Description:** Sets the MassZero thermal camera image parameters.

**Request Payload:**
|Field|C Type|Size (Bytes)|Units|Description|
|---|---|---|---|---|
| `brightness` | `uint8_t` | 1 | % | Image brightness. 0-100. |
| `contrast` | `uint8_t` | 1 | % | Image contrast. 0-100. |
| `enhancement` | `uint8_t` | 1 | % | Digital enhancement. 0-100. |

**Reply Payload:** **None**

**Notes:** Requires `USE_MZTC`. Expects 3 bytes. Returns an error if the camera is not connected.

## <a id="msp2_set_mztc_correction"></a>`MSP2_SET_MZTC_CORRECTION (8776 / 0x2248)`
**Description:** Sets the MassZero thermal camera denoising parameters.

**Request Payload:**
|Field|C Type|Size (Bytes)|Units|Description|
|---|---|---|---|---|
| `spatial_denoise` | `uint8_t` | 1 | % | Spatial denoising. 0-100. |
| `temporal_denoise` | `uint8_t` | 1 | % | Temporal denoising. 0-100. |

**Reply Payload:** **None**

**Notes:** Requires `USE_MZTC`. Expects 2 bytes. Returns an error if the camera is not connected.

## <a id="msp2_set_mztc_vignetting"></a>`MSP2_SET_MZTC_VIGNETTING (8777 / 0x2249)`
**Description:** Runs one vignetting correction on the camera.

**Request Payload:**
|Field|C Type|Size (Bytes)|Description|
|---|---|---|---|
| `trigger` | `uint8_t` | 1 | Ignored. The command itself is the trigger. |

**Reply Payload:** **None**

**Notes:** Requires `USE_MZTC`. Accepts 0 or 1 bytes. The camera manual requires the lens to be pointed at a uniform surface before this runs, so it is an action and never a stored setting.

## <a id="msp2_betaflight_bind"></a>`MSP2_BETAFLIGHT_BIND (12288 / 0x3000)`
**Description:** Initiates the receiver binding procedure for supported serial protocols (CRSF, SRXL2).

Expand Down
Loading
Loading