I have successfully connected a DJI Matrice 4 to FreeBSD via USB.
FreeBSD detects the aircraft as a USB network interface: ue0
The interface can be configured using dhclient: dhclient ue0
After connecting, FreeBSD creates the USB network interface and communication with the aircraft's network side becomes possible.
In my setup, the FreeBSD side uses the 192.168.42.x network, with communication taking place over ue0.
This is only the first step, but it confirms that a DJI Matrice 4 can establish a USB network connection with FreeBSD without requiring a Windows host.
I am currently investigating the communication further and will post more technical details as the work progresses.
Would you be interested in a utility for working with a drone?
FreeBSD detects the aircraft as a USB network interface: ue0
The interface can be configured using dhclient: dhclient ue0
After connecting, FreeBSD creates the USB network interface and communication with the aircraft's network side becomes possible.
In my setup, the FreeBSD side uses the 192.168.42.x network, with communication taking place over ue0.
This is only the first step, but it confirms that a DJI Matrice 4 can establish a USB network connection with FreeBSD without requiring a Windows host.
I am currently investigating the communication further and will post more technical details as the work progresses.
Would you be interested in a utility for working with a drone?
Bash:
ifconfig ue0
ue0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=0
ether 2a:9b:5d:99:d8:4c
inet 192.168.42.1 netmask 0xffffff00 broadcast 192.168.42.255
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
res2500@res:~/code/dji-firmware-tools $ usbconfig
ugen1.1: <EHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.1: <XHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.2: <Integrated Hub Intel Corp.> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen1.3: <Bluetooth wireless interface Intel Corp.> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen1.4: <Laptop Integrated Webcam HD Sunplus Innovation Technology Inc.> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen1.5: <BCM5880 Secure Applications Processor Broadcom Corp.> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.2: <DJI-1581F7K3C265****** DJI Technology Co., Ltd.> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)
res2500@res:~/code/dji-firmware-tools $ uname -a
FreeBSD res 15.1-RELEASE-p3 FreeBSD 15.1-RELEASE-p3 releng/15.1-n283611-88e7371d9dc2 GENERIC amd64
res2500@res:~/code/dji-firmware-tools $ ./m4scan.sh
DJI Matrice 4 read-only module scan
Log: m4scan-20260903-185924.log
ID MODULE RESULT HW VERSION
---- ---------------------- --------- ----------------
1 CAMERA RAW response
2 MOBILE_APP RAW response
3 FLYCONTROLLER YES 1581F7K********
4 GIMBAL REPLY (unparsed)
5 CENTER_BOARD RAW response
6 REMOTE_RADIO RAW response
7 WIFI RAW response
8 LB_DM3XX_SKY RAW response
9 LB_MCU_SKY REPLY (unparsed)
10 PC REPLY (unparsed)
11 BATTERY YES wa345PTL
12 ESC YES mc02_wa340_V2.0
13 DM368_GROUND RAW response
14 OFDM_GROUND RAW response
15 LB_68013_SKY RAW response
16 SER_68013_GROUND RAW response
17 MVO RAW response
18 SVO REPLY (unparsed)
19 LB_FPGA_SKY RAW response
20 FPGA_GROUND RAW response
21 FPGA_SIM RAW response
22 STATION RAW response
23 XU RAW response
24 WTF RAW response
25 IMU RAW response
26 GPS RAW response
27 WIFI_GROUND RAW response
28 SIG_CVT RAW response
29 PMU RAW response
30 UNKNOWN30 RAW response
31 WM330_OR_WM220 YES WA345T AC Ver.A
Finished.