Skip to content

Commit d25a173

Browse files
authored
Merge pull request #291 from dji-sdk/release/V3.12.1
NEW: release DJI Payload-SDK version 3.12.1
2 parents b7e648a + 3411ca3 commit d25a173

File tree

16 files changed

+38
-65
lines changed

16 files changed

+38
-65
lines changed

README.md

Lines changed: 8 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# DJI Payload SDK (PSDK)
22

3-
![](https://img.shields.io/badge/version-V3.12.0-green.svg)
4-
![](https://img.shields.io/badge/platform-linux_|_rtos-blue.svg)
5-
![](https://img.shields.io/badge/license-MIT-orange.svg)
3+
![](https://img.shields.io/badge/version-V3.12.1-cyan.svg)
4+
![](https://img.shields.io/badge/platform-linux_|_rtos-purple.svg)
5+
![](https://img.shields.io/badge/license-MIT-yellow.svg)
66

77
## What is the DJI Payload SDK?
88

@@ -23,48 +23,13 @@ to get the latest version information.
2323

2424
## Latest Release
2525

26-
The latest release version of PSDK is 3.12.0. This version of Payload SDK mainly add some new features support and fixed some
26+
The latest release version of PSDK is 3.12.1. This version of Payload SDK mainly add some new features support and fixed some
2727
bugs. Please refer to the release notes for detailed changes list.
2828

29-
### 1. Matrice 400 Feature Support
30-
- **Added point cloud data subscription for LiDAR/millimeter-wave radar on aircraft.**
31-
- **Added custom widget management.**
32-
- **Added Expanded payload device support.**
33-
Supports up to 7 payload devices simultaneously, compatible with:
34-
- Skyport-V2
35-
- XPort
36-
37-
### 2. Manifold 3 Now Supports:
38-
- **Added AR image drawing function.**
39-
- **Added Enhanced warning functionality.**
40-
- **Added H30 camera image processing capabilities.**
41-
- Together with Matrice 400, Manifold 3 can:
42-
- Obtain decoded images from the H30 camera.
43-
- Encode using a hardware encoder.
44-
- Display AI recognition results in real time.
45-
- **Added PSDK application development**
46-
- Supports developing and packaging applications based on PSDK.
47-
- Supports installing and running applications on Manifold 3.
48-
49-
### 3. Matrice 4TD/4D Series Feature Optimization
50-
- **Added cloud API firmware upgrade**
51-
52-
### 4. E-PORT V2 Hardware Port Support
53-
- **Adapter compatibility:**
54-
- E-Port V2 coaxial cable
55-
- Skyport V3
56-
- **Power management:**
57-
- Supports voltage requests for 13.6V, 17V, and 24V.
58-
- **Link models:**
59-
- Added: ONLY_USB_BULK, ONLY_NETWORK.
60-
- Not supported: UART_AND_NETWORK, UART_AND_USB_BULK.
61-
- **Development support:**
62-
- Released DJI E-Port V2 development kit.
63-
- Documentation: Refer to the Quick Start > E-Port Quick Start section.
64-
65-
### 5. Upgrade and Compatibility
66-
#### SkyPort V2 and X-Port Software Upgrade
67-
The software versions of Skyport V2 and X-Port have been upgraded. Devices need to be mounted on the Matrice 300 or Matrice 350 to be upgraded to the latest software version before they can be used on the Matrice 400 model. Subsequent software upgrades can be performed on the Matrice 400.
29+
* Fixed an issue where the Matrice 400 could not use precise positioning.
30+
* Fixed an issue where the Matrice 400 gimbal payload experienced a timeout when relinquishing control while using absolute angles.
31+
* Fixed an issue where the Matrice 400 could not enable the FTS PWM trigger via the `DjiFlightController_SelectFtsPwmTrigger` API.
32+
* Fixed an issue where the Matrice 400 and Manifold 3 models were unable to perform PSDK-to-MSDK small-data transmission.
6833

6934
## License
7035

psdk_lib/include/dji_flight_controller.h

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ typedef struct {
292292
} T_DjiFtsPwmTriggerStatus;
293293

294294
typedef struct {
295-
T_DjiFtsPwmTriggerStatus ESC[2]; /* trigger status of the two ESCs */
295+
T_DjiFtsPwmTriggerStatus ESC[4]; /* trigger tatus of the two ESCs, M4/M4D only ESC[0] and ESC[1], M400 for alls */
296296
} T_DjiFtsPwmEscTriggerStatus;
297297

298298
/* Exported functions --------------------------------------------------------*/
@@ -691,13 +691,24 @@ T_DjiReturnCode DjiFlightController_GetElectronicSpeedControllerStatus(E_DjiFlig
691691

692692
/**
693693
* @brief Select Fts pwm trigger.
694-
* @param position: Pwm trigger source position.
695-
* @return Execution result.
694+
* - Notes:Timing requirement: This API must be called while the aircraft is on the ground (not airborne). Calls made during flight will fail or be rejected.
695+
* - Function: This call only selects/enables the PWM trigger port on the flight controller side.
696+
* It does NOT emit PWM signals nor perform the motor-stop action itself. The actual motor-stop must be triggered by sending PWM signals via external PWM hardware pins.
697+
* - Recommended flow:
698+
* 1) Call DjiFlightController_SelectFtsPwmTrigger(position) on ground to enable the port;
699+
* 2) Send the motor-stop PWM from an external PWM controller to that port;
700+
* @param position
701+
* - Supported models/ports:
702+
* - M400: only support DJI_MOUNT_POSITION_EXTENSION_PORT_V2_NO4.
703+
* @return Possible failure reasons include invalid param, aircraft not on ground, hardware unsupported, or module not initialized.
696704
*/
697705
T_DjiReturnCode DjiFlightController_SelectFtsPwmTrigger(E_DjiMountPosition position);
698706

699707
/**
700708
* @brief Get Fts pwm trigger status.
709+
* Notes:This API is deprecated and will be removed in a future release. It is NOT recommended for use. Supported models only: M4 serials.
710+
* Recommended alternative: To confirm motor-stop (FTS) effects, use DJI_FC_SUBSCRIPTION_TOPIC_ESC_DATA fc subscription
711+
* @param trigger_status
701712
* @return Execution result.
702713
*/
703714
T_DjiReturnCode DjiFlightController_GetFtsPwmTriggerStatus(T_DjiFtsPwmEscTriggerStatus* trigger_status);

psdk_lib/include/dji_version.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ extern "C" {
3535
/* Exported constants --------------------------------------------------------*/
3636
#define DJI_VERSION_MAJOR 3 /*!< DJI SDK major version num, when have incompatible API changes. Range from 0 to 99. */
3737
#define DJI_VERSION_MINOR 12 /*!< DJI SDK minor version num, when add functionality in a backwards compatible manner changes. Range from 0 to 99. */
38-
#define DJI_VERSION_MODIFY 0 /*!< DJI SDK modify version num, when have backwards compatible bug fixes changes. Range from 0 to 99. */
38+
#define DJI_VERSION_MODIFY 1 /*!< DJI SDK modify version num, when have backwards compatible bug fixes changes. Range from 0 to 99. */
3939
#define DJI_VERSION_BETA 0 /*!< DJI SDK version beta info, release version will be 0, when beta version release changes. Range from 0 to 255. */
40-
#define DJI_VERSION_BUILD 2254 /*!< DJI SDK version build info, when jenkins trigger build changes. Range from 0 to 65535. */
40+
#define DJI_VERSION_BUILD 2262 /*!< DJI SDK version build info, when jenkins trigger build changes. Range from 0 to 65535. */
4141

4242
/* Exported types ------------------------------------------------------------*/
4343

5.89 KB
Binary file not shown.
4.54 KB
Binary file not shown.
3.4 KB
Binary file not shown.
-13.7 MB
Binary file not shown.
4.95 KB
Binary file not shown.
5.62 KB
Binary file not shown.

samples/sample_c++/module_sample/flight_controller/test_flight_controller_entry.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ void DjiUser_RunFlightControllerSample(void)
6464
<< "| [9] Interest point sample - run interest point mission by settings (only support on M3E/M3T) |\n"
6565
<< "| [a] EU-C6 FTS trigger sample - receive fts callback to trigger parachute function (only support on M3D/M3DT) |\n"
6666
<< "| [b] Slow rotate blade sample, only support on M400 |\n"
67-
<< "| [c] Select FTS pwm trigger position, only support on M4/M4T/M4D/M4TD |\n"
67+
<< "| [c] Select FTS pwm trigger position, support on M4/M4T/M4D/M4TD |\n"
68+
<< "| [d] Select FTS pwm trigger position, support on M400 |\n"
6869
<< std::endl;
6970

7071
std::cin >> inputSelectSample;
@@ -106,7 +107,12 @@ void DjiUser_RunFlightControllerSample(void)
106107
DjiTest_FlightControlRunSample(E_DJI_TEST_FLIGHT_CTRL_SAMPLE_SELECT_SLOW_ROTATE_BLADE);
107108
break;
108109
case 'c':
109-
DjiTest_FlightControlFtsPwmTriggerSample();
110+
DjiTest_FlightControlFtsPwmTriggerSample(DJI_MOUNT_POSITION_EXTENSION_PORT, "DJI_MOUNT_POSITION_EXTENSION_PORT");
111+
// or DJI_MOUNT_POSITION_EXTENSION_LITE_PORT
112+
DjiTest_FlightControlFtsPwmTriggerSample(DJI_MOUNT_POSITION_EXTENSION_LITE_PORT, "DJI_MOUNT_POSITION_EXTENSION_LITE_PORT");
113+
break;
114+
case 'd': // for m400
115+
DjiTest_FlightControlFtsPwmTriggerSample(DJI_MOUNT_POSITION_EXTENSION_PORT_V2_NO4, "DJI_MOUNT_POSITION_EXTENSION_PORT_V2_NO4");
110116
break;
111117
case 'q':
112118
break;

0 commit comments

Comments
 (0)