Telemetry Scripts

Purpose

Although they are named "Telemetry scripts" in fact they can be used to perform constant task while running in background. Telemetry scripts are mostly used for building customized screens that are avalilable to user directly from main screen using key shortcut. Each model can have up to three active scripts as configured on the model's Telemetry configuration page. The same script can be assigned to multiple models.

Telemetry scripts are only available on radios with B&W LCD screens, such as e.g. FrSky Taranis models (including Xlite), Radiomaster TX12, Zorro, Boxer or Jumper T12. Read more about <radios>.

Execution & Lifetime

Telemetry script is loaded and executed when model is selected. Script executes until:

  • it misbehaves (e.g. run-time error or low memory)

  • One-time Script is running. When One-time script finishes execution, Wigdet Script resumes execution.

File Location

Telemetry scripts are located on the SD card in the folder /SCRIPTS/TELEMETRY/.

Telemetry script file name length (without extension) must be 6 characters or less

Interface

Every Telemetry script must include a return statement at the end, defining its interface to EdgeTX. This statement returns a table with the following fields:

FieldTypeRequiredDesctiption

run

function

Function is called periodicaly when when telemetry screen is visible.

Parameters

event number

Used to indicates which radio key has been pressed (see Key Events)

Return values none

FieldTypeRequiredDesctiption

init

function

This function is called once when script is executed

Parameters none

Return Values none

FieldTypeRequiredDesctiption

background

function

This function is called periodically, both when the telemetry screen is visible and when it is not

Parameters none

Return Values none

Examples

local function my_init()
  -- init is called once when model is loaded
end

local function my_background()
  -- background is called periodically
end

local function my_run(event)
  -- run is called periodically only when screen is visible
end

return { run = my_run, background = my_background, init = my_init }