Download the ESC code:
git clone https://github.com/thiemar/vectorcontrol cd vectorcontrol
Before updating firmware via UAVCAN, the Pixhawk ESC 1.6 requires the UAVCAN bootloader be flashed. To build the bootloader, run:
make clean && BOARD=px4esc_1_6 make -j8
After building, the bootloader image is located at
firmware/px4esc_1_6-bootloader.bin, and the OpenOCD configuration is located at
openocd_px4esc_1_6.cfg. Follow these instructions to install the bootloader on the ESC.
BOARD=s2740vc_1_0 make && BOARD=px4esc_1_6 make
This will build the UAVCAN node firmware for both supported ESCs. The firmware images will be located at
com.thiemar.s2740vc-v1-1.0-1.0.<git hash>.bin and
Download the Sapog codebase:
git clone https://github.com/PX4/sapog cd sapog git submodule update --init --recursive
Before updating firmware via UAVCAN, the Pixhawk ESC 1.4 requires the UAVCAN bootloader be flashed. The bootloader can be built as follows:
cd bootloader make clean && make -j8 cd ..
The bootloader image is located at
bootloader/firmware/bootloader.bin, and the OpenOCD configuration is located at
openocd.cfg. Follow these instructions to install the bootloader on the ESC.
cd firmware make sapog.image
The firmware image will be located at
<xxxxxxxx> is an arbitrary sequence of numbers and letters.
Please refer to the project page to learn how to build and flash the firmware. Zubax GNSS comes with a UAVCAN-capable bootloader, so its firmware can be updated in a uniform fashion via UAVCAN as described below.
The UAVCAN node file names follow a naming convention which allows the Pixhawk to update all UAVCAN devices on the network, regardless of manufacturer. The firmware files generated in the steps above must therefore be copied to the correct locations on an SD card or the PX4 ROMFS in order for the devices to be updated.
The convention for firmware image names is:
<uavcan name>-<hw version major>.<hw version minor>-<sw version major>.<sw version minor>.<version hash>.bin
However, due to space/performance constraints (names may not exceed 28 charates), the UAVCAN firmware updater requires those filenames to be split and stored in a directory structure like the following:
/fs/microsd/fw/<node name>/<hw version major>.<hw version minor>/<hw name>-<sw version major>.<sw version minor>.<git hash>.bin
The ROMFS-based updater follows that pattern, but prepends the file name with
_ so you add the firmware in:
/etc/uavcan/fw/<device name>/<hw version major>.<hw version minor>/_<hw name>-<sw version major>.<sw version minor>.<git hash>.bin
The resulting finale file locations are:
Note that the ROMFS/px4fmu_common directory will be mounted to /etc on Pixhawk.
Alternatively UAVCAN firmware upgrading can be started manually on NSH via:
uavcan start uavcan start fw