Reader small image

You're reading from  Drone Development from Concept to Flight

Product typeBook
Published inApr 2024
PublisherPackt
ISBN-139781837633005
Edition1st Edition
Concepts
Right arrow
Author (1)
Sumit Sharma
Sumit Sharma
author image
Sumit Sharma

Sumit Sharma has rich experience in Unmanned systems with specialization in Drones architecture development and testing for different applications. He is experienced in Drone Mechanics, Avionics, Design and manufacturing. In his early career, he was involved in the development and testing of the first approved agriculture drone and later getting it approved by the DGCA. Along with this, he has contributed to the development of a Survey drone for Aerial Surveys. He was also involved in the development of high speed and long range surveillance drones for defence tenders. Sumit has been involved in early agriculture spraying pilot projects and was a part of Aerial Spraying on the Locust which hit Rajasthan in 2020.
Read more about Sumit Sharma

Right arrow

Introduction to Drone Firmware and Flight Stacks

In previous chapters, we took a look at major hardware and peripheral devices, as well as various sensors that are helpful for the control, command, guidance, and navigation of a drone. These are the mechanical as well as electronic parts that are interfaced and assembled to form the system hardware that we call a drone. But you will know that hardware is nothing without a soul, and the soul of the drone is the drone firmware. To control or command the drone as a whole, we require software called Ground Control Station (GCS) software, which we will study briefly in the next chapter.

In this chapter, we will go through the high-level architecture of the firmware, what it requires, what it includes, and the software that interfaces with it to form the drone. We will go through the following topics, which will be helpful for us to better understand what a firmware consists of and other helpful libraries that we will be making use of...

Technical requirements

In this chapter, we will focus on the architecture and software module. Knowledge of a programming language such as C++ or Python, a development environment such as Visual Studio (VS) Code or Eclipse, and a version control system such as Git and GitHub would be helpful.

Introduction to firmware

Firmware is a special type of software that is specifically designed to be installed on embedded hardware. The prime responsibility of the firmware is to control and manage the functionality of a device’s specific hardware components. Firmware is stored in Non-Volatile Memory (NVM) and is persistent, meaning it retains its programming even when the power is turned off. It acts as a bridge between the hardware and higher-level software, facilitating communication and ensuring the proper operation of the device.

Firmware comes in various types, each tailored to the specific needs of the devices or systems it controls. Here are different types of firmware along with examples:

  • BIOS/UEFI firmware:

    Description: Basic Input/Output System (BIOS) or Unified Extensible Firmware Interface (UEFI) firmware initializes hardware components during the bootup process of a computer.

    Example: UEFI firmware in modern PCs.

  • Embedded firmware:

    Description: Used...

Differences between software and firmware

Firmware and software represent distinct categories of computer programs with key differences in their scope and functionality. Firmware is a specialized type of software closely tied to the hardware of embedded devices. It resides in NVM, providing low-level control over specific hardware components. Notably, firmware persists even when the device is powered off and is responsible for device initialization and management. In contrast, software encompasses a broader range of programs that operate within a computer system, interacting with the hardware through the OS. Unlike firmware, software typically loads into volatile memory and does not persist across power cycles. Software offers extensive customization options, is often updated more easily, and is developed with a focus on higher-level programming languages. In summary, firmware is intimately connected to hardware, providing foundational control, while software operates at a higher level...

Introduction to drone firmware

Drone firmware is specialized software that is designed to control the flight, navigation, and overall operation of Unmanned Aerial Vehicles (UAVs), commonly known as drones. It plays an important role in managing the drone’s hardware components, processing sensor data, executing control algorithms, and ensuring stable and responsive flight. Drone firmware is unique in that it addresses the specific challenges and requirements of aerial vehicles, providing control over various aspects, such as motor outputs, attitude, altitude, and position.

How it is different from general firmware

While general firmware refers to software that controls the operation of electronic devices, drone firmware is tailored to the specific needs of unmanned aerial systems.

The key differences include the following:

  • Control complexity: Drone firmware incorporates sophisticated control algorithms to manage flight dynamics, stability, and navigation, which...

Introduction to drone flight stacks

A flight stack is a collection of software components that control the flight of a drone. So, we can say that an open source flight stack is one where the source code of the software components is made available to the public to use, view, modify, and distribute among users, to enhance public collaboration and joint development. On the other hand, a proprietary drone flight stack is one that is developed by a particular company or entity that owns it and its source code is not publicly accessible to view, modify, and distribute.

Next, we will look at the main differences between an open source and closed source flight stack for better understanding.

Open source drone flight stack

Source code: The source code in an open source drone flight stack is made freely available to the public, which allows anyone to view, modify, and distribute the code.

Collaboration: A wide range of community developers contribute to open source projects that...

Summary

In this chapter, we have gone through different firmware and covered the structure and architecture of PX4 and ArduPilot, firmware that would help you to potentially know about the building blocks of the flight stack of the drone. We have also referenced the open source firmware stack PX4 and ArduPilot, which are leaders in the drone world.

In the next chapter, we will learn about the GCS and its operation, which will help in configuring the drone and flying autonomous missions.

lock icon
The rest of the chapter is locked
You have been reading a chapter from
Drone Development from Concept to Flight
Published in: Apr 2024Publisher: PacktISBN-13: 9781837633005
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €14.99/month. Cancel anytime

Author (1)

author image
Sumit Sharma

Sumit Sharma has rich experience in Unmanned systems with specialization in Drones architecture development and testing for different applications. He is experienced in Drone Mechanics, Avionics, Design and manufacturing. In his early career, he was involved in the development and testing of the first approved agriculture drone and later getting it approved by the DGCA. Along with this, he has contributed to the development of a Survey drone for Aerial Surveys. He was also involved in the development of high speed and long range surveillance drones for defence tenders. Sumit has been involved in early agriculture spraying pilot projects and was a part of Aerial Spraying on the Locust which hit Rajasthan in 2020.
Read more about Sumit Sharma