../_images/ap-periph-logo.png

AP_Periph

../_images/ap-periph-collage.png

AP_Periph is an abbreviation for ArduPilot Peripheral, ie. an ArduPilot peripheral device based on the existing ArduPilot autopilot code. It takes peripheral device driver libraries of ArduPilot and adapts them to run on stand-alone peripheral devices, which communicate to the main autopilot via CAN, MSP, or other peripheral bus protocols.

The Peripheral device supports a wide range of STM32 processors, including F103, F303, F4xx, F7xx, G4xx and H7. Both sensors (distance sensor, GNSS, IMU, Barometer, battery, etc.) and output ports (I2C, SPI, PWM, UART, ESC, LED, etc.) can be used to build new peripherals, as well as providing bus expansion for CAN, MSP, I2C, SPI, etc.

The software uses the same build system as ArduPilot for autopilot boards. All the firmware build configuration for an AP_Periph board done using a single configuration file (hwdef.dat) defines the inputs/outputs of the device and what device drivers will be included, in the same manner as an autopilot board. This makes it possible, for example, to define an AP_Periph device for UAVCAN with only a micro-controller of the STM32F103 type and 128 KB of flash memory, although processors with larger memory will be required depending on the number of drivers.

Capabilities

  • Bootloader update via serial or CAN port

  • Firmware update

  • Dynamic or static CAN node allocation

  • Parameter storage in flash memory

  • Self-diagnostic and security: watchdog, CRC, autotest, etc.

  • Updates with MissionPlanner or DroneCAN tools like DroneCAN GUI

Examples of using generic AP_Periph nodes are shown here:

Existing Products

Some (but not all) product examples using AP-Periph:

See: DroneCAN Peripherals for more devices

Firmware

Firmware for existing device definitions are posted here. Their hardware definition files are in the ArduPilot Github repository, here

To create firmware for a new design, follow the same instructions as for porting to a new autopilot board, as explained in the Wiki section Porting to a new flight controller board.

Additional information is available in the AP_Periph readme here

Parameters List

With the exception of the following parameters, AP_Periph parameters are simply those of the included driver libraries for the peripheral firmware.

And, depending on the driver library included, several parameters are needed in addition to those included normally in those libraries:

List of all parameters for possible drivers which can be included: