Subsystems
Mostly a subsystem is a part offering a specific functionality with a defined interface and can have multiple different implementations. (See sw/airborne/subsystems/...)
They are selected and configured with a <subsystem name="foo" type="bar"> in the firmware section of the airframe file.
All this does is basically include a makefile foo_bar.makefile that adds the respective sources and adds a few configuration options. (See conf/autopilot/subsystems/...)
This makes it easier to put an airframe file together (they replace the old raw makefile section) and also allows us to change the code and move/rename files behind the scenes without breaking everyones airframe files.
See FirmwareArchitecture for the differences to Modules.
Available Subsystems
| Name | Types | Firmwares | Architecture | Description | 
|---|---|---|---|---|
| gps | 
 | 
 | 
 | GPS drivers | 
| imu | 
 | 
 | 
 | IMU drivers Traditional IR sensors can be used for fixedwing but an IMU subsystem is not required | 
| ahrs | 
 | 
 | 
 | AHRS algorithms | 
| radio_control | 
 | 
 | 
 | Radio Control implementations | 
| telemetry | 
 | 
 | 
 | Telemetry implementations | 
| actuators | 
 | 
 | 
 | Drivers for different ESCs for rotorcraft Fixedwing ESCs and servos are possible on all firmwares/architectures |