P3 Firmware What Exactly Is Firmware?

HWB

Joined
Apr 20, 2019
Messages
58
Reaction score
22
Age
56
So that's my question. What and why is it? It does not seem like the drone itself would need any updating. It is what it is. Any upgrades would be a hard replacement like a recall on a car.

Next, how can I avoid the update. My DJI app is now telling me it needs to update? If i uninstall the app and reinstall it will that solve the problem? I know I will get the latest version but it will not be trying to patch what is already there.

Last but not least it will only fly in atti mode now. This started about the same time the update was needed. Is this just a coincidence or will it not fly in GPS mode if I don't update?

The DJI GO app I have installed on my Galaxy S5 is version 3.1.59 I only use this phone to fly the drone. It has no service. My drone is a P3S.
 
So that's my question. What and why is it? It does not seem like the drone itself would need any updating. It is what it is. Any upgrades would be a hard replacement like a recall on a car.

Next, how can I avoid the update. My DJI app is now telling me it needs to update? If i uninstall the app and reinstall it will that solve the problem? I know I will get the latest version but it will not be trying to patch what is already there.

Last but not least it will only fly in atti mode now. This started about the same time the update was needed. Is this just a coincidence or will it not fly in GPS mode if I don't update?

The DJI GO app I have installed on my Galaxy S5 is version 3.1.59 I only use this phone to fly the drone. It has no service. My drone is a P3S.
Firmware is simply permanent software that allows hardware to run. As DJI discovers bugs or adds new features, new firmware is released.

Updates are optional, but then you're potentially missing out on improvements. Updating the app is not the same as updating the firmware. You can update the app and not the firmware.

As to ATTI mode, be sure the S1 switch is all the way forward. If it is, check your satellites. Also, be sure there's no magnetic interference that could impact GPS.
 
What Exactly Is Firmware?

You're asking that on a computer of some kind, right? All computers have the same general parts:
- Central Processing Unit which executes instructions
- RAM which stores information and allows to retrieve it very fast, but the content is lost without power
- Storage of some kind, be it magnetic disk or flash memory
- Power unit, which just supplies power to everything

Your laptop, tablet, phone, even Smart TV, have these components.

The laptop can either have Windows, Linux or MacOS stored on its disk. So it needs Operating System. And all processors do need some kind of operating environment - though for the smallest ones, microcontrollers, we're not always calling this "operating system". Anyway for such small processors, without any display or keyboard, there are operating systems which you probably never heard about: QNX, uC/OS-III, VXWorks, IAR RTOS.. there's a lot of these. Some also use Linux - that OS is what we call "scalable" - meaning it can be compiled with minimal set of features for small processors, or with large set - for your laptop.

So - the firmware is kind of disk content, which contains software that allows specific processor to run. If the device has no screen or keyboard, then some kind of application is executed automatically when the device starts. And it just always runs that one application.

But now, DJI firmware is not a programming for any single processor - mechanical devices are complex, and have many processors in them. In your car for example, there is a processor which controls the engine. There is another one for security systems. There is a separate one for transmission gears, and large one which has a display and shows you information about the car when you're inside. All these are connected and are exchanging information. The same goes for DJI drones - there is a lot of processors which talk to each other. And DJI firmware is a package, kind of ZIP file, which stores programming for each module the drone is made of.

We actually have tools which allow to extract the DJI firmware package into single modules for specific processors.
And there is also a list of modules, with details about which processor it has, and which Operating System it uses.

And this is what firmware is, properly explained.
 
Last edited:
An excellent explanation.

A simple way to think about this is to realize that the days of controlling devices mechanically are gone. The DJI drones fly with motors not controlled by mechanical governors, but managed by electronic speed control systems that output electronic signals that the motors respond to, and receivers that monitor what the motor is actually doing. It feeds this monitoring information back into the motor signal output. All of this is continuously managed by computer code. The code that does this for each of the 4 motors is firmware. Without it, the motors are nothing but wires and magnets incapable of doing anything.

Likewise, the electronic gps messages are compared to the signals from the inertial guidance system (s) and control stick position information, and combined into information fed to the motor speed firmware to enable the drone to follow the pilots requests,

This is a simplified description but gives you the idea. Programing mistakes in such complex firmware systems are unavoidable, and when found, require modified firmware incorporating the fixes. Likewise, features to be added require changes to the firmware.

You should be asking why don’t they test for all of this. They do test for all of the functionality as stand alone functions. What is much harder to test for are the combinatorial issues that happen like when a particular stream of actions are initiated at a particular rate in a particular order.

There are essentially an infinite number of individual test cases that would be needed and run, and that will take a very long time. Many of these will be tested and found when beta test is finished when thousands of users have done millions of tests during their normal flight activities. These failed tests get identified and fixed in the follow on firmware releases.
 
You're asking that on a computer of some kind, right? All computers have the same general parts:
- Central Processing Unit which executes instructions
- RAM which stores information and allows to retrieve it very fast, but the content is lost without power
- Storage of some kind, be it magnetic disk or flash memory
- Power unit, which just supplies power to everything

Your laptop, tablet, phone, even Smart TV, have these components.

The laptop can either have Windows, Linux or MacOS stored on its disk. So it needs Operating System. And all processors do need some kind of operating environment - though for the smallest ones, microcontrollers, we're not always calling this "operating system". Anyway for such small processors, without any display or keyboard, there are operating systems which you probably never heard about: QNX, uC/OS-III, VXWorks, IAR RTOS.. there's a lot of these. Some also use Linux - that OS is what we call "scalable" - meaning it can be compiled with minimal set of features for small processors, or with large set - for your laptop.

So - the firmware is kind of disk content, which contains software that allows specific processor to run. If the device has no screen or keyboard, then some kind of application is executed automatically when the device starts. And it just always runs that one application.

But now, DJI firmware is not a programming for any single processor - mechanical devices are complex, and have many processors in them. In your car for example, there is a processor which controls the engine. There is another one for security systems. There is a separate one for transmission gears, and large one which has a display and shows you information about the car when you're inside. All these are connected and are exchanging information. The same goes for DJI drones - there is a lot of processors which talk to each other. And DJI firmware is a package, kind of ZIP file, which stores programming for each module the drone is made of.

We actually have tools which allow to extract the DJI firmware package into single modules for specific processors.
And there is also a list of modules, with details about which processor it has, and which Operating System it uses.

And this is what firmware is, properly explained.
Stupid question : is it possible to use your smart phone to update the firmware on the Phantom ???
 
Stupid question : is it possible to use your smart phone to update the firmware on the Phantom ???
It´s possible but you must power on all components of your P3S (RC AC and mobile connected to the P3 System with all fully charged batteries)
 
Firmware is simply permanent software that allows hardware to run. As DJI discovers bugs or adds new features, new firmware is released.

Updates are optional, but then you're potentially missing out on improvements. Updating the app is not the same as updating the firmware. You can update the app and not the firmware.

As to ATTI mode, be sure the S1 switch is all the way forward. If it is, check your satellites. Also, be sure there's no magnetic interference that could impact GPS.
The firmware of the P3 system is as the operating system on your computer at home. The P3S/A/P is a flying computer with the functions to control the flight. The firmware for the P3S is all in one OS for the RC the AC and battery you own. If you buy a new battery and you leave the latest FW on the SD card then the new battery will be upgraded to the new battery firmware automatically if you power on your bird with the new one.
 

Members online

No members online now.

Forum statistics

Threads
143,066
Messages
1,467,358
Members
104,936
Latest member
hirehackers