> For the complete documentation index, see [llms.txt](https://dronebridge.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dronebridge.gitbook.io/docs/dronebridge-for-esp32-drone-light-show-edition/developers-dlse-api-definition/models.md).

# Models

## The SystemInfo object

```json
{"openapi":"3.0.3","info":{"title":"DroneBridge ESP32 REST API","version":"1.0.0"},"components":{"schemas":{"SystemInfo":{"type":"object","description":"Static build and hardware information","properties":{"idf_version":{"type":"string","description":"ESP-IDF version string"},"db_build_version":{"type":"number","description":"Monotonic build number"},"major_version":{"type":"number"},"minor_version":{"type":"number"},"patch_version":{"type":"number"},"maturity_version":{"type":"string","description":"Release maturity label (e.g. \"release\", \"beta\", \"rc1\")"},"license_type":{"type":"string","description":"Human-readable license type"},"expiration_date":{"type":"string","description":"License expiration date as a formatted string, or \"Never\" for perpetual licenses, or a remaining-time string for trial licenses.\n"},"activation_key":{"type":"string","description":"Base64-encoded activation key for this device"},"esp_chip_model":{"type":"number","description":"Numeric chip id, 5=ESP32C3, 13=ESP32C6, 23=ESP32C5","enum":[5,13,23]},"has_rf_switch":{"type":"number","description":"1 if an RF switch is present on the board, 0 otherwise","enum":[0,1]},"esp_mac":{"type":"string","description":"Primary MAC address of the ESP32 (colon-separated hex)"},"serial_via_JTAG":{"type":"number","description":"1 if serial is tunnelled over JTAG, 0 otherwise","enum":[0,1]}}}}}}
```

## The SystemStats object

```json
{"openapi":"3.0.3","info":{"title":"DroneBridge ESP32 REST API","version":"1.0.0"},"components":{"schemas":{"SystemStats":{"type":"object","description":"Runtime counters and connection status","properties":{"read_bytes":{"type":"number","description":"Total bytes read from the UART since last boot"},"tcp_connected":{"type":"number","description":"Number of currently connected TCP clients"},"udp_connected":{"type":"number","description":"Number of UDP destinations in the active client list"},"udp_clients":{"type":"array","description":"List of active UDP destinations as \"IP:port\" strings","items":{"type":"string"}},"current_client_ip":{"type":"string","description":"IP address of the ESP32 in STA mode (only present when radio_mode == DB_WIFI_MODE_STA)\n"},"esp_rssi":{"type":"number","description":"RSSI of the upstream AP in STA mode (only present when radio_mode == DB_WIFI_MODE_STA)\n"},"connected_sta":{"type":"array","description":"List of associated Wi-Fi stations (only present when radio_mode == DB_WIFI_MODE_AP or DB_WIFI_MODE_AP_LR)\n","items":{"$ref":"#/components/schemas/ConnectedStation"}},"fc_pw_state":{"type":"number","description":"Flight-controller power state. `1` = powered, `0` = unpowered, `-1` = power management disabled.\n"},"fc_armed_state":{"type":"number","description":"UAV armed state as reported by the power-management module. `0` = disarmed, `1` = armed.\n"},"battery_voltage":{"type":"number","description":"Battery voltage in volts (ADC measurement)"},"battery_current":{"type":"number","description":"Battery current in amperes (ADC measurement)"},"cpu_load":{"type":"number","description":"CPU utilisation percentage multiplied by 100 (0–100)"}}},"ConnectedStation":{"type":"object","description":"A single Wi-Fi station associated with the ESP32 AP","properties":{"sta_mac":{"type":"string","description":"MAC address of the station (colon-separated hex)"},"sta_rssi":{"type":"number","description":"RSSI of the station as seen by the AP"}}}}}}
```

## The ConnectedStation object

```json
{"openapi":"3.0.3","info":{"title":"DroneBridge ESP32 REST API","version":"1.0.0"},"components":{"schemas":{"ConnectedStation":{"type":"object","description":"A single Wi-Fi station associated with the ESP32 AP","properties":{"sta_mac":{"type":"string","description":"MAC address of the station (colon-separated hex)"},"sta_rssi":{"type":"number","description":"RSSI of the station as seen by the AP"}}}}}}
```

## The ClientList object

```json
{"openapi":"3.0.3","info":{"title":"DroneBridge ESP32 REST API","version":"1.0.0"},"components":{"schemas":{"ClientList":{"type":"object","description":"Active UDP forwarding destinations","properties":{"udp_clients":{"type":"array","description":"List of \"IP:port\" strings","items":{"type":"string"}}}}}}}
```

## The SettingsParams object

```json
{"openapi":"3.0.3","info":{"title":"DroneBridge ESP32 REST API","version":"1.0.0"},"components":{"schemas":{"SettingsParams":{"type":"object","description":"All configurable firmware parameters.  Boolean parameters are represented as `0`/`1` (UINT8 min/max false/true).   GPIO parameters accept any valid ESP32 GPIO number (0 – maximum supported GPIO by the chip).\n","properties":{"esp32_mode":{"type":"integer","description":"Radio/operating mode of the ESP32. Must not be changed at runtime; only takes effect after reboot. 1 = Wi-Fi AP, 802.11b, 2 = Wi-Fi client, 802.11b,\n","enum":[1,2],"default":1},"ssid":{"type":"string","description":"Wi-Fi SSID to connect to in client (STA) mode.","minLength":1,"maxLength":32,"default":"DroneBridge for ESP32"},"ssid_ap":{"type":"string","description":"SSID broadcast by the ESP32 in Wi-Fi AP mode.","minLength":1,"maxLength":32,"default":"DroneBridge for ESP32"},"wifi_pass":{"type":"string","description":"Password for Wi-Fi connections and ESP-NOW encryption.","minLength":7,"maxLength":64,"default":"dronebridge"},"wifi_pass_ap":{"type":"string","description":"Password for the Wi-Fi access point in AP mode.","minLength":7,"maxLength":64,"default":"dronebridge"},"ap_ip":{"type":"string","format":"ipv4","description":"IPv4 address assigned to the ESP32 when operating in Wi-Fi AP mode.","minLength":8,"maxLength":16,"default":"192.168.2.1"},"ip_sta":{"type":"string","format":"ipv4","description":"Static IPv4 address used in Wi-Fi client (STA) mode. Leave empty to use DHCP. If set, ip_sta_gw and ip_sta_netmsk must also be provided.\n","minLength":0,"maxLength":16,"default":""},"ip_sta_gw":{"type":"string","format":"ipv4","description":"Gateway IP address used when a static IP (ip_sta) is configured in STA mode.\n","minLength":0,"maxLength":16,"default":""},"ip_sta_netmsk":{"type":"string","description":"Subnet mask used when a static IP (ip_sta) is configured in STA mode.","minLength":0,"maxLength":16,"default":""},"udp_client_ip":{"type":"string","format":"ipv4","description":"IPv4 address of the first/persisted UDP client target. Only this entry is saved to NVM; additional clients can be registered at runtime via POST /api/settings/clients/udp. Leave empty if no persistent UDP client is needed.\n","minLength":0,"maxLength":16,"default":""},"wifi_hostname":{"type":"string","description":"mDNS/DHCP hostname of the ESP32, used in both AP and STA mode. Defaults to the lwIP CONFIG_LWIP_LOCAL_HOSTNAME compile-time value.\n","minLength":1,"maxLength":32,"default":"dronebridge"},"wifi_chan":{"type":"integer","description":"Wi-Fi channel used in AP and ESP-NOW mode.","minimum":1,"maximum":165,"default":6},"wifi_en_gn":{"type":"integer","description":"Allow 802.11b/g/n(/ax) mode. `0` = 802.11b only (best range); `1` = b/g/n/ax where supported.\n","enum":[0,1],"default":0},"wifi_dis_udpdet":{"type":"integer","description":"Disable automatic UDP client detection. When `1`, only manually registered UDP clients receive serial traffic; senders of incoming UDP packets are no longer auto-added.\n","enum":[0,1],"default":0},"udp_local_port":{"type":"integer","description":"Local UDP port the ESP32 listens on for incoming GCS messages.","minimum":1,"maximum":65535,"default":14555},"wifi_brcst_nudp":{"type":"integer","description":"Broadcast serial data to the broadcast address when no known UDP client exists, enabling auto-detection by GCS tools like Skybrush.\n","enum":[0,1],"default":1},"wifi_brcst_port":{"type":"integer","description":"UDP port used for broadcast transmissions when no known UDP client is registered (linked to `wifi_brcst_nudp`).\n","minimum":1,"maximum":65535,"default":14550},"radio_ant_selec":{"type":"integer","description":"Antenna selection. Maps to `DB_ANTENNA_SELECTION_*` constants: `0` = internal, `1` = external, `2` = auto diversity (not supported for now). Diversity requires a hardware RF switch (e.g. SeeedStudio ESP32-C6).\n","minimum":0,"maximum":2,"default":0},"radio_ant_sw":{"type":"integer","description":"GPIO number connected to the external antenna switch signal. Set to `0` to disable.\n","minimum":0,"default":0},"radio_ant_en":{"type":"integer","description":"GPIO used to enable the external antenna switch circuit. Set to `0` if not needed.\n","minimum":0,"default":0},"baud":{"type":"integer","description":"UART baud rate. Stick to the options available in the web ui to prevent issues.","minimum":1200,"maximum":5000000,"default":115200},"gpio_tx":{"type":"integer","description":"GPIO number of the UART TX pin.","minimum":0},"gpio_rx":{"type":"integer","description":"GPIO number of the UART RX pin.","minimum":0},"gpio_rts":{"type":"integer","description":"GPIO number of the UART RTS pin. Set to the same value as `gpio_cts` to disable hardware flow control.\n","minimum":0},"gpio_cts":{"type":"integer","description":"GPIO number of the UART CTS pin. Set to the same value as `gpio_rts` to disable hardware flow control.\n","minimum":0},"rts_thresh":{"type":"integer","description":"UART RTS threshold. Controls when the RTS line is asserted. Leave at the default unless you have a specific reason to change it.\n","minimum":1,"maximum":127,"default":127},"proto":{"type":"integer","description":"Serial telemetry protocol / parser. Maps to `DB_SERIAL_PROTOCOL_*` constants: `0` = MAVLink (parsed, only complete frames forwarded); `4` = Transparent (raw pass-through).\n","enum":[0,4],"default":0},"trans_pack_size":{"type":"integer","description":"Maximum payload size (bytes) per over-the-air packet in transparent or MAVLink mode. Stick to the options in the web UI to prevent issues\n","minimum":16,"maximum":1056,"default":576},"serial_timeout":{"type":"integer","description":"Serial read timeout in milliseconds. After this period without new bytes the accumulated data is sent over the air even if `trans_pack_size` has not been reached.\n","minimum":1,"maximum":65535,"default":50},"udp_client_port":{"type":"integer","description":"Remote port of the persisted UDP client / GCS endpoint. `0` means no client is persisted.\n","minimum":0,"maximum":65535,"default":0},"rep_rssi_dbm":{"type":"integer","description":"RSSI reporting unit in MAVLink RADIO_STATUS messages. `1` = dBm (QGroundControl); `0` = 0-100 percentage (Mission Planner).\n","enum":[0,1],"default":1},"show_det_flash":{"type":"integer","description":"Enable detection of the flight controller entering firmware-flash mode so the ESP32 can react accordingly.\n","enum":[0,1],"default":1},"show_ap_fail_to":{"type":"integer","description":"Timeout in milliseconds for the ESP32 to connect to the configured access point in STA mode. If the timeout expires a failsafe AP is started using the AP-mode settings.\n","minimum":0,"default":90000},"show_pm_en_hb":{"type":"integer","description":"Emit a fake MAVLink heartbeat on behalf of the flight controller while it is powered down, so the GCS does not lose the connection.\n","enum":[0,1],"default":1},"show_pm_en":{"type":"integer","description":"Enable the ESP32 power-management subsystem for the flight controller. Must be supported by the hardware.\n","enum":[0,1],"default":0},"show_pm_gpio":{"type":"integer","description":"GPIO number connected to the flight-controller power control pin.","minimum":0},"show_pm_logic":{"type":"integer","description":"Logic level of the power control GPIO. Maps to `DB_PM_LOGIC_*`: `0` = active-low; `1` = active-high.\n","enum":[0,1]},"show_pm_pulse_l":{"type":"integer","description":"Duration in milliseconds of the pulse on the power control GPIO when it emulates a toggle button. Set to `0` for level-triggered (latching) power control.\n","minimum":0,"maximum":65535,"default":0},"show_pm_qu_gpio":{"type":"integer","description":"GPIO used to sense whether the flight controller is currently powered. Set to `0` to disable power-state sensing.\n","minimum":0,"default":0},"show_pm_en_emcy":{"type":"integer","description":"Allow the power-off command to execute even while the drone is armed or in an unknown state. Intended for emergency power-off (e.g. Skybrush kill button).\n","enum":[0,1],"default":0},"show_en_syid_ip":{"type":"integer","description":"Derive the MAVLink system ID from the last octet of the configured static IPv4 address instead of `show_man_sysid`. The system ID is also overwritten the first time a MAVLink packet with a system ID is received from the flight controller.\n","enum":[0,1],"default":1},"show_man_sysid":{"type":"integer","description":"Manually assigned MAVLink system ID used until the flight controller's system ID is learned or `show_en_syid_ip` takes over.\n","minimum":0,"maximum":255,"default":1},"adc_v_en":{"type":"integer","description":"Enable battery voltage monitoring via the ESP32 ADC.","enum":[0,1],"default":0},"adc_v_gpio":{"type":"integer","description":"GPIO number connected to the battery voltage sense circuit.","minimum":0,"default":0},"adc_v_multi":{"type":"integer","description":"Voltage ADC multiplier / scaling factor used to convert the raw ADC reading to actual battery voltage.\n","minimum":1,"maximum":65535,"default":110},"adc_a_en":{"type":"integer","description":"Enable battery current monitoring via the ESP32 ADC.","enum":[0,1],"default":0},"adc_a_gpio":{"type":"integer","description":"GPIO number connected to the battery current sense circuit.","minimum":0,"default":0},"adc_a_multi":{"type":"integer","description":"Current ADC multiplier in mA/V used to convert the raw ADC reading to actual current draw.\n","minimum":1,"default":36364}}}}}}
```

## The SettingsResponse object

```json
{"openapi":"3.0.3","info":{"title":"DroneBridge ESP32 REST API","version":"1.0.0"},"components":{"schemas":{"SettingsResponse":{"description":"Response to `GET /api/settings`.\n","allOf":[{"$ref":"#/components/schemas/SettingsParams"},{"type":"object","description":"Per-parameter data-type metadata keys (one per parameter, suffix `_type`).","additionalProperties":{"type":"string"}}]},"SettingsParams":{"type":"object","description":"All configurable firmware parameters.  Boolean parameters are represented as `0`/`1` (UINT8 min/max false/true).   GPIO parameters accept any valid ESP32 GPIO number (0 – maximum supported GPIO by the chip).\n","properties":{"esp32_mode":{"type":"integer","description":"Radio/operating mode of the ESP32. Must not be changed at runtime; only takes effect after reboot. 1 = Wi-Fi AP, 802.11b, 2 = Wi-Fi client, 802.11b,\n","enum":[1,2],"default":1},"ssid":{"type":"string","description":"Wi-Fi SSID to connect to in client (STA) mode.","minLength":1,"maxLength":32,"default":"DroneBridge for ESP32"},"ssid_ap":{"type":"string","description":"SSID broadcast by the ESP32 in Wi-Fi AP mode.","minLength":1,"maxLength":32,"default":"DroneBridge for ESP32"},"wifi_pass":{"type":"string","description":"Password for Wi-Fi connections and ESP-NOW encryption.","minLength":7,"maxLength":64,"default":"dronebridge"},"wifi_pass_ap":{"type":"string","description":"Password for the Wi-Fi access point in AP mode.","minLength":7,"maxLength":64,"default":"dronebridge"},"ap_ip":{"type":"string","format":"ipv4","description":"IPv4 address assigned to the ESP32 when operating in Wi-Fi AP mode.","minLength":8,"maxLength":16,"default":"192.168.2.1"},"ip_sta":{"type":"string","format":"ipv4","description":"Static IPv4 address used in Wi-Fi client (STA) mode. Leave empty to use DHCP. If set, ip_sta_gw and ip_sta_netmsk must also be provided.\n","minLength":0,"maxLength":16,"default":""},"ip_sta_gw":{"type":"string","format":"ipv4","description":"Gateway IP address used when a static IP (ip_sta) is configured in STA mode.\n","minLength":0,"maxLength":16,"default":""},"ip_sta_netmsk":{"type":"string","description":"Subnet mask used when a static IP (ip_sta) is configured in STA mode.","minLength":0,"maxLength":16,"default":""},"udp_client_ip":{"type":"string","format":"ipv4","description":"IPv4 address of the first/persisted UDP client target. Only this entry is saved to NVM; additional clients can be registered at runtime via POST /api/settings/clients/udp. Leave empty if no persistent UDP client is needed.\n","minLength":0,"maxLength":16,"default":""},"wifi_hostname":{"type":"string","description":"mDNS/DHCP hostname of the ESP32, used in both AP and STA mode. Defaults to the lwIP CONFIG_LWIP_LOCAL_HOSTNAME compile-time value.\n","minLength":1,"maxLength":32,"default":"dronebridge"},"wifi_chan":{"type":"integer","description":"Wi-Fi channel used in AP and ESP-NOW mode.","minimum":1,"maximum":165,"default":6},"wifi_en_gn":{"type":"integer","description":"Allow 802.11b/g/n(/ax) mode. `0` = 802.11b only (best range); `1` = b/g/n/ax where supported.\n","enum":[0,1],"default":0},"wifi_dis_udpdet":{"type":"integer","description":"Disable automatic UDP client detection. When `1`, only manually registered UDP clients receive serial traffic; senders of incoming UDP packets are no longer auto-added.\n","enum":[0,1],"default":0},"udp_local_port":{"type":"integer","description":"Local UDP port the ESP32 listens on for incoming GCS messages.","minimum":1,"maximum":65535,"default":14555},"wifi_brcst_nudp":{"type":"integer","description":"Broadcast serial data to the broadcast address when no known UDP client exists, enabling auto-detection by GCS tools like Skybrush.\n","enum":[0,1],"default":1},"wifi_brcst_port":{"type":"integer","description":"UDP port used for broadcast transmissions when no known UDP client is registered (linked to `wifi_brcst_nudp`).\n","minimum":1,"maximum":65535,"default":14550},"radio_ant_selec":{"type":"integer","description":"Antenna selection. Maps to `DB_ANTENNA_SELECTION_*` constants: `0` = internal, `1` = external, `2` = auto diversity (not supported for now). Diversity requires a hardware RF switch (e.g. SeeedStudio ESP32-C6).\n","minimum":0,"maximum":2,"default":0},"radio_ant_sw":{"type":"integer","description":"GPIO number connected to the external antenna switch signal. Set to `0` to disable.\n","minimum":0,"default":0},"radio_ant_en":{"type":"integer","description":"GPIO used to enable the external antenna switch circuit. Set to `0` if not needed.\n","minimum":0,"default":0},"baud":{"type":"integer","description":"UART baud rate. Stick to the options available in the web ui to prevent issues.","minimum":1200,"maximum":5000000,"default":115200},"gpio_tx":{"type":"integer","description":"GPIO number of the UART TX pin.","minimum":0},"gpio_rx":{"type":"integer","description":"GPIO number of the UART RX pin.","minimum":0},"gpio_rts":{"type":"integer","description":"GPIO number of the UART RTS pin. Set to the same value as `gpio_cts` to disable hardware flow control.\n","minimum":0},"gpio_cts":{"type":"integer","description":"GPIO number of the UART CTS pin. Set to the same value as `gpio_rts` to disable hardware flow control.\n","minimum":0},"rts_thresh":{"type":"integer","description":"UART RTS threshold. Controls when the RTS line is asserted. Leave at the default unless you have a specific reason to change it.\n","minimum":1,"maximum":127,"default":127},"proto":{"type":"integer","description":"Serial telemetry protocol / parser. Maps to `DB_SERIAL_PROTOCOL_*` constants: `0` = MAVLink (parsed, only complete frames forwarded); `4` = Transparent (raw pass-through).\n","enum":[0,4],"default":0},"trans_pack_size":{"type":"integer","description":"Maximum payload size (bytes) per over-the-air packet in transparent or MAVLink mode. Stick to the options in the web UI to prevent issues\n","minimum":16,"maximum":1056,"default":576},"serial_timeout":{"type":"integer","description":"Serial read timeout in milliseconds. After this period without new bytes the accumulated data is sent over the air even if `trans_pack_size` has not been reached.\n","minimum":1,"maximum":65535,"default":50},"udp_client_port":{"type":"integer","description":"Remote port of the persisted UDP client / GCS endpoint. `0` means no client is persisted.\n","minimum":0,"maximum":65535,"default":0},"rep_rssi_dbm":{"type":"integer","description":"RSSI reporting unit in MAVLink RADIO_STATUS messages. `1` = dBm (QGroundControl); `0` = 0-100 percentage (Mission Planner).\n","enum":[0,1],"default":1},"show_det_flash":{"type":"integer","description":"Enable detection of the flight controller entering firmware-flash mode so the ESP32 can react accordingly.\n","enum":[0,1],"default":1},"show_ap_fail_to":{"type":"integer","description":"Timeout in milliseconds for the ESP32 to connect to the configured access point in STA mode. If the timeout expires a failsafe AP is started using the AP-mode settings.\n","minimum":0,"default":90000},"show_pm_en_hb":{"type":"integer","description":"Emit a fake MAVLink heartbeat on behalf of the flight controller while it is powered down, so the GCS does not lose the connection.\n","enum":[0,1],"default":1},"show_pm_en":{"type":"integer","description":"Enable the ESP32 power-management subsystem for the flight controller. Must be supported by the hardware.\n","enum":[0,1],"default":0},"show_pm_gpio":{"type":"integer","description":"GPIO number connected to the flight-controller power control pin.","minimum":0},"show_pm_logic":{"type":"integer","description":"Logic level of the power control GPIO. Maps to `DB_PM_LOGIC_*`: `0` = active-low; `1` = active-high.\n","enum":[0,1]},"show_pm_pulse_l":{"type":"integer","description":"Duration in milliseconds of the pulse on the power control GPIO when it emulates a toggle button. Set to `0` for level-triggered (latching) power control.\n","minimum":0,"maximum":65535,"default":0},"show_pm_qu_gpio":{"type":"integer","description":"GPIO used to sense whether the flight controller is currently powered. Set to `0` to disable power-state sensing.\n","minimum":0,"default":0},"show_pm_en_emcy":{"type":"integer","description":"Allow the power-off command to execute even while the drone is armed or in an unknown state. Intended for emergency power-off (e.g. Skybrush kill button).\n","enum":[0,1],"default":0},"show_en_syid_ip":{"type":"integer","description":"Derive the MAVLink system ID from the last octet of the configured static IPv4 address instead of `show_man_sysid`. The system ID is also overwritten the first time a MAVLink packet with a system ID is received from the flight controller.\n","enum":[0,1],"default":1},"show_man_sysid":{"type":"integer","description":"Manually assigned MAVLink system ID used until the flight controller's system ID is learned or `show_en_syid_ip` takes over.\n","minimum":0,"maximum":255,"default":1},"adc_v_en":{"type":"integer","description":"Enable battery voltage monitoring via the ESP32 ADC.","enum":[0,1],"default":0},"adc_v_gpio":{"type":"integer","description":"GPIO number connected to the battery voltage sense circuit.","minimum":0,"default":0},"adc_v_multi":{"type":"integer","description":"Voltage ADC multiplier / scaling factor used to convert the raw ADC reading to actual battery voltage.\n","minimum":1,"maximum":65535,"default":110},"adc_a_en":{"type":"integer","description":"Enable battery current monitoring via the ESP32 ADC.","enum":[0,1],"default":0},"adc_a_gpio":{"type":"integer","description":"GPIO number connected to the battery current sense circuit.","minimum":0,"default":0},"adc_a_multi":{"type":"integer","description":"Current ADC multiplier in mA/V used to convert the raw ADC reading to actual current draw.\n","minimum":1,"default":36364}}}}}}
```

## The SettingsRequest object

```json
{"openapi":"3.0.3","info":{"title":"DroneBridge ESP32 REST API","version":"1.0.0"},"components":{"schemas":{"SettingsRequest":{"description":"Body for `POST /api/settings`. Send only the keys you want to change; all others keep their current values. Key names must exactly match the `db_name` field of the firmware parameter table.\n","allOf":[{"$ref":"#/components/schemas/SettingsParams"}]},"SettingsParams":{"type":"object","description":"All configurable firmware parameters.  Boolean parameters are represented as `0`/`1` (UINT8 min/max false/true).   GPIO parameters accept any valid ESP32 GPIO number (0 – maximum supported GPIO by the chip).\n","properties":{"esp32_mode":{"type":"integer","description":"Radio/operating mode of the ESP32. Must not be changed at runtime; only takes effect after reboot. 1 = Wi-Fi AP, 802.11b, 2 = Wi-Fi client, 802.11b,\n","enum":[1,2],"default":1},"ssid":{"type":"string","description":"Wi-Fi SSID to connect to in client (STA) mode.","minLength":1,"maxLength":32,"default":"DroneBridge for ESP32"},"ssid_ap":{"type":"string","description":"SSID broadcast by the ESP32 in Wi-Fi AP mode.","minLength":1,"maxLength":32,"default":"DroneBridge for ESP32"},"wifi_pass":{"type":"string","description":"Password for Wi-Fi connections and ESP-NOW encryption.","minLength":7,"maxLength":64,"default":"dronebridge"},"wifi_pass_ap":{"type":"string","description":"Password for the Wi-Fi access point in AP mode.","minLength":7,"maxLength":64,"default":"dronebridge"},"ap_ip":{"type":"string","format":"ipv4","description":"IPv4 address assigned to the ESP32 when operating in Wi-Fi AP mode.","minLength":8,"maxLength":16,"default":"192.168.2.1"},"ip_sta":{"type":"string","format":"ipv4","description":"Static IPv4 address used in Wi-Fi client (STA) mode. Leave empty to use DHCP. If set, ip_sta_gw and ip_sta_netmsk must also be provided.\n","minLength":0,"maxLength":16,"default":""},"ip_sta_gw":{"type":"string","format":"ipv4","description":"Gateway IP address used when a static IP (ip_sta) is configured in STA mode.\n","minLength":0,"maxLength":16,"default":""},"ip_sta_netmsk":{"type":"string","description":"Subnet mask used when a static IP (ip_sta) is configured in STA mode.","minLength":0,"maxLength":16,"default":""},"udp_client_ip":{"type":"string","format":"ipv4","description":"IPv4 address of the first/persisted UDP client target. Only this entry is saved to NVM; additional clients can be registered at runtime via POST /api/settings/clients/udp. Leave empty if no persistent UDP client is needed.\n","minLength":0,"maxLength":16,"default":""},"wifi_hostname":{"type":"string","description":"mDNS/DHCP hostname of the ESP32, used in both AP and STA mode. Defaults to the lwIP CONFIG_LWIP_LOCAL_HOSTNAME compile-time value.\n","minLength":1,"maxLength":32,"default":"dronebridge"},"wifi_chan":{"type":"integer","description":"Wi-Fi channel used in AP and ESP-NOW mode.","minimum":1,"maximum":165,"default":6},"wifi_en_gn":{"type":"integer","description":"Allow 802.11b/g/n(/ax) mode. `0` = 802.11b only (best range); `1` = b/g/n/ax where supported.\n","enum":[0,1],"default":0},"wifi_dis_udpdet":{"type":"integer","description":"Disable automatic UDP client detection. When `1`, only manually registered UDP clients receive serial traffic; senders of incoming UDP packets are no longer auto-added.\n","enum":[0,1],"default":0},"udp_local_port":{"type":"integer","description":"Local UDP port the ESP32 listens on for incoming GCS messages.","minimum":1,"maximum":65535,"default":14555},"wifi_brcst_nudp":{"type":"integer","description":"Broadcast serial data to the broadcast address when no known UDP client exists, enabling auto-detection by GCS tools like Skybrush.\n","enum":[0,1],"default":1},"wifi_brcst_port":{"type":"integer","description":"UDP port used for broadcast transmissions when no known UDP client is registered (linked to `wifi_brcst_nudp`).\n","minimum":1,"maximum":65535,"default":14550},"radio_ant_selec":{"type":"integer","description":"Antenna selection. Maps to `DB_ANTENNA_SELECTION_*` constants: `0` = internal, `1` = external, `2` = auto diversity (not supported for now). Diversity requires a hardware RF switch (e.g. SeeedStudio ESP32-C6).\n","minimum":0,"maximum":2,"default":0},"radio_ant_sw":{"type":"integer","description":"GPIO number connected to the external antenna switch signal. Set to `0` to disable.\n","minimum":0,"default":0},"radio_ant_en":{"type":"integer","description":"GPIO used to enable the external antenna switch circuit. Set to `0` if not needed.\n","minimum":0,"default":0},"baud":{"type":"integer","description":"UART baud rate. Stick to the options available in the web ui to prevent issues.","minimum":1200,"maximum":5000000,"default":115200},"gpio_tx":{"type":"integer","description":"GPIO number of the UART TX pin.","minimum":0},"gpio_rx":{"type":"integer","description":"GPIO number of the UART RX pin.","minimum":0},"gpio_rts":{"type":"integer","description":"GPIO number of the UART RTS pin. Set to the same value as `gpio_cts` to disable hardware flow control.\n","minimum":0},"gpio_cts":{"type":"integer","description":"GPIO number of the UART CTS pin. Set to the same value as `gpio_rts` to disable hardware flow control.\n","minimum":0},"rts_thresh":{"type":"integer","description":"UART RTS threshold. Controls when the RTS line is asserted. Leave at the default unless you have a specific reason to change it.\n","minimum":1,"maximum":127,"default":127},"proto":{"type":"integer","description":"Serial telemetry protocol / parser. Maps to `DB_SERIAL_PROTOCOL_*` constants: `0` = MAVLink (parsed, only complete frames forwarded); `4` = Transparent (raw pass-through).\n","enum":[0,4],"default":0},"trans_pack_size":{"type":"integer","description":"Maximum payload size (bytes) per over-the-air packet in transparent or MAVLink mode. Stick to the options in the web UI to prevent issues\n","minimum":16,"maximum":1056,"default":576},"serial_timeout":{"type":"integer","description":"Serial read timeout in milliseconds. After this period without new bytes the accumulated data is sent over the air even if `trans_pack_size` has not been reached.\n","minimum":1,"maximum":65535,"default":50},"udp_client_port":{"type":"integer","description":"Remote port of the persisted UDP client / GCS endpoint. `0` means no client is persisted.\n","minimum":0,"maximum":65535,"default":0},"rep_rssi_dbm":{"type":"integer","description":"RSSI reporting unit in MAVLink RADIO_STATUS messages. `1` = dBm (QGroundControl); `0` = 0-100 percentage (Mission Planner).\n","enum":[0,1],"default":1},"show_det_flash":{"type":"integer","description":"Enable detection of the flight controller entering firmware-flash mode so the ESP32 can react accordingly.\n","enum":[0,1],"default":1},"show_ap_fail_to":{"type":"integer","description":"Timeout in milliseconds for the ESP32 to connect to the configured access point in STA mode. If the timeout expires a failsafe AP is started using the AP-mode settings.\n","minimum":0,"default":90000},"show_pm_en_hb":{"type":"integer","description":"Emit a fake MAVLink heartbeat on behalf of the flight controller while it is powered down, so the GCS does not lose the connection.\n","enum":[0,1],"default":1},"show_pm_en":{"type":"integer","description":"Enable the ESP32 power-management subsystem for the flight controller. Must be supported by the hardware.\n","enum":[0,1],"default":0},"show_pm_gpio":{"type":"integer","description":"GPIO number connected to the flight-controller power control pin.","minimum":0},"show_pm_logic":{"type":"integer","description":"Logic level of the power control GPIO. Maps to `DB_PM_LOGIC_*`: `0` = active-low; `1` = active-high.\n","enum":[0,1]},"show_pm_pulse_l":{"type":"integer","description":"Duration in milliseconds of the pulse on the power control GPIO when it emulates a toggle button. Set to `0` for level-triggered (latching) power control.\n","minimum":0,"maximum":65535,"default":0},"show_pm_qu_gpio":{"type":"integer","description":"GPIO used to sense whether the flight controller is currently powered. Set to `0` to disable power-state sensing.\n","minimum":0,"default":0},"show_pm_en_emcy":{"type":"integer","description":"Allow the power-off command to execute even while the drone is armed or in an unknown state. Intended for emergency power-off (e.g. Skybrush kill button).\n","enum":[0,1],"default":0},"show_en_syid_ip":{"type":"integer","description":"Derive the MAVLink system ID from the last octet of the configured static IPv4 address instead of `show_man_sysid`. The system ID is also overwritten the first time a MAVLink packet with a system ID is received from the flight controller.\n","enum":[0,1],"default":1},"show_man_sysid":{"type":"integer","description":"Manually assigned MAVLink system ID used until the flight controller's system ID is learned or `show_en_syid_ip` takes over.\n","minimum":0,"maximum":255,"default":1},"adc_v_en":{"type":"integer","description":"Enable battery voltage monitoring via the ESP32 ADC.","enum":[0,1],"default":0},"adc_v_gpio":{"type":"integer","description":"GPIO number connected to the battery voltage sense circuit.","minimum":0,"default":0},"adc_v_multi":{"type":"integer","description":"Voltage ADC multiplier / scaling factor used to convert the raw ADC reading to actual battery voltage.\n","minimum":1,"maximum":65535,"default":110},"adc_a_en":{"type":"integer","description":"Enable battery current monitoring via the ESP32 ADC.","enum":[0,1],"default":0},"adc_a_gpio":{"type":"integer","description":"GPIO number connected to the battery current sense circuit.","minimum":0,"default":0},"adc_a_multi":{"type":"integer","description":"Current ADC multiplier in mA/V used to convert the raw ADC reading to actual current draw.\n","minimum":1,"default":36364}}}}}}
```

## The UdpClientRequest object

```json
{"openapi":"3.0.3","info":{"title":"DroneBridge ESP32 REST API","version":"1.0.0"},"components":{"schemas":{"UdpClientRequest":{"type":"object","required":["ip","port"],"properties":{"ip":{"type":"string","format":"ipv4","description":"IPv4 address of the UDP destination"},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"UDP destination port"},"save":{"type":"boolean","description":"If `true`, persist this client to NVM so it is restored after a reboot. Only one entry can be persisted at a time.\n","default":false}}}}}}
```

## The LicenseUploadResponse object

```json
{"openapi":"3.0.3","info":{"title":"DroneBridge ESP32 REST API","version":"1.0.0"},"components":{"schemas":{"LicenseUploadResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the license was activated successfully"},"message":{"type":"string","description":"Human-readable success message (only present on success)"},"type":{"type":"string","description":"License type string (only present on success)"},"expiration":{"type":"string","description":"Expiration date string (only present on success)"},"error":{"type":"string","description":"Error message (only present on failure)"}}}}}}
```

## The StatusResponse object

```json
{"openapi":"3.0.3","info":{"title":"DroneBridge ESP32 REST API","version":"1.0.0"},"components":{"schemas":{"StatusResponse":{"type":"object","description":"Generic status/message response used by several endpoints","properties":{"status":{"type":"string","enum":["success","failed"]},"msg":{"type":"string"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://dronebridge.gitbook.io/docs/dronebridge-for-esp32-drone-light-show-edition/developers-dlse-api-definition/models.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
