MAVLINKHUD

Overview

The NTF parameter group configures the Notification Subsystem. This library handles user-facing feedback, including RGB status LEDs, buzzers, display screens, and OreoLEDs.

Effective notification setup is critical for safety, as it provides the pilot with visual and audible confirmation of arming state, GPS lock, and failsafe conditions.

Key Concepts

1. LED Types (NTF_LED_TYPES)

ArduPilot supports many LED hardware types.

  • Built-in: The small LED on the flight controller.
  • External (I2C): Common Toshiba or NeoPixel LEDs found on GPS modules.
  • Scripting: LEDs controlled by Lua scripts.
  • OreoLED: Specific to the 3DR Solo and similar high-power LED systems.

2. Buzzer Behavior (NTF_BUZZ_...)

  • NTF_BUZZ_VOLUME: Global volume for the internal alarm buzzer.
  • NTF_BUZZ_TYPES: Bitmask to enable/disable specific tones (e.g., quiet the "Startup" tone but keep the "Failsafe" tone).

3. Display Types (NTF_DISPLAY_TYPE)

Supports small I2C OLED screens (SSD1306) mounted to the drone to show battery voltage and status without a GCS.

Parameter Breakdown

  • NTF_LED_BRIGHT: LED intensity (Low, Medium, High).
  • NTF_LED_OVERRIDE: Allows selecting simplified color schemes (e.g., "Traffic Light").
  • NTF_OREO_THEME: Color themes for OreoLED rings.

Integration Guide

  • NeoPixels: To use NeoPixel strips for status, set NTF_LED_TYPES to include NeoPixel and ensure a servo output is mapped to LED (Function 120).

Developer Notes

  • Library: libraries/AP_Notify.
  • Drivers: Handles hardware abstraction for I2C and dedicated PWM notification devices.

NTF_BUZZ_ON_LVL: Buzzer-on pin logic level

Description

Specifies pin level that indicates buzzer should play.

Values

Value Meaning
0 LowIsOn (Active Low)
1 HighIsOn (Active High)
  • Default: 1 (HighIsOn)

Description

This parameter defines the electrical polarity of the buzzer control signal.

  • Active High (1): The autopilot outputs 3.3V (Logic High) to turn the buzzer ON. This is standard for most simple piezo buzzers driven by a transistor.
  • Active Low (0): The autopilot outputs 0V (Logic Low) to turn the buzzer ON. This is common for some integrated buzzer modules or specific board designs.

Source Code

ardupilot/libraries/AP_Notify/AP_Notify.cpp

NTF_BUZZ_PIN

Default -1
Range -1 103

Buzzer Output Pin (NTF_BUZZ_PIN)

Description

NTF_BUZZ_PIN tells the autopilot which pin is connected to the piezo buzzer.

The buzzer is used for audible feedback, such as "Ready to Arm" beeps, low battery sirens, and SOS codes for sensor failures.

Tuning & Behavior

  • Default: -1 (Use the board's default buzzer pin).
  • Usage: If you are building a custom drone and want to move the buzzer to a different output (e.g., AUX 5), you can enter that GPIO number here.
  • Hardware Requirement: Note that standard flight controller pins provide very little current. If you are using a large, loud buzzer, you may need a small MOSFET or transistor circuit between the FC and the buzzer.

NTF_BUZZ_TYPES

Default 1
Range 0 7

Buzzer Driver Types (NTF_BUZZ_TYPES)

Description

NTF_BUZZ_TYPES controls where the "Beeps" come from.

  • Bit 0 (1): Built-in buzzer. The standard piezoelectric buzzer connected to the flight controller.
  • Bit 1 (2): DShot. Uses the motors themselves to beep! The ESC vibrates the motor windings to create sound.
  • Bit 2 (4): DroneCAN. Uses a buzzer on a CAN-bus peripheral (like a GPS puck).

The Engineer's View

Enabling DShot (Bit 1) is extremely useful for finding a lost drone in tall grass ("Lost Model Alarm"). Since the motors are much louder than the small piezo buzzer, this can be a lifesaver.

Tuning & Behavior

  • Default Value: 1 (Built-in)
  • Recommendation: Set to 3 (Built-in + DShot) to enable motor beeping.

NTF_BUZZ_VOLUME

%
Default 100
Range 0 100

Buzzer Volume (NTF_BUZZ_VOLUME)

Description

NTF_BUZZ_VOLUME sets the loudness of the beeps and tunes played by the flight controller's buzzer (used for arming alerts, low battery warnings, and error codes).

  • 100: (Default). Full volume.
  • 0: Silent (Not recommended for safety reasons).

Tuning & Behavior

  • Note: This only affects hardware buzzers that support volume control via PWM (common on modern Flight Controllers). Simple "Buzzer" pins on older hardware may only support ON/OFF and will ignore this setting.

NTF_DISPLAY_TYPE

Default 0
Range 0 1

I2C OLED Display Type (NTF_DISPLAY_TYPE)

Description

NTF_DISPLAY_TYPE enables support for tiny onboard OLED screens (usually 128x64 or 0.96").

These screens are mounted directly to the drone and provide at-a-glance information while the drone is on the ground, such as:

  • Arming status.
  • GPS lock quality (HDOP / Sat count).
  • Battery voltage.
  • Active flight mode.

Tuning & Behavior

  • 0: Disabled (Default).
  • 1: SSD1306. Standard I2C OLED driver used by most hobbyist screens.
  • Reboot Required: Yes.

NTF_LED_BRIGHT

Default 3
Range 1 3

Onboard LED Brightness (NTF_LED_BRIGHT)

Description

NTF_LED_BRIGHT controls how intense the status LEDs (e.g. the big blinking LED on a Pixhawk) appear.

  • 1: Low. Dim, good for night flight or bench testing.
  • 2: Medium.
  • 3: High (Default). Bright enough to be seen in direct sunlight.

Tuning & Behavior

  • Safety Feature: When the flight controller is powered via USB, the brightness is automatically forced to Low to prevent over-current on the USB rail and to avoid blinding the developer. The high setting only takes effect when powered by a battery.

NTF_LED_LEN

LEDs
Default 1
Range 1 32

Serial LED String Length (NTF_LED_LEN)

Description

NTF_LED_LEN defines how many NeoPixel-style LEDs are in your status light strip.

ArduPilot can control a chain of addressable RGB LEDs to provide super-bright, high-visibility status notifications (like green for "Home Set" or flashing yellow for "Radio Failsafe").

  • 1 (Default): Standard single status LED.
  • 1-32: Number of LEDs in your physical strip.

Tuning & Behavior

  • Usage: Set this to match the number of LEDs you have physically wired to your serial LED port.
  • Power Warning: Addressable LEDs consume significant current. If you use a long string (e.g., 20+ LEDs), ensure your flight controller's 5V regulator can handle the load, or use an external BEC.

NTF_LED_OVERRIDE

Default 0
Range 0 2

Specifies colour source for the RGBLed (NTF_LED_OVERRIDE)

Description

This parameter changes the color logic of the main Status LED. The standard ArduPilot blink codes are very detailed but complex. This option allows selecting simplified schemes used for specific competitions or safety standards.

The Mathematics

Enum mapping.

The Engineer's View

Defined in libraries/AP_Notify/AP_Notify.cpp.

  • 0 (Standard): Full ArduPilot blink codes (Yellow=Failsafe, Blue=GPS, Green=Armed/GPS, etc.).
  • 1 (Traffic Light): Red=Armed, Yellow=Disarmed (Unsafe/No GPS), Green=Disarmed (Safe).
  • 2 (Medical Express): Specific to the UAV Challenge rules.

Tuning & Behavior

  • Default Value: 0
  • Usage: Use "Traffic Light" (1) for simpler visual confirmation of safety state for ground personnel.

NTF_LED_TYPES

Default 309
Range 0 524287

LED Driver Types (NTF_LED_TYPES)

Description

NTF_LED_TYPES determines which lights on your drone will flash to indicate status (like GPS lock, Arming, or Low Battery).

ArduPilot supports many different LED systems simultaneously. You can have the built-in board LED flashing alongside an external NeoPixel strip and a DroneCAN high-brightness LED.

  • Bit 0 (1): Built-in LED. The small RGB LED on the flight controller itself.
  • Bit 2 (4): External ToshibaLED. The standard "I2C LED" found on many external GPS/Compass modules (e.g., Here2, Here3).
  • Bit 5 (32): DroneCAN. For CAN-bus connected LEDs.
  • Bit 8 (256): NeoPixel. For addressable LED strips (WS2812B) connected to a PWM output.
  • Bit 11 (2048): DShot. Uses the LEDs built into BLHeli_32/AM32 ESCs.

The Engineer's View

Defined in AP_Notify.cpp.
During initialization, the AP_Notify::add_backends() function iterates through the set bits and instantiates the corresponding driver classes. Each driver is then added to the _devices array and updated at 50Hz.

Tuning & Behavior

  • Default Value: 309 (Built-in + Internal Toshiba + External Toshiba + DroneCAN + NeoPixel).
  • Recommendation:
    • Standard Build: Leave at default.
    • ESC LEDs: If you want your motor LEDs to flash status, set Bit 11 (add 2048).
    • Show Lights: If you connect a NeoPixel strip for a light show, ensure Bit 8 (256) is set.

NTF_OREO_THEME

Default 0
Range 0 2

OreoLED Theme Selection (NTF_OREO_THEME)

Description

NTF_OREO_THEME enables the specialized status light driver for OreoLED hardware (found on the 3DR Solo and some companion peripherals).

  • 0: Disabled (Default).
  • 1: Aircraft Theme. Uses standard aviation colors (Red/Green/White) to indicate orientation and system status.
  • 2: Rover Theme. Uses specialized patterns for ground vehicles.

Tuning & Behavior

  • Default: 0.
  • Usage: Only enable this if you have physical OreoLED hardware connected to the I2C bus.