OpenIPC 4G firmware for QuadroFleet
Preparing and flashing the OpenIPC firmware
This guide explains how to compile and flash the OpenIPC firmware with the QuadroFleet Masina client for a drone camera (e.g. SSC30KQ, SSC338Q). Configuring the ECM interface of the 4G modem is also covered.
Prerequisites
- A Linux system (Ubuntu 22.04+ recommended)
- Internet access to download repositories and tools
- A TFTP server for flashing (e.g. tftpd-hpa on Ubuntu)
- Optional: a CH341A programmer for direct flashing
Step 1: Compiling the OpenIPC firmware
Installing dependencies:
sudo apt update
sudo apt install g++-arm-linux-gnueabihf build-essential gitCloning the repositories:
git clone https://github.com/OpenIPC/firmware.git
git clone -b opt https://github.com/beep-systems/quadrofleet-masina.gitCompiling the Masina client:
cd quadrofleet-masina/client
make clean
makeCopying the client files into the firmware directory:
cd ..
cp -r quadrofleet-masina/client/drop/* firmware/Compiling the firmware:
cd firmware
make- Select the target device (SSC30KQ_4G or SSC338Q_4G) during compilation
- The output files are in
firmware/output/images(e.g.rootfs.squashfs.ssc30kq,uImage.ssc30kq)
Step 2: Flashing via TFTP
Setting up the TFTP server:
sudo apt install tftpd-hpa
sudo cp firmware/output/images/* /var/lib/tftpboot/
sudo systemctl restart tftpd-hpaConnect the camera to the TFTP server via Ethernet and access the bootloader (e.g. via minicom).
Setting the environment variables (adjust the file sizes):
setenv serverip 192.168.178.66
setenv kernsize 0x300000
setenv rootaddr 0x350000
setenv rootsize 0xA00000
setenv rootmtd 10240k
setenv bootargs 'console=ttyS0,115200 panic=20 root=/dev/mtdblock3 init=/init mtdparts=NOR_FLASH:256k(boot),64k(env),3072k(kernel),${rootmtd}(rootfs),-(rootfs_data) LX_MEM=${memlx} mma_heap=mma_heap_name0,miu=0,sz=${memsz}'
saveenvFlashing the kernel and rootfs:
tftp 0x21000000 uImage.ssc30kq
sf probe 0; sf erase 0x50000 0x300000; sf write 0x21000000 0x50000 0x1fdd68
tftp 0x21000000 rootfs.squashfs.ssc30kq
sf probe 0; sf erase 0x350000 0xA00000; sf write 0x21000000 0x350000 0x8ea000
saveenv
resetStep 3: Alternative flashing with the CH341A
Download the pre-compiled firmware from QuadroFleet.
Use the CH341A programmer and NeoProgrammer 2.2.0.10:
- Device: GD25Q128x [3.3V]
- Type: SPI NOR 25xx
- BitSize: 128 Mbits
- Manufact: GIGADEVICE
- Size: 16777216 Bytes
- Page: 256 Bytes
Flash the .bin file.
Step 4: Updating the firmware (optional)
- Connect to the camera via Ethernet and access the terminal (SSH or web interface).
- Download the new firmware files:
cd /tmp
curl -O http://192.168.178.66/rootfs.squashfs.ssc30kq
curl -O http://192.168.178.66/uImage.ssc30kq- Apply the update:
soc=$(fw_printenv -n soc)
sysupgrade --kernel=/tmp/uImage.${soc} --rootfs=/tmp/rootfs.squashfs.${soc} -z --force_ver -nStep 5: Configuring the 4G modem (Quectel EC25)
- Connect the modem to a PC via USB.
- Open a terminal (PuTTY) with the settings:
Baud rate: 115200
Data bits: 8
Stop bits: 1
Parity: None
Flow control: NoneEnable the ECM interface:
AT+QCFG="usbnet",1
AT+CFUN=1,1AT+QCFG="usbnet",1
AT+CFUN=1,1Warning!
Wait for the modem to reboot and for the network device to appear.
Step 6: Verifying the firmware
- Access the camera's web interface (default IP via DHCP).
- Make sure the QuadroFleet Masina client is running (
ps | grep client). - Check the VPN connection and UDP stream through the control app.
Notes
- Make sure the TFTP server IP (192.168.178.66) matches your network.
- Back up the camera settings before flashing.

