Speed Firmware v0.1.0 Release Information
What is This Post About?
Vertiq has created a new speed firmware release, v0.1.0, for our G2 production modules and the 81-08 G1 modules. This firmware release introduces several new features and updates several default values on the modules to improve the customer experience. We realize that choosing when to update your module’s firmware can be difficult as it may not be clear what the benefits of the upgrade are and if it will have any effect on existing functionality you depend on. This post aims to describe, in detail, what has changed with this latest firmware update so you can understand what new functionality is available and what existing functionality has been modified.
What Modules Are Impacted?
This firmware update is specifically for the production versions of our G2 modules and the 81-08 G1 modules. If you only have beta versions of these modules, this update may not be available for your module. Specifically, the modules supported by this update are:
40-06 370Kv, 770Kv (M34.1, M34.2, M34.3, M41.1, M41.2)
40-14 400Kv (M35.1, M35.2)
60-08 150Kv, 300Kv, 660Kv (M47.1, M40.2, M48.0, M48.1)
81-08 G1 85Kv, 150Kv, 240Kv (M16.0, M28.0, M39.0)
81-08 G2 85Kv, 140Kv, 240Kv (M16.2, M28.2, M39.2)
81-17 G2 110Kv (M42.0, M42.1)
Overview of Important Changes
This is a brief list of important changes in this release, and should be used as a general overview of new or altered features. Details on each of these changes can be found later in this post.
Default Max Velocity changed for some modules.
Default Timeout increased to 1 second.
Default Direction set to 2D Counter-Clockwise.
Default Arming Throttle Region increased to 0% to 12.5% from 0% to 7.5%.
Added support for the Redundant Throttle feature.
The Manual Arming Throttle Source parameter has been deprecated with the addition of Redundant Throttle support.
Added support for DroneCAN Dynamic Node ID Allocation.
Improved DroneCAN status reporting with the StatusExtended message and vendor specific flags. Note that by default, the StatusExtended message is now sent instead of the DeviceTemperature message, though a setting is available to keep using DeviceTemperature if desired.
Added support for arming with the DroneCAN ArmingStatus message.
Added support for toggling between using velocity or speed in DroneCAN and IFCI telemetry.
Can I Continue Using My Current Firmware?
We understand that you may not want to immediately upgrade to the latest firmware for various reasons. To facilitate this, the previous firmware version will still be available on our website on your module’s page.
Will the Control Center Also Be Updated?
The Control Center has also been updated to expose support for these new features as part of version 1.8.0. Additional parameters will be visible in the Control Center to support the new features in this update. These parameters will only be usable if your module’s firmware is updated. Note that Manual Arming Throttle Source has been deprecated in the latest firmware as discussed below, so while it will still appear in Control Center to support backwards compatibility, you will not be able to set its value if you update to the latest firmware.
Important Default Settings Changes
This section covers changes to default settings. Default settings are only used before you have set and saved your own values to these settings. So, if you have set any of these values through the Control Center, they will not be affected by these changes. If you are using the default values for any of these settings, you may notice them change when you update your firmware.
Max Velocity
The default Max Velocity has changed for some modules. Previously, the default setting for these modules did not match the actual recommended maximum velocities of the module. This setting determines what a 100% throttle command is interpreted as when the module is in Velocity mode. If you use Velocity mode, and have not been setting this parameter with your own value, this change to the defaults may affect you. If you are affected by this change, we recommend explicitly setting your modules Max Velocity to your desired value in the Control Center.
The specific modules affected and how their values have changed is detailed below:
40-06 370Kv: Default Max Velocity Increased to 960 rad/s from 649 rad/s
40-14 400Kv: Default Max Velocity Increased to 1040 rad/s from 649 rad/s
60-08 150Kv: Default Max Velocity Decreased to 765 rad/s from 1557 rad/s
81-08 G1 150Kv: Default Max Velocity Increased to 713 rad/s from 681 rad/s
81-08 G1 85Kv: Default Max Velocity Decreased to 449 rad/s from 471 rad/s
81-08 G1 240Kv: Default Max Velocity Increased to 1126 rad/s from 1100 rad/s
81-08 G2 140Kv: Default Max Velocity Increased to 831 rad/s from 827 rad/s
81-08 G2 85Kv: Default Max Velocity Increased to 523 rad/s from 513 rad/s
81-08 G2 240Kv: Default Max Velocity Increased to 1126 rad/s from 1100 rad/s
81-17 G2 110Kv: Default Max Velocity Increased to 653 rad/s from 560 rad/s
Timeout
The default Timeout for all modules impacted by this firmware update has changed from 0.1 seconds to 1 second. This change is meant to make initial testing easier for users by attempting to avoid unintended timeouts while testing. The timeout is meant as a safety feature during communication failures, so most users should not be affected by this change. If you do rely on the default timeout specifically being set to 0.1 seconds, we recommend explicitly setting your Timeout value to 0.1 seconds using the Control Center after applying this update.
Arming Throttle Region
The default Arming Throttle Region for all modules impacted by this firmware update has expanded from 0% to 7.5% to 0% to 12.5%. This change is meant to simplify arming for users by bringing the default arming throttle region in line with the default throttle ranges typically used by flight controllers. For users who set their own Arming Throttle Regions, or do not specifically need the Arming Throttle Region to end at 7.5%, this should not cause any problems. If you do not explicitly set your Arming Throttle Region and rely on the default Arming Throttle Region ending specifically at 7.5%, then we recommend explicitly setting the Arming Throttle Region to end at 7.5% using the Control Center after applying this update.
Direction
The default Motor Direction for all modules impacted by this firmware update has been set to 2D Counter-Clockwise. Prior to this, modules had their default Motor Direction set to Unknown, which required users to explicitly set a Motor Direction before the modules could spin from throttle commands. This should not change the Motor Direction on any modules that have explicitly had their Motor Direction set, and since setting Motor Direction explicitly was required prior to this update, this should not affect the settings on any modules currently in use.
New Features
This section details new features that have been added as part of this firmware update.
Redundant Throttle
This firmware update introduces support for the redundant throttle feature. Redundant throttle is a safety feature that allows your module to accept multiple throttle sources and to automatically switch between them if the current primary source fails. Users are able to configure the priority of different throttle sources to determine which one they would like to use when multiple are available. For example, you could send both DroneCAN and DSHOT throttle commands to your module. If you configured DroneCAN to be the highest priority throttle source, then when both DroneCAN and DSHOT are sending throttle commands, the commands from DroneCAN will be used. If your DroneCAN bus should suddenly fail during flight but the DSHOT throttle commands are still reaching the module, then the module will automatically swap to using the DSHOT throttle commands so it can continue spinning safely.
For more details on this feature and how to configure it, refer to the feature’s documentation here on Read-The-Docs.
Manual Arming Throttle Source Deprecated
Previous firmwares only allowed throttles from one throttle source to be used by the module, and they would lock out every throttle source besides the one that armed them. Because of this, it was necessary to specify what throttle source to use when the module was manually armed, such as by the Always Armed feature. With the introduction of redundant throttle support, it is no longer necessary to lock out throttle sources, as setting their relative priority handles this. Because of this, the Manual Arming Throttle Source parameter has been deprecated, which will simplify customer setup when using manual arming.
Dynamic Node ID Allocation
This firmware update introduces support for dynamic node ID allocation when using DroneCAN. All DroneCAN nodes require a unique node ID, and in the past the only option for Vertiq modules has been to manually set a unique static node ID on each module. Dynamic node ID allocation allows modules to be automatically assigned a unique node ID by flight controllers or other allocators when connected on the same bus. This can help simplify setup by allowing you to avoid setting unique node IDs on each module. Instead you can set each module to use dynamic node ID allocation, and allow the flight controller to take care of the node ID allocation for you.
To avoid affecting existing customer setups, the default node ID is still set to a static node ID of 99. To use dynamic node ID allocation, set the DroneCAN node ID to 0. For more information on this feature, see the full documentation for the feature on Read-The-Docs.
DroneCAN ArmingStatus Support
This firmware update introduces support for arming and disarming modules using DroneCAN’s ArmingStatus message. The ArmingStatus message can be sent by flight controllers to indicate whether they are armed or disarmed. This feature allows the modules to have their arming or disarming status match the flight controller’s based on the ArmingStatus message when using DroneCAN. This is meant to simplify customer arming setup when using DroneCAN. For example, instead of arming and disarming using throttles, which requires configuring the module’s throttle regions and the throttles sent by the flight controller, you can simply activate arming with the ArmingStatus. Then, whenever your flight controller arms, your modules will arm, and whenever your flight controller disarms, your modules will disarm.
To avoid affecting existing customer setups, this feature is not activated by default, but it can be easily enabled through the Control Center or using DroneCAN configuration parameters. For more information on this feature, see the full documentation for the feature on Read-The-Docs.
Improved DroneCAN Telemetry with ExtendedStatus
In previous versions of the firmware, the DroneCAN telemetry sent by Vertiq modules always consisted of the uavcan.equipment.esc.Status message and the uavcan.equipment.device.Temperature message. This new firmware improves the transmitted DroneCAN telemetry by adding the option to replace the uavcan.equipment.device.Temperature message with the uavcan.equipment.esc.StatusExtended message. The uavcan.equipment.esc.StatusExtended message contains more information and additional status flags to give greater insight into the module’s health.This new telemetry style also changes the temperature in the uavcan.equipment.esc.Status message to the microcontroller temperature instead of the temperature of the module’s coils. Overall, these changes seek to improve DroneCAN telemetry from the modules, and help them to integrate more easily with the telemetry supported by flight controllers.
The default for all modules is to use this new style of telemetry, but there is an option to use the old style of telemetry for backwards compatibility. For more information on this feature and how to configure it for backwards compatibility, see the full documentation for the feature on Read-The-Docs.
Option to Use Speed for Telemetry Instead of Velocity
In the current firmware, DroneCAN and IFCI telemetry messages always report the motor’s velocity, with counter-clockwise rotation being reported as a positive velocity and clockwise rotation being reported as a negative velocity. Some flight controller setups have integration problems with how they expect to receive telemetry when using this format, so this firmware update includes an option to set the telemetry to report speed instead of velocity in its telemetry. This feature will help improve flight controller integration for customers who have experienced issues with this in the past.
By default modules will continue to report telemetry as velocity to maintain backwards compatibility. For more information on this feature and how to configure it, see the full documentation for the feature on Read-The-Docs.
Questions
If you have questions about these changes, you can contact support@vertiq.co for more information.