-
Notifications
You must be signed in to change notification settings - Fork 427
Firmware m0400
Target
Purpose
Versions
Structure
Boot process
OS and Libraries
Flashing
Interfaces
The module programs internal flash of a micro-controller. Location and type of the chip:
- in P3X and P3S, it is STM32F407 on WM320 Gimbal top board
- in P3C and P3XW, it is STM32F407 on WM321 Gimbal top board
- in P4, it is STM32F303 on WM330 Gimbal Master Control board
- in Mavic, it is STM32F303 on WM220 Gimbal Sensor Control board
- in other products, the location is unknown
Gimbal master control. The programming is responsible of getting data from sensor and user commands from the internal bus, then using this information to properly drive three gimbal arms: yaw, roll and pitch. Each of these arms contains its own micro-controller, connected to gimbal master control via serial interface. The arm controllers are sharing status information using the same serial interface.
There are multiple versions, unencrypted for most products, but for P3 usually encrypted.
Marking | Packages | Timestamp | Overview |
---|---|---|---|
01.29.0000 | OSMO_FW_V01.00.01.19 | 2015-10-15 | |
01.29.0063 | OSMO_FW_V01.04.01.80 | 2015-12-26 | |
01.29.0073 | OSMO_FC550_FW_V01.01.00.02 | 2016-01-19 | |
01.29.0077 | OSMO_FW_V01.05.01.88 OSMO_FW_V01.05.01.89 | 2016-01-31 ... 2016-02-05 | |
01.29.0081 | OSMO_FC550_FW_V01.01.00.03 OSMO_FC550_FW_V01.01.00.04 | 2016-02-24 | |
01.29.0085 | OSMO_FW_V01.05.01.92 | 2016-02-25 | |
01.29.0087 | OSMO_FC550_FW_V01.01.00.05 OSMO_FW_V01.05.01.93 | 2016-02-26 ... 2016-03-01 | |
01.29.0088 | OSMO_FW_V01.05.01.94 OSMO_FW_V01.05.01.95 OSMO_FW_V01.05.01.96 | 2016-03-02 ... 2016-03-10 | |
01.29.0089 | OSMO_FC550_FW_V01.01.00.07 OSMO_FW_V01.05.01.97 | 2016-03-11 ... 2016-03-14 | |
01.29.0091 | OSMO_FW_V01.05.02.00 | 2016-03-16 | |
01.29.0092 | OSMO_FC550R_FW_V01.01.00.01 OSMO_FC550_FW_V01.01.00.08 OSMO_FC550_FW_V01.01.00.09 OSMO_FC550_FW_V01.01.00.11 SMO_FC550_FW_V01.01.00.13 OSMO_FW_V01.06.02.10 WM610_FC550_FW_V01.08.00.92 WM610_FW_V01.08.00.92 | 2016-03-24 ... 2016-04-14 | |
01.30.0256 | HG300_FW_V01.01.00.01 OSMO_FC550R_FW_V01.01.00.03 OSMO_FC550R_FW_V01.01.00.04 OSMO_FC550R_FW_V01.01.00.10 OSMO_FC550R_FW_V01.02.00.11 | 2016-04-21 ... 2016-05-09 | |
01.30.0258 | HG300_FW_V01.01.00.02 | 2016-05-06 | |
01.30.0260 | HG300_FW_V01.01.00.04 OSMO_FC350Z_FW_V01.00.00.03 | 2016-05-19 ... 2016-05-25 | |
01.30.0263 | HG300_FW_V01.01.00.05 HG300_FW_V01.01.00.06 HG300_FW_V01.01.00.06_PC | 2016-05-30 ... 2016-06-03 | |
01.30.0265 | OSMO_FC350Z_FW_V01.00.00.05 | 2016-06-06 | |
01.30.0266 | HG300_FW_V01.01.00.07 HG300_FW_V01.01.00.07_PC OSMO_FC550R_FW_V01.03.00.30 OSMO_FC550_FW_V01.03.00.30 OSMO_FW_V01.08.02.30 | 2016-06-16 ... 2016-06-17 | |
01.30.0267 | HG300_FW_V01.01.00.08 HG300_FW_V01.01.00.08_PC | 2016-06-23 | |
01.30.0268 | HG300_FW_V01.01.00.11 HG300_FW_V01.01.00.11_PC OSMO_FC350Z_FW_V01.00.00.06 | 2016-06-29 ... 2016-06-30 | |
01.30.0270 | HG300_FW_V01.01.00.12 HG300_FW_V01.01.00.12_PC | 2016-07-05 | |
01.30.0272 | OSMO_FC350Z_FW_V01.00.00.07 | 2016-07-08 | |
01.30.0273 | HG300_FW_V01.01.00.13 HG300_FW_V01.01.00.13_PC | 2016-07-11 | |
01.30.0274 | HG300_FW_V01.01.00.14 HG300_FW_V01.01.00.14_PC HG300_FW_V01.01.00.15 HG300_FW_V01.01.00.15_PC | 2016-07-18 ... 2016-07-21 | |
01.30.0277 | HG300_FW_V01.01.00.17 OSMO_FC350Z_FW_V01.00.00.08 OSMO_FC350Z_FW_V01.00.00.09 | 2016-07-22 ... 2016-08-04 | |
01.30.0278 | OSMO_FC350Z_FW_V01.00.00.11 OSMO_FC350Z_FW_V01.00.00.12 | 2016-08-04 ... 2016-08-08 | |
01.30.0279 | HG300_FW_V01.01.00.18 OSMO_FC350Z_FW_V01.00.00.13 | 2016-08-15 | |
01.30.0280 | OSMO_FC350Z_FW_V01.00.00.14 OSMO_FC350Z_FW_V01.00.00.15 | 2016-08-15 ... 2016-08-26 | |
01.30.0284 | OSMO_FC550R_FW_V01.03.00.40 OSMO_FC550_FW_V01.03.00.40 | 2016-08-24 | |
01.30.0285 | HG300_FW_V01.01.00.19 | 2016-08-19 | |
01.30.0286 | HG300_FW_V01.01.00.21 | 2016-08-25 | |
01.30.0287 | HG300_FW_V01.01.00.16 HG300_FW_V01.01.00.22 | 2016-08-25 ... 2016-08-30 | |
01.30.0288 | OSMO_FC350Z_FW_V01.00.00.16 | 2016-08-26 | |
01.30.0289 | HG300_FW_V01.01.00.23 HG300_FW_V01.01.00.24 HG300_FW_V01.01.00.30 HG300_FW_V01.01.00.30_1 OSMO_FC350Z_FW_V01.00.00.17 OSMO_FC350Z_FW_V01.00.00.20 | 2016-08-26 ... 2016-10-17 | |
01.30.0291 | OSMO_FC350Z_FW_V01.01.00.21 OSMO_FC350Z_FW_V01.01.00.30 OSMO_FC350Z_FW_V01.02.00.32 OSMO_FC350Z_FW_V01.02.00.33 OSMO_FC350Z_FW_V01.02.00.38 | 2016-09-06 ... 2016-10-08 | |
01.30.0295 | HG300_FW_V01.02.00.31 | 2016-09-21 | |
01.30.0296 | OSMO_FW_V01.08.02.35 OSMO_FW_V01.08.02.36 | 2016-09-21 ... 2016-09-24 | |
01.30.0299 | HG300_FW_V01.02.00.33 OSMO_FW_V01.08.02.40 | 2016-09-26 | |
01.30.0300 | HG300_FW_V01.02.00.34 HG300_FW_V01.02.00.40 HG300_FW_V01.03.00.45_new | 2016-10-10 ... 2016-11-17 | |
01.30.0303 | OSMO_FC350Z_FW_V01.02.00.40 OSMO_FC350Z_FW_V01.03.00.50 WM610_FC350Z_FW_V01.09.01.40 | 2016-10-17 ... 2016-11-14 | |
01.30.0305 | HG300_FW_V01.03.00.41 HG300_FW_V01.03.00.42 HG300_FW_V01.03.00.44 HG300_FW_V01.03.00.45 HG300_FW_V01.03.00.46 HG300_FW_V01.03.00.50 | 2016-10-25 ... 2016-11-22 | |
01.30.0306 | HG300_FW_V01.03.00.43 HG300_FW_V01.03.00.43_3 HG300_FW_V01.04.00.51 HG300_FW_V01.04.00.52 HG300_FW_V01.04.00.53 HG300_FW_V01.04.00.54 | 2016-11-11 ... 2016-12-21 | |
01.30.0308 | HG300_FW_V01.04.00.55 HG300_FW_V01.04.00.56 HG300_FW_V01.04.00.60 | 2016-12-22 ... 2017-01-09 | |
01.30.0309 | HG300_FW_V01.04.00.60-4 | 2017-01-09 | |
01.36.0000 | P3S_FW_V01.01.0008 P3S_FW_V01.01.0009 P3X_FW_V01.01.0006 P3X_FW_V01.01.0008 P3X_FW_V01.01.0009 P3X_FW_V01.01.1003 | 2015-04-30 ... 2015-05-12 | |
01.38.0000 | P3S_FW_V01.02.0007 P3S_FW_V01.02.0008 P3X_FW_V01.01.1007 P3X_FW_V01.02.0006 | 2015-06-12 ... 2015-07-10 | Encrypted |
01.40.0000 | P3C_FW_V01.00.0014_Beta P3C_FW_V01.00.0017_Beta P3C_FW_V01.00.0020 P3S_FW_V01.03.0020 P3X_FW_V01.03.0020 P3X_FW_V01.04.0005 | 2015-07-21 ... 2015-08-21 | Encrypted |
01.41.0000 | P3C_FW_V01.01.0030 P3C_FW_V01.02.0040 P3C_FW_V01.03.0050 P3C_FW_V01.04.0060 P3C_FW_V01.04.0060 P3S_FW_V01.04.0010 P3S_FW_V01.05.0030 P3S_FW_V01.06.0040 P3S_FW_V01.07.0060 P3XW_FW_V01.01.0000 P3XW_FW_V01.02.0010 P3XW_FW_V01.03.0020 P3X_FW_V01.04.0010 P3X_FW_V01.05.0030 P3X_FW_V01.06.0040 P3X_FW_V01.07.0043_beta P3X_FW_V01.07.0060 | 2015-09-02 ... 2016-03-15 | Encrypted |
01.44.0000 | P3C_FW_V01.05.0070 P3C_FW_V01.05.0074 P3C_FW_V01.06.0083 P3C_FW_V01.06.0086 P3C_FW_V01.07.0082 P3C_FW_V01.07.0084 P3S_FW_V01.08.0080 P3S_FW_V01.09.0060 P3XW_FW_V01.04.0030 P3XW_FW_V01.04.0036 P3XW_FW_V01.05.0040 P3X_FW_V01.08.0080 P3X_FW_V01.09.0060 | 2016-04-05 ... 2016-09-27 | Encrypted |
01.48.0000 | P3C_FW_V01.07.0086 P3S_FW_V01.10.0090 P3X_FW_V01.10.0090 | 2016-09-18 ... 2016-11-07 | |
01.51.0000 | P3C_FW_V01.07.0090 | 2016-11-08 |
The module is usually unencrypted, but there are encrypted versions too.
The unencrypted firmware is a memory image of ARM binary. During startup, it is being loaded into memory at constant address and executed by a loader. Such memory images are usually prepared by first linking the file with all libraries, and then using objcopy -O binary
to get the final file without ELF header. The ELF header can be re-created if the address and boundaries of sections are known.
Base address is:
- 0x08008000 in P3X and P3S
No analysis of the booting procedure were performed.
TODO
TODO
TODO
This page is created by drone enthusiasts for drone enthusiasts.
If you see a mistake, or you know more about specific subject, or you see an area for improvement for the wiki - create an issue in this project and attach your patch (or describe the change you propose).