Skip to content

Hardware

Overview

A drone is a computer system with a collection of subsystems and the ability to issue commands in order to change the global state (eg move). We can issue commands to the drone by manipulating a control interface which then converts our commands into radio signals (eg a radio controller), which a receiver on the plane then relays to our flight controller. Alternatively, we can utilize a computer to generate the same commands and define flight patterns via software. When controlling the drone manually, radio dropouts or loss of signal can occur. Likewise, when flying pre-programmed missions we also need the ability to perform manual overrides, for example if an aircraft is in the vicinity. For both scenarios, we incorporate mission planning to have pre-defined fallbacks and safety protocols. Then we can have the drone execute a plan/return to a known good point (RTL) in case of loss of control or an emergency.

Broadly a drone has:

Flight control system

  • Flight controller -- your drone's brain, which contains an IMU (Inertial Measurement Unit), which estimates what direction is up/the current state. This allows the flight controller to compute our goal state and by extension what thrust the motors need to provide to maintain flight. A brief overview of power levels: F405 (SpeedyBee/Matek/clones) --> F7 --> H7 (OrangeCube) --> M7 (Auterion/CUAV/ARK).
  • Flight controller interface -- a board which allows the FC to communicate with hardware and other sensors. On low-end devices this will often be integrated.
  • Receiver -- this relays messages from a transmitter (radio controller) to pilot the drone.
  • Temperature compensation -- More advanced flight controllers can regulate temperature in order to improve/stabilize their IMU performance.
  • DroneCAN -- this is a common interface/protocol (CAN) for sensors and other devices to communicate.
  • Compass -- Most flight controllers will have one built in, to provide a frame of reference using the local magnetic field. More advanced designs often combine the results of multiple compasses to reduce noise and normalise the results. Remember to calibrate!
  • Barometer -- this provides a backup altitude reference while in flight. Many flight controllers will have one built in.
  • GPS -- this provides the primary navigation data, often via a u-blox chip. GNSS (integrating results from other satellite systems) improves our redundancy and reduces variance. RTK is an advanced form of GPS which provides even higher resolution, but requires custom equipment.

Power/flight system

  • Battery -- A large 6S LiPo provides a decent amount of power (~1/2 hour) in the field.
  • Electronic Speed Controller -- this receives signals from the flight controller to regulate voltage states (eg control the motors). DShot is a popular protocol.
  • Power management unit -- this tracks voltage/amperage to estimate battery health and by extension remaining flight time.
  • Motors / propellers / frame -- Your choice here. Carbon fiber provides a lot of rigidity but figuring out how to position elements so that the centers of gravity and propulsion are aligned is an important goal when designing airframes. Minimizing radio interference and electrical noise is an important design consideration as well.

Communication/control

Laptop/tablet to run your control layer + chat with the backend.

  • Transmitter -- for manual control of a drone in the field via radio.
  • Telemetry radio -- SiK (915Hz) is a common starting point, but more powerful radios (RFD900x) and repeaters can dramatically improve the range and the amount of data that can be transmitted to monitor the drone's state.
  • Network -- we can interface with the drone over a local (WiFi) or remote (cell) network.
  • USB -- you will probably have to connect the flight controller to your computer (eg run Ardupilot in serial mode) at some point.