Drone Flight Controller / System in Package Based on AM335x

Published On: July, 25, 2018 By: Eshtaartha Basu | Updated: May 14, 2020 by Cathleen Wicks

Drones, a.k.a. Unmanned Aerial Vehicles (UAVs), that were once limited to military applications are now being rapidly adopted in commercial, scientific, and consumer markets. Advancements in semiconductor technology that have led to smaller and more energy efficient processors, reductions in manufacturing costs, and open source software frameworks have all contributed to the widespread adoption of drones. For example, a fleet of drones were featured during the 2018 Pyeongchang Winter Olympics opening ceremonies to create a magnificent, memorable display).

Compared to manned aircrafts, drones can be significantly smaller, lighter, and cheaper. They come in all different sizes and configurations such as “fixed wing”, “multi-rotor”, or “mini” (i.e. drones that can fit on the palm of your hand). They can also be semi-autonomous (remote controlled by human operator) or fully autonomous (controlled by an on-board computer). Although military drones, like the US Army’s Predator Drone, use airplane fuel or fuel cells, most consumer and commercial drones use battery power. Therefore, an energy efficient, robust, computationally powerful processor (capable of supporting Linux and open-source libraries like ArduPilot) with small footprint is necessary for the development of drones. These requirements make the OSD335x family of devices, based on the Texas Instruments AM335x SoC, ideal for this application.

The OSD335x System-in-Package (SiP) integrates a 1GHz Texas Instruments ARM® Cortex®-A8 AM335x processor, up to 1GB of DDR3 memory, and a Power Management system into a small (21x21mm) System-in-Package (SiP). The AM335x contains two Programmable Real-Time Units (PRUs) to manage real time tasks efficiently. The OSD335x family can run Linux, and already supports ArduPilot thereby, helping you to jump-start your next drone design.

A PDF of this Application Note can be downloaded here.

 

 

1GHz ARM Cortex-A8 Processor and 2 PRUs

To achieve good stability and performance, the drone should be able to read data from all of its sensors, process the data and then control the speed of the drone’s motors, as well as optionally, the camera gimbal, in real time. A CPU such as the ARM Cortex-A8 might be the first thing that comes to mind for this application. However, high performance ARM cores typically run a non-real-time OS, like Debian Linux, which have difficulty achieving the tight timings needed to precisely control the drone. Fortunately, this is where the Programmable Real-Time Units (PRUs) of the TI AM335x SoCwithin the OSD335x SiP shine. Each PRU features a 200MHz RISC core that is designed to handle real time applications. Hence, the real time tasks of the drone such as control of the motors, typically brushless DC (BLDC) and position of the gimbal through PWM signals can be offloaded from the ARM core to the PRUs.

The ARM-Cortex A8 processor can then handle other drone features such as on-board processing of the images and video from the camera, wirelessly transferring data to a host controller (or the cloud), and GPS navigation while periodically communicating with the PRUs to coordinate the flight.

Energy Efficient

Running at their full speed of 1GHz, OSD335x is a power efficient device.   The OSD335x devices can support a wide range of applications while still consuming less than 1W of battery power.

 

 

Smallest Single Chip Computer Solution

The OSD335x family offers two single chip computer solutions that come in 27x27mm package (OSD335x-BAS) and 21x21mm packages (OSD335x-BSM).    It is 60% smaller than a non-integrated solution, making it ideal for space-constrained applications.

Linux Open Source Libraries For Drones

Several stable open source libraries are available for drones running Linux like ArduPilot (installed in more than 1 million drones) with a specific example here, or Dronecode, Paparazzi UAV and LibrePilot. These libraries will help you speedup your development cycle.

Versatile GPIO Interface

The GPIOs on the OSD335x support multiple communication protocols/interfaces like UART, I2C, SPI, McASP, CAN, MMC, SDIO, USB, MII etc. As a result, OSD335x can support almost any type of sensor, actuator or peripheral you chose for your drone.

Faster Time to Market

The tight integration provided by the OSD335x makes designing with the powerful ARM Cortex-A8 processor as easy as working with a Microcontroller. Spend less time on getting the processor to work and more time focusing on developing your product.

Get Started Today

Begin developing today. There are a number of open source development platforms available. We recommend looking at the BeagleBoard.org ® BeagleBone® Blue and OSD3358-SM-RED as starting points for drone development.