Firmware v3.1 released

A few users reported that they’re having difficulties calibrating the compass with PX4 or APM. An investigation uncovered that the difficulties were caused by 2 factors:

  1. The measurement range was not sufficiently wide to account for all valid use cases. This was fixed in the firmware.

  2. APM and PX4 somewhat mishandle external compasses by making invalid assumptions about their measurement ranges. We added a configurable scaling coefficient that allows to reduce the magnitude of the output magnetic field vector, silencing the warning from the autopilot. Learn more from the docs here: … th_pixhawk

The fix is available in firmware version 3.1, you can get it from

If you’re not using the compass, there’s no need to upgrade.

Please provide instructions on how to upgrade to 3.1. Thanks.

Hello James,

Sorry for taking long to respond, I received your emails too.

If you’re using PX4, you need to put the firmware image “*.uavcan.bin” to the SD card at the following location: “fw/com.zubax.gnss/2.0/whatever.bin”, where “whatever” is any sequence of ASCII characters not longer than 16. Yes, not exactly user friendly. The whole process is documented at

Another option, much easier, is to use the UAVCAN GUI Tool. You just need to connect Zubax GNSS 2 to the same CAN bus as the GUI Tool, make sure it is visible in the list of nodes (you may need to enable dynamic node ID allocation, it’s on the main window), then double-click the node you want to upgrade, and click “Update Firmware”. It’ll ask you to pick the binary file, rest is automatic.

If you’re using APM, then the only option, as far as I know, is to use the GUI tool. APM does not support firmware updates over UAVCAN. I just opened a ticket to document this shortcoming; please go ahead and +1 it: Thank you.

Thank you Pavel, but the UAVCAN GUI Tool is not cooperating. I am not sure how I “connect the Zubax GNSS 2 to the same CAN bus as the GUI Tool”. I can connect the Zubax directly to my laptop with a USB cable, or connect through the PX4 with either USB or bluetooth. Neither of the three connections sees the node I want to upgrade. Tried to enable the dynamic node ID on the main window and it only returns one node with a N/A. I will try the un-user friendly SD card approach.

You need a CAN adapter in order to use the GUI Tool. Do you have one? If not, you need to use the PX4 way. We will add a USB upgrade capability in the next hardware revision.

No, do not have a CAN adapter. Still unable to flash to 3.1 using any of your suggestions, including the SD card approach.

Please let me know what exactly went wrong with the SD card approach with PX4. Could you describe your steps?

I placed the firmware image “com.zubax.gnss-2.0-3.1.a0f95d8.uavcan.bin” into a folder on the SD card “fw/com.zubax.gnss/2.0/” I had to create the folders “com.zubax.gnss” and “2.0” Not knowing if that was correct (it made no sense), I also placed the firmware image “com.zubax.gnss-2.0-3.1.a0f95d8.uavcan.bin” directly into the “fw” folder on the SD card. Neither approach worked.

I have sent the device back to Titan Elite to have them update the firmware to 3.1. They have a CAN adapter.

Thank you.

You needed to ensure that the name of the file does not exceed 16 characters, as I said above. Anyway, I understand that it doesn’t matter anymore.

Oops. Thanks again Pavel.

dear Pavel

my zubax GNSS is as following :

product_id : ‘com.zubax.gnss’
product_name : ‘Zubax GNSS’
sw_version : ‘3.0’
sw_vcs_commit: 218306168
sw_build_date: Jan 6 2016
hw_version : ‘2.0’

on site “Index of /products/com.zubax.gnss” different firmaware are available to download
i am thinking about latest : ==> com.zubax.gnss-2.2-4.0.614bde1.uavcan.bin 2017-03-20 11:31

Is it stable ?

if not what is your latest version to download in order to get benefit of corrected features…

thanks for any help


The version you linked is stable, but please observe that it is only suitable for hardware version 2.2, whereas you’re using version 2.0. The latest version of the firmware you can use with your hardware is 3.2.

OK Pavel

Upgrade done. (To anyone : It is very simple and strait through so do not hesitate to proceed)

To Pavel :
Question1 : What is “hw_info_url” because Test Report Not Found

Question2 would you mind to tell me if previous config has been saved ? ( I am always bit nervous to change parameter )

ch> zubax_id
product_id : ‘com.zubax.gnss’
product_name : ‘Zubax GNSS’
sw_version : ‘3.2’
sw_vcs_commit: 176848386
sw_build_date: Mar 19 2017
hw_version : ‘2.0’

ch> cfg list
uavcan.bit_rate = 0 [0, 1000000] (0)
uavcan.node_id = 0 [0, 125] (0)
uavcan.pubp-time = 0 [0, 1000000] (0)
uavcan.prio-time = 1 [0, 31] (1)
uavcan.pubp-stat = 200000 [2000, 1000000] (200000)
uavcan.prio-stat = 20 [0, 31] (20)
uavcan.pubp-fix = 100000 [66666, 2000000] (100000)
uavcan.pubp-aux = 1000000 [100000, 1000000] (1000000)
uavcan.prio-fix = 16 [0, 31] (16)
uavcan.prio-aux = 20 [0, 31] (20)
gnss.warn_dimens = 0 [0, 3] (0)
gnss.warn_sats = 0 [0, 20] (0)
uavcan.pubp-pres = 0 [0, 1000000] (0)
uavcan.prio-pres = 16 [0, 31] (16)
pres.variance = 100.000000000[1.000000000, 4000.000000000] (100.000000000)
temp.variance = 4.000000000 [1.000000000, 100.000000000] (4.000000000)
nmea.uart_on = 0 [0, 1] (0)
mag.scaling_coef = 1.000000000 [0.100000001, 2.000000000] (1.000000000)
mag.variance = 0.004999999 [0.000000999, 1.000000000] (0.004999999)
uavcan.pubp-mag = 10000 [10000, 100000] (10000)
uavcan.prio-mag = 16 [0, 31] (16)

  1. Test report is not found because your device has been manufactured before we started provisioning the online test report feature. This link is working for all newer devices though.

  2. The configuration will be reset back to default after upgrade, unfortunately.

Ok Pavel

what are your recommandation for values according to sensor [uavcan.pubp.*]

my understing is : more important should be sensor then lower should be Publication interval . don’t u think so ?

but what is most important bwn mag (for compass) , fix (for GNSS receiver? ) and pres (for barometer) . Which one would better feed autopilot PX4 ?

here after are values set in my zubax node . (most are default)

uavcan.pubp-aux = 1000000 [100000, 1000000] (1000000)
uavcan.pubp-fix = 100000 [66666, 2000000] (100000)
uavcan.pubp-mag = 10000 [10000, 100000] (10000)
uavcan.pubp-pres = 20000 [0, 1000000] (0)

any comment?

These parameters look sensible and they should work well with PX4.

Hi sorry, i know this is old thread, but can someone help me to upgrade the firmware of my zubax v2. I’d tried to follow the steps mentioned in previous comment but still nothing happened, ok let me describe what i did and maybe someone can correct me if im wrong,

  1. Download the firmware “com.zubax.gnss-2.0-3.2.a8a7e02.uavcan.bin”
  2. Create a directory and paste the firmware in it. etc/uavcan/fw/com.zubax.gnss/2.0/com.zubax.gnss-2.0-3.2.a8a7e02.uavcan.bin
  3. Put it back in the pixhawk and power on.
    This is pretty much it… and nothing happened.

Tried to change the firmware file name to whatever.bin still nothing.

How to start the firmware uprade? And do i need to connect to mission planner to see the upgrading progress?

Can someone help me?

The question about Mission Planner leads me to suspect that you’re using ArduPilot. ArduPilot does not support UAVCAN firmware update so you can’t do that. Instead, you could use either the UAVCAN GUI tool with some CAN adapter, or update the firmware via USB following the instructions in the datasheet.

Hi pavel, thanks for the reply. Actually im using pixhawk. USB firmware supports in zubax GNSS 2? The datasheet mention the bootloader only available on hardware version 2.1 i think. Correct me if Im wrong.