Run Sample Code
After registering a PSDK enterprise account, please download the sample code provided by PSDK and supplement the application information in the sample code, and obtain the sample program by compiling, debugging, and burning. After binding DJI's hardware platform on DJI Assistant 2, you can run the sample program to learn how to use PSDK to develop a load device with the help of the sample program.
Note: To run RTOS or Linux sample code on other development boards or operating systems, please refer to Cross-platform porting.
Get Sample Code
After register as a DJI PSDK enterprise user, you can download the DJI PSDK development kit. Get the sample code provided by DJI in the PSDK development kit, learn how to use the PSDK to develop a payload device with the help of the sample code, and use the sample code to quickly develop a fully functional payload device.
Create Payload Application
After obtaining the permission to develop payload products using PSDK, please go to the User Center to create a payload application and obtain the application ID and application key, as shown in Figure 1. Fill in the application information.
Figure 1 Fill in the application information
Note: To improve your development efficiency, please correctly fill in the application name, ID, Key, and developer account in the sample code, otherwise the compiled sample program will not function properly.
Run RTOS Sample Code
Note: This article takes the STM32F4 Discovery development board as an example to introduce the steps and methods of running the RTOS sample code.
Burn Bootloader
- Use Keil MDK IDE to open the project file
mdk_bootloader.uvprojx
located in thesample/sample_c/platform/rtos_freertos/stm32f4_discovery/project/mdk_bootloader/
. - Use Keil MDK IDE to compile the project as a sample program.
- burn the compiled sample program into the load device (such as the STM32F4_discovery development board).
Related Reference:
- Implement Bootloader:
platform/rtos_freertos/stm32f4_discovery/bootloader
- Project directory of Bootloader:
platform/rtos_freertos/stm32f4_discovery/project/mdk_bootloader
Fill Application Information
- Use Keil IDE to open the project file
mdk_app.uvprojx
located in thesample/sample_c/platform/rtos_freertos/stm32f4_discovery/project/mdk/
. - Fill in the
sample/sample_c/platform/rtos_freertos/application/dji_sdk_app_info.h
file with the name, ID, Key, License, developer account, and specified baud rate of the application.
#define USER_APP_NAME "your_app_name"
#define USER_APP_ID "your_app_id"
#define USER_APP_KEY "your_app_key"
#define USER_APP_LICENSE "your_app_license"
#define USER_DEVELOPER_ACCOUNT "your_developer_account"
#define USER_BAUD_RATE "460800"
Compile and Burn
- Use Keil MDK IDE to compile the sample code as a sample program.
- After compiling the sample code, burn the compiled program into the load device (such as the STM32F4_discovery development board).
- To debug the sample program, please set the baud rate of the serial debugging tool to:
921600
.
Run the Linux Sample Code
Note: This article takes **Manifold 2-C as an example to introduce the steps and methods of running the Linux sample code.
Fill Application Information
- Replace the application name, ID, Key, License, developer account and specified baud rate in the
samples/sample_c/platform/linux/manifold2/application/dji_sdk_app_info.h
file.
#define USER_APP_NAME "your_app_name"
#define USER_APP_ID "your_app_id"
#define USER_APP_KEY "your_app_key"
#define USER_APP_LICENSE "your_app_license"
#define USER_DEVELOPER_ACCOUNT "your_developer_account"
#define USER_BAUD_RATE "460800"
- Fill in the corresponding serial port names in the
LINUX_UART_DEV1
andLINUX_UART_DEV2
macros in thesamples/sample_c/platform/linux/manifold2/hal/hal_uart.h
file.
#define LINUX_UART_DEV1 "/dev/your_com"
#define LINUX_UART_DEV2 "/dev/your_com"
- Use the
ifconfig
command to view the name of the network port device currently communicating with the drone, and fill in theLINUX_NETWORK_DEV
macro in thesamples/sample_c/platform/linux/manifold2/hal/hal_network.h
file.
#define LINUX_NETWORK_DEV "your_network_name"
Compile the Sample Program
- Compile the Sample Code
Enter the root directory of the sample code project: Payload-SDK/
, and use the following commands to compile the sample code into a sample program.
mkdir build
cd build
cmake ..
make
Explanation of the root directory location:
Payload-SDK/
├── CMakeLists.txt
├── EULA.txt
├── LICENSE.txt
├── README.md
├── build/
├── doc/
├── psdk_lib/
├── samples/
└── tools/
- Execute C language sample program
- Go to the directory of the sample program:
cd build/bin/
- Use the
sudo ./dji_sdk_demo_linux
command to run the sample program
- Go to the directory of the sample program:
- Execute the C++ language sample program
- Go to the directory of the sample program:
cd build/bin/
- Use the
sudo ./dji_sdk_demo_linux_cxx
command to run the sample program
- Go to the directory of the sample program:
Application Binding (Using X-Port、SkyPort V2 or SDK Certified Chip)
After binding the SkyPort V2 with the sample program through DJI Assistant 2, when the payload device is mounted on the drone, the payload device will automatically run the sample program compiled or burned by the developer.
Notes:
- When using DJI Assistant 2 to bind or debug the payload device, please turn on the "Data Authorization" switch in the "Configuration" tab in the upper right corner of the software, otherwise DJI Assistant 2 will not be able to bind or debug the payload device normally.
- After the initial binding of SkyPort V2, when using the same SkyPort V2 on different drones, there is no need to re-bind the sample program.
- Mount the payload device (such as Manifold 2-C) or development board (such as STM32F407IGH6-EVAL) on the DJI drone, and connect the DJI drone to the computer at the same time.
- Log in to DJI Assistant 2 using the account in App Information, and click the "Payload SDK" tab to enter the PSDK hardware platform interface.
- On the PSDK hardware platform interface, click the "Bind" button to bind the hardware platform, sample program, and DJI drone.
- After the binding is successful, the binding status in the PSDK hardware platform interface will be displayed as
bound
, as shown in Figure 2. Application binding.
Figure 2. Application binding
- Confirm that the baud rate of the communication between the PSDK adapter and the PSDK payload is 460800 (the communication baud rate of the PSDK sample program is 460800);
Figure 3. Setting the communication baud rate
- After the application is bound successfully, the payload device will automatically run the sample program.
Figure 4. Running result of the sample program
Binding Troubleshooting
1. Troubleshooting SkyPort V2
Error Code | Description | Solution |
---|---|---|
1 | Unable to get the information of the payload. | 1. Confirm that the hardware platform is properly connected. 2. Confirm that the payload control program developed based on PSDK runs normally. |
2 | Account illegal. | Please confirm that the user information in payload device control program is the same as that in bound adapter. |
3 | Unable to obtain the authentication information. | Please submit the log of the payload to DJI technical support team for troubleshooting. |
4 | SkyPort verification failed. | |
5 | Authentication information incorrect. | |
6 | Binding information stored failed. | |
7 | Unable to get the SN. |
2. Application Service Troubleshooting
Error Code | Description | Solution |
---|---|---|
400 | SN doesn't exist. | Please submit the log of the payload to DJI technical support team for troubleshooting. |
500 | Server exception. | |
700 | The payload's applications is no found. | |
701 | Verification failed. | |
702 | Binding error. |
3.Assistant software troubleshooting
Error Code | Description | Solution |
---|---|---|
3 | The network is abnormal. | Please make sure your computer can access the Internet. |
4 | Software Error | Reinstall the Assistant2 or restart your computer. |
5 | FTP Error. |
Compilation troubleshooting
Error when compiling sample code with Keil MDK: "error: L6050U"
- Cause of failure: Keil MDK is not activated.
- Workaround: Please activate Keil MDK before compiling sample code with Keil MDK.