Advanced Functions: Difference between revisions

From STorM32-BGC Wiki
Jump to navigation Jump to search
No edit summary
 
(48 intermediate revisions by the same user not shown)
Line 3: Line 3:
== Second IMU Support ==
== Second IMU Support ==


One of the major features of the STorM32 controller is its support of a second imu, providing unmatched performance figures. For a detailed account see the article on [[Using a 2nd IMU]].
One of the major features of the STorM32 controller is its support of a second imu, providing unmatched performance figures.  
 
For a detailed account see the article on [[Using a 2nd IMU]].


== Lipo Saver ==
== Lipo Saver ==
Line 47: Line 49:
It will recenter the camera, i.e. will undo any change in camera position due to a manual control signal. For the yaw axis, it does not undo the cumulative center position changes when switching between hold and pan mode.
It will recenter the camera, i.e. will undo any change in camera position due to a manual control signal. For the yaw axis, it does not undo the cumulative center position changes when switching between hold and pan mode.


== IR Camera Remote Control ==
== Camera Remote Control ==
 
The STorM32 provides dedicated and rich possibilities to control the operation of the camera.


This function can be activated and its trigger source be specified by the parameter {{PARAMNAME|IR Camera Control}} in the {{GUI|Functions}} tab. The camera type is selected by the parameter {{PARAMNAME|Camera Model}}.
This function provides a remote control of the shutter and video functions of the camera, but also unprecedented features going far beyond these basic operations.


It provides a remote control of the shutter and video functions of the camera (if available). For remote controlling Sony Nex and Canon cameras one can connect a IR led directly to the IR port (see [[Pins and Connectors]]). Panasonic cameras can be remote controlled by adding a small piece of hardware, as described [http://www.rcgroups.com/forums/showpost.php?p=30034371&postcount=2437 here].
For instance, the NT Camera concept, available via NT IMU modules, provides a much richer set of options for controlling the camera, and increases the range of supported cameras to models like the Gitup Git2, Runcam Split or GoPro Hero5.  


In addition, or alternatively, also a NT camera module can be used, see [[NT Camera]].
For more details, please see the article [[NT Camera]].  


The camera shutter and video on/off can be adjusted via these fields in the {{GUI|Functions}} tab:
The STorM32 also has integrated dedicated MAVLink camera support, namely a full implementation of the MAVLink camera micro service, which in fact provides the coolest camera control features, see [[MAVLink Communication]].
* {{PARAMNAME|IR Camera Setting #1}}
<!--
* {{PARAMNAME|IR Camera Setting #2}}
The v1.x STorM32 boards also have a dedicated IR LED driver, for IR remote camera control, on board. For remote controlling Sony Nex and Canon cameras one can connect a IR LED directly to this IR port (see [[Pins and Connectors]]). Panasonic cameras can be remote controlled by adding a small piece of hardware, as described [http://www.rcgroups.com/forums/showpost.php?p=30034371&postcount=2437 here].
* {{PARAMNAME|Time Interval}}
-->


== Pwm Out ==
== Pwm Out ==
Line 64: Line 68:
This function needs to be enabled via the parameter {{PARAMNAME|Pwm Out Configuration}} in the {{GUI|Setup}} tab, and the PWM output format and frequency be specified. Then it can be activated and its trigger source be specified by the parameter {{PARAMNAME|Pwm Out Control}} in the {{GUI|Functions}} tab.  
This function needs to be enabled via the parameter {{PARAMNAME|Pwm Out Configuration}} in the {{GUI|Setup}} tab, and the PWM output format and frequency be specified. Then it can be activated and its trigger source be specified by the parameter {{PARAMNAME|Pwm Out Control}} in the {{GUI|Functions}} tab.  


When activated the PWM signal is output on the pin RC-1. The input channel {{PARAMVALUE|Rc-1}} yields zero value.
When activated the PWM signal is output on the pin RC-1. The input channel {{PARAMVALUE|Rc-1}} yields zero value. The PWM signal is also output on a [[NT Camera|NT Camera module]], if available.


The details of the signal and its behavior can be fine-tuned via these fields the {{GUI|Functions}} tab:
The details of the signal and its behavior can be fine-tuned via these fields the {{GUI|Functions}} tab:
Line 74: Line 78:
== Scripts ==
== Scripts ==


The innovative concept of on-board scripts, invented by the STorM32 project, allows to modify the controller's behavior and accomplish even complicated tasks. For the details see the article on the [[STorM32 Scripts]].
The innovative concept of on-board scripts, invented by the STorM32 project, allows to modify the controller's behavior and accomplish even complicated tasks.  
 
For the details see the article on the [[STorM32 Scripts]].


Some example script files (extension .scr) are available in the firmware folder, which should be sufficiently self-explanatory.
Some example script files (extension .scr) are available in the firmware folder, which should be sufficiently self-explanatory.


== Motion Control ==
== MAVLink ==
 
The STorM32 controller supports [https://mavlink.io/en/ MAVLink]. It in fact supports a rich set of MAVLink messages and features, as well as the [https://mavlink.io/en/guide/mavlink_2.html MAVLink 2] protocol, and might be by far the most integrated MAVLink capable gimbal controller available. Moreover, it actually integrates '''''two''''' MAVLink components, called MAVLink Gimbal and MAVLink Camera.
 
For further information and details, please see the article [[MAVLink Communication]].
 
The STorM32's MAVLink capabilities are exploited (to some extend, and possibly with some flaws) by the [http://copter.ardupilot.com/ ArduPilot] flight controllers. See also
 
* [[Using STorM32 with ArduPilot]]
* [http://www.rcgroups.com/forums/showthread.php?t=2494532 Storm32 with Pixhawk over serial connection @rcgroups]
* [http://ardupilot.org/copter/docs/common-storm32-gimbal.html ArduPilot > Docs > Optional Hardware > Cameras and Gimbals > SToRM32 Gimbal Controller]
 
== NT Logger ==
 
The STorM32 controller supports real-time logging of quite many data onto micro SD cards, by attaching a NT Logger module to the NT bus.
 
For enabling and fine-adjusting the data logging, open the {{GUI|Expert Tool}} window, which is accessible via the {{GUI|Tools}} menu, and set the {{PARAMNAME|NT Logging}} parameter.
 
For the details see the article [[NT Data Logger]].
 
== STorM32 Link ==
 
A serial connection can be used to transfer dedicated data from the flight controller to the STorM32 controller in order to help it achieving better stabilization, and hence better videos. For instance, yaw drift can be corrected, horizon shifts in high-speed turns removed, or smoother pans achieved.
 
This set of functions is called the STorM32-Link, please see the article [[STorM32-Link]].
 
== Encoder ==
 
The STorM32 supports using encoders, which is then called [[What is T-STorM32 about?|T-STorM32]].


The STorM32 controller provides a rich set of commands for remote controlling the camera. These commands can be send to the board via any of the serial ports (USB, UART, Bluetooth). A very convenient method to make use of that are motion control scripts. A typical example application would be a pano, i.e. shooting a sequence of photos which are later stitched together to a large panorama view.
For more details see the articles [[What is T-STorM32 about?]] and [[Getting Started with T-STorM32]].


Some example motion control script files (extension .mcs) are available in the firmware folder, which should be self explanatory enough to use them.
== Prearm Checks ==


The following commands are currently (firmware v0.68) possible:
The STorM32 provides a mechanism to check various conditions at startup, and to check if they all have been passed or not. This is especially useful for flying vehicles.


* SetParameter()
For more details see the article [[Prearm Checks]].
* SetAngle()
* DoCamera()
* RecenterCamera()
* SetPwmOut()
* Wait()
* TextOut()


The motion control programming language is in fact just native [https://www.perl.org/ Perl], so you can do anything you want and is possible with a full-fledged scripting language. You may use all control structures, define variables and even your own functions, as needed.
== Filter ==


== MAVLink ==
The STorM32 provides a filter section to filter the gyro, accelerometer, encoder, and motor control data, using low-pass filters and notch/band-cut filters.


The STorM32 controller supports [http://qgroundcontrol.org/mavlink/start MAVLink].
For more details see the article [[Filters]].


For enabling it, open the {{GUI|Interfaces Tool}} window, which is accessible via the {{GUI|Tools}} menu:
== Servo Motor Mode ==
* {{PARAMNAME|Mavlink Configuration}}: Set to {{PARAMVALUE|emit heartbeat}} to activate the emission of a heartbeat message.
* {{PARAMNAME|Mavlink Com Port}}: Selects the com port which shall be used for the MAVLink communication.
* {{PARAMNAME|Mavlink System ID}}: Sets the system ID of the STorM32 controller (default = 71).
* {{PARAMNAME|Mavlink Component ID}}: Sets the component ID of the STorM32 controller (default = 67).


For the supported MAVLink messages, see [[Serial_Communication#Mavlink_Communication|Serial Communication: Mavlink Communication]] and [[Serial_Communication#Comments_to_STorM32_specific_Mavlink_commands|Serial Communication: Comments to STorM32 specific Mavlink commands]].
The STorM32 provides a servo motor mode, which comes in handy when the motor should be controlled but there should be no stabilization. The mode can also be used to realize robotics type application.
<!--


The STorM32's MAVLink capabilities are exploited (to some extend) by the [http://copter.ardupilot.com/ ArduPilot] flight controllers. See also
== ESP8266 Wifi Support ==


* [http://www.rcgroups.com/forums/showpost.php?p=31574509&postcount=4734 STorM32 BGC - Pixhawk/BetaCopter]
The STorM32 project provides direct support for a ESP8266 Wifi module. The project includes firmware which has to be flashed into the ESP8266 module. This enables using the GUI via Wifi, as well as opening the STorM32 Web App in a browser for platform independent configuration of the STorM32 controller.
* [http://www.rcgroups.com/forums/showthread.php?t=2494532 Storm32 with Pixhawk over serial connection @rcgroups]
* [http://ardupilot.org/copter/docs/common-storm32-gimbal.html ArduPilot > Docs > Optional Hardware > Cameras and Gimbals > SToRM32 Gimbal Controller]


To account for some inconsistencies in ArduPilot, this parameter is available:
For further details see the article [[Using a ESP8266 Wifi Module]].
* {{PARAMNAME|AP Compatibility}}: Select the compatibility level. Note: This parameter may be removed in future firmware versions.


{{COMMENT|The baudrate of the com port can be determined via the baudrate parameters in the Expert tab.}}
== Motion Control ==


{{COMMENT|For v1.x boards: When the UART port is selected, one cannot use simultaneously a BT module and a serial MAVLink connection between the STorM32 and ArduPilot.}}
The STorM32 controller provides a rich set of commands for remote controlling the camera. These commands can be send to the board via any of the serial ports (USB, UART, Bluetooth). A very convenient method to make use of that are motion control scripts. A typical example application would be a pano, i.e. shooting a sequence of photos which are later stitched together to a large panorama view.


== NT Logger ==
Some example motion control script files (extension .mcs) are available in the firmware folder, which should be self explanatory enough to use them.


The STorM32 NT controller supports real-time logging of quite many data onto micro SD cards, by attaching a NT logger module to the NT bus.
The following commands are currently (firmware v0.68) possible:


For enabling and fine-adjusting the data logging, open the {{GUI|Expert Tool}} window, which is accessible via the {{GUI|Tools}} menu, and set the {{PARAMNAME|NT Logging}} parameter.
* SetParameter()
* SetAngle()
* DoCamera()
* RecenterCamera()
* SetPwmOut()
* Wait()
* TextOut()


For the details see the article [[NT Data Logger]].
The motion control programming language is in fact just native [https://www.perl.org/ Perl], so you can do anything you want and is possible with a full-fledged scripting language. You may use all control structures, define variables and even your own functions, as needed.


== Third IMU ==
== Third IMU ==


The STorM32 NT controller allows to attach a 3rd IMU for a comprehensive vibrations analysis, mainly for evaluating, tuning and optimizing the gimbal's damping system.  
The STorM32 controller allows to attach a 3rd IMU for a comprehensive vibrations analysis, mainly for evaluating, tuning and optimizing the gimbal's damping system.  


The 3rd IMU support is determined by the parameters {{PARAMNAME|Imu3 Configuration}} and {{PARAMNAME|Imu3 Orientation}}, which are found in the {{GUI|Expert Tool}} window, accessible via the {{GUI|Tools}} menu.  
The 3rd IMU support is determined by the parameters {{PARAMNAME|Imu3 Configuration}} and {{PARAMNAME|Imu3 Orientation}}, which are found in the {{GUI|Expert Tool}} window, accessible via the {{GUI|Tools}} menu.  
Line 137: Line 165:
For further details see the article [[Evaluating Vibrations and Optimizing Damper Systems]].
For further details see the article [[Evaluating Vibrations and Optimizing Damper Systems]].


== ESP8266 Wifi Support ==
A 3rd IMU is not supported by T-STorM32 setups.
 
 
== OLED Display ==


The STorM32 project provides direct support for a ESP8266 Wifi module. The project includes firmware which has to be flashed into the ESP8266 module. This enables using the GUI via Wifi, as well as opening the STorM32 Web App in a browser for platform independent configuration of the STorM32 controller.
The STorM32 project supports connecting an OLED display to the controller, for visual status information.  


For further details see the article [[Using a ESP8266 Wifi Module]].
For further details see the article [[Using a OLED Display]].


== CAN Bus ==
== CAN Bus ==


The STorM32 controller supports DJI CAN bus and [http://uavcan.org/ UAVCAN].
The STorM32 controller did support UAVCAN and the DJI CAN bus in previous versions.


For enabling it, open the {{GUI|Interfaces Tool}} window, which is accessible via the {{GUI|Tools}} menu:
For the previously supported CAN bus functions, please see the article [[CAN Bus Communication]].
* {{PARAMNAME|Can Configuration}}: Set to {{PARAMVALUE|uavcan}} to activate the UAVCAN communication, and to {{PARAMVALUE|dji naza}} to activate the communication with a DJI Naza V2. The STorM32 board needs to be reset for a change to become active.
* {{PARAMNAME|Uavcan Node ID}}: Sets the UAVCAN node ID of the STorM32 controller (default = 71).


For the supported CAN bus functions, see [[]].


== STorM32 Link ==


A serial/CAN bus connection can be used to transfer dedicated data from the flight controller to the STorM32 controller, which helps in achieving better stabilization, and hence better videos. For instance, yaw drift can be corrected, horizon shifts in high-speed turns removed, or smoother pans achieved. This set of functions is called the [[STorM32-Link]].
-->

Latest revision as of 11:53, 13 January 2023

The STorM32 board provides many user features. Many of them can be activated or controlled by an input signal, and are accessible as so-called functions (see Inputs and Functions). Other features are accessible via specific parameter fields, or the [GUI:Tools] menu.

Second IMU Support

One of the major features of the STorM32 controller is its support of a second imu, providing unmatched performance figures.

For a detailed account see the article on Using a 2nd IMU.

Lipo Saver

The parameter Low Voltage Limit in the [GUI:Main] tab allows to activate a lipo saver. When the battery voltage falls below the specified voltage per cell, the motors are disabled to minimize current draw. This condition is signaled also by the fast blinking green and red led. The board needs to be re-powered or reset to resume normal operation.

Comment: Lipo batteries may be safely discharged down to 3.0 V/cell, under load.

Comment: The lipo cell number is determined automatically by the firmware when a battery is connected to the board. In that calculation the maximum cell voltage is assumed to be 4.2 V. Connecting discharged batteries may lead to incorrect cell number determination. Also, using cells with maximal cell voltage very different from 4.2 V may confuse the mechanism.

Comment: The voltage can be calibrated by adjusting the ADC Calibration parameter in the [GUI:Expert Tool] window.

Voltage Correction

The parameter Voltage Correction in the [GUI:Main] tab allows to activate the voltage correction mechanism.

This mechanism attempts to compensate the effects of a (slowly) varying battery voltage on the PID controller tuning. It does it by modifying the actual motor power. i.e. Vmax values proportionally to the voltage change. The proportionality factor is given by the parameter Voltage Correction. For instance, with a Voltage Correction of 100%, a drop in the battery voltage by 25% leads to an increase of the actually used Vmax value by 25%. With a Voltage Correction of 50%, a voltage drop by 25% leads to a 12.5% increase in Vmax, and so on.

The mechanism can significantly reduce the dependence of the gimbal performance on the battery voltage, compensating for the slow voltage drop with time when running from a battery. It is not designed to handle short-time power burst due to e.g. sudden aggressive flight maneuvers. It also cannot accomplish what could be achieved with a truly constant (regulated) voltage.

Comment: The voltage can be calibrated by adjusting the ADC Calibration parameter in the [GUI:Expert Tool] window.

Beeps

The parameter Beep with Motors in the [GUI:Setup] tab allows to activate the emission of beeps by the motors upon certain events. Two settings are available:

  • “basic”
  • “full”

Comment: The beeps are audible only when the motors are enabled. Hence, beeps are e.g. not heard when the board is powered only by the USB.

Standby

This function can be activated and its trigger source be specified by the parameter Standby in the [GUI:Functions] tab.

When in normal operation, it will disable the motors. When in standby mode, it will enable the motors and do a quick relevel. It will not go through the full initialization process and e.g. will not do a gyro calibration. Hence the standby function allows to quickly resume operation. It also means however that if the camera position has been heavily changed or the system has been put into other unfavorable conditions, that the relevel may fail.

For handheld gimbals it is suggested to use the fast startup mode by setting Startup Mode to “fast” in the [GUI:Setup] tab. In this mode, the gyro calibration is also skipped but it reduces environment limitations and the gimbal is operational a few seconds faster. Before resuming from standby, user should check that the camera is aligned properly with respect to the gimbal support; it should point forward to within few degrees. This operation mode is only suitable for taking short videos. For taking long videos a good gyro calibration is unavoidable.

Re-center Camera

This function can be activated and its trigger source be specified by the parameter Re-center Camera in the [GUI:Functions] tab.

It will recenter the camera, i.e. will undo any change in camera position due to a manual control signal. For the yaw axis, it does not undo the cumulative center position changes when switching between hold and pan mode.

Camera Remote Control

The STorM32 provides dedicated and rich possibilities to control the operation of the camera.

This function provides a remote control of the shutter and video functions of the camera, but also unprecedented features going far beyond these basic operations.

For instance, the NT Camera concept, available via NT IMU modules, provides a much richer set of options for controlling the camera, and increases the range of supported cameras to models like the Gitup Git2, Runcam Split or GoPro Hero5.

For more details, please see the article NT Camera.

The STorM32 also has integrated dedicated MAVLink camera support, namely a full implementation of the MAVLink camera micro service, which in fact provides the coolest camera control features, see MAVLink Communication.

Pwm Out

This function needs to be enabled via the parameter Pwm Out Configuration in the [GUI:Setup] tab, and the PWM output format and frequency be specified. Then it can be activated and its trigger source be specified by the parameter Pwm Out Control in the [GUI:Functions] tab.

When activated the PWM signal is output on the pin RC-1. The input channel “Rc-1” yields zero value. The PWM signal is also output on a NT Camera module, if available.

The details of the signal and its behavior can be fine-tuned via these fields the [GUI:Functions] tab:

  • Pwm Out Mid
  • Pwm Out Min
  • Pwm Out Max
  • Pwm Out Speed Limit

Scripts

The innovative concept of on-board scripts, invented by the STorM32 project, allows to modify the controller's behavior and accomplish even complicated tasks.

For the details see the article on the STorM32 Scripts.

Some example script files (extension .scr) are available in the firmware folder, which should be sufficiently self-explanatory.

MAVLink

The STorM32 controller supports MAVLink. It in fact supports a rich set of MAVLink messages and features, as well as the MAVLink 2 protocol, and might be by far the most integrated MAVLink capable gimbal controller available. Moreover, it actually integrates two MAVLink components, called MAVLink Gimbal and MAVLink Camera.

For further information and details, please see the article MAVLink Communication.

The STorM32's MAVLink capabilities are exploited (to some extend, and possibly with some flaws) by the ArduPilot flight controllers. See also

NT Logger

The STorM32 controller supports real-time logging of quite many data onto micro SD cards, by attaching a NT Logger module to the NT bus.

For enabling and fine-adjusting the data logging, open the [GUI:Expert Tool] window, which is accessible via the [GUI:Tools] menu, and set the NT Logging parameter.

For the details see the article NT Data Logger.

STorM32 Link

A serial connection can be used to transfer dedicated data from the flight controller to the STorM32 controller in order to help it achieving better stabilization, and hence better videos. For instance, yaw drift can be corrected, horizon shifts in high-speed turns removed, or smoother pans achieved.

This set of functions is called the STorM32-Link, please see the article STorM32-Link.

Encoder

The STorM32 supports using encoders, which is then called T-STorM32.

For more details see the articles What is T-STorM32 about? and Getting Started with T-STorM32.

Prearm Checks

The STorM32 provides a mechanism to check various conditions at startup, and to check if they all have been passed or not. This is especially useful for flying vehicles.

For more details see the article Prearm Checks.

Filter

The STorM32 provides a filter section to filter the gyro, accelerometer, encoder, and motor control data, using low-pass filters and notch/band-cut filters.

For more details see the article Filters.

Servo Motor Mode

The STorM32 provides a servo motor mode, which comes in handy when the motor should be controlled but there should be no stabilization. The mode can also be used to realize robotics type application.