This post has information that may be useful orienting yourself to multicopter/drone building, or if otherwise exploring the dicussed topics. Another helpful resource is Oscae Liang's website which has many tutorials: https://oscarliang.com/
There are a number of considerations when choosing a flight controller:
Supported firmware. Examples include BetaFlight, iNav, and ArduPilot, among others. Different firmware provides different functionality such as waypoint navigation, performace optimization, and support for different sensors/protocols.
Connector style. Options include bare metal pads for soldering or JST quick connectors. Soldering can take some practice, however plug-and-play setups may be bulkier and heavier.
UART connections. These are dedicated connections that cannot share the same bus, as opposed to some other protocols like I2C. Therefore, the number of ports can be limiting. Generally, UART ports will be occupied by at least the ESC, FPV camera, radio control transmitter, and GPS; thus four UART ports will ikely be occupied. Consider space for additional sensors, such as rangefinder/LiDAR and Optical Flow; these can enable low altitude position and altitude hold which is useful prior to GPS initation, in places with GPS interference, or while indoors. When looking at flight controller wiring layouts, these can be identified by the numbered transmit and recieve terminals (e.g., T1, R1, T2, R2, etc.) Of note, some firmware supports serial remapping through the software of the flight controller (i.e. "soft serial").
Integrated sensors. Generally, flight controllers include an accelerometer, gyroscope, and barometer. Magnetometers are often included on GPS modules.
Aluminum Heatsink/Case. As of the time of writing, this seems to be a less common option. One major drawback to aluminum casing is added weight. Benefits include physical protection agaist water or physical damage, heat disipation, and electromagnetic shielding.
Argus Pro Flight Controller
Axis Argus F7 Pro. At the time of this writing, this flight controller is available in two amperage ratings. It can be purchased as a "stack" with an electronic speed controller (ESC). The "Pro" model includes aluminum casings. It supports BetaFlight and iNav firmware. Quick connect plugs are JST SH 1.0mm.
Ingress Code: IP54
Input Voltage: 3-6S Lipo
BEC: 9V/2A, 5V/2A
UART ports: 4
Accelerometer: ICM42605
Barometer: SPL06
Gyro: BMI270
Radio Controllers / Link Systems
Considerations when choosing a radio controller include supported protocols, channels, form factor, gimbals, and ergonomics.
Supported protocols. A primary consideration when choosing a radio controller is protocol options. Different protocols balance range, latency, and cost. For example, legacy protocols like FrSky ACCST might be cheaper but offer limited range and higher latency. ExpressLRS (ELRS) is a popular choice as it is open-source, low latency, long range, and more affordable. TBS Crossfire is a preferred option for extreme long-range flying (10km+) and is very low latency. It operates on 868MHz (EU/Russia) or 915MHz (USA/Asia/Australia) frequencies and utilizes the proprietary Crossfire Serial Protocol (CRSF). It employs Frequency Shift Keying (FSK) modulation at higher packet rates (e.g., 150Hz) and switches to LoRa Modulation at lower packet rates (e.g., 50Hz) to maximize range and link robustness in "emergency" or extreme long-range modes. Plug for Meshtastic!
Module Bay. Controllers with a "module bay" allow installing radio modules without replacing the entire unit, helping ensure flexibility and longer-term compatibility.
Channels. A minimum of 4 channels is required for basic flight, but 6-8 channels are recommended to accommodate switches for arming, flight modes, and other functions. Types of channels generally fall into two categories: proportional and auxiliary (switch).
Radiomaster Boxer
Form factor, gimbals, and ergonomics. Choose your form factor, such as classic block-style radios (e.g., RadioMaster Boxer) for precise pinching versus gamepad-style radios (e.g., RadioMaster Zorro) for portability and thumb-flying comfort. Consider the joystick, or gimbal, variety; Hall effect sensors have longer lifespan and consistent accuracy when compared to potentiometers, though both offer similar precision. Also consider hand size and grip style (thumbing vs. pinching) to ensure comfort.
Throttle Curve Example
Throttle curves and other settings. Especially when new to flying, power and throttle sensitivity can be a challenge. These can be adjusted. The primary use of a "throttle curve" on a radio controller is to shape the relationship between stick position and motor power output. This is useful for smooth hovering with quad/multicopters (by flattening the curve around the hover point). For example, the default throttle curve is often a straight linear response; this means the stick input translates directly to the throttle channel signal without any sensitivity adjustments at the center or extremes. Users can change this by applying throttle curves or adjusting parameters. This may also be achieved through the fireware.
Flight Modes
Many with interest in FPV racing or freestyle flying will pursue proficiency flying in something like 'acro' mode, alllowing for full manual control. Other common flight modes include altitude hold, position hold, and horizon fix, which use sensor input to maintain different parameters.
GPS Module (Pyrodrone_BN-880)
GPS
Sensors used to control these parameters include a barometer, gyroscope, and accelerometer, which are commonly integrated into flight controllers. A magnetomer and GPS enhance functionality; an example is the Pyrodrone BN-880 Flight Control GPS Module w/ Compass (magnetometer HMC5883). Many other options exist.
However, a common limitation to use of a GPS is signal reception and time-to-first-fix (TTFF). "Every GPS device requires orbital data about the satellites to calculate its position. The data rate of the satellite signal is only 50 bit/s, so downloading orbital information like ephemerides and the almanac directly from satellites typically takes a long time, and if the satellite signals are lost during the acquisition of this information, it is discarded and the standalone system has to start from scratch." (Source: Wikipedia). TTFF might be reduced by loading this data using flight controller software before flight, although I have not found his to be worthwhile.
Optical Flow and LiDAR
Optical Flow Sensor
While indoors or without GPS fix, alternative sensors can be used to automatically maintain position/altitude. These include a LiDAR altimeter and optical flow sensor. The optical flow sensor registers changes in position by making comparisons between sequentially captured images beneath the drone. An example is the MTF-01P Optical Flow & Range Sensor. A magnetometer is still necessary.
Firmware Considerations
Flight controller firmware support is variable. At this time, iNav supports optical flow sensors while BetaFlight does not. Ardupilot appears to support opical flow sensors. Thus, if you want to incorporate both Optical Flow and GPS sensors concurrently, you need to choose the appropriate combination of flight controller and firmware.
Airdrop Payload Release
Adding a servo release mechanism can expand drone functionality beyond photography, videography, and interactive first person flight. If limited by the number of UART ports, one approach might be to repurpose an established beeper function. An idea for for a beeper / locator alternative is an AirTag, with consideration of its limitations.
Approach
Latch Servo
The drop servo & latch used here was purchased on amazon (this "Drone Thrower"). This servo is digital and controlled via a PWM signal (check out hobby servo tutorial). The beeper terminal on flight controllers generally emits a square wave signal, cycling the beeper on and off. A microcontroller can be programmed to receive this square wave and output an appropriate PWM signal to control the servo. Here, we use an Arduino Nano Every microcontroller.
Arduino Microcontroller
Arduino microcontrollers run code termed a "sketch." The code is based on C++ and their file extension is .ino (as in ardino). There are many "getting started" resources on the arduino website. The Arduino integrated development environment (IDE) is used to debug, compile, and upload the to the board.
More to come in this section, which remains under development.
Troubleshooting Tips
GPS is not working.. Make sure that when connecting UART devices, Rx is connected to TX, and Tx is connected to Rx! Ensure GPS wiring is not abutting power wires as this can cause electomagnetic interference and disrupt the signal along the wire.
GPS or other sensors aren't recognized by firmware. The battery may need to be connected to power the sensors; USB connection alone is not adequate. Plug in the battery before connecting the USB when you'd like these sensors to be active. Note that components such as the video transmitter may overheat when the drone is not in flight and powered.