Programs are the core of Veronte Autopilot.

A Program is a custom algorithm executed by Veronte. While their main purpose is the control of the aircraft, Programs can be used to develop a wide variety of applications, from simple math operations to complex estimation filters.

Programs provide the user with a block programming interface that Veronte will then execute at core frequency:

Block Program Example

Block Program Example

The different types of blocks available in Veronte Programs are:

  • Control: control-related blocks (simple PID, scheduling PID,…).
  • Data source/sink: Input/Output blocks. Programs can have access to any variable available within Veronte system. Results can then be stored in Custom variables for display, use as a different program input, feedback,…
  • Execution flow: programming-like blocks for operation flow control. These blocks allow to alter parts of a program depending on a condition (If-Else, Integer Case, Phase Case,…)
  • Logic: logical gates to operate with boolean variables.
  • Math: mathematical blocks, which include a variety of mathematical operators: basic (sum, multiply, square root,…), trigonometric (sine,cosine,tangent,…), vectors (norm, dot product, rotations,…).
  • Mode/AP selection: blocks that allow to interact with flight modes and redundancy (4x Veronte).
  • Positions: blocks for operating with position-type variables (create psotition, read position, relative position,…).
  • Signals: blocks for signal processing (IIR filter, rate limiter,…)
  • Type casting: blocks for variable conversion (Real to BIT, Integer to real,…)

Block Program Interface

Accessible from the Setup menu, allows for the creation and edition of block programs:

Programs menu

Programs Menu

  1. Add a new empty Block Program
  2. Program list. From here programs can be selected for edition or deleted. Clicking on trash icon will delete an existing Program.
  3. Program name.
  4. Program definition.
  5. ‘Pop up’ the program edition window. This allows the user to have a clearer view of the operation while editing.
  6. Estimation of the remaining memory available. If no more memory is available, no new blocks will be allowed to be created. The allocated memory for each block depends on the block type.


The icon lightning icon indicates that the program will be executed periodically, at core frequency.

Use arrows icon to determine execution order of existing programs. Programs are executed from top to bottom.

Clicking on lightning icon will toggle execution mode. Inactive lightning off icon blocks will not execute periodically, but can be executed using Run Program Actions.


Applying changes to programs during an operation can cause changes in the beahvior of some blocks.

For example, the Integral terms in PID Blocks will be reset.

Applying changes during an operation is highly unrecommended. If done, please make sure that operational safety is not compromised.


Right click on the edition screen to open the block list. Select a block to import it into the program.

Click and drag on blocks to re-locate them:

Adding blocks

Adding Blocks

Double click on a block to open its configuration menu.

Block inputs and outputs use a colour code in order to indicate variable types:

  • bit icon BIT Boolean variables
  • int icon 16-bit Integer variables
  • real icon 32-bit Real variables. real icon connectors can also be Arrays of real variables.
  • fid icon position variables

An input and an output can be connected directly using the mouse:

Linking blocks

Linking Blocks

An input and output with different variable types cannot be connected without a Type Cast.

All inputs of each block must be connected, otherwise Veronte will report an error.

An exception to this rule are translucid inputs fid icon, which are optional. These inputs will have a default value if not linked.

Outputs do not need to be linked.