<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.olliw.eu/storm32bgc-v2-wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=OlliW</id>
	<title>STorM32-BGC Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.olliw.eu/storm32bgc-v2-wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=OlliW"/>
	<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/Special:Contributions/OlliW"/>
	<updated>2026-04-28T21:21:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Where_to_buy_STorM32_components&amp;diff=11922</id>
		<title>Where to buy STorM32 components</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Where_to_buy_STorM32_components&amp;diff=11922"/>
		<updated>2026-03-26T07:50:44Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&#039;&#039;This list of vendors is collected solely for your convenience! It is &#039;&#039;&#039;NOT&#039;&#039;&#039; an official seller list, nor implies any recommendation. The list may not be complete, the order of the listings is arbitrary, and vendors not mentioned are equally trustworthy.&#039;&#039;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Plug &amp;amp; Play STorM32 Gimbals ==&lt;br /&gt;
&lt;br /&gt;
[https://www.gohstanddesigns.com/ Gohstand Designs] used to sell 3-axis and 2-axis gimbals. They seem to be currently under revision. These gimbals use proprietary electronics, but are compatible with v3.3 firmware.&lt;br /&gt;
&lt;br /&gt;
* 3 Axis Gimbal: [https://www.gohstanddesigns.com/products/p/namaste-3axis-gimbal link]&lt;br /&gt;
* 2 Axis Gimbal: [https://www.gohstanddesigns.com/products/p/namaste-2axis-gimbal link]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== v4.1 STorM32 Board == &lt;br /&gt;
&lt;br /&gt;
The v4.1 STorM32 board has been designed by Krattworks, and they make it available for purchase upon direct contact. It is fully compatible with the official firmware.&lt;br /&gt;
&lt;br /&gt;
Write to sales@krattworks.com, they will respond and send you as many boards as you need.&lt;br /&gt;
&lt;br /&gt;
(see https://www.rcgroups.com/forums/showpost.php?p=52740843&amp;amp;postcount=15419)&lt;br /&gt;
&lt;br /&gt;
== v4.1 STorM32 Board, NT Modules ==&lt;br /&gt;
&lt;br /&gt;
link: https://www.gordiansystems.nl/&lt;br /&gt;
&lt;br /&gt;
== ENSYS NT Modules == &lt;br /&gt;
&lt;br /&gt;
ENSYS provides a selection of proprietary NT modules, including NT IMU modules and NT Motor modules. Their offers and the product availability vary, so one needs to check their web page to know what is available. The ENSYS NT modules are mostly based on propietary designs, and use propietary firmwares.&lt;br /&gt;
&lt;br /&gt;
link: http://www.ensys.lt/&lt;br /&gt;
&lt;br /&gt;
== NT IMU based on STM32G4 ==&lt;br /&gt;
&lt;br /&gt;
Rcgroups user @jpou has designed NT IMU modules based on the v4 design, and put them up for sale. The design is a modified version of the official v4 design, andt is fully compatible with the official firmware.&lt;br /&gt;
&lt;br /&gt;
link: https://www.rcgroups.com/forums/showpost.php?p=52887733&amp;amp;postcount=15483&lt;br /&gt;
&lt;br /&gt;
== v1.x Boards ==&lt;br /&gt;
&lt;br /&gt;
The v1.3 STorM32 boards or STorM32 gimbals using the v1.3 board are still available from Chinese sites such as aliexpress or on ebay. These offers generally use I2C IMUs and are thus not compatible with the latest firmware, but need to run v0.96 firmware.&lt;br /&gt;
&lt;br /&gt;
* [https://www.ebay.com/sch/i.html?_from=R40&amp;amp;_trksid=p2380057.m570.l1313.TR11.TRC1.A0.H0.Xstorm32.TRS0&amp;amp;_nkw=storm32&amp;amp;_sacat=0 ebay]&lt;br /&gt;
* [http://www.aliexpress.com/wholesale?catId=0&amp;amp;initiative_id=SB_20150517161817&amp;amp;isPremium=y&amp;amp;SearchText=storm32 AliExpress]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Yaw&amp;diff=11921</id>
		<title>Yaw</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Yaw&amp;diff=11921"/>
		<updated>2026-01-23T12:29:09Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The yaw angle is a pretty difficult topic for gimbals which are based on 6DOF MEMS inertial sensors (gyroscope, accelerometer). This page aims at providing some understanding of the challenges and how the STorM32 controller handles yaw.&lt;br /&gt;
&lt;br /&gt;
The fundamental issue with these sensors is that yaw cannot be measured in absolute terms (e.g. with respect to North) and that moreover the yaw angle drifts quite significantly with time (typically several degrees per minute). This is in striking contrast to the pitch and roll angle which using the accelerometers can be determined with respect to the gravitation axis. &lt;br /&gt;
&lt;br /&gt;
Fundamentally, due to the limitations set by the available sensors, the STorM32 controller has no notion of an absolute yaw, in the sense that yaw could be referenced to a specific direction, like North (aka yaw in earth frame, or absolute yaw) or the gimbal forward orientation (aka yaw in vehicle frame, or relative yaw). Accordingly, it uses what one may call a &#039;&#039;&#039;&#039;&#039;synthetic yaw reference&#039;&#039;&#039;&#039;&#039;. The STorM32 controller tries its best to adjust the yaw reference such that the reported yaw angle may make sense to a user, but this very much depends on the operation conditions, and depending on the particular operation condition and the pervious history it is more or less successful in achieving this. However, fundamentally, the yaw reference wanders with time, and along with it does the reported yaw angle.&lt;br /&gt;
&lt;br /&gt;
For instance, the yaw angle shown in the GUI&#039;s DataDisplay can drift substantially, while the camera itself may not move at all. This by itself is not worrysome as it only shows that for the current operation condition the synthetic yaw reference can not be maintained to a constant value but wanders. Unfortunately, the displayed yaw angle may also drift due to a actual malfunction, like an exessively drifting gyro sensor or incorrect IMU orientation, and it is not always easy to distinguish the root cause.&lt;br /&gt;
&lt;br /&gt;
In order to produce a yaw angle which is aligned with the gimbal forward orientation, the STorM32 tries as best as it can to make use of its knowledge of the gimbal motor positions, but this also depends very much on the operation conditions and in addition on the gimbal construction (no encoders and no 2nd IMU, no encoders with 2nd IMU, with encoders). Obviously, an encodered gimbal provides the best information on the motor positions while a gimbal with no encoders and unpowered motors cannot provide any information.&lt;br /&gt;
&lt;br /&gt;
The situation improves substantially if STorM32-Link is available. Then the STorM32 controller does know the orientation of the gimbal base in absolute terms, and can adjust its synthetic yaw reference by using the motor positions (as far as these are known, see previous paragraph), such as to achieve a synthetic yaw reference which has a fixed relation to the North direction. However, obviously, the success of this approach depends on the accuracy of the yaw angle provided by STorM32-Link. Providing an accurate yaw angle it thus crucial, but can be difficult to achieve. &lt;br /&gt;
&lt;br /&gt;
The STorM32 controller provides several means to read out a yaw angle, like serial commands or MAVLink messages, and what is reported as yaw angle depends on the particular method and operation condition. In some cases it reports the yaw angle with reference to its synthetic yaw reference, in other cases it reports its best guestimate for the relative yaw angle, and if the STorM32-Link is available it also can provide absolute yaw angles. &lt;br /&gt;
&lt;br /&gt;
This can be admittedly confusing to the user, but this page hopefully helps at least insofar as to better understand why it is that confusing.&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Yaw&amp;diff=11920</id>
		<title>Yaw</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Yaw&amp;diff=11920"/>
		<updated>2026-01-23T12:22:19Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The yaw angle is a pretty difficult topic for gimbals which are based on 6DOF MEMS inertial sensors (gyroscope, accelerometer). This page aims at providing some understanding of the challenges and how the STorM32 controller handles yaw.&lt;br /&gt;
&lt;br /&gt;
The fundamental issue with such a gimbal setup is that yaw cannot be measured in absolute terms (e.g. with respect to North) and that moreover the yaw angle drifts quite significantly with time (typically several degrees per minute). This is in striking contrast to the pitch and roll angle which using the accelerometers can be determined with respect to the gravitation axis. &lt;br /&gt;
&lt;br /&gt;
Fundamentally, due to the limitations set by the available sensors, the STorM32 controller has no notion of an absolute yaw, in the sense that yaw could be referenced to a specific direction, like North (aka yaw in earth frame, or absolute yaw) or the gimbal forward orientation (aka yaw in vehicle frame, or relative yaw). Accordingly, it uses what one may call a &#039;&#039;&#039;&#039;&#039;synthetic yaw reference&#039;&#039;&#039;&#039;&#039;. The STorM32 controller tries its best to adjust the yaw reference such that the reported yaw angle may make sense to a user, but this very much depends on the operation conditions, and depending on the particular operation condition and the pervious history it is more or less successful in achieving this. However, fundamentally, the yaw reference wanders with time, and along with it does the reported yaw angle.&lt;br /&gt;
&lt;br /&gt;
For instance, the yaw angle shown in the GUI&#039;s DataDisplay can drift substantially, while the camera itself may not move at all. This by itself is not worrysome as it only shows that for the current operation condition the synthetic yaw reference can not be maintained to a constant value but wanders. Unfortunately, the displayed yaw angle may also drift due to a malfunction, like an exessively drifting gyro sensor or incorrect IMU orientation, and it is not always easy to distinguish the root cause.&lt;br /&gt;
&lt;br /&gt;
In order to produce a yaw angle which is aligned with the gimbal forward orientation, the STorM32 tries as best as it can to make use of its knowledge of the gimbal motor positions, but this also depends very much on the operation conditions and in addition on the gimbal construction (no encoders and no 2nd IMU, no encoders with 2nd IMU, with encoders). Obviously, an encodered gimbal provides the best information on the motor positions while a gimbal with no encoders and unpowered motors cannot provide any information.&lt;br /&gt;
&lt;br /&gt;
The situation improves substantially if the STorM32-Link is available. Then the STorM32 controller does know the orientation of the gimbal base in absolute terms, and can adjust its synthetic yaw reference by using the motor positions (as far as these are known, see previous paragraph), such as to achieve a synthetic yaw reference which has a fixed relation to the North direction. However, obviously, if this works well or not depends on how accurate the yaw angle is, which is provided by the STorM32-Link. So, it is important to provide an accurate yaw angle, which can be difficult to achieve. &lt;br /&gt;
&lt;br /&gt;
The STorM32 controller provides several means to read out a yaw angle, like serial commands or MAVLink messages, and what is reported as yaw angle depends on the particular method and operation condition. In some cases it reports the yaw angle with reference to its synthetic yaw reference, in other cases it reports its best guestimate for the relative yaw angle, and if the STorM32-Link is available it also can provide absolute yaw angles. &lt;br /&gt;
&lt;br /&gt;
This can be admittedly confusing to the user, but this page hopefully helps at least insofar as to better understand why it is that confusing.&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Yaw&amp;diff=11919</id>
		<title>Yaw</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Yaw&amp;diff=11919"/>
		<updated>2026-01-23T12:21:42Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The yaw angle is a pretty difficult topic for gimbals which are based on 6DOF MEMS inertial sensors (gyroscope, accelerometer). This page aims at providing at least some insight into the implications and how the STorM32 controller handles yaw.&lt;br /&gt;
&lt;br /&gt;
The fundamental issue with such a gimbal setup is that yaw cannot be measured in absolute terms (e.g. with respect to North) and that moreover the yaw angle drifts quite significantly with time (typically several degrees per minute). This is in striking contrast to the pitch and roll angle which using the accelerometers can be determined with respect to the gravitation axis. &lt;br /&gt;
&lt;br /&gt;
Fundamentally, due to the limitations set by the available sensors, the STorM32 controller has no notion of an absolute yaw, in the sense that yaw could be referenced to a specific direction, like North (aka yaw in earth frame, or absolute yaw) or the gimbal forward orientation (aka yaw in vehicle frame, or relative yaw). Accordingly, it uses what one may call a &#039;&#039;&#039;&#039;&#039;synthetic yaw reference&#039;&#039;&#039;&#039;&#039;. The STorM32 controller tries its best to adjust the yaw reference such that the reported yaw angle may make sense to a user, but this very much depends on the operation conditions, and depending on the particular operation condition and the pervious history it is more or less successful in achieving this. However, fundamentally, the yaw reference wanders with time, and along with it does the reported yaw angle.&lt;br /&gt;
&lt;br /&gt;
For instance, the yaw angle shown in the GUI&#039;s DataDisplay can drift substantially, while the camera itself may not move at all. This by itself is not worrysome as it only shows that for the current operation condition the synthetic yaw reference can not be maintained to a constant value but wanders. Unfortunately, the displayed yaw angle may also drift due to a malfunction, like an exessively drifting gyro sensor or incorrect IMU orientation, and it is not always easy to distinguish the root cause.&lt;br /&gt;
&lt;br /&gt;
In order to produce a yaw angle which is aligned with the gimbal forward orientation, the STorM32 tries as best as it can to make use of its knowledge of the gimbal motor positions, but this also depends very much on the operation conditions and in addition on the gimbal construction (no encoders and no 2nd IMU, no encoders with 2nd IMU, with encoders). Obviously, an encodered gimbal provides the best information on the motor positions while a gimbal with no encoders and unpowered motors cannot provide any information.&lt;br /&gt;
&lt;br /&gt;
The situation improves substantially if the STorM32-Link is available. Then the STorM32 controller does know the orientation of the gimbal base in absolute terms, and can adjust its synthetic yaw reference by using the motor positions (as far as these are known, see previous paragraph), such as to achieve a synthetic yaw reference which has a fixed relation to the North direction. However, obviously, if this works well or not depends on how accurate the yaw angle is, which is provided by the STorM32-Link. So, it is important to provide an accurate yaw angle, which can be difficult to achieve. &lt;br /&gt;
&lt;br /&gt;
The STorM32 controller provides several means to read out a yaw angle, like serial commands or MAVLink messages, and what is reported as yaw angle depends on the particular method and operation condition. In some cases it reports the yaw angle with reference to its synthetic yaw reference, in other cases it reports its best guestimate for the relative yaw angle, and if the STorM32-Link is available it also can provide absolute yaw angles. &lt;br /&gt;
&lt;br /&gt;
This can be admittedly confusing to the user, but this page hopefully helps at least insofar as to better understand why it is that confusing.&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Parameters&amp;diff=11918</id>
		<title>STorM32 Parameters</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Parameters&amp;diff=11918"/>
		<updated>2025-11-30T10:48:32Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* Expert Tool Window */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:88%&amp;quot;&amp;gt;&#039;&#039;The information on this page refers to firmware v2.72e.&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of all STorM32 parameters, and some GUI features, with brief explanations and/or links to more comprehensive articles.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The parameters are displayed and enabled in the GUI depending on whether the STorM32 gimbal is in &amp;quot;&#039;&#039;&#039;Conventional Mode&#039;&#039;&#039;&amp;quot; or &amp;quot;&#039;&#039;&#039;T-STorM32 Mode&#039;&#039;&#039;&amp;quot;. The active mode can be inferred from the GUI&#039;s title, and is updated to the correct current mode upon a connection to a STorM32 controller.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dashboard Tab ==&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Change Name}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which allows you to change the name of the board.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Share Settings}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which presents all parameters comprehensively. Taking a screen shot by pressing one of the &amp;quot;Save Screenshot&amp;quot; buttons provides a useful method for sharing parameter settings.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Check for Updates}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which connects to the STorM32 github repository to check if a new firmware is available.&lt;br /&gt;
&lt;br /&gt;
== PID Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Gyro LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the raw gyro data. Can help to avoid vibrations and/or reach higher PID values. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 FeedForward LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the attitude data of the 2nd IMU before it enters the feedforward channel in the PID controller. Effective only when the 2nd IMU is enabled, i.e., when {{PARAMNAME|Imu2 Configuration}} is not {{PARAMVALUE|off}}. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch P}}, {{PARAMNAMEDEF|Roll P}}, {{PARAMNAMEDEF|Yaw P}}: &amp;lt;br&amp;gt; Proportional term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch I}}, {{PARAMNAMEDEF|Roll I}}, {{PARAMNAMEDEF|Yaw I}}: &amp;lt;br&amp;gt; Integral term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch D}}, {{PARAMNAMEDEF|Roll D}}, {{PARAMNAMEDEF|Yaw D}}: &amp;lt;br&amp;gt; Derivative term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Vmax}}, {{PARAMNAMEDEF|Roll Motor Vmax}}, {{PARAMNAMEDEF|Yaw Motor Vmax}}: &amp;lt;br&amp;gt; Maximal average voltage for the pitch, roll or yaw motor, respectively. Range is 0 - 255. See also [[Tuning_Recipe#Setting_Motor_Vmax|Tuning Recipe: Setting Motor Vmax]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Voltage Correction}}: &amp;lt;br&amp;gt; Attempts to compensate the effects of a (slowly) varying battery voltage on the PID controller tuning, see [[Advanced_Functions#Voltage_Correction|Advanced Functions: Voltage Correction]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Controller}}: &amp;lt;br&amp;gt; Enables the model-based controller. The settings {{PARAMVALUE|default}} and {{PARAMVALUE|roll mixing}} are available, where the first corresponds to the &amp;quot;old&amp;quot; behavior, and the second enables improved roll mixing.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Use simplified PID tuning}}: &amp;lt;br&amp;gt; Toggles between the standard PID tuning, in which the P, I D values are adjusted, and a simplified mechanism, in which tuning is achieved by only two parameters, called Damping and Stability.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Gyro LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the raw gyro data. Can help to avoid vibrations and/or reach higher PID values. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch P}}, {{PARAMNAMEDEF|Foc Roll P}}, {{PARAMNAMEDEF|Foc Yaw P}}: &amp;lt;br&amp;gt; Proportional term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch I}}, {{PARAMNAMEDEF|Foc Roll I}}, {{PARAMNAMEDEF|Foc Yaw I}}: &amp;lt;br&amp;gt; Integral term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch D}}, {{PARAMNAMEDEF|Foc Roll D}}, {{PARAMNAMEDEF|Foc Yaw D}}: &amp;lt;br&amp;gt; Derivative term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch K}}, {{PARAMNAMEDEF|Foc Roll K}}, {{PARAMNAMEDEF|Foc Yaw K}}: &amp;lt;br&amp;gt; Factor which multiplies the P, I, and D values.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Controller}}: &amp;lt;br&amp;gt; Enables the model-based controller. The setting {{PARAMVALUE|default}} corresponds to the &amp;quot;old&amp;quot; behavior.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|D Source}}: &amp;lt;br&amp;gt; The settings “default” and “gyro” are available. &amp;quot;gyro&amp;quot; enables the &amp;quot;new&amp;quot; lag-free and lower-noise controller D-term calculation. This setting is enabled per default. &amp;quot;default&amp;quot; enables the &amp;quot;old&amp;quot; method of D-term calculation. This parameter may be removed in upcoming firmwares.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Auto write PID changes}}:&amp;lt;br&amp;gt;&lt;br /&gt;
When checked, any change to the PID values (and only to the PID values) is written to the STorM32 board after ca. 1 sec.&lt;br /&gt;
&lt;br /&gt;
== Pan Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Pan}} tab are comprehensively described in the article [[Hold_versus_Pan_Mode|Hold versus pan Mode]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Mode Control}}: &amp;lt;br&amp;gt; Selects the input channel used for changing the pan mode. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Mode Default Setting}}, {{PARAMNAMEDEF|Pan Mode Setting #1}}, {{PARAMNAMEDEF|Pan Mode Setting #2}}, {{PARAMNAMEDEF|Pan Mode Setting #3}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the pan states for each axis, for each of the four possible states of the input channel.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan}}, {{PARAMNAMEDEF|Roll Pan}}, {{PARAMNAMEDEF|Yaw Pan}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan speed for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Deadband}}, {{PARAMNAMEDEF|Roll Pan Deadband}}, {{PARAMNAMEDEF|Yaw Pan Deadband}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan deadband for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Expo}}, {{PARAMNAMEDEF|Roll Pan Expo}}, {{PARAMNAMEDEF|Yaw Pan Expo}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan expo for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Method}}, {{PARAMNAMEDEF|Roll Pan Method}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan method for pitch and roll, respectively. Can be &amp;quot;normal&amp;quot; or &amp;quot;plane&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Yaw Pan Deadband LPF}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan deadband low-pass filter for the yaw axis.&lt;br /&gt;
&lt;br /&gt;
== Rc Inputs Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Rc Inputs}} tab are comprehensively described in the article [[Configure_the_RC_Input|Configure the RC Input]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Dead Band}}: &amp;lt;br&amp;gt; Sets a deadband around zero input, to suppress noise on the input. Effective for all three axes.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Hysteresis}}: &amp;lt;br&amp;gt; Sets a hysteresis to value changes, to suppress noise on the input.  Effective for all three axes.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Trim}}, {{PARAMNAMEDEF|Rc Roll Trim}}, {{PARAMNAMEDEF|Rc Yaw Trim}}: &amp;lt;br&amp;gt; Sets the mid position for teh pitch, roll and yaw axis, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch}}, {{PARAMNAMEDEF|Rc Roll}}, {{PARAMNAMEDEF|Rc Yaw}}: &amp;lt;br&amp;gt; Selects the input channel used for controlling the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Mode}}, {{PARAMNAMEDEF|Rc Roll Mode}}, {{PARAMNAMEDEF|Rc Yaw Mode}}: &amp;lt;br&amp;gt; Sets the mode for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Min}}, {{PARAMNAMEDEF|Rc Roll Min}}, {{PARAMNAMEDEF|Rc Yaw Min}}: &amp;lt;br&amp;gt; Sets the minimum angle for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Max}}, {{PARAMNAMEDEF|Rc Roll Max}}, {{PARAMNAMEDEF|Rc Yaw Max}}: &amp;lt;br&amp;gt; Sets the maximum angle for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Speed Limit}}, {{PARAMNAMEDEF|Rc Roll Speed Limit}}, {{PARAMNAMEDEF|Rc Yaw Speed Limit}}: &amp;lt;br&amp;gt; Sets the maximum speed for the pitch, roll, and yaw axis, respectively. A value of 0 disables the speed limiter (it is not fully deactivated, the speed limit is set to 100 deg/s).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Accel Limit}}, {{PARAMNAMEDEF|Rc Roll Accel Limit}}, {{PARAMNAMEDEF|Rc Yaw Accel Limit}}: &amp;lt;br&amp;gt;  Sets the maximum acceleration for the pitch, roll, and yaw axis, respectively. A value of 0 disables the acceleration limiter (it is not fully deactivated, a small limit remains).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Expo}}, {{PARAMNAMEDEF|Rc Roll Expo}}, {{PARAMNAMEDEF|Rc Yaw Expo}}: &amp;lt;br&amp;gt; Sets the expo for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Auto Trim}}:&amp;lt;br&amp;gt; Reads the current input values and adjusts the trim values such as to make them zero.&lt;br /&gt;
&lt;br /&gt;
== Functions Tab ==&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Re-center Camera}}, {{PARAMNAMEDEF|Re-center Camera Axes}}, {{PARAMNAMEDEF|Re-center Camera Mode}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Re-center_Camera|Advanced Functions: Re-center Camera]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Retract}}: &amp;lt;br&amp;gt; Puts the gimbal in retract mode.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Standby}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Standby|Advanced Functions: Standby]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Camera Control}}, {{PARAMNAMEDEF|Camera Control2}}, {{PARAMNAMEDEF|Camera Model}}, {{PARAMNAMEDEF|Camera Control Mode}}, {{PARAMNAMEDEF|Time Interval}}, {{PARAMNAMEDEF|Camera ComPort}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Camera_Remote_Control|Advanced Functions: Camera Remote Control]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pwm Out Control}}, {{PARAMNAMEDEF|Pwm Out Mid}}, {{PARAMNAMEDEF|Pwm Out Min}}, {{PARAMNAMEDEF|Pwm Out Max}}, {{PARAMNAMEDEF|Pwm Out Speed Limit}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Pwm_Out|Advanced Functions: Pwm Out]].&lt;br /&gt;
&lt;br /&gt;
== Scripts Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Scripts}} tab are comprehensively described in the article [[STorM32_Scripts|STorM32 Scripts]].&lt;br /&gt;
&lt;br /&gt;
== Setup Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects how a 2nd IMU is used. See also [[Using a 2nd IMU]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Mode}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the startup algorithm. Can be set to {{PARAMVALUE|fast}} for invoking fast startup. For fast startup to be activated, additional conditions have to be met: IMU2 must be present, the motor directions and positions must have been configured, and IMU1 and IMU2 must have be calibrated. The gimbal should also have been tuned.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Delay}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets a startup delay time.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Prearm Checks}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Bitmask to enable various pre-arming checks, i.e., conditions which need to be fulfilled before the STroM32 goes into NORMAL mode. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Virtual Channel Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the physical source for the {{PARAMVALUE|Virtual-1}}, ..., {{PARAMVALUE|Virtual-16}} input values. See [[Inputs and Functions]] for understanding the STorM32&#039;s concept of inputs, and [[Configure_the_RC_Input#Wiring_for_SUM-PPM_Signals|Configure the RC Input: Wiring for SUM-PPM Signals]] and [[Configure_the_RC_Input#Wiring_for_Digital_Signals|Configure the RC Input: Wiring for Digital Signals]] for typical use cases.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pwm Out Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Enables the pwm out function, see [[Advanced_Functions#Pwm_Out|Advanced Functions: Pwm Out]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Offset}}, {{PARAMNAMEDEF|Rc Roll Offset}}, {{PARAMNAMEDEF|Rc Yaw Offset}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Adds a permanent offset to the camera orientation. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|UartX Configuration}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Reconfigures the RC-0, RC-1 pins to work as UART, depending on the setting. Allows to enable the OLed display support on pin RC-1 (see [[Advanced_Functions#OLED_Display|Advanced Functions: OLED Display]]) or enables the UartX serial for the [[NT_Camera|NT Camera]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Low Voltage Limit}}: &amp;lt;br&amp;gt; Voltage level at which the lipo-saver function is triggered, see [[Advanced_Functions#Lipo_Saver|Advanced Functions: Lipo Saver]]. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Beep with Motors}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Enables the emission of beeps by the motors, see [[Advanced_Functions#Beeps|Advanced Functions: Beeps]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|NT Logging}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Adjusts which parameters are logged, see [[NT_Data_Logging#GUI_Settings|NT Data Logging: GUI Settings]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Usage}}, {{PARAMNAMEDEF|Roll Motor Usage}}, {{PARAMNAMEDEF|Yaw Motor Usage}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the operation mode of the pitch, roll, or yaw motor, respectively. When {{PARAMVALUE|disabled}} is selected, the motor does not receive any power.&lt;br /&gt;
&lt;br /&gt;
== Gimbal Configuration Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Poles}}, {{PARAMNAMEDEF|Roll Motor Poles}}, {{PARAMNAMEDEF|Yaw Motor Poles}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Number of magnet poles of the pitch, roll or yaw motor, respectively. Range is 8 - 42.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Direction}}, {{PARAMNAMEDEF|Roll Motor Direction}}, {{PARAMNAMEDEF|Yaw Motor Direction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Rotation direction of the pitch, roll or yaw motor, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Startup Motor Pos}}, {{PARAMNAMEDEF|Roll Startup Motor Pos}}, {{PARAMNAMEDEF|Yaw Startup Motor Pos}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Orientation of the pitch, roll or yaw motor at power up, respectively.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch Motor Direction}}, {{PARAMNAMEDEF|Foc Roll Motor Direction}}, {{PARAMNAMEDEF|Foc Yaw Motor Direction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Rotation direction of the pitch, roll or yaw motor, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch Zero Pos}}, {{PARAMNAMEDEF|Foc Roll Zero Pos}}, {{PARAMNAMEDEF|Foc Yaw Zero Pos}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Motor position at zero Imu angle for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu Orientation}}, {{PARAMNAMEDEF|Imu2 Orientation}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Orientation number of the IMU1 or IMU2, respectively.  &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Offset}}, {{PARAMNAMEDEF|Roll Offset}}, {{PARAMNAMEDEF|Yaw Offset}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Coefficients to correct for slight inaccuracies in the calibration of the IMU1 accelerometer.&lt;br /&gt;
&lt;br /&gt;
== Interfaces Tool Window ==&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Mavlink Gimbal}}, {{PARAMNAMEDEF|Mavlink Gimbal Stream}}, {{PARAMNAMEDEF|Mavlink ComPort}}, {{PARAMNAMEDEF|Mavlink System ID}}, {{PARAMNAMEDEF|Mavlink Camera}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for handling Mavlink messages, see [[MAVLink Communication]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|STorM32Link Configuration}}&amp;lt;!--, {{PARAMNAMEDEF|STorM32Link AHRS Factor}}--&amp;gt;:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for handling the [[STorM32-Link|STorM32 Link]]. The setting {{PARAMNAMEDEF|STorM32Link Configuration}} = {{PARAMVALUE|yaw drift comp.}} enables the yaw drift compensation, but not horizon drift compensation. The setting {{PARAMNAMEDEF|STorM32Link Configuration}} = {{PARAMVALUE|v1}} enables both the yaw drift compensation and horizon drift compensation. For further info on the STorM32-Link see the article [[STorM32-Link]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Uart Baudrate}}, {{PARAMNAMEDEF|Uart2 Baudrate}}, {{PARAMNAMEDEF|Usb Baudrate}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Baudrates used for the UART, USB, and UART2 ports. The default baudrates are 115200 bps.&lt;br /&gt;
&lt;br /&gt;
== Expert Tool Window ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Motor Mapping}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to change the assignment of the pitch, roll and yaw motors to the ports MOT0, MOT1, MOT2. The default assignment is pitch = MOT0, roll = MOT1, yaw = MOT2.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 Rotation}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to configure for different mounting options of the 2nd IMU. See also [[Using a 2nd IMU]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Flip Gimbal Control}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to use an input signal to switch the configuration of the gimbal between &amp;quot;down-hanging&amp;quot; and &amp;quot;up-standing&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu Mapping}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to swap IMU1 and IMU2 (this swaps NT IMU1 and NT IMU2, not the on-board IMU, which always will be IMU2 if used) .&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Lipo Cells}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the number of cells of the battery. Default is {{PARAMVALUE|auto}}, which determines the number of cells from the battery voltage at power up.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Lipo Voltage per Cell}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Full charge voltage of a battery cell. Default is 4.20 V, appropriate for a LIPO.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|ADC Calibration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Calibration constant for voltage measurement. The default value {{PARAMVALUE|1550}} is slightly below the theoretically correct value of 1581.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu AHRS}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Adjusts how strongly the accelerometer data are included in the data fusing for the attitude estimation. The shorter the time the stronger the accelerometer data are weighted (0 = accelerometer only, 20 = gyro only).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Gyro Calibration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the gyro calibration at startup. Default is {{PARAMVALUE|normal}}.&lt;br /&gt;
&lt;br /&gt;
==== The following parameters should be set with care. Normally, there should be no reason to modify them. ====&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc LPF}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Digital low pass filter applied to the raw accelerometer data. It also affects the behavior of the AHRS.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Adc LPF}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Digital low pass filter applied to the Rc Input values. Might be helpful for very noisy RC transmitters.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Hold Transition Time}}, {{PARAMNAMEDEF|Pan Speed Limit}}, {{PARAMNAMEDEF|Pan Accel Limit}}: &amp;lt;br&amp;gt;&lt;br /&gt;
These parameters are related to the pan-to-hold and hold-to-pan transition behavior. The parameter {{PARAMNAMEDEF|Pan Hold Transition Time}} determines for how long a trajectory filter is applied to smooth the transition. The two limit parameters determine the speed and acceleration limits of the trajectory filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Emergency}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Sets the level of the emergency detection mechanism.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Compensation Method}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Selects the algorithm which is used for fusing the accelerometer and gyro data. Can be {{PARAMVALUE|standard}} or {{PARAMVALUE|advanced}}. The parameter affects the AHRS, and should be set with understanding. These posts might be useful: [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29173129], [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29176384], [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29176832].&lt;br /&gt;
&lt;br /&gt;
== Filter Tool Window ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Filter}} tab allow to set notch/band-pass filters.&lt;br /&gt;
&lt;br /&gt;
* {{PARAMNAME|Filter1 Source}}, {{PARAMNAME|Filter2 Source}}, {{PARAMNAME|Filter3 Source}}: Selects the filter source. &lt;br /&gt;
* {{PARAMNAME|Filter1 Center Frequency}}, {{PARAMNAME|Filter2 Center Frequency}}, {{PARAMNAME|Filter3 Center Frequency}}: Selects the center or cut-off frequency of the filter.&lt;br /&gt;
* {{PARAMNAME|Filter1 Bandwidth}}, {{PARAMNAME|Filter2 Bandwidth}}, {{PARAMNAME|Filter3 Bandwidth}}: Selects the bandwidth for notch or band-cut filters.&lt;br /&gt;
* {{PARAMNAME|Filter1 Attenuation}}, {{PARAMNAME|Filter2 Attenuation}}, {{PARAMNAME|Filter3 Attenuation}}: Selects the attenuation of the band-cut filters. {{PARAMVALUE|inf}} results in a notch filter.&lt;br /&gt;
&lt;br /&gt;
== Gimbal Mechanics Tool Window ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Gimbal Mechanics}} tab allow to set mechanical gimbal limits. They are experimental.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Yaw Motor Limit}}:&amp;lt;br&amp;gt; Limit for yaw axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Setpoint Speed Limit}}, {{PARAMNAMEDEF|Setpoint Accel Limit}}:&amp;lt;br&amp;gt; Speed and acceleration limits for changes of the setpoint.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Limit Min}}, {{PARAMNAMEDEF|Pitch Motor Limit Max}}, {{PARAMNAMEDEF|Roll Motor Limit}}:&amp;lt;br&amp;gt; Limits for pitch and roll axes.&lt;br /&gt;
&lt;br /&gt;
== Gimbal Model Tool Window ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Gimbal Model}} tab are comprehensively described in the article [[Model-based_Control|Model-based Control]].&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|T1 Pitch}}, {{PARAMNAMEDEF|T1 Roll}}, {{PARAMNAMEDEF|T1 Yaw}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Relative moments of inertia of the camera along the pitch, roll and yaw directions.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|T2 Roll}}, {{PARAMNAMEDEF|T2 Yaw}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Relative moments of inertia of the roll arm along the roll and yaw directions.&lt;br /&gt;
&lt;br /&gt;
== Servo Tool Window ==&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Pitch P}}, {{PARAMNAMEDEF|Servo Pitch I}}, {{PARAMNAMEDEF|Servo Pitch D}}, {{PARAMNAMEDEF|Servo Pitch DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the pitch axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Roll P}}, {{PARAMNAMEDEF|Servo Roll I}}, {{PARAMNAMEDEF|Servo Roll D}}, {{PARAMNAMEDEF|Servo Roll DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the roll axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Yaw P}}, {{PARAMNAMEDEF|Servo Yaw I}}, {{PARAMNAMEDEF|Servo Yaw D}}, {{PARAMNAMEDEF|Servo Yaw DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the yaw axis.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{PARAMNAMEDEF|Imu Acc Threshold}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Maximal residual acceleration up to which the accelerometer data are taken into account in the attitude estimation. This parameter is effective only when {{PARAMNAME|Acc Compensation Method}} is set to {{PARAMVALUE|standard}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Noise Level}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Residual acceleration up to which the accelerometer data are taken into account with maximal weight in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Threshold}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Maximal residual acceleration up to which the accelerometer data are taken into account in the attitude estimation with non-zero weight. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Vertical Weight}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Weight of the vertical residual acceleration in determining the weight of the accelerometer data in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Zentrifugal Correction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Weight of the centrifugal acceleration in determining the weight of the accelerometer data in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Recover Time}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Fall time for recovering from a reduced weight of the accelerometer data in the attitude estimation. The rise time is determined implicitly by the {{PARAMNAME|Acc LPF}} parameter value. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Parameters&amp;diff=11917</id>
		<title>STorM32 Parameters</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Parameters&amp;diff=11917"/>
		<updated>2025-11-30T10:46:35Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:88%&amp;quot;&amp;gt;&#039;&#039;The information on this page refers to firmware v2.72e.&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of all STorM32 parameters, and some GUI features, with brief explanations and/or links to more comprehensive articles.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The parameters are displayed and enabled in the GUI depending on whether the STorM32 gimbal is in &amp;quot;&#039;&#039;&#039;Conventional Mode&#039;&#039;&#039;&amp;quot; or &amp;quot;&#039;&#039;&#039;T-STorM32 Mode&#039;&#039;&#039;&amp;quot;. The active mode can be inferred from the GUI&#039;s title, and is updated to the correct current mode upon a connection to a STorM32 controller.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dashboard Tab ==&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Change Name}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which allows you to change the name of the board.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Share Settings}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which presents all parameters comprehensively. Taking a screen shot by pressing one of the &amp;quot;Save Screenshot&amp;quot; buttons provides a useful method for sharing parameter settings.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Check for Updates}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which connects to the STorM32 github repository to check if a new firmware is available.&lt;br /&gt;
&lt;br /&gt;
== PID Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Gyro LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the raw gyro data. Can help to avoid vibrations and/or reach higher PID values. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 FeedForward LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the attitude data of the 2nd IMU before it enters the feedforward channel in the PID controller. Effective only when the 2nd IMU is enabled, i.e., when {{PARAMNAME|Imu2 Configuration}} is not {{PARAMVALUE|off}}. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch P}}, {{PARAMNAMEDEF|Roll P}}, {{PARAMNAMEDEF|Yaw P}}: &amp;lt;br&amp;gt; Proportional term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch I}}, {{PARAMNAMEDEF|Roll I}}, {{PARAMNAMEDEF|Yaw I}}: &amp;lt;br&amp;gt; Integral term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch D}}, {{PARAMNAMEDEF|Roll D}}, {{PARAMNAMEDEF|Yaw D}}: &amp;lt;br&amp;gt; Derivative term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Vmax}}, {{PARAMNAMEDEF|Roll Motor Vmax}}, {{PARAMNAMEDEF|Yaw Motor Vmax}}: &amp;lt;br&amp;gt; Maximal average voltage for the pitch, roll or yaw motor, respectively. Range is 0 - 255. See also [[Tuning_Recipe#Setting_Motor_Vmax|Tuning Recipe: Setting Motor Vmax]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Voltage Correction}}: &amp;lt;br&amp;gt; Attempts to compensate the effects of a (slowly) varying battery voltage on the PID controller tuning, see [[Advanced_Functions#Voltage_Correction|Advanced Functions: Voltage Correction]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Controller}}: &amp;lt;br&amp;gt; Enables the model-based controller. The settings {{PARAMVALUE|default}} and {{PARAMVALUE|roll mixing}} are available, where the first corresponds to the &amp;quot;old&amp;quot; behavior, and the second enables improved roll mixing.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Use simplified PID tuning}}: &amp;lt;br&amp;gt; Toggles between the standard PID tuning, in which the P, I D values are adjusted, and a simplified mechanism, in which tuning is achieved by only two parameters, called Damping and Stability.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Gyro LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the raw gyro data. Can help to avoid vibrations and/or reach higher PID values. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch P}}, {{PARAMNAMEDEF|Foc Roll P}}, {{PARAMNAMEDEF|Foc Yaw P}}: &amp;lt;br&amp;gt; Proportional term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch I}}, {{PARAMNAMEDEF|Foc Roll I}}, {{PARAMNAMEDEF|Foc Yaw I}}: &amp;lt;br&amp;gt; Integral term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch D}}, {{PARAMNAMEDEF|Foc Roll D}}, {{PARAMNAMEDEF|Foc Yaw D}}: &amp;lt;br&amp;gt; Derivative term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch K}}, {{PARAMNAMEDEF|Foc Roll K}}, {{PARAMNAMEDEF|Foc Yaw K}}: &amp;lt;br&amp;gt; Factor which multiplies the P, I, and D values.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Controller}}: &amp;lt;br&amp;gt; Enables the model-based controller. The setting {{PARAMVALUE|default}} corresponds to the &amp;quot;old&amp;quot; behavior.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|D Source}}: &amp;lt;br&amp;gt; The settings “default” and “gyro” are available. &amp;quot;gyro&amp;quot; enables the &amp;quot;new&amp;quot; lag-free and lower-noise controller D-term calculation. This setting is enabled per default. &amp;quot;default&amp;quot; enables the &amp;quot;old&amp;quot; method of D-term calculation. This parameter may be removed in upcoming firmwares.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Auto write PID changes}}:&amp;lt;br&amp;gt;&lt;br /&gt;
When checked, any change to the PID values (and only to the PID values) is written to the STorM32 board after ca. 1 sec.&lt;br /&gt;
&lt;br /&gt;
== Pan Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Pan}} tab are comprehensively described in the article [[Hold_versus_Pan_Mode|Hold versus pan Mode]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Mode Control}}: &amp;lt;br&amp;gt; Selects the input channel used for changing the pan mode. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Mode Default Setting}}, {{PARAMNAMEDEF|Pan Mode Setting #1}}, {{PARAMNAMEDEF|Pan Mode Setting #2}}, {{PARAMNAMEDEF|Pan Mode Setting #3}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the pan states for each axis, for each of the four possible states of the input channel.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan}}, {{PARAMNAMEDEF|Roll Pan}}, {{PARAMNAMEDEF|Yaw Pan}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan speed for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Deadband}}, {{PARAMNAMEDEF|Roll Pan Deadband}}, {{PARAMNAMEDEF|Yaw Pan Deadband}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan deadband for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Expo}}, {{PARAMNAMEDEF|Roll Pan Expo}}, {{PARAMNAMEDEF|Yaw Pan Expo}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan expo for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Method}}, {{PARAMNAMEDEF|Roll Pan Method}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan method for pitch and roll, respectively. Can be &amp;quot;normal&amp;quot; or &amp;quot;plane&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Yaw Pan Deadband LPF}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan deadband low-pass filter for the yaw axis.&lt;br /&gt;
&lt;br /&gt;
== Rc Inputs Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Rc Inputs}} tab are comprehensively described in the article [[Configure_the_RC_Input|Configure the RC Input]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Dead Band}}: &amp;lt;br&amp;gt; Sets a deadband around zero input, to suppress noise on the input. Effective for all three axes.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Hysteresis}}: &amp;lt;br&amp;gt; Sets a hysteresis to value changes, to suppress noise on the input.  Effective for all three axes.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Trim}}, {{PARAMNAMEDEF|Rc Roll Trim}}, {{PARAMNAMEDEF|Rc Yaw Trim}}: &amp;lt;br&amp;gt; Sets the mid position for teh pitch, roll and yaw axis, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch}}, {{PARAMNAMEDEF|Rc Roll}}, {{PARAMNAMEDEF|Rc Yaw}}: &amp;lt;br&amp;gt; Selects the input channel used for controlling the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Mode}}, {{PARAMNAMEDEF|Rc Roll Mode}}, {{PARAMNAMEDEF|Rc Yaw Mode}}: &amp;lt;br&amp;gt; Sets the mode for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Min}}, {{PARAMNAMEDEF|Rc Roll Min}}, {{PARAMNAMEDEF|Rc Yaw Min}}: &amp;lt;br&amp;gt; Sets the minimum angle for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Max}}, {{PARAMNAMEDEF|Rc Roll Max}}, {{PARAMNAMEDEF|Rc Yaw Max}}: &amp;lt;br&amp;gt; Sets the maximum angle for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Speed Limit}}, {{PARAMNAMEDEF|Rc Roll Speed Limit}}, {{PARAMNAMEDEF|Rc Yaw Speed Limit}}: &amp;lt;br&amp;gt; Sets the maximum speed for the pitch, roll, and yaw axis, respectively. A value of 0 disables the speed limiter (it is not fully deactivated, the speed limit is set to 100 deg/s).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Accel Limit}}, {{PARAMNAMEDEF|Rc Roll Accel Limit}}, {{PARAMNAMEDEF|Rc Yaw Accel Limit}}: &amp;lt;br&amp;gt;  Sets the maximum acceleration for the pitch, roll, and yaw axis, respectively. A value of 0 disables the acceleration limiter (it is not fully deactivated, a small limit remains).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Expo}}, {{PARAMNAMEDEF|Rc Roll Expo}}, {{PARAMNAMEDEF|Rc Yaw Expo}}: &amp;lt;br&amp;gt; Sets the expo for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Auto Trim}}:&amp;lt;br&amp;gt; Reads the current input values and adjusts the trim values such as to make them zero.&lt;br /&gt;
&lt;br /&gt;
== Functions Tab ==&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Re-center Camera}}, {{PARAMNAMEDEF|Re-center Camera Axes}}, {{PARAMNAMEDEF|Re-center Camera Mode}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Re-center_Camera|Advanced Functions: Re-center Camera]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Retract}}: &amp;lt;br&amp;gt; Puts the gimbal in retract mode.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Standby}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Standby|Advanced Functions: Standby]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Camera Control}}, {{PARAMNAMEDEF|Camera Control2}}, {{PARAMNAMEDEF|Camera Model}}, {{PARAMNAMEDEF|Camera Control Mode}}, {{PARAMNAMEDEF|Time Interval}}, {{PARAMNAMEDEF|Camera ComPort}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Camera_Remote_Control|Advanced Functions: Camera Remote Control]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pwm Out Control}}, {{PARAMNAMEDEF|Pwm Out Mid}}, {{PARAMNAMEDEF|Pwm Out Min}}, {{PARAMNAMEDEF|Pwm Out Max}}, {{PARAMNAMEDEF|Pwm Out Speed Limit}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Pwm_Out|Advanced Functions: Pwm Out]].&lt;br /&gt;
&lt;br /&gt;
== Scripts Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Scripts}} tab are comprehensively described in the article [[STorM32_Scripts|STorM32 Scripts]].&lt;br /&gt;
&lt;br /&gt;
== Setup Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects how a 2nd IMU is used. See also [[Using a 2nd IMU]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Mode}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the startup algorithm. Can be set to {{PARAMVALUE|fast}} for invoking fast startup. For fast startup to be activated, additional conditions have to be met: IMU2 must be present, the motor directions and positions must have been configured, and IMU1 and IMU2 must have be calibrated. The gimbal should also have been tuned.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Delay}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets a startup delay time.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Prearm Checks}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Bitmask to enable various pre-arming checks, i.e., conditions which need to be fulfilled before the STroM32 goes into NORMAL mode. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Virtual Channel Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the physical source for the {{PARAMVALUE|Virtual-1}}, ..., {{PARAMVALUE|Virtual-16}} input values. See [[Inputs and Functions]] for understanding the STorM32&#039;s concept of inputs, and [[Configure_the_RC_Input#Wiring_for_SUM-PPM_Signals|Configure the RC Input: Wiring for SUM-PPM Signals]] and [[Configure_the_RC_Input#Wiring_for_Digital_Signals|Configure the RC Input: Wiring for Digital Signals]] for typical use cases.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pwm Out Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Enables the pwm out function, see [[Advanced_Functions#Pwm_Out|Advanced Functions: Pwm Out]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Offset}}, {{PARAMNAMEDEF|Rc Roll Offset}}, {{PARAMNAMEDEF|Rc Yaw Offset}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Adds a permanent offset to the camera orientation. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|UartX Configuration}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Reconfigures the RC-0, RC-1 pins to work as UART, depending on the setting. Allows to enable the OLed display support on pin RC-1 (see [[Advanced_Functions#OLED_Display|Advanced Functions: OLED Display]]) or enables the UartX serial for the [[NT_Camera|NT Camera]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Low Voltage Limit}}: &amp;lt;br&amp;gt; Voltage level at which the lipo-saver function is triggered, see [[Advanced_Functions#Lipo_Saver|Advanced Functions: Lipo Saver]]. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Beep with Motors}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Enables the emission of beeps by the motors, see [[Advanced_Functions#Beeps|Advanced Functions: Beeps]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|NT Logging}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Adjusts which parameters are logged, see [[NT_Data_Logging#GUI_Settings|NT Data Logging: GUI Settings]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Usage}}, {{PARAMNAMEDEF|Roll Motor Usage}}, {{PARAMNAMEDEF|Yaw Motor Usage}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the operation mode of the pitch, roll, or yaw motor, respectively. When {{PARAMVALUE|disabled}} is selected, the motor does not receive any power.&lt;br /&gt;
&lt;br /&gt;
== Gimbal Configuration Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Poles}}, {{PARAMNAMEDEF|Roll Motor Poles}}, {{PARAMNAMEDEF|Yaw Motor Poles}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Number of magnet poles of the pitch, roll or yaw motor, respectively. Range is 8 - 42.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Direction}}, {{PARAMNAMEDEF|Roll Motor Direction}}, {{PARAMNAMEDEF|Yaw Motor Direction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Rotation direction of the pitch, roll or yaw motor, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Startup Motor Pos}}, {{PARAMNAMEDEF|Roll Startup Motor Pos}}, {{PARAMNAMEDEF|Yaw Startup Motor Pos}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Orientation of the pitch, roll or yaw motor at power up, respectively.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch Motor Direction}}, {{PARAMNAMEDEF|Foc Roll Motor Direction}}, {{PARAMNAMEDEF|Foc Yaw Motor Direction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Rotation direction of the pitch, roll or yaw motor, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch Zero Pos}}, {{PARAMNAMEDEF|Foc Roll Zero Pos}}, {{PARAMNAMEDEF|Foc Yaw Zero Pos}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Motor position at zero Imu angle for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu Orientation}}, {{PARAMNAMEDEF|Imu2 Orientation}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Orientation number of the IMU1 or IMU2, respectively.  &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Offset}}, {{PARAMNAMEDEF|Roll Offset}}, {{PARAMNAMEDEF|Yaw Offset}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Coefficients to correct for slight inaccuracies in the calibration of the IMU1 accelerometer.&lt;br /&gt;
&lt;br /&gt;
== Interfaces Tool Window ==&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Mavlink Gimbal}}, {{PARAMNAMEDEF|Mavlink Gimbal Stream}}, {{PARAMNAMEDEF|Mavlink ComPort}}, {{PARAMNAMEDEF|Mavlink System ID}}, {{PARAMNAMEDEF|Mavlink Camera}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for handling Mavlink messages, see [[MAVLink Communication]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|STorM32Link Configuration}}&amp;lt;!--, {{PARAMNAMEDEF|STorM32Link AHRS Factor}}--&amp;gt;:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for handling the [[STorM32-Link|STorM32 Link]]. The setting {{PARAMNAMEDEF|STorM32Link Configuration}} = {{PARAMVALUE|yaw drift comp.}} enables the yaw drift compensation, but not horizon drift compensation. The setting {{PARAMNAMEDEF|STorM32Link Configuration}} = {{PARAMVALUE|v1}} enables both the yaw drift compensation and horizon drift compensation. For further info on the STorM32-Link see the article [[STorM32-Link]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Uart Baudrate}}, {{PARAMNAMEDEF|Uart2 Baudrate}}, {{PARAMNAMEDEF|Usb Baudrate}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Baudrates used for the UART, USB, and UART2 ports. The default baudrates are 115200 bps.&lt;br /&gt;
&lt;br /&gt;
== Expert Tool Window ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Motor Mapping}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to change the assignment of the pitch, roll and yaw motors to the ports MOT0, MOT1, MOT2. The default assignment is pitch = MOT0, roll = MOT1, yaw = MOT2.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 Rotation}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to configure for different mounting options of the 2nd IMU. See also [[Using a 2nd IMU]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Flip Gimbal Control}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to use an input signal to switch the configuration of the gimbal between &amp;quot;down-hanging&amp;quot; and &amp;quot;up-standing&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu Mapping}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to swap IMU1 and IMU2 (this swaps NT IMU1 and NT IMU2, not the on-board IMU, which always will be IMU2 if used) .&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Lipo Cells}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the number of cells of the battery. Default is {{PARAMVALUE|auto}}, which determines the number of cells from the battery voltage at power up.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Lipo Voltage per Cell}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Full charge voltage of a battery cell. Default is 4.20 V, appropriate for a LIPO.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|ADC Calibration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Calibration constant for voltage measurement. The default value {{PARAMVALUE|1550}} is slightly below the theoretically correct value of 1581.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu AHRS}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Adjusts how strongly the accelerometer data are included in the data fusing for the attitude estimation. The shorter the time the stronger the accelerometer data are weighted (0 = accelerometer only, 20 = gyro only).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Gyro Calibration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the gyro calibration at startup. Default is {{PARAMVALUE|normal}}.&lt;br /&gt;
&lt;br /&gt;
==== The following parameters should be set with care. Normally, there should be no reason to modify them. ====&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc LPF}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Digital low pass filter applied to the raw accelerometer data. It also affects the behavior of the AHRS.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Adc LPF}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Digital low pass filter applied to the Rc Input values. Might be helpful for very noisy RC transmitters.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Hold Transition Time}}, {{PARAMNAMEDEF|Pan Speed Limit}}, {{PARAMNAMEDEF|Pan Accel Limit}}: &amp;lt;br&amp;gt;&lt;br /&gt;
These parameters are related to the pan-to-hold and hold-to-pan transition behavior. The parameter {{PARAMNAMEDEF|Pan Hold Transition Time}} determines for how long a trajectory filter is applied to smooth the transition. The two limit parameters determine the speed and acceleration limits of the trajectory filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Emergency}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Sets the level of the emergency detection mechanism.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Compensation Method}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Selects the algorithm which is used for fusing the accelerometer and gyro data. Can be {{PARAMVALUE|standard}} or {{PARAMVALUE|advanced}}. The parameter affects the AHRS, and should be set with understanding. These posts might be useful: [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29173129], [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29176384], [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29176832].&lt;br /&gt;
&lt;br /&gt;
== Expert Tool Window ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Filter}} tab allow to set norh/band-pass filters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Gimbal Mechanics Tool Window ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Gimbal Mechanics}} tab allow to set mechanical gimbal limits. They are experimental.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Yaw Motor Limit}}:&amp;lt;br&amp;gt; Limit for yaw axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Setpoint Speed Limit}}, {{PARAMNAMEDEF|Setpoint Accel Limit}}:&amp;lt;br&amp;gt; Speed and acceleration limits for changes of the setpoint.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Limit Min}}, {{PARAMNAMEDEF|Pitch Motor Limit Max}}, {{PARAMNAMEDEF|Roll Motor Limit}}:&amp;lt;br&amp;gt; Limits for pitch and roll axes.&lt;br /&gt;
&lt;br /&gt;
== Gimbal Model Tool Window ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Gimbal Model}} tab are comprehensively described in the article [[Model-based_Control|Model-based Control]].&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|T1 Pitch}}, {{PARAMNAMEDEF|T1 Roll}}, {{PARAMNAMEDEF|T1 Yaw}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Relative moments of inertia of the camera along the pitch, roll and yaw directions.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|T2 Roll}}, {{PARAMNAMEDEF|T2 Yaw}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Relative moments of inertia of the roll arm along the roll and yaw directions.&lt;br /&gt;
&lt;br /&gt;
== Servo Tool Window ==&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Pitch P}}, {{PARAMNAMEDEF|Servo Pitch I}}, {{PARAMNAMEDEF|Servo Pitch D}}, {{PARAMNAMEDEF|Servo Pitch DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the pitch axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Roll P}}, {{PARAMNAMEDEF|Servo Roll I}}, {{PARAMNAMEDEF|Servo Roll D}}, {{PARAMNAMEDEF|Servo Roll DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the roll axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Yaw P}}, {{PARAMNAMEDEF|Servo Yaw I}}, {{PARAMNAMEDEF|Servo Yaw D}}, {{PARAMNAMEDEF|Servo Yaw DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the yaw axis.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{PARAMNAMEDEF|Imu Acc Threshold}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Maximal residual acceleration up to which the accelerometer data are taken into account in the attitude estimation. This parameter is effective only when {{PARAMNAME|Acc Compensation Method}} is set to {{PARAMVALUE|standard}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Noise Level}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Residual acceleration up to which the accelerometer data are taken into account with maximal weight in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Threshold}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Maximal residual acceleration up to which the accelerometer data are taken into account in the attitude estimation with non-zero weight. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Vertical Weight}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Weight of the vertical residual acceleration in determining the weight of the accelerometer data in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Zentrifugal Correction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Weight of the centrifugal acceleration in determining the weight of the accelerometer data in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Recover Time}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Fall time for recovering from a reduced weight of the accelerometer data in the attitude estimation. The rise time is determined implicitly by the {{PARAMNAME|Acc LPF}} parameter value. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Parameters&amp;diff=11916</id>
		<title>STorM32 Parameters</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Parameters&amp;diff=11916"/>
		<updated>2025-11-30T10:44:59Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:88%&amp;quot;&amp;gt;&#039;&#039;The information on this page refers to firmware v2.72e.&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of all STorM32 parameters, and some GUI features, with brief explanations and/or links to more comprehensive articles.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The parameters are displayed and enabled in the GUI depending on whether the STorM32 gimbal is in &amp;quot;&#039;&#039;&#039;Conventional Mode&#039;&#039;&#039;&amp;quot; or &amp;quot;&#039;&#039;&#039;T-STorM32 Mode&#039;&#039;&#039;&amp;quot;. The active mode can be inferred from the GUI&#039;s title, and is updated to the correct current mode upon a connection to a STorM32 controller.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dashboard Tab ==&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Change Name}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which allows you to change the name of the board.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Share Settings}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which presents all parameters comprehensively. Taking a screen shot by pressing one of the &amp;quot;Save Screenshot&amp;quot; buttons provides a useful method for sharing parameter settings.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Check for Updates}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which connects to the STorM32 github repository to check if a new firmware is available.&lt;br /&gt;
&lt;br /&gt;
== PID Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Gyro LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the raw gyro data. Can help to avoid vibrations and/or reach higher PID values. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 FeedForward LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the attitude data of the 2nd IMU before it enters the feedforward channel in the PID controller. Effective only when the 2nd IMU is enabled, i.e., when {{PARAMNAME|Imu2 Configuration}} is not {{PARAMVALUE|off}}. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch P}}, {{PARAMNAMEDEF|Roll P}}, {{PARAMNAMEDEF|Yaw P}}: &amp;lt;br&amp;gt; Proportional term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch I}}, {{PARAMNAMEDEF|Roll I}}, {{PARAMNAMEDEF|Yaw I}}: &amp;lt;br&amp;gt; Integral term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch D}}, {{PARAMNAMEDEF|Roll D}}, {{PARAMNAMEDEF|Yaw D}}: &amp;lt;br&amp;gt; Derivative term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Vmax}}, {{PARAMNAMEDEF|Roll Motor Vmax}}, {{PARAMNAMEDEF|Yaw Motor Vmax}}: &amp;lt;br&amp;gt; Maximal average voltage for the pitch, roll or yaw motor, respectively. Range is 0 - 255. See also [[Tuning_Recipe#Setting_Motor_Vmax|Tuning Recipe: Setting Motor Vmax]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Voltage Correction}}: &amp;lt;br&amp;gt; Attempts to compensate the effects of a (slowly) varying battery voltage on the PID controller tuning, see [[Advanced_Functions#Voltage_Correction|Advanced Functions: Voltage Correction]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Controller}}: &amp;lt;br&amp;gt; Enables the model-based controller. The settings {{PARAMVALUE|default}} and {{PARAMVALUE|roll mixing}} are available, where the first corresponds to the &amp;quot;old&amp;quot; behavior, and the second enables improved roll mixing.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Use simplified PID tuning}}: &amp;lt;br&amp;gt; Toggles between the standard PID tuning, in which the P, I D values are adjusted, and a simplified mechanism, in which tuning is achieved by only two parameters, called Damping and Stability.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Gyro LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the raw gyro data. Can help to avoid vibrations and/or reach higher PID values. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch P}}, {{PARAMNAMEDEF|Foc Roll P}}, {{PARAMNAMEDEF|Foc Yaw P}}: &amp;lt;br&amp;gt; Proportional term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch I}}, {{PARAMNAMEDEF|Foc Roll I}}, {{PARAMNAMEDEF|Foc Yaw I}}: &amp;lt;br&amp;gt; Integral term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch D}}, {{PARAMNAMEDEF|Foc Roll D}}, {{PARAMNAMEDEF|Foc Yaw D}}: &amp;lt;br&amp;gt; Derivative term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch K}}, {{PARAMNAMEDEF|Foc Roll K}}, {{PARAMNAMEDEF|Foc Yaw K}}: &amp;lt;br&amp;gt; Factor which multiplies the P, I, and D values.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Controller}}: &amp;lt;br&amp;gt; Enables the model-based controller. The setting {{PARAMVALUE|default}} corresponds to the &amp;quot;old&amp;quot; behavior.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|D Source}}: &amp;lt;br&amp;gt; The settings “default” and “gyro” are available. &amp;quot;gyro&amp;quot; enables the &amp;quot;new&amp;quot; lag-free and lower-noise controller D-term calculation. This setting is enabled per default. &amp;quot;default&amp;quot; enables the &amp;quot;old&amp;quot; method of D-term calculation. This parameter may be removed in upcoming firmwares.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Auto write PID changes}}:&amp;lt;br&amp;gt;&lt;br /&gt;
When checked, any change to the PID values (and only to the PID values) is written to the STorM32 board after ca. 1 sec.&lt;br /&gt;
&lt;br /&gt;
== Pan Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Pan}} tab are comprehensively described in the article [[Hold_versus_Pan_Mode|Hold versus pan Mode]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Mode Control}}: &amp;lt;br&amp;gt; Selects the input channel used for changing the pan mode. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Mode Default Setting}}, {{PARAMNAMEDEF|Pan Mode Setting #1}}, {{PARAMNAMEDEF|Pan Mode Setting #2}}, {{PARAMNAMEDEF|Pan Mode Setting #3}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the pan states for each axis, for each of the four possible states of the input channel.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan}}, {{PARAMNAMEDEF|Roll Pan}}, {{PARAMNAMEDEF|Yaw Pan}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan speed for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Deadband}}, {{PARAMNAMEDEF|Roll Pan Deadband}}, {{PARAMNAMEDEF|Yaw Pan Deadband}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan deadband for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Expo}}, {{PARAMNAMEDEF|Roll Pan Expo}}, {{PARAMNAMEDEF|Yaw Pan Expo}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan expo for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Method}}, {{PARAMNAMEDEF|Roll Pan Method}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan method for pitch and roll, respectively. Can be &amp;quot;normal&amp;quot; or &amp;quot;plane&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Yaw Pan Deadband LPF}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan deadband low-pass filter for the yaw axis.&lt;br /&gt;
&lt;br /&gt;
== Rc Inputs Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Rc Inputs}} tab are comprehensively described in the article [[Configure_the_RC_Input|Configure the RC Input]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Dead Band}}: &amp;lt;br&amp;gt; Sets a deadband around zero input, to suppress noise on the input. Effective for all three axes.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Hysteresis}}: &amp;lt;br&amp;gt; Sets a hysteresis to value changes, to suppress noise on the input.  Effective for all three axes.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Trim}}, {{PARAMNAMEDEF|Rc Roll Trim}}, {{PARAMNAMEDEF|Rc Yaw Trim}}: &amp;lt;br&amp;gt; Sets the mid position for teh pitch, roll and yaw axis, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch}}, {{PARAMNAMEDEF|Rc Roll}}, {{PARAMNAMEDEF|Rc Yaw}}: &amp;lt;br&amp;gt; Selects the input channel used for controlling the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Mode}}, {{PARAMNAMEDEF|Rc Roll Mode}}, {{PARAMNAMEDEF|Rc Yaw Mode}}: &amp;lt;br&amp;gt; Sets the mode for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Min}}, {{PARAMNAMEDEF|Rc Roll Min}}, {{PARAMNAMEDEF|Rc Yaw Min}}: &amp;lt;br&amp;gt; Sets the minimum angle for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Max}}, {{PARAMNAMEDEF|Rc Roll Max}}, {{PARAMNAMEDEF|Rc Yaw Max}}: &amp;lt;br&amp;gt; Sets the maximum angle for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Speed Limit}}, {{PARAMNAMEDEF|Rc Roll Speed Limit}}, {{PARAMNAMEDEF|Rc Yaw Speed Limit}}: &amp;lt;br&amp;gt; Sets the maximum speed for the pitch, roll, and yaw axis, respectively. A value of 0 disables the speed limiter (it is not fully deactivated, the speed limit is set to 100 deg/s).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Accel Limit}}, {{PARAMNAMEDEF|Rc Roll Accel Limit}}, {{PARAMNAMEDEF|Rc Yaw Accel Limit}}: &amp;lt;br&amp;gt;  Sets the maximum acceleration for the pitch, roll, and yaw axis, respectively. A value of 0 disables the acceleration limiter (it is not fully deactivated, a small limit remains).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Expo}}, {{PARAMNAMEDEF|Rc Roll Expo}}, {{PARAMNAMEDEF|Rc Yaw Expo}}: &amp;lt;br&amp;gt; Sets the expo for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Auto Trim}}:&amp;lt;br&amp;gt; Reads the current input values and adjusts the trim values such as to make them zero.&lt;br /&gt;
&lt;br /&gt;
== Functions Tab ==&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Re-center Camera}}, {{PARAMNAMEDEF|Re-center Camera Axes}}, {{PARAMNAMEDEF|Re-center Camera Mode}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Re-center_Camera|Advanced Functions: Re-center Camera]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Retract}}: &amp;lt;br&amp;gt; Puts the gimbal in retract mode.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Standby}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Standby|Advanced Functions: Standby]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Camera Control}}, {{PARAMNAMEDEF|Camera Control2}}, {{PARAMNAMEDEF|Camera Model}}, {{PARAMNAMEDEF|Camera Control Mode}}, {{PARAMNAMEDEF|Time Interval}}, {{PARAMNAMEDEF|Camera ComPort}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Camera_Remote_Control|Advanced Functions: Camera Remote Control]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pwm Out Control}}, {{PARAMNAMEDEF|Pwm Out Mid}}, {{PARAMNAMEDEF|Pwm Out Min}}, {{PARAMNAMEDEF|Pwm Out Max}}, {{PARAMNAMEDEF|Pwm Out Speed Limit}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Pwm_Out|Advanced Functions: Pwm Out]].&lt;br /&gt;
&lt;br /&gt;
== Scripts Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Scripts}} tab are comprehensively described in the article [[STorM32_Scripts|STorM32 Scripts]].&lt;br /&gt;
&lt;br /&gt;
== Setup Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects how a 2nd IMU is used. See also [[Using a 2nd IMU]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Mode}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the startup algorithm. Can be set to {{PARAMVALUE|fast}} for invoking fast startup. For fast startup to be activated, additional conditions have to be met: IMU2 must be present, the motor directions and positions must have been configured, and IMU1 and IMU2 must have be calibrated. The gimbal should also have been tuned.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Delay}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets a startup delay time.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Prearm Checks}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Bitmask to enable various pre-arming checks, i.e., conditions which need to be fulfilled before the STroM32 goes into NORMAL mode. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Virtual Channel Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the physical source for the {{PARAMVALUE|Virtual-1}}, ..., {{PARAMVALUE|Virtual-16}} input values. See [[Inputs and Functions]] for understanding the STorM32&#039;s concept of inputs, and [[Configure_the_RC_Input#Wiring_for_SUM-PPM_Signals|Configure the RC Input: Wiring for SUM-PPM Signals]] and [[Configure_the_RC_Input#Wiring_for_Digital_Signals|Configure the RC Input: Wiring for Digital Signals]] for typical use cases.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pwm Out Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Enables the pwm out function, see [[Advanced_Functions#Pwm_Out|Advanced Functions: Pwm Out]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Offset}}, {{PARAMNAMEDEF|Rc Roll Offset}}, {{PARAMNAMEDEF|Rc Yaw Offset}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Adds a permanent offset to the camera orientation. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|UartX Configuration}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Reconfigures the RC-0, RC-1 pins to work as UART, depending on the setting. Allows to enable the OLed display support on pin RC-1 (see [[Advanced_Functions#OLED_Display|Advanced Functions: OLED Display]]) or enables the UartX serial for the [[NT_Camera|NT Camera]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Low Voltage Limit}}: &amp;lt;br&amp;gt; Voltage level at which the lipo-saver function is triggered, see [[Advanced_Functions#Lipo_Saver|Advanced Functions: Lipo Saver]]. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Beep with Motors}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Enables the emission of beeps by the motors, see [[Advanced_Functions#Beeps|Advanced Functions: Beeps]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|NT Logging}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Adjusts which parameters are logged, see [[NT_Data_Logging#GUI_Settings|NT Data Logging: GUI Settings]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Usage}}, {{PARAMNAMEDEF|Roll Motor Usage}}, {{PARAMNAMEDEF|Yaw Motor Usage}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the operation mode of the pitch, roll, or yaw motor, respectively. When {{PARAMVALUE|disabled}} is selected, the motor does not receive any power.&lt;br /&gt;
&lt;br /&gt;
== Gimbal Configuration Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Poles}}, {{PARAMNAMEDEF|Roll Motor Poles}}, {{PARAMNAMEDEF|Yaw Motor Poles}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Number of magnet poles of the pitch, roll or yaw motor, respectively. Range is 8 - 42.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Direction}}, {{PARAMNAMEDEF|Roll Motor Direction}}, {{PARAMNAMEDEF|Yaw Motor Direction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Rotation direction of the pitch, roll or yaw motor, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Startup Motor Pos}}, {{PARAMNAMEDEF|Roll Startup Motor Pos}}, {{PARAMNAMEDEF|Yaw Startup Motor Pos}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Orientation of the pitch, roll or yaw motor at power up, respectively.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch Motor Direction}}, {{PARAMNAMEDEF|Foc Roll Motor Direction}}, {{PARAMNAMEDEF|Foc Yaw Motor Direction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Rotation direction of the pitch, roll or yaw motor, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch Zero Pos}}, {{PARAMNAMEDEF|Foc Roll Zero Pos}}, {{PARAMNAMEDEF|Foc Yaw Zero Pos}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Motor position at zero Imu angle for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu Orientation}}, {{PARAMNAMEDEF|Imu2 Orientation}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Orientation number of the IMU1 or IMU2, respectively.  &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Offset}}, {{PARAMNAMEDEF|Roll Offset}}, {{PARAMNAMEDEF|Yaw Offset}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Coefficients to correct for slight inaccuracies in the calibration of the IMU1 accelerometer.&lt;br /&gt;
&lt;br /&gt;
== Interfaces Tool Window ==&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Mavlink Gimbal}}, {{PARAMNAMEDEF|Mavlink Gimbal Stream}}, {{PARAMNAMEDEF|Mavlink ComPort}}, {{PARAMNAMEDEF|Mavlink System ID}}, {{PARAMNAMEDEF|Mavlink Camera}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for handling Mavlink messages, see [[MAVLink Communication]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|STorM32Link Configuration}}&amp;lt;!--, {{PARAMNAMEDEF|STorM32Link AHRS Factor}}--&amp;gt;:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for handling the [[STorM32-Link|STorM32 Link]]. The setting {{PARAMNAMEDEF|STorM32Link Configuration}} = {{PARAMVALUE|yaw drift comp.}} enables the yaw drift compensation, but not horizon drift compensation. The setting {{PARAMNAMEDEF|STorM32Link Configuration}} = {{PARAMVALUE|v1}} enables both the yaw drift compensation and horizon drift compensation. For further info on the STorM32-Link see the article [[STorM32-Link]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Uart Baudrate}}, {{PARAMNAMEDEF|Uart2 Baudrate}}, {{PARAMNAMEDEF|Usb Baudrate}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Baudrates used for the UART, USB, and UART2 ports. The default baudrates are 115200 bps.&lt;br /&gt;
&lt;br /&gt;
== Expert Tool Window ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Motor Mapping}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to change the assignment of the pitch, roll and yaw motors to the ports MOT0, MOT1, MOT2. The default assignment is pitch = MOT0, roll = MOT1, yaw = MOT2.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 Rotation}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to configure for different mounting options of the 2nd IMU. See also [[Using a 2nd IMU]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Flip Gimbal Control}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to use an input signal to switch the configuration of the gimbal between &amp;quot;down-hanging&amp;quot; and &amp;quot;up-standing&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu Mapping}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to swap IMU1 and IMU2 (this swaps NT IMU1 and NT IMU2, not the on-board IMU, which always will be IMU2 if used) .&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Lipo Cells}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the number of cells of the battery. Default is {{PARAMVALUE|auto}}, which determines the number of cells from the battery voltage at power up.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Lipo Voltage per Cell}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Full charge voltage of a battery cell. Default is 4.20 V, appropriate for a LIPO.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|ADC Calibration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Calibration constant for voltage measurement. The default value {{PARAMVALUE|1550}} is slightly below the theoretically correct value of 1581.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu AHRS}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Adjusts how strongly the accelerometer data are included in the data fusing for the attitude estimation. The shorter the time the stronger the accelerometer data are weighted (0 = accelerometer only, 20 = gyro only).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Gyro Calibration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the gyro calibration at startup. Default is {{PARAMVALUE|normal}}.&lt;br /&gt;
&lt;br /&gt;
==== The following parameters should be set with care. Normally, there should be no reason to modify them. ====&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc LPF}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Digital low pass filter applied to the raw accelerometer data. It also affects the behavior of the AHRS.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Adc LPF}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Digital low pass filter applied to the Rc Input values. Might be helpful for very noisy RC transmitters.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Hold Transition Time}}, {{PARAMNAMEDEF|Pan Speed Limit}}, {{PARAMNAMEDEF|Pan Accel Limit}}: &amp;lt;br&amp;gt;&lt;br /&gt;
These parameters are related to the pan-to-hold and hold-to-pan transition behavior. The parameter {{PARAMNAMEDEF|Pan Hold Transition Time}} determines for how long a trajectory filter is applied to smooth the transition. The two limit parameters determine the speed and acceleration limits of the trajectory filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Emergency}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Sets the level of the emergency detection mechanism.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Compensation Method}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Selects the algorithm which is used for fusing the accelerometer and gyro data. Can be {{PARAMVALUE|standard}} or {{PARAMVALUE|advanced}}. The parameter affects the AHRS, and should be set with understanding. These posts might be useful: [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29173129], [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29176384], [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29176832].&lt;br /&gt;
&lt;br /&gt;
== Gimbal Mechanics Tool Window ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Gimbal Mechanics}} tab allow to set mechanical gimbal limits. They are experimental.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Yaw Motor Limit}}:&amp;lt;br&amp;gt; Limit for yaw axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Setpoint Speed Limit}}, {{PARAMNAMEDEF|Setpoint Accel Limit}}:&amp;lt;br&amp;gt; Speed and acceleration limits for changes of the setpoint.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Limit Min}}, {{PARAMNAMEDEF|Pitch Motor Limit Max}}, {{PARAMNAMEDEF|Roll Motor Limit}}:&amp;lt;br&amp;gt; Limits for pitch and roll axes.&lt;br /&gt;
&lt;br /&gt;
== Gimbal Model Tool Window ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Gimbal Model}} tab are comprehensively described in the article [[Model-based_Control|Model-based Control]].&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|T1 Pitch}}, {{PARAMNAMEDEF|T1 Roll}}, {{PARAMNAMEDEF|T1 Yaw}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Relative moments of inertia of the camera along the pitch, roll and yaw directions.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|T2 Roll}}, {{PARAMNAMEDEF|T2 Yaw}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Relative moments of inertia of the roll arm along the roll and yaw directions.&lt;br /&gt;
&lt;br /&gt;
== Servo Tool Window ==&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Pitch P}}, {{PARAMNAMEDEF|Servo Pitch I}}, {{PARAMNAMEDEF|Servo Pitch D}}, {{PARAMNAMEDEF|Servo Pitch DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the pitch axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Roll P}}, {{PARAMNAMEDEF|Servo Roll I}}, {{PARAMNAMEDEF|Servo Roll D}}, {{PARAMNAMEDEF|Servo Roll DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the roll axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Yaw P}}, {{PARAMNAMEDEF|Servo Yaw I}}, {{PARAMNAMEDEF|Servo Yaw D}}, {{PARAMNAMEDEF|Servo Yaw DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the yaw axis.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{PARAMNAMEDEF|Imu Acc Threshold}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Maximal residual acceleration up to which the accelerometer data are taken into account in the attitude estimation. This parameter is effective only when {{PARAMNAME|Acc Compensation Method}} is set to {{PARAMVALUE|standard}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Noise Level}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Residual acceleration up to which the accelerometer data are taken into account with maximal weight in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Threshold}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Maximal residual acceleration up to which the accelerometer data are taken into account in the attitude estimation with non-zero weight. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Vertical Weight}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Weight of the vertical residual acceleration in determining the weight of the accelerometer data in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Zentrifugal Correction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Weight of the centrifugal acceleration in determining the weight of the accelerometer data in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Recover Time}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Fall time for recovering from a reduced weight of the accelerometer data in the attitude estimation. The rise time is determined implicitly by the {{PARAMNAME|Acc LPF}} parameter value. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Parameters&amp;diff=11915</id>
		<title>STorM32 Parameters</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Parameters&amp;diff=11915"/>
		<updated>2025-11-30T10:40:20Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* PID Tab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:88%&amp;quot;&amp;gt;&#039;&#039;The information on this page refers to firmware v2.72e.&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of all STorM32 parameters, and some GUI features, with brief explanations and/or links to more comprehensive articles.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The parameters are displayed and enabled in the GUI depending on whether the STorM32 gimbal is in &amp;quot;&#039;&#039;&#039;Conventional Mode&#039;&#039;&#039;&amp;quot; or &amp;quot;&#039;&#039;&#039;T-STorM32 Mode&#039;&#039;&#039;&amp;quot;. The active mode can be inferred from the GUI&#039;s title, and is updated to the correct current mode upon a connection to a STorM32 controller.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dashboard Tab ==&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Change Name}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which allows you to change the name of the board.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Share Settings}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which presents all parameters comprehensively. Taking a screen shot by pressing one of the &amp;quot;Save Screenshot&amp;quot; buttons provides a useful method for sharing parameter settings.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Check for Updates}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which connects to the STorM32 github repository to check if a new firmware is available.&lt;br /&gt;
&lt;br /&gt;
== PID Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Gyro LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the raw gyro data. Can help to avoid vibrations and/or reach higher PID values. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 FeedForward LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the attitude data of the 2nd IMU before it enters the feedforward channel in the PID controller. Effective only when the 2nd IMU is enabled, i.e., when {{PARAMNAME|Imu2 Configuration}} is not {{PARAMVALUE|off}}. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch P}}, {{PARAMNAMEDEF|Roll P}}, {{PARAMNAMEDEF|Yaw P}}: &amp;lt;br&amp;gt; Proportional term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch I}}, {{PARAMNAMEDEF|Roll I}}, {{PARAMNAMEDEF|Yaw I}}: &amp;lt;br&amp;gt; Integral term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch D}}, {{PARAMNAMEDEF|Roll D}}, {{PARAMNAMEDEF|Yaw D}}: &amp;lt;br&amp;gt; Derivative term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Vmax}}, {{PARAMNAMEDEF|Roll Motor Vmax}}, {{PARAMNAMEDEF|Yaw Motor Vmax}}: &amp;lt;br&amp;gt; Maximal average voltage for the pitch, roll or yaw motor, respectively. Range is 0 - 255. See also [[Tuning_Recipe#Setting_Motor_Vmax|Tuning Recipe: Setting Motor Vmax]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Voltage Correction}}: &amp;lt;br&amp;gt; Attempts to compensate the effects of a (slowly) varying battery voltage on the PID controller tuning, see [[Advanced_Functions#Voltage_Correction|Advanced Functions: Voltage Correction]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Controller}}: &amp;lt;br&amp;gt; Enables the model-based controller. The settings {{PARAMVALUE|default}} and {{PARAMVALUE|roll mixing}} are available, where the first corresponds to the &amp;quot;old&amp;quot; behavior, and the second enables improved roll mixing.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Use simplified PID tuning}}: &amp;lt;br&amp;gt; Toggles between the standard PID tuning, in which the P, I D values are adjusted, and a simplified mechanism, in which tuning is achieved by only two parameters, called Damping and Stability.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Gyro LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the raw gyro data. Can help to avoid vibrations and/or reach higher PID values. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch P}}, {{PARAMNAMEDEF|Foc Roll P}}, {{PARAMNAMEDEF|Foc Yaw P}}: &amp;lt;br&amp;gt; Proportional term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch I}}, {{PARAMNAMEDEF|Foc Roll I}}, {{PARAMNAMEDEF|Foc Yaw I}}: &amp;lt;br&amp;gt; Integral term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch D}}, {{PARAMNAMEDEF|Foc Roll D}}, {{PARAMNAMEDEF|Foc Yaw D}}: &amp;lt;br&amp;gt; Derivative term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch K}}, {{PARAMNAMEDEF|Foc Roll K}}, {{PARAMNAMEDEF|Foc Yaw K}}: &amp;lt;br&amp;gt; Factor which multiplies the P, I, and D values.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Controller}}: &amp;lt;br&amp;gt; Enables the model-based controller. The setting {{PARAMVALUE|default}} corresponds to the &amp;quot;old&amp;quot; behavior.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|D Source}}: &amp;lt;br&amp;gt; The settings “default” and “gyro” are available. &amp;quot;gyro&amp;quot; enables the &amp;quot;new&amp;quot; lag-free and lower-noise controller D-term calculation. This setting is enabled per default. &amp;quot;default&amp;quot; enables the &amp;quot;old&amp;quot; method of D-term calculation. This parameter may be removed in upcoming firmwares.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Auto write PID changes}}:&amp;lt;br&amp;gt;&lt;br /&gt;
When checked, any change to the PID values (and only to the PID values) is written to the STorM32 board after ca. 1 sec.&lt;br /&gt;
&lt;br /&gt;
== Pan Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Pan}} tab are comprehensively described in the article [[Hold_versus_Pan_Mode|Hold versus pan Mode]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Mode Control}}: &amp;lt;br&amp;gt; Selects the input channel used for changing the pan mode. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Mode Default Setting}}, {{PARAMNAMEDEF|Pan Mode Setting #1}}, {{PARAMNAMEDEF|Pan Mode Setting #2}}, {{PARAMNAMEDEF|Pan Mode Setting #3}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the pan states for each axis, for each of the four possible states of the input channel.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan}}, {{PARAMNAMEDEF|Roll Pan}}, {{PARAMNAMEDEF|Yaw Pan}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan speed for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Deadband}}, {{PARAMNAMEDEF|Roll Pan Deadband}}, {{PARAMNAMEDEF|Yaw Pan Deadband}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan deadband for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Expo}}, {{PARAMNAMEDEF|Roll Pan Expo}}, {{PARAMNAMEDEF|Yaw Pan Expo}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan expo for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Method}}, {{PARAMNAMEDEF|Roll Pan Method}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan method for pitch and roll, respectively. Can be &amp;quot;normal&amp;quot; or &amp;quot;plane&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Yaw Pan Deadband LPF}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan deadband low-pass filter for the yaw axis.&lt;br /&gt;
&lt;br /&gt;
== Rc Inputs Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Rc Inputs}} tab are comprehensively described in the article [[Configure_the_RC_Input|Configure the RC Input]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Dead Band}}: &amp;lt;br&amp;gt; Sets a deadband around zero input, to suppress noise on the input. Effective for all three axes.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Hysteresis}}: &amp;lt;br&amp;gt; Sets a hysteresis to value changes, to suppress noise on the input.  Effective for all three axes.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Trim}}, {{PARAMNAMEDEF|Rc Roll Trim}}, {{PARAMNAMEDEF|Rc Yaw Trim}}: &amp;lt;br&amp;gt; Sets the mid position for teh pitch, roll and yaw axis, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch}}, {{PARAMNAMEDEF|Rc Roll}}, {{PARAMNAMEDEF|Rc Yaw}}: &amp;lt;br&amp;gt; Selects the input channel used for controlling the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Mode}}, {{PARAMNAMEDEF|Rc Roll Mode}}, {{PARAMNAMEDEF|Rc Yaw Mode}}: &amp;lt;br&amp;gt; Sets the mode for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Min}}, {{PARAMNAMEDEF|Rc Roll Min}}, {{PARAMNAMEDEF|Rc Yaw Min}}: &amp;lt;br&amp;gt; Sets the minimum angle for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Max}}, {{PARAMNAMEDEF|Rc Roll Max}}, {{PARAMNAMEDEF|Rc Yaw Max}}: &amp;lt;br&amp;gt; Sets the maximum angle for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Speed Limit}}, {{PARAMNAMEDEF|Rc Roll Speed Limit}}, {{PARAMNAMEDEF|Rc Yaw Speed Limit}}: &amp;lt;br&amp;gt; Sets the maximum speed for the pitch, roll, and yaw axis, respectively. A value of 0 disables the speed limiter (it is not fully deactivated, the speed limit is set to 100 deg/s).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Accel Limit}}, {{PARAMNAMEDEF|Rc Roll Accel Limit}}, {{PARAMNAMEDEF|Rc Yaw Accel Limit}}: &amp;lt;br&amp;gt;  Sets the maximum acceleration for the pitch, roll, and yaw axis, respectively. A value of 0 disables the acceleration limiter (it is not fully deactivated, a small limit remains).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Expo}}, {{PARAMNAMEDEF|Rc Roll Expo}}, {{PARAMNAMEDEF|Rc Yaw Expo}}: &amp;lt;br&amp;gt; Sets the expo for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Auto Trim}}:&amp;lt;br&amp;gt; Reads the current input values and adjusts the trim values such as to make them zero.&lt;br /&gt;
&lt;br /&gt;
== Functions Tab ==&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Re-center Camera}}, {{PARAMNAMEDEF|Re-center Camera Axes}}, {{PARAMNAMEDEF|Re-center Camera Mode}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Re-center_Camera|Advanced Functions: Re-center Camera]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Retract}}: &amp;lt;br&amp;gt; Puts the gimbal in retract mode.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Standby}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Standby|Advanced Functions: Standby]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Camera Control}}, {{PARAMNAMEDEF|Camera Control2}}, {{PARAMNAMEDEF|Camera Model}}, {{PARAMNAMEDEF|Camera Control Mode}}, {{PARAMNAMEDEF|Time Interval}}, {{PARAMNAMEDEF|Camera ComPort}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Camera_Remote_Control|Advanced Functions: Camera Remote Control]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pwm Out Control}}, {{PARAMNAMEDEF|Pwm Out Mid}}, {{PARAMNAMEDEF|Pwm Out Min}}, {{PARAMNAMEDEF|Pwm Out Max}}, {{PARAMNAMEDEF|Pwm Out Speed Limit}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Pwm_Out|Advanced Functions: Pwm Out]].&lt;br /&gt;
&lt;br /&gt;
== Scripts Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Scripts}} tab are comprehensively described in the article [[STorM32_Scripts|STorM32 Scripts]].&lt;br /&gt;
&lt;br /&gt;
== Setup Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects how a 2nd IMU is used. See also [[Using a 2nd IMU]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Mode}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the startup algorithm. Can be set to {{PARAMVALUE|fast}} for invoking fast startup. For fast startup to be activated, additional conditions have to be met: IMU2 must be present, the motor directions and positions must have been configured, and IMU1 and IMU2 must have be calibrated. The gimbal should also have been tuned.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Delay}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets a startup delay time.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Prearm Checks}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Bitmask to enable various pre-arming checks, i.e., conditions which need to be fulfilled before the STroM32 goes into NORMAL mode. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Virtual Channel Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the physical source for the {{PARAMVALUE|Virtual-1}}, ..., {{PARAMVALUE|Virtual-16}} input values. See [[Inputs and Functions]] for understanding the STorM32&#039;s concept of inputs, and [[Configure_the_RC_Input#Wiring_for_SUM-PPM_Signals|Configure the RC Input: Wiring for SUM-PPM Signals]] and [[Configure_the_RC_Input#Wiring_for_Digital_Signals|Configure the RC Input: Wiring for Digital Signals]] for typical use cases.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pwm Out Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Enables the pwm out function, see [[Advanced_Functions#Pwm_Out|Advanced Functions: Pwm Out]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Offset}}, {{PARAMNAMEDEF|Rc Roll Offset}}, {{PARAMNAMEDEF|Rc Yaw Offset}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Adds a permanent offset to the camera orientation. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|UartX Configuration}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Reconfigures the RC-0, RC-1 pins to work as UART, depending on the setting. Allows to enable the OLed display support on pin RC-1 (see [[Advanced_Functions#OLED_Display|Advanced Functions: OLED Display]]) or enables the UartX serial for the [[NT_Camera|NT Camera]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Low Voltage Limit}}: &amp;lt;br&amp;gt; Voltage level at which the lipo-saver function is triggered, see [[Advanced_Functions#Lipo_Saver|Advanced Functions: Lipo Saver]]. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Beep with Motors}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Enables the emission of beeps by the motors, see [[Advanced_Functions#Beeps|Advanced Functions: Beeps]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|NT Logging}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Adjusts which parameters are logged, see [[NT_Data_Logging#GUI_Settings|NT Data Logging: GUI Settings]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Usage}}, {{PARAMNAMEDEF|Roll Motor Usage}}, {{PARAMNAMEDEF|Yaw Motor Usage}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the operation mode of the pitch, roll, or yaw motor, respectively. When {{PARAMVALUE|disabled}} is selected, the motor does not receive any power.&lt;br /&gt;
&lt;br /&gt;
== Gimbal Configuration Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Poles}}, {{PARAMNAMEDEF|Roll Motor Poles}}, {{PARAMNAMEDEF|Yaw Motor Poles}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Number of magnet poles of the pitch, roll or yaw motor, respectively. Range is 8 - 42.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Direction}}, {{PARAMNAMEDEF|Roll Motor Direction}}, {{PARAMNAMEDEF|Yaw Motor Direction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Rotation direction of the pitch, roll or yaw motor, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Startup Motor Pos}}, {{PARAMNAMEDEF|Roll Startup Motor Pos}}, {{PARAMNAMEDEF|Yaw Startup Motor Pos}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Orientation of the pitch, roll or yaw motor at power up, respectively.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch Motor Direction}}, {{PARAMNAMEDEF|Foc Roll Motor Direction}}, {{PARAMNAMEDEF|Foc Yaw Motor Direction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Rotation direction of the pitch, roll or yaw motor, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch Zero Pos}}, {{PARAMNAMEDEF|Foc Roll Zero Pos}}, {{PARAMNAMEDEF|Foc Yaw Zero Pos}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Motor position at zero Imu angle for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu Orientation}}, {{PARAMNAMEDEF|Imu2 Orientation}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Orientation number of the IMU1 or IMU2, respectively.  &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Offset}}, {{PARAMNAMEDEF|Roll Offset}}, {{PARAMNAMEDEF|Yaw Offset}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Coefficients to correct for slight inaccuracies in the calibration of the IMU1 accelerometer.&lt;br /&gt;
&lt;br /&gt;
== Interfaces Tool Window ==&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Mavlink Gimbal}}, {{PARAMNAMEDEF|Mavlink Gimbal Stream}}, {{PARAMNAMEDEF|Mavlink ComPort}}, {{PARAMNAMEDEF|Mavlink System ID}}, {{PARAMNAMEDEF|Mavlink Camera}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for handling Mavlink messages, see [[MAVLink Communication]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|STorM32Link Configuration}}&amp;lt;!--, {{PARAMNAMEDEF|STorM32Link AHRS Factor}}--&amp;gt;:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for handling the [[STorM32-Link|STorM32 Link]]. The setting {{PARAMNAMEDEF|STorM32Link Configuration}} = {{PARAMVALUE|yaw drift comp.}} enables the yaw drift compensation, but not horizon drift compensation. The setting {{PARAMNAMEDEF|STorM32Link Configuration}} = {{PARAMVALUE|v1}} enables both the yaw drift compensation and horizon drift compensation. For further info on the STorM32-Link see the article [[STorM32-Link]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Uart Baudrate}}, {{PARAMNAMEDEF|Uart2 Baudrate}}, {{PARAMNAMEDEF|Usb Baudrate}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Baudrates used for the UART, USB, and UART2 ports. The default baudrates are 115200 bps.&lt;br /&gt;
&lt;br /&gt;
== Expert Tool Window ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Motor Mapping}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to change the assignment of the pitch, roll and yaw motors to the ports MOT0, MOT1, MOT2. The default assignment is pitch = MOT0, roll = MOT1, yaw = MOT2.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 Rotation}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to configure for different mounting options of the 2nd IMU. See also [[Using a 2nd IMU]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Flip Gimbal Control}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to use an input signal to switch the configuration of the gimbal between &amp;quot;down-hanging&amp;quot; and &amp;quot;up-standing&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu Mapping}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to swap IMU1 and IMU2 (this swaps NT IMU1 and NT IMU2, not the on-board IMU, which always will be IMU2 if used) .&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Lipo Cells}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the number of cells of the battery. Default is {{PARAMVALUE|auto}}, which determines the number of cells from the battery voltage at power up.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Lipo Voltage per Cell}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Full charge voltage of a battery cell. Default is 4.20 V, appropriate for a LIPO.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|ADC Calibration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Calibration constant for voltage measurement. The default value {{PARAMVALUE|1550}} is slightly below the theoretically correct value of 1581.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu AHRS}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Adjusts how strongly the accelerometer data are included in the data fusing for the attitude estimation. The shorter the time the stronger the accelerometer data are weighted (0 = accelerometer only, 20 = gyro only).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Gyro Calibration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the gyro calibration at startup. Default is {{PARAMVALUE|normal}}.&lt;br /&gt;
&lt;br /&gt;
==== The following parameters should be set with care. Normally, there should be no reason to modify them. ====&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc LPF}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Digital low pass filter applied to the raw accelerometer data. It also affects the behavior of the AHRS.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Adc LPF}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Digital low pass filter applied to the Rc Input values. Might be helpful for very noisy RC transmitters.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Hold Transition Time}}, {{PARAMNAMEDEF|Pan Speed Limit}}, {{PARAMNAMEDEF|Pan Accel Limit}}: &amp;lt;br&amp;gt;&lt;br /&gt;
These parameters are related to the pan-to-hold and hold-to-pan transition behavior. The parameter {{PARAMNAMEDEF|Pan Hold Transition Time}} determines for how long a trajectory filter is applied to smooth the transition. The two limit parameters determine the speed and acceleration limits of the trajectory filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Emergency}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Sets the level of the emergency detection mechanism.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Compensation Method}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Selects the algorithm which is used for fusing the accelerometer and gyro data. Can be {{PARAMVALUE|standard}} or {{PARAMVALUE|advanced}}. The parameter affects the AHRS, and should be set with understanding. These posts might be useful: [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29173129], [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29176384], [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29176832].&lt;br /&gt;
&lt;br /&gt;
== Gimbal Model Tool Window ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Gimbal Model}} tab are comprehensively described in the article [[Model-based_Control|Model-based Control]].&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|T1 Pitch}}, {{PARAMNAMEDEF|T1 Roll}}, {{PARAMNAMEDEF|T1 Yaw}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Relative moments of inertia of the camera along the pitch, roll and yaw directions.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|T2 Roll}}, {{PARAMNAMEDEF|T2 Yaw}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Relative moments of inertia of the roll arm along the roll and yaw directions.&lt;br /&gt;
&lt;br /&gt;
== Gimbal Mechanics Tool Window ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Gimbal Mechanics}} tab allow to set mechanical gimbal limits. They are experimental.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Yaw Motor Limit}}:&amp;lt;br&amp;gt; Limit for yaw axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Setpoint Speed Limit}}, {{PARAMNAMEDEF|Setpoint Accel Limit}}:&amp;lt;br&amp;gt; Speed and acceleration limits for changes of the setpoint.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Limit Min}}, {{PARAMNAMEDEF|Pitch Motor Limit Max}}, {{PARAMNAMEDEF|Roll Motor Limit}}:&amp;lt;br&amp;gt; Limits for pitch and roll axes.&lt;br /&gt;
&lt;br /&gt;
== Servo Tool Window ==&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Pitch P}}, {{PARAMNAMEDEF|Servo Pitch I}}, {{PARAMNAMEDEF|Servo Pitch D}}, {{PARAMNAMEDEF|Servo Pitch DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the pitch axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Roll P}}, {{PARAMNAMEDEF|Servo Roll I}}, {{PARAMNAMEDEF|Servo Roll D}}, {{PARAMNAMEDEF|Servo Roll DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the roll axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Yaw P}}, {{PARAMNAMEDEF|Servo Yaw I}}, {{PARAMNAMEDEF|Servo Yaw D}}, {{PARAMNAMEDEF|Servo Yaw DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the yaw axis.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{PARAMNAMEDEF|Imu Acc Threshold}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Maximal residual acceleration up to which the accelerometer data are taken into account in the attitude estimation. This parameter is effective only when {{PARAMNAME|Acc Compensation Method}} is set to {{PARAMVALUE|standard}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Noise Level}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Residual acceleration up to which the accelerometer data are taken into account with maximal weight in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Threshold}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Maximal residual acceleration up to which the accelerometer data are taken into account in the attitude estimation with non-zero weight. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Vertical Weight}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Weight of the vertical residual acceleration in determining the weight of the accelerometer data in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Zentrifugal Correction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Weight of the centrifugal acceleration in determining the weight of the accelerometer data in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Recover Time}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Fall time for recovering from a reduced weight of the accelerometer data in the attitude estimation. The rise time is determined implicitly by the {{PARAMNAME|Acc LPF}} parameter value. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Parameters&amp;diff=11914</id>
		<title>STorM32 Parameters</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Parameters&amp;diff=11914"/>
		<updated>2025-11-30T10:40:02Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* In Conventional Mode: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:88%&amp;quot;&amp;gt;&#039;&#039;The information on this page refers to firmware v2.72e.&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
List of all STorM32 parameters, and some GUI features, with brief explanations and/or links to more comprehensive articles.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The parameters are displayed and enabled in the GUI depending on whether the STorM32 gimbal is in &amp;quot;&#039;&#039;&#039;Conventional Mode&#039;&#039;&#039;&amp;quot; or &amp;quot;&#039;&#039;&#039;T-STorM32 Mode&#039;&#039;&#039;&amp;quot;. The active mode can be inferred from the GUI&#039;s title, and is updated to the correct current mode upon a connection to a STorM32 controller.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dashboard Tab ==&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Change Name}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which allows you to change the name of the board.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Share Settings}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which presents all parameters comprehensively. Taking a screen shot by pressing one of the &amp;quot;Save Screenshot&amp;quot; buttons provides a useful method for sharing parameter settings.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Check for Updates}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Opens a dialog, which connects to the STorM32 github repository to check if a new firmware is available.&lt;br /&gt;
&lt;br /&gt;
== PID Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Gyro LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the raw gyro data. Can help to avoid vibrations and/or reach higher PID values. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 FeedForward LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the attitude data of the 2nd IMU before it enters the feedforward channel in the PID controller. Effective only when the 2nd IMU is enabled, i.e., when {{PARAMNAME|Imu2 Configuration}} is not {{PARAMVALUE|off}}. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch P}}, {{PARAMNAMEDEF|Roll P}}, {{PARAMNAMEDEF|Yaw P}}: &amp;lt;br&amp;gt; Proportional term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch I}}, {{PARAMNAMEDEF|Roll I}}, {{PARAMNAMEDEF|Yaw I}}: &amp;lt;br&amp;gt; Integral term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch D}}, {{PARAMNAMEDEF|Roll D}}, {{PARAMNAMEDEF|Yaw D}}: &amp;lt;br&amp;gt; Derivative term of the PID controller for the pitch, roll or yaw axis, respectively. See also [[Tuning_Recipe#Tuning_Procedure|Tuning Recipe: Tuning Procedure]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Vmax}}, {{PARAMNAMEDEF|Roll Motor Vmax}}, {{PARAMNAMEDEF|Yaw Motor Vmax}}: &amp;lt;br&amp;gt; Maximal average voltage for the pitch, roll or yaw motor, respectively. Range is 0 - 255. See also [[Tuning_Recipe#Setting_Motor_Vmax|Tuning Recipe: Setting Motor Vmax]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Voltage Correction}}: &amp;lt;br&amp;gt; Attempts to compensate the effects of a (slowly) varying battery voltage on the PID controller tuning, see [[Advanced_Functions#Voltage_Correction|Advanced Functions: Voltage Correction]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Controller}}: &amp;lt;br&amp;gt; Enables the model-based controller. The settings {{PARAMVALUE|default}} and {{PARAMVALUE|roll mixing}} are available, where the first corresponds to the &amp;quot;old&amp;quot; behavior, and the second enables improved roll mixing.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|D Source}}: &amp;lt;br&amp;gt; Appears to not make a difference.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Use simplified PID tuning}}: &amp;lt;br&amp;gt; Toggles between the standard PID tuning, in which the P, I D values are adjusted, and a simplified mechanism, in which tuning is achieved by only two parameters, called Damping and Stability.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Gyro LPF}}: &amp;lt;br&amp;gt; Digital low pass filter applied to the raw gyro data. Can help to avoid vibrations and/or reach higher PID values. Values relate to the time constant of the filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch P}}, {{PARAMNAMEDEF|Foc Roll P}}, {{PARAMNAMEDEF|Foc Yaw P}}: &amp;lt;br&amp;gt; Proportional term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch I}}, {{PARAMNAMEDEF|Foc Roll I}}, {{PARAMNAMEDEF|Foc Yaw I}}: &amp;lt;br&amp;gt; Integral term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch D}}, {{PARAMNAMEDEF|Foc Roll D}}, {{PARAMNAMEDEF|Foc Yaw D}}: &amp;lt;br&amp;gt; Derivative term of the PID controller for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch K}}, {{PARAMNAMEDEF|Foc Roll K}}, {{PARAMNAMEDEF|Foc Yaw K}}: &amp;lt;br&amp;gt; Factor which multiplies the P, I, and D values.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Controller}}: &amp;lt;br&amp;gt; Enables the model-based controller. The setting {{PARAMVALUE|default}} corresponds to the &amp;quot;old&amp;quot; behavior.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|D Source}}: &amp;lt;br&amp;gt; The settings “default” and “gyro” are available. &amp;quot;gyro&amp;quot; enables the &amp;quot;new&amp;quot; lag-free and lower-noise controller D-term calculation. This setting is enabled per default. &amp;quot;default&amp;quot; enables the &amp;quot;old&amp;quot; method of D-term calculation. This parameter may be removed in upcoming firmwares.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Auto write PID changes}}:&amp;lt;br&amp;gt;&lt;br /&gt;
When checked, any change to the PID values (and only to the PID values) is written to the STorM32 board after ca. 1 sec.&lt;br /&gt;
&lt;br /&gt;
== Pan Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Pan}} tab are comprehensively described in the article [[Hold_versus_Pan_Mode|Hold versus pan Mode]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Mode Control}}: &amp;lt;br&amp;gt; Selects the input channel used for changing the pan mode. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Mode Default Setting}}, {{PARAMNAMEDEF|Pan Mode Setting #1}}, {{PARAMNAMEDEF|Pan Mode Setting #2}}, {{PARAMNAMEDEF|Pan Mode Setting #3}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the pan states for each axis, for each of the four possible states of the input channel.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan}}, {{PARAMNAMEDEF|Roll Pan}}, {{PARAMNAMEDEF|Yaw Pan}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan speed for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Deadband}}, {{PARAMNAMEDEF|Roll Pan Deadband}}, {{PARAMNAMEDEF|Yaw Pan Deadband}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan deadband for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Expo}}, {{PARAMNAMEDEF|Roll Pan Expo}}, {{PARAMNAMEDEF|Yaw Pan Expo}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan expo for pitch, roll and yaw, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Pan Method}}, {{PARAMNAMEDEF|Roll Pan Method}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan method for pitch and roll, respectively. Can be &amp;quot;normal&amp;quot; or &amp;quot;plane&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Yaw Pan Deadband LPF}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the pan deadband low-pass filter for the yaw axis.&lt;br /&gt;
&lt;br /&gt;
== Rc Inputs Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Rc Inputs}} tab are comprehensively described in the article [[Configure_the_RC_Input|Configure the RC Input]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Dead Band}}: &amp;lt;br&amp;gt; Sets a deadband around zero input, to suppress noise on the input. Effective for all three axes.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Hysteresis}}: &amp;lt;br&amp;gt; Sets a hysteresis to value changes, to suppress noise on the input.  Effective for all three axes.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Trim}}, {{PARAMNAMEDEF|Rc Roll Trim}}, {{PARAMNAMEDEF|Rc Yaw Trim}}: &amp;lt;br&amp;gt; Sets the mid position for teh pitch, roll and yaw axis, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch}}, {{PARAMNAMEDEF|Rc Roll}}, {{PARAMNAMEDEF|Rc Yaw}}: &amp;lt;br&amp;gt; Selects the input channel used for controlling the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Mode}}, {{PARAMNAMEDEF|Rc Roll Mode}}, {{PARAMNAMEDEF|Rc Yaw Mode}}: &amp;lt;br&amp;gt; Sets the mode for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Min}}, {{PARAMNAMEDEF|Rc Roll Min}}, {{PARAMNAMEDEF|Rc Yaw Min}}: &amp;lt;br&amp;gt; Sets the minimum angle for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Max}}, {{PARAMNAMEDEF|Rc Roll Max}}, {{PARAMNAMEDEF|Rc Yaw Max}}: &amp;lt;br&amp;gt; Sets the maximum angle for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Speed Limit}}, {{PARAMNAMEDEF|Rc Roll Speed Limit}}, {{PARAMNAMEDEF|Rc Yaw Speed Limit}}: &amp;lt;br&amp;gt; Sets the maximum speed for the pitch, roll, and yaw axis, respectively. A value of 0 disables the speed limiter (it is not fully deactivated, the speed limit is set to 100 deg/s).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Accel Limit}}, {{PARAMNAMEDEF|Rc Roll Accel Limit}}, {{PARAMNAMEDEF|Rc Yaw Accel Limit}}: &amp;lt;br&amp;gt;  Sets the maximum acceleration for the pitch, roll, and yaw axis, respectively. A value of 0 disables the acceleration limiter (it is not fully deactivated, a small limit remains).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Expo}}, {{PARAMNAMEDEF|Rc Roll Expo}}, {{PARAMNAMEDEF|Rc Yaw Expo}}: &amp;lt;br&amp;gt; Sets the expo for the pitch, roll, and yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
{{GUIFIELD|Auto Trim}}:&amp;lt;br&amp;gt; Reads the current input values and adjusts the trim values such as to make them zero.&lt;br /&gt;
&lt;br /&gt;
== Functions Tab ==&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Re-center Camera}}, {{PARAMNAMEDEF|Re-center Camera Axes}}, {{PARAMNAMEDEF|Re-center Camera Mode}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Re-center_Camera|Advanced Functions: Re-center Camera]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Retract}}: &amp;lt;br&amp;gt; Puts the gimbal in retract mode.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Standby}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Standby|Advanced Functions: Standby]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Camera Control}}, {{PARAMNAMEDEF|Camera Control2}}, {{PARAMNAMEDEF|Camera Model}}, {{PARAMNAMEDEF|Camera Control Mode}}, {{PARAMNAMEDEF|Time Interval}}, {{PARAMNAMEDEF|Camera ComPort}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Camera_Remote_Control|Advanced Functions: Camera Remote Control]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pwm Out Control}}, {{PARAMNAMEDEF|Pwm Out Mid}}, {{PARAMNAMEDEF|Pwm Out Min}}, {{PARAMNAMEDEF|Pwm Out Max}}, {{PARAMNAMEDEF|Pwm Out Speed Limit}}: &amp;lt;br&amp;gt; See [[Advanced_Functions#Pwm_Out|Advanced Functions: Pwm Out]].&lt;br /&gt;
&lt;br /&gt;
== Scripts Tab ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Scripts}} tab are comprehensively described in the article [[STorM32_Scripts|STorM32 Scripts]].&lt;br /&gt;
&lt;br /&gt;
== Setup Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects how a 2nd IMU is used. See also [[Using a 2nd IMU]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Mode}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the startup algorithm. Can be set to {{PARAMVALUE|fast}} for invoking fast startup. For fast startup to be activated, additional conditions have to be met: IMU2 must be present, the motor directions and positions must have been configured, and IMU1 and IMU2 must have be calibrated. The gimbal should also have been tuned.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Delay}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets a startup delay time.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Prearm Checks}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Bitmask to enable various pre-arming checks, i.e., conditions which need to be fulfilled before the STroM32 goes into NORMAL mode. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Virtual Channel Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the physical source for the {{PARAMVALUE|Virtual-1}}, ..., {{PARAMVALUE|Virtual-16}} input values. See [[Inputs and Functions]] for understanding the STorM32&#039;s concept of inputs, and [[Configure_the_RC_Input#Wiring_for_SUM-PPM_Signals|Configure the RC Input: Wiring for SUM-PPM Signals]] and [[Configure_the_RC_Input#Wiring_for_Digital_Signals|Configure the RC Input: Wiring for Digital Signals]] for typical use cases.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pwm Out Configuration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Enables the pwm out function, see [[Advanced_Functions#Pwm_Out|Advanced Functions: Pwm Out]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Pitch Offset}}, {{PARAMNAMEDEF|Rc Roll Offset}}, {{PARAMNAMEDEF|Rc Yaw Offset}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Adds a permanent offset to the camera orientation. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|UartX Configuration}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Reconfigures the RC-0, RC-1 pins to work as UART, depending on the setting. Allows to enable the OLed display support on pin RC-1 (see [[Advanced_Functions#OLED_Display|Advanced Functions: OLED Display]]) or enables the UartX serial for the [[NT_Camera|NT Camera]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Low Voltage Limit}}: &amp;lt;br&amp;gt; Voltage level at which the lipo-saver function is triggered, see [[Advanced_Functions#Lipo_Saver|Advanced Functions: Lipo Saver]]. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Beep with Motors}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Enables the emission of beeps by the motors, see [[Advanced_Functions#Beeps|Advanced Functions: Beeps]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|NT Logging}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Adjusts which parameters are logged, see [[NT_Data_Logging#GUI_Settings|NT Data Logging: GUI Settings]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Usage}}, {{PARAMNAMEDEF|Roll Motor Usage}}, {{PARAMNAMEDEF|Yaw Motor Usage}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Selects the operation mode of the pitch, roll, or yaw motor, respectively. When {{PARAMVALUE|disabled}} is selected, the motor does not receive any power.&lt;br /&gt;
&lt;br /&gt;
== Gimbal Configuration Tab ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Poles}}, {{PARAMNAMEDEF|Roll Motor Poles}}, {{PARAMNAMEDEF|Yaw Motor Poles}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Number of magnet poles of the pitch, roll or yaw motor, respectively. Range is 8 - 42.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Direction}}, {{PARAMNAMEDEF|Roll Motor Direction}}, {{PARAMNAMEDEF|Yaw Motor Direction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Rotation direction of the pitch, roll or yaw motor, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Startup Motor Pos}}, {{PARAMNAMEDEF|Roll Startup Motor Pos}}, {{PARAMNAMEDEF|Yaw Startup Motor Pos}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Orientation of the pitch, roll or yaw motor at power up, respectively.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch Motor Direction}}, {{PARAMNAMEDEF|Foc Roll Motor Direction}}, {{PARAMNAMEDEF|Foc Yaw Motor Direction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Rotation direction of the pitch, roll or yaw motor, respectively. &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Pitch Zero Pos}}, {{PARAMNAMEDEF|Foc Roll Zero Pos}}, {{PARAMNAMEDEF|Foc Yaw Zero Pos}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Motor position at zero Imu angle for the pitch, roll or yaw axis, respectively.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu Orientation}}, {{PARAMNAMEDEF|Imu2 Orientation}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Orientation number of the IMU1 or IMU2, respectively.  &lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Offset}}, {{PARAMNAMEDEF|Roll Offset}}, {{PARAMNAMEDEF|Yaw Offset}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Coefficients to correct for slight inaccuracies in the calibration of the IMU1 accelerometer.&lt;br /&gt;
&lt;br /&gt;
== Interfaces Tool Window ==&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Mavlink Gimbal}}, {{PARAMNAMEDEF|Mavlink Gimbal Stream}}, {{PARAMNAMEDEF|Mavlink ComPort}}, {{PARAMNAMEDEF|Mavlink System ID}}, {{PARAMNAMEDEF|Mavlink Camera}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for handling Mavlink messages, see [[MAVLink Communication]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|STorM32Link Configuration}}&amp;lt;!--, {{PARAMNAMEDEF|STorM32Link AHRS Factor}}--&amp;gt;:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for handling the [[STorM32-Link|STorM32 Link]]. The setting {{PARAMNAMEDEF|STorM32Link Configuration}} = {{PARAMVALUE|yaw drift comp.}} enables the yaw drift compensation, but not horizon drift compensation. The setting {{PARAMNAMEDEF|STorM32Link Configuration}} = {{PARAMVALUE|v1}} enables both the yaw drift compensation and horizon drift compensation. For further info on the STorM32-Link see the article [[STorM32-Link]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Uart Baudrate}}, {{PARAMNAMEDEF|Uart2 Baudrate}}, {{PARAMNAMEDEF|Usb Baudrate}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Baudrates used for the UART, USB, and UART2 ports. The default baudrates are 115200 bps.&lt;br /&gt;
&lt;br /&gt;
== Expert Tool Window ==&lt;br /&gt;
&lt;br /&gt;
=== In Conventional Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Motor Mapping}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to change the assignment of the pitch, roll and yaw motors to the ports MOT0, MOT1, MOT2. The default assignment is pitch = MOT0, roll = MOT1, yaw = MOT2.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu2 Rotation}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to configure for different mounting options of the 2nd IMU. See also [[Using a 2nd IMU]].&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Flip Gimbal Control}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to use an input signal to switch the configuration of the gimbal between &amp;quot;down-hanging&amp;quot; and &amp;quot;up-standing&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu Mapping}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Allows us to swap IMU1 and IMU2 (this swaps NT IMU1 and NT IMU2, not the on-board IMU, which always will be IMU2 if used) .&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Lipo Cells}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the number of cells of the battery. Default is {{PARAMVALUE|auto}}, which determines the number of cells from the battery voltage at power up.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Lipo Voltage per Cell}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Full charge voltage of a battery cell. Default is 4.20 V, appropriate for a LIPO.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|ADC Calibration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Calibration constant for voltage measurement. The default value {{PARAMVALUE|1550}} is slightly below the theoretically correct value of 1581.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Imu AHRS}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Adjusts how strongly the accelerometer data are included in the data fusing for the attitude estimation. The shorter the time the stronger the accelerometer data are weighted (0 = accelerometer only, 20 = gyro only).&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Startup Gyro Calibration}}: &amp;lt;br&amp;gt;&lt;br /&gt;
Sets the gyro calibration at startup. Default is {{PARAMVALUE|normal}}.&lt;br /&gt;
&lt;br /&gt;
==== The following parameters should be set with care. Normally, there should be no reason to modify them. ====&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc LPF}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Digital low pass filter applied to the raw accelerometer data. It also affects the behavior of the AHRS.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Rc Adc LPF}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Digital low pass filter applied to the Rc Input values. Might be helpful for very noisy RC transmitters.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pan Hold Transition Time}}, {{PARAMNAMEDEF|Pan Speed Limit}}, {{PARAMNAMEDEF|Pan Accel Limit}}: &amp;lt;br&amp;gt;&lt;br /&gt;
These parameters are related to the pan-to-hold and hold-to-pan transition behavior. The parameter {{PARAMNAMEDEF|Pan Hold Transition Time}} determines for how long a trajectory filter is applied to smooth the transition. The two limit parameters determine the speed and acceleration limits of the trajectory filter.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Foc Emergency}}: &amp;lt;br&amp;gt; &lt;br /&gt;
Sets the level of the emergency detection mechanism.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Compensation Method}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Selects the algorithm which is used for fusing the accelerometer and gyro data. Can be {{PARAMVALUE|standard}} or {{PARAMVALUE|advanced}}. The parameter affects the AHRS, and should be set with understanding. These posts might be useful: [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29173129], [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29176384], [http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=27&amp;amp;pp=50#post29176832].&lt;br /&gt;
&lt;br /&gt;
== Gimbal Model Tool Window ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Gimbal Model}} tab are comprehensively described in the article [[Model-based_Control|Model-based Control]].&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|T1 Pitch}}, {{PARAMNAMEDEF|T1 Roll}}, {{PARAMNAMEDEF|T1 Yaw}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Relative moments of inertia of the camera along the pitch, roll and yaw directions.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|T2 Roll}}, {{PARAMNAMEDEF|T2 Yaw}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Relative moments of inertia of the roll arm along the roll and yaw directions.&lt;br /&gt;
&lt;br /&gt;
== Gimbal Mechanics Tool Window ==&lt;br /&gt;
&lt;br /&gt;
The parameters in the {{GUI|Gimbal Mechanics}} tab allow to set mechanical gimbal limits. They are experimental.&lt;br /&gt;
&lt;br /&gt;
=== All Modes: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Yaw Motor Limit}}:&amp;lt;br&amp;gt; Limit for yaw axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Setpoint Speed Limit}}, {{PARAMNAMEDEF|Setpoint Accel Limit}}:&amp;lt;br&amp;gt; Speed and acceleration limits for changes of the setpoint.&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Pitch Motor Limit Min}}, {{PARAMNAMEDEF|Pitch Motor Limit Max}}, {{PARAMNAMEDEF|Roll Motor Limit}}:&amp;lt;br&amp;gt; Limits for pitch and roll axes.&lt;br /&gt;
&lt;br /&gt;
== Servo Tool Window ==&lt;br /&gt;
&lt;br /&gt;
=== In T-STorM32 Mode: ===&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Pitch P}}, {{PARAMNAMEDEF|Servo Pitch I}}, {{PARAMNAMEDEF|Servo Pitch D}}, {{PARAMNAMEDEF|Servo Pitch DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the pitch axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Roll P}}, {{PARAMNAMEDEF|Servo Roll I}}, {{PARAMNAMEDEF|Servo Roll D}}, {{PARAMNAMEDEF|Servo Roll DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the roll axis.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Servo Yaw P}}, {{PARAMNAMEDEF|Servo Yaw I}}, {{PARAMNAMEDEF|Servo Yaw D}}, {{PARAMNAMEDEF|Servo Yaw DLPF}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Parameters for the position PID controller in servo mode for the yaw axis.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{PARAMNAMEDEF|Imu Acc Threshold}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Maximal residual acceleration up to which the accelerometer data are taken into account in the attitude estimation. This parameter is effective only when {{PARAMNAME|Acc Compensation Method}} is set to {{PARAMVALUE|standard}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Noise Level}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Residual acceleration up to which the accelerometer data are taken into account with maximal weight in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Threshold}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Maximal residual acceleration up to which the accelerometer data are taken into account in the attitude estimation with non-zero weight. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Vertical Weight}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Weight of the vertical residual acceleration in determining the weight of the accelerometer data in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Zentrifugal Correction}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Weight of the centrifugal acceleration in determining the weight of the accelerometer data in the attitude estimation. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
&lt;br /&gt;
{{PARAMNAMEDEF|Acc Recover Time}}:&amp;lt;br&amp;gt;&lt;br /&gt;
Fall time for recovering from a reduced weight of the accelerometer data in the attitude estimation. The rise time is determined implicitly by the {{PARAMNAME|Acc LPF}} parameter value. Effective only when {{PARAMNAME|Acc Compensation Method}} = {{PARAMVALUE|advanced}}.&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Manuals_and_Tutorials&amp;diff=11913</id>
		<title>Manuals and Tutorials</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Manuals_and_Tutorials&amp;diff=11913"/>
		<updated>2025-11-30T10:36:59Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Flyers&#039;&#039;&#039;&lt;br /&gt;
* [[What is STorM32 NT about?]]&lt;br /&gt;
* [[What is T-STorM32 about?]]&lt;br /&gt;
* [[STorM32-Link]]&lt;br /&gt;
* [[Terms of Use]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial&#039;&#039;&#039;&lt;br /&gt;
* [[Getting Started]]&lt;br /&gt;
* [[Tuning Recipe]]&lt;br /&gt;
* [[Configure the RC Input]]&lt;br /&gt;
* [[Hold versus Pan Mode]]&lt;br /&gt;
* [[Advanced Functions]]&lt;br /&gt;
* [[Video Tutorials]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Boards, Modules, and Vendors&#039;&#039;&#039;&lt;br /&gt;
* [[STorM32 Boards]]&lt;br /&gt;
* [[Where to buy STorM32 components]]&lt;br /&gt;
&amp;lt;!--* [[Where to buy plug&amp;amp;play STorM32 gimbals]]&lt;br /&gt;
* [[Where to buy STorM32 boards]]&lt;br /&gt;
* [[Where to get NT Modules]]&lt;br /&gt;
* [[Where to buy T-STorM32 stuff]]&lt;br /&gt;
* [[How to choose a gimbal motor]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Manuals&#039;&#039;&#039;&lt;br /&gt;
* [[Dos and Don&#039;ts]]&lt;br /&gt;
* [[How to flash firmware]]&lt;br /&gt;
* [[How to flash NT Modules]]&lt;br /&gt;
* [[Calibration]]&lt;br /&gt;
* [[Inputs and Functions]]&lt;br /&gt;
* [[Using a 2nd IMU]]&lt;br /&gt;
* [[Using the DataDisplay]]&lt;br /&gt;
* [[STorM32 Scripts]]&lt;br /&gt;
* [[Prearm Checks]]&lt;br /&gt;
* [[NT Camera]]&lt;br /&gt;
* [[Filters]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;T-STorM32 Manuals&#039;&#039;&#039;&lt;br /&gt;
* [[Getting Started with T-STorM32]]&lt;br /&gt;
* [[How to build a T-STorM32 gimbal]]&lt;br /&gt;
* [[Model-based Control]]&lt;br /&gt;
* [[NT Module CLI]]&lt;br /&gt;
&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Reference Manuals&#039;&#039;&#039;&lt;br /&gt;
* [[Leds]]&lt;br /&gt;
* [[Pins and Connectors]]&lt;br /&gt;
* [[Pins and Connectors of NT Modules]]&lt;br /&gt;
* [[Ports and Pins by Function]]&lt;br /&gt;
* [[STorM32 Parameters|Complete List of Parameters]]&lt;br /&gt;
* [[Serial Communication]]&lt;br /&gt;
* [[MAVLink Communication]]&lt;br /&gt;
* [[NT Data Logging]]&lt;br /&gt;
* [[Serial Ports]]&lt;br /&gt;
* [[Calibration Model]]&lt;br /&gt;
* [[NT Bus Protocol]]&lt;br /&gt;
* [[Yaw]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Application Notes&#039;&#039;&#039;&lt;br /&gt;
* [[Using STorM32 with BetaPilot]]&lt;br /&gt;
* [[Using STorM32 with ArduPilot]]&lt;br /&gt;
* [[Evaluating Vibrations and Optimizing Damper Systems]]&lt;br /&gt;
* [[Code Examples]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Bits and Bobs&#039;&#039;&#039;&lt;br /&gt;
* [[How to use 2 axis and 1 axis gimbals]]&lt;br /&gt;
* [[Determine number of motor poles]]&lt;br /&gt;
* [[Ensys NT Modules]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[3.3 V Fix Mod for STorM32 v1.31 Boards]]&lt;br /&gt;
* [[How to build a DIY NT Logger]]&lt;br /&gt;
* [[RS485, LVDS, and Alike]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[How to install and use a joystick]]&lt;br /&gt;
* [[Gimbals with Integrated Landing Skids]]&lt;br /&gt;
* [[Using STorM32 with Raspberry Pi]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;White Papers&#039;&#039;&#039;&lt;br /&gt;
* [[Manually Setting the IMU Orientation]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;DIY&#039;&#039;&#039;&lt;br /&gt;
* [[How to order the electronic parts]]&lt;br /&gt;
* [[How to order print boards (PCBs)]]&lt;br /&gt;
* [[Electronic Parts for NT Modules]]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Miscellaneous Projects]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Legacy&#039;&#039;&#039;&lt;br /&gt;
* [[CAN Bus Communication]]&lt;br /&gt;
* [[Bluetooth Module HC06]]&lt;br /&gt;
* [[Filters]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Using STorM32 with DJI]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Using a OLED Display]]&lt;br /&gt;
* [[Using a ESP8266 Wifi Module]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Recycle Bin&#039;&#039;&#039;&lt;br /&gt;
* [[Tuning Guide]]&lt;br /&gt;
* [[QuickStart Guide - old, v0.56]]&lt;br /&gt;
* [[Getting Started - old, v0.56]]&lt;br /&gt;
* [[Where to buy accessories and supplies]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[I2C Error Compendium]]&lt;br /&gt;
* [[Serial Communication - old, v0.77e]]&lt;br /&gt;
* [[6-Point Calibration - old]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Quick Start Guide|Quick Start Guide - old, v0.57e]]&lt;br /&gt;
* [[Serial Communication old]]&lt;br /&gt;
* [[Using STorM32 with ArduPilot - old]]&lt;br /&gt;
* [[Using STorM32 with ArduPilot - old II]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Q Mode]]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Pins_and_Connectors&amp;diff=11912</id>
		<title>Pins and Connectors</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Pins_and_Connectors&amp;diff=11912"/>
		<updated>2025-11-30T10:36:02Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* STorM32 v6.2 Board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides diagrams of the many connections on the STorM32 boards.&lt;br /&gt;
&lt;br /&gt;
The STorM32 connections are grouped into &#039;&#039;&#039;&#039;&#039;ports&#039;&#039;&#039;&#039;&#039;. A port consists typically of one or more &#039;&#039;&#039;&#039;&#039;pins&#039;&#039;&#039;&#039;&#039;, a Gnd pin and possibly a 3.3 V or 5 V pin. The pins of a port are labeled by the port name plus a number (e.g. AUX-0 refers to the pin 0 on the {{BOX|AUX}} port) or by its commonly known function (such as Gnd, 3.3 V, Tx, Rx, SCL, SDA etc.). Some pins can serve multiple purposes, e.g., pin RC-0 can serve also as Futaba S-Bus input, as CRSF input or as UARTX-Rx.&lt;br /&gt;
&lt;br /&gt;
For a general description of the ports and pins see [[Ports and Pins by Function]]. For the details of their function and usage please consult the other wiki pages.&lt;br /&gt;
&lt;br /&gt;
Except of the ports {{BOX|POT}}, {{BOX|BUT}} and {{BOX|UART2/ESP}} all ports are 5 V tolerant, which means that you can apply signals with voltages of up to 5 V to their pins without damaging the board. The ports {{BOX|POT}}, {{BOX|BUT}} and {{BOX|UART2/ESP}} are however &#039;&#039;&#039;&#039;&#039;not&#039;&#039;&#039;&#039;&#039; 5 V tolerant. &#039;&#039;&#039;&#039;&#039;{{WARNING|The voltage on the {{BOX|POT}}, {{BOX|BUT}} and {{BOX|UART2/ESP}} pins must not exceed 3.3 V}}&#039;&#039;&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
The 3.3 V and 5 V pins must only be used as supply. &#039;&#039;&#039;&#039;&#039;{{WARNING|Never apply any voltage to a 3.3 V or 5 V pin}}&#039;&#039;&#039;&#039;&#039; (unless you&#039;re an expert and know what you do).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== STorM32 v6.3 Board ==&lt;br /&gt;
&lt;br /&gt;
The STorM32 v6.3 main board has the same connections as the v4.1 board. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specs&#039;&#039;&#039;: [[STorM32_Boards#STorM32-BGC_v6.3|STorM32 Boards: STorM32-BGC v6.3]]&lt;br /&gt;
&lt;br /&gt;
== STorM32 v6.2 Board ==&lt;br /&gt;
&lt;br /&gt;
The STorM32 v6.2 main board has the same connections as the v3.3 board (except of the CAN bus pins, which are obsolete and not available on v6.2). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specs&#039;&#039;&#039;: [[STorM32_Boards#STorM32-BGC_v6.2|STorM32 Boards: STorM32-BGC v6.2]]&lt;br /&gt;
&lt;br /&gt;
== STorM32 v4.1 Board ==&lt;br /&gt;
&lt;br /&gt;
The STorM32 v4.1 main board provides two types of NT bus ports, the {{BOX|NT}} and {{BOX|NT-X}} ports. They both are &#039;&#039;&#039;&#039;&#039;different&#039;&#039;&#039;&#039;&#039; from the NT bus connectors found on the NT modules in as much as they have swapped Rx, Tx pins. &lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The Rx, Tx pins of the {{BOX|NT}} and {{BOX|NT-X}} ports on the STorM32 board must be connected to the Tx, Rx pins on the NT modules.}}&lt;br /&gt;
&lt;br /&gt;
On the bottom side of the board is located the JP1 solder bridge (not visible in the picture below). When closed: The motor drivers are connected to VBat and are powered, and can be used. The voltage shall then not exceed 12 V or 3S. When open: The motor drivers are disabled and non-functional, and the voltage can be up to 27 V or 6S. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specs&#039;&#039;&#039;: [[STorM32_Boards#STorM32-BGC_v4.1|STorM32 Boards: STorM32-BGC v4.1]]&lt;br /&gt;
&lt;br /&gt;
:[[File:Storm32-bgc-nt-v41-ports-and-connections.jpg|720px]]&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The board shown in the picture is a pre-release version (doesn&#039;t show the JP1 solder bridge on the bottom side).}}&lt;br /&gt;
&lt;br /&gt;
== STorM32 v3.3 Board ==&lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.3 main board provides two types of NT bus ports, the {{BOX|NT}} and {{BOX|NT-X}} ports. They both are &#039;&#039;&#039;&#039;&#039;different&#039;&#039;&#039;&#039;&#039; from the NT bus connectors found on the NT modules in as much as they have swapped Rx, Tx pins. &lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The Rx, Tx pins of the {{BOX|NT}} and {{BOX|NT-X}} ports on the STorM32 board must be connected to the Tx, Rx pins on the NT modules.}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v3.3 STorM32 boards have &#039;&#039;&#039;no&#039;&#039;&#039; motor drivers on-board, i.e., NT motor modules are needed in addition.}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The {{BOX|CAN}} port is obsolete, and not supported anymore since firmware v2.57e.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specs&#039;&#039;&#039;: [[STorM32_Boards#STorM32-BGC_v3.3m,_v3.3i|STorM32 Boards: STorM32-BGC v3.3m/i]]&lt;br /&gt;
&lt;br /&gt;
:[[File:Storm32-bgc-nt-v33-ports-and-connections.jpg|720px]]&lt;br /&gt;
&lt;br /&gt;
== Micro STorM32 v3.3 Board ==&lt;br /&gt;
&lt;br /&gt;
The v3.3i Micro STorM32 board provides the same connections as the v3.3 Board (with the exception of the {{BOX|USB}} port), but exposes them as solder pads.&lt;br /&gt;
&lt;br /&gt;
The Micro STorM32 board is designed to be stackable with other extension boards, such as USB, power, motor, logger boards, see e.g. the rcgroups post [https://www.rcgroups.com/forums/showpost.php?p=43237597&amp;amp;postcount=11716 here].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v3.3 Micro STorM32 board has &#039;&#039;&#039;no&#039;&#039;&#039; motor drivers on-board, i.e., NT motor modules are needed in addition.}}&lt;br /&gt;
&lt;br /&gt;
:[[File:Storm32-bgc-micro-v33-ports-and-connections.jpg|720px]]&lt;br /&gt;
&lt;br /&gt;
== STorM32 RaspberryPi Hat v3.3 ==&lt;br /&gt;
&lt;br /&gt;
The v3.3i STorM32 RaspberryPi Hat provides the same connections as the Micro STorM32 v3.3 board, but in RaspberryPi micro-Hat form factor. The hat is designed to be compatible with the extension boards of the Micro STorM32 series. In addition it provides an EEPROM as required by the RaspberryPi Hat specification (not populated in the picture). Furthermore it provides a dual UART expansion module, and some more connections with the RaspberryPi GPIOs.&lt;br /&gt;
&lt;br /&gt;
:[[File:Storm32-rpihat-v33i-ports-and-connections.jpg|720px]]&lt;br /&gt;
&lt;br /&gt;
== STorM32 v1.x Boards ==&lt;br /&gt;
&lt;br /&gt;
On STorM32 v1.3x main boards, the I2C plug is used as NT bus connector, with the pin assignment as shown below. &lt;br /&gt;
&lt;br /&gt;
The scheme below refers to a v1.3 board. The pins of the v1.31 board are identical to that of the v1.3 board. &lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The Rx and Tx pins on the STorM32 board must be connected to the Tx and Rx pins on the NT modules. This needs a &amp;quot;crossing&amp;quot; of the Rx, Tx lines for the v1.x boards, see also the diagram in [[What_is_STorM32_NT_about%3F|What is STorM32 NT about?]]}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|If starting from a &amp;quot;classic&amp;quot; (non-NT) STorM32 gimbal kit with an I2C IMU module, it is usually necessary to rewire existing cables to match the pinout of the NT bus.}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|v1.1 and v1.2 boards are deprecated and not supported anymore. The v1.2 board run the firmware for the v1.3x board, with only few caveats.}} &lt;br /&gt;
&lt;br /&gt;
:[[File:Storm32-bgc-v13-ports-and-connections.jpg|540px]]&lt;br /&gt;
&amp;lt;!--:[[File:NT_Pinout.jpg|480px]]--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Ensys STorM32 v3.3 Board ==&lt;br /&gt;
&lt;br /&gt;
This board, although obviously derived from the v3.3 design, is a propietary design by [https://www.ensys.lt/product-category/electronics/ Ensys] with many smaller and larger modifications. &lt;br /&gt;
&lt;br /&gt;
Please inspect their page for documentation: [https://www.ensys.lt/product/ensys-storm32-v3-3-board-beta/ here].&lt;br /&gt;
&lt;br /&gt;
== CC3D Atom STorM32 Board ==&lt;br /&gt;
&lt;br /&gt;
Since firmware version v2.27 it is possible to use a Atom CC3D as STorM32 main board. The Flexi Port plug is used as NT bus connector, with the pin assignments as shown below. Further information on the CC3D Atom can be found [http://opwiki.readthedocs.io/en/latest/user_manual/cc3d/cc3d.html here].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The CC3D cannot be used anymore with the latest firmwares. This is obviously so because the feature set has grown enormously taking up too much flash space. The v3.3 board should be an excellent alternative.}} &lt;br /&gt;
&lt;br /&gt;
:[[File:Storm32-bgc-nt-cc3d-pinout.jpg|680px]]--&amp;gt;&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Filters&amp;diff=11911</id>
		<title>Filters</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Filters&amp;diff=11911"/>
		<updated>2025-11-30T10:35:06Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;The information on this page refers to firmware v2.74 and higher.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The STorM32 provides a filter section to filter the gyro and accelerometer, using notch/band-cut filters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Concept and Overview ==&lt;br /&gt;
&lt;br /&gt;
The filters are organized into three identical filter banks, which are processed in series. That is, the data are feed into filter bank #1, the output of this bank is then feed into filter bank #2, and finally the output of bank #2 is feed into filter bank #3. This allows for a very flexible choice of filter arrangements.&lt;br /&gt;
&lt;br /&gt;
The parameters of the filter banks are exemplarily described for filter bank #1. They are:&lt;br /&gt;
&lt;br /&gt;
* {{PARAMNAME|Filter1 Source}}: Selects the filter source. &lt;br /&gt;
* {{PARAMNAME|Filter1 Center Frequency}}: Selects the center or cut-off frequency of the filter.&lt;br /&gt;
* {{PARAMNAME|Filter1 Bandwidth}}: Selects the bandwidth for notch or band-cut filters.&lt;br /&gt;
* {{PARAMNAME|Filter1 Attenuation}}: Selects the attenuation of the band-cut filters. {{PARAMVALUE|inf}} results in a notch filter.&lt;br /&gt;
&lt;br /&gt;
== Filter Sources ==&lt;br /&gt;
&lt;br /&gt;
Currently, the following data sources are available:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; !filter source!effect&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|off}} || The filter bank is inactive.&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|gyro1 all}} || The raw data of gyro1 are filtered.&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|imu1 all}} || &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Manuals_and_Tutorials&amp;diff=11910</id>
		<title>Manuals and Tutorials</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Manuals_and_Tutorials&amp;diff=11910"/>
		<updated>2025-11-30T10:33:14Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Flyers&#039;&#039;&#039;&lt;br /&gt;
* [[What is STorM32 NT about?]]&lt;br /&gt;
* [[What is T-STorM32 about?]]&lt;br /&gt;
* [[STorM32-Link]]&lt;br /&gt;
* [[Terms of Use]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial&#039;&#039;&#039;&lt;br /&gt;
* [[Getting Started]]&lt;br /&gt;
* [[Tuning Recipe]]&lt;br /&gt;
* [[Configure the RC Input]]&lt;br /&gt;
* [[Hold versus Pan Mode]]&lt;br /&gt;
* [[Advanced Functions]]&lt;br /&gt;
* [[Video Tutorials]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Boards, Modules, and Vendors&#039;&#039;&#039;&lt;br /&gt;
* [[STorM32 Boards]]&lt;br /&gt;
* [[Where to buy STorM32 components]]&lt;br /&gt;
&amp;lt;!--* [[Where to buy plug&amp;amp;play STorM32 gimbals]]&lt;br /&gt;
* [[Where to buy STorM32 boards]]&lt;br /&gt;
* [[Where to get NT Modules]]&lt;br /&gt;
* [[Where to buy T-STorM32 stuff]]&lt;br /&gt;
* [[How to choose a gimbal motor]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Manuals&#039;&#039;&#039;&lt;br /&gt;
* [[Dos and Don&#039;ts]]&lt;br /&gt;
* [[How to flash firmware]]&lt;br /&gt;
* [[How to flash NT Modules]]&lt;br /&gt;
* [[Calibration]]&lt;br /&gt;
* [[Inputs and Functions]]&lt;br /&gt;
* [[Using a 2nd IMU]]&lt;br /&gt;
* [[Using the DataDisplay]]&lt;br /&gt;
* [[STorM32 Scripts]]&lt;br /&gt;
* [[Prearm Checks]]&lt;br /&gt;
* [[NT Camera]]&lt;br /&gt;
* [[Filters]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;T-STorM32 Manuals&#039;&#039;&#039;&lt;br /&gt;
* [[Getting Started with T-STorM32]]&lt;br /&gt;
* [[How to build a T-STorM32 gimbal]]&lt;br /&gt;
* [[Model-based Control]]&lt;br /&gt;
* [[NT Module CLI]]&lt;br /&gt;
&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Reference Manuals&#039;&#039;&#039;&lt;br /&gt;
* [[Leds]]&lt;br /&gt;
* [[Pins and Connectors]]&lt;br /&gt;
* [[Pins and Connectors of NT Modules]]&lt;br /&gt;
* [[Ports and Pins by Function]]&lt;br /&gt;
* [[STorM32 Parameters|Complete List of Parameters]]&lt;br /&gt;
* [[Serial Communication]]&lt;br /&gt;
* [[MAVLink Communication]]&lt;br /&gt;
* [[NT Data Logging]]&lt;br /&gt;
* [[Serial Ports]]&lt;br /&gt;
* [[Calibration Model]]&lt;br /&gt;
* [[NT Bus Protocol]]&lt;br /&gt;
* [[Yaw]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Application Notes&#039;&#039;&#039;&lt;br /&gt;
* [[Using STorM32 with BetaPilot]]&lt;br /&gt;
* [[Using STorM32 with ArduPilot]]&lt;br /&gt;
* [[Evaluating Vibrations and Optimizing Damper Systems]]&lt;br /&gt;
* [[Code Examples]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Bits and Bobs&#039;&#039;&#039;&lt;br /&gt;
* [[How to use 2 axis and 1 axis gimbals]]&lt;br /&gt;
* [[Determine number of motor poles]]&lt;br /&gt;
* [[Ensys NT Modules]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[3.3 V Fix Mod for STorM32 v1.31 Boards]]&lt;br /&gt;
* [[How to build a DIY NT Logger]]&lt;br /&gt;
* [[RS485, LVDS, and Alike]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[How to install and use a joystick]]&lt;br /&gt;
* [[Gimbals with Integrated Landing Skids]]&lt;br /&gt;
* [[Using STorM32 with Raspberry Pi]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;White Papers&#039;&#039;&#039;&lt;br /&gt;
* [[Manually Setting the IMU Orientation]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;DIY&#039;&#039;&#039;&lt;br /&gt;
* [[How to order the electronic parts]]&lt;br /&gt;
* [[How to order print boards (PCBs)]]&lt;br /&gt;
* [[Electronic Parts for NT Modules]]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Miscellaneous Projects]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Legacy&#039;&#039;&#039;&lt;br /&gt;
* [[CAN Bus Communication]]&lt;br /&gt;
* [[Bluetooth Module HC06]]&lt;br /&gt;
* [[Filters]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Using STorM32 with DJI]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Using a OLED Display]]&lt;br /&gt;
* [[Using a ESP8266 Wifi Module]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Recycle Bin&#039;&#039;&#039;&lt;br /&gt;
* [[Tuning Guide]]&lt;br /&gt;
* [[QuickStart Guide - old, v0.56]]&lt;br /&gt;
* [[Getting Started - old, v0.56]]&lt;br /&gt;
* [[Where to buy accessories and supplies]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[I2C Error Compendium]]&lt;br /&gt;
* [[Serial Communication - old, v0.77e]]&lt;br /&gt;
* [[6-Point Calibration - old]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Quick Start Guide|Quick Start Guide - old, v0.57e]]&lt;br /&gt;
* [[Serial Communication old]]&lt;br /&gt;
* [[Using STorM32 with ArduPilot - old]]&lt;br /&gt;
* [[Using STorM32 with ArduPilot - old II]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Q Mode]]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Manuals_and_Tutorials&amp;diff=11909</id>
		<title>Manuals and Tutorials</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Manuals_and_Tutorials&amp;diff=11909"/>
		<updated>2025-11-30T10:33:02Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Flyers&#039;&#039;&#039;&lt;br /&gt;
* [[What is STorM32 NT about?]]&lt;br /&gt;
* [[What is T-STorM32 about?]]&lt;br /&gt;
* [[STorM32-Link]]&lt;br /&gt;
* [[Terms of Use]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tutorial&#039;&#039;&#039;&lt;br /&gt;
* [[Getting Started]]&lt;br /&gt;
* [[Tuning Recipe]]&lt;br /&gt;
* [[Configure the RC Input]]&lt;br /&gt;
* [[Hold versus Pan Mode]]&lt;br /&gt;
* [[Advanced Functions]]&lt;br /&gt;
* [[Video Tutorials]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Boards, Modules, and Vendors&#039;&#039;&#039;&lt;br /&gt;
* [[STorM32 Boards]]&lt;br /&gt;
* [[Where to buy STorM32 components]]&lt;br /&gt;
&amp;lt;!--* [[Where to buy plug&amp;amp;play STorM32 gimbals]]&lt;br /&gt;
* [[Where to buy STorM32 boards]]&lt;br /&gt;
* [[Where to get NT Modules]]&lt;br /&gt;
* [[Where to buy T-STorM32 stuff]]&lt;br /&gt;
* [[How to choose a gimbal motor]]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Manuals&#039;&#039;&#039;&lt;br /&gt;
* [[Dos and Don&#039;ts]]&lt;br /&gt;
* [[How to flash firmware]]&lt;br /&gt;
* [[How to flash NT Modules]]&lt;br /&gt;
* [[Calibration]]&lt;br /&gt;
* [[Inputs and Functions]]&lt;br /&gt;
* [[Using a 2nd IMU]]&lt;br /&gt;
* [[Using the DataDisplay]]&lt;br /&gt;
* [[STorM32 Scripts]]&lt;br /&gt;
* [[Prearm Checks]]&lt;br /&gt;
* [[NT Camera]]&lt;br /&gt;
* [[Filters]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;T-STorM32 Manuals&#039;&#039;&#039;&lt;br /&gt;
* [[Getting Started with T-STorM32]]&lt;br /&gt;
* [[How to build a T-STorM32 gimbal]]&lt;br /&gt;
* [[Model-based Control]]&lt;br /&gt;
* [[NT Module CLI]]&lt;br /&gt;
&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Reference Manuals&#039;&#039;&#039;&lt;br /&gt;
* [[Leds]]&lt;br /&gt;
* [[Pins and Connectors]]&lt;br /&gt;
* [[Pins and Connectors of NT Modules]]&lt;br /&gt;
* [[Ports and Pins by Function]]&lt;br /&gt;
* [[STorM32 Parameters|Complete List of Parameters]]&lt;br /&gt;
* [[Serial Communication]]&lt;br /&gt;
* [[MAVLink Communication]]&lt;br /&gt;
* [[NT Data Logging]]&lt;br /&gt;
* [[Serial Ports]]&lt;br /&gt;
* [[Calibration Model]]&lt;br /&gt;
* [[NT Bus Protocol]]&lt;br /&gt;
* [[Yaw]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Application Notes&#039;&#039;&#039;&lt;br /&gt;
* [[Using STorM32 with BetaPilot]]&lt;br /&gt;
* [[Using STorM32 with ArduPilot]]&lt;br /&gt;
* [[Evaluating Vibrations and Optimizing Damper Systems]]&lt;br /&gt;
* [[Code Examples]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Bits and Bobs&#039;&#039;&#039;&lt;br /&gt;
* [[How to use 2 axis and 1 axis gimbals]]&lt;br /&gt;
* [[Determine number of motor poles]]&lt;br /&gt;
* [[Ensys NT Modules]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[3.3 V Fix Mod for STorM32 v1.31 Boards]]&lt;br /&gt;
* [[How to build a DIY NT Logger]]&lt;br /&gt;
* [[RS485, LVDS, and Alike]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[How to install and use a joystick]]&lt;br /&gt;
* [[Gimbals with Integrated Landing Skids]]&lt;br /&gt;
* [[Using STorM32 with Raspberry Pi]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;White Papers&#039;&#039;&#039;&lt;br /&gt;
* [[Manually Setting the IMU Orientation]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;DIY&#039;&#039;&#039;&lt;br /&gt;
* [[How to order the electronic parts]]&lt;br /&gt;
* [[How to order print boards (PCBs)]]&lt;br /&gt;
* [[Electronic Parts for NT Modules]]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Miscellaneous Projects]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Legacy&#039;&#039;&#039;&lt;br /&gt;
* [[CAN Bus Communication]]&lt;br /&gt;
* [[Bluetooth Module HC06]]&lt;br /&gt;
* [[Filters]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Using STorM32 with DJI]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Using a OLED Display]]&lt;br /&gt;
* [[Using a ESP8266 Wifi Module]]&lt;br /&gt;
|}&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
&#039;&#039;&#039;Recycle Bin&#039;&#039;&#039;&lt;br /&gt;
* [[Tuning Guide]]&lt;br /&gt;
* [[QuickStart Guide - old, v0.56]]&lt;br /&gt;
* [[Getting Started - old, v0.56]]&lt;br /&gt;
* [[Where to buy accessories and supplies]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[I2C Error Compendium]]&lt;br /&gt;
* [[Serial Communication - old, v0.77e]]&lt;br /&gt;
* [[6-Point Calibration - old]]&lt;br /&gt;
|width=300px|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Quick Start Guide|Quick Start Guide - old, v0.57e]]&lt;br /&gt;
* [[Serial Communication old]]&lt;br /&gt;
* [[Using STorM32 with ArduPilot - old]]&lt;br /&gt;
* [[Using STorM32 with ArduPilot - old II]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Q Mode]]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11908</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11908"/>
		<updated>2025-11-30T09:14:25Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. &amp;lt;br/&amp;gt;&lt;br /&gt;
- Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3]. STorM32 v3 will not support the old and tried v1.3x boards, as well as not the v3.3 and v4.1 boards. Reason is that the STM32F103 microcontroller used on these boards has simply become too limited.&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.74 firmware download:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v274-v20251130.zip o323bgc-release-v274-v20251130] [.zip] (14.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=54399911&amp;amp;postcount=16253 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11907</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11907"/>
		<updated>2025-11-30T08:41:08Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* v2.xx Firmware for NT IMUs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. &amp;lt;br/&amp;gt;&lt;br /&gt;
- Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3]. STorM32 v3 will not support the old and tried v1.3x boards, as well as not the v3.3 and v4.1 boards. Reason is that the STM32F103 microcontroller used on these boards has simply become too limited.&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.74 firmware download:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v274-v20251130.zip o323bgc-release-v274-v20251130] [.zip] (14.9 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11906</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11906"/>
		<updated>2025-11-30T08:40:46Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. &amp;lt;br/&amp;gt;&lt;br /&gt;
- Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3]. STorM32 v3 will not support the old and tried v1.3x boards, as well as not the v3.3 and v4.1 boards. Reason is that the STM32F103 microcontroller used on these boards has simply become too limited.&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.74 firmware download:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v274-v20251130.zip o323bgc-release-v274-v20251130] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11905</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11905"/>
		<updated>2025-11-30T08:40:28Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* v2.xx Firmware for NT IMUs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. &amp;lt;br/&amp;gt;&lt;br /&gt;
- Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3]. STorM32 v3 will not support the old and tried v1.3x boards, as well as not the v3.3 and v4.1 boards. Reason is that the STM32F103 microcontroller used on these boards has simply become too limited.&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.74 firmware download:&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v274-v20251130.zip o323bgc-release-v274-v20251130] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
-_&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Serial_Ports&amp;diff=11904</id>
		<title>Serial Ports</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Serial_Ports&amp;diff=11904"/>
		<updated>2025-11-21T18:34:42Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* Availability */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article aims at providing some clarification concerning the STorM32&#039;s serial ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
&lt;br /&gt;
The naming of the STorM32 serial ports may appear confusing at first. However, it is in fact pretty consistent, across all boards - with one (unfortunate) exception: UART1. &lt;br /&gt;
&lt;br /&gt;
Generally, the STorM32 port naming follows this scheme: The name of a port is simply the type of the port, plus a number (or symbol) for the 2nd port of that type, and so on. Example: {{BOX|RC}} and {{BOX|RC2}}. The STorM32 serial ports are named {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}}, and {{BOX|UARTX}}, and are accessible in the GUI as {{PARAMVALUE|usb}}, {{PARAMVALUE|uart}}, {{PARAMVALUE|uart2}}, and {{PARAMVALUE|uartx}}. The pins corresponding to, e.g., the ports {{BOX|UART}} and {{BOX|UART2}} are labelled accordingly as Rx/Tx and Rx2/Tx2.&lt;br /&gt;
&lt;br /&gt;
UART1 is different. It is not a port like {{BOX|UART}} or {{BOX|UART2}}, and you won&#039;t find any parameter with the option {{PARAMVALUE|uart1}} in the GUI, yet the name &amp;quot;UART1&amp;quot; appears in various places, e.g. as Rx1/Tx1 labels on boards, or in pin descriptions, or in documentary.&lt;br /&gt;
 &lt;br /&gt;
=== MCU Peripherals and Special Role of UART1 on v1.x, v3.3 Boards ===&lt;br /&gt;
&lt;br /&gt;
The microcontroller (MCU) which is used in the STorM32 controllers (STM32F103 or STM323H7A3) offers a number of hardware peripherals, among them the serial peripherals. These are generally called UARTx or USARTx, where x goes from 1 to 5 for e.g. the STM32F103RC chip (we will not distinguish between UARTx or USARTx but just call them UARTx). Note: This naming convention is a choice of the chip manufacturer, not ours. &lt;br /&gt;
&lt;br /&gt;
  The names for the serial hardware peripherals must not be confused with the names of the serial ports of the STorM32 controller!&lt;br /&gt;
&lt;br /&gt;
For instance, on the v1.3x boards the serial port {{BOX|UART}} is the hardware peripheral UART3, while on the v3.3 and v4.1 boards it is    the hardware peripheral UART5. From a user perspective this is however irrelevant, since all the user needs to know is that there is a serial port {{BOX|UART}} which can be selected in the GUI as {{PARAMVALUE|uart}}.&lt;br /&gt;
&lt;br /&gt;
The hardware peripheral UART1 is special, since it allows us to flash the firmware into the microcontroller of the v1.x and v3.3 boards, and it is used by STorM32 for exactly this purpose. Therefore, this peripheral is exposed on these STorM32 boards so we can flash the firmware using it, which is the reason for why one finds a UART1 port (or Rx1/Tx1 labels) on the v1.x and v3.3 boards.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the number of serial ports provided by v1.3x STorM32 boards is not sufficient for some applications. Therefore, on v1.3x boards one can use also the peripheral UART1 to fullfill the user&#039;s needs. In the STorM32 software, this is made possible, for some features, as {{BOX|UARTX}} port.&lt;br /&gt;
&lt;br /&gt;
=== Availability ===&lt;br /&gt;
&lt;br /&gt;
Concerning the availability of the serial ports (for STorM32 boards documented in this wik) one can note:&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide a {{BOX|UART}} port.&lt;br /&gt;
&lt;br /&gt;
* All &amp;quot;full-size&amp;quot; STorM32 boards provide a {{BOX|USB}} port (exception are some special designs such as micro boards). On the v1.3x and v6.x1 boards the USB connector is tied to the MCU&#039;s USB peripheral, whereas for the v3.3 and v4.1 boards it is connected via a on-board USB-TTL adapter to the UART1 peripheral.&lt;br /&gt;
&lt;br /&gt;
* The v3.3/v4.1/v6.x STorM32 boards provide a {{BOX|UART2}} serial on the {{BOX|UART2}} port or {{BOX|ESP}} port. The v1.x boards do not offer this serial (here the GUI setting {{PARAMVALUE|uart2}} has no effect).&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide the {{BOX|UARTX}} serial. It is found on the {{BOX|RC}} port, pins RC-0 and RC-1, and is accessible in the GUI as {{PARAMVALUE|uartx}}. In pictures of the v1.x board it is however labelled as UART1 and not UARTX.&lt;br /&gt;
&lt;br /&gt;
* On the v3.3 STorM32 board, the UART1 hardware peripheral is available as extra UART1 (Rx1/Tx1) port. On the v1.3x boards this peripheral is on the {{BOX|RC}} port, pins RC-0 and RC-1.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Gui&lt;br /&gt;
! v1.3x &lt;br /&gt;
! v3.3/v4.1&lt;br /&gt;
! v6.2/v6.3&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uart}}  || {{BOX|UART}} port || {{BOX|UART}} port || {{BOX|UART}} port&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uart2}} || has no effect, {{BOX|UART2}} port not available || {{BOX|UART2}} port or on {{BOX|ESP}} port || {{BOX|UART2}} port&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|usb}} || USB connector || USB connector or UART1 port&amp;lt;br&amp;gt;is equal to UART1 || USB connector&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uartx}} || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;labeled UART1, is equal to UART1 || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;labeled UARTX || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;labeled UARTX&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
The naming of the STorM32&#039;s serial ports can be confusing. This article aims at providing some clarification.&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
&lt;br /&gt;
Generally one has to distinguish between the hardware peripherals provided by the STM32 micro-controller and their names, and the available serial ports and their naming. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, there is some overlap in the naming, which certainly contributes to the confusion. Furthermore, some STorM32 serials may not be found on ports which are named accordingly, but on &amp;quot;other&amp;quot; ports. This mess is certainly unfortunate, but reflects the efforts to continually increase the STorM32&#039;s capabilities and satisfy user demands while keeping some backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
The hardware peripherals are generally called UARTx or USARTx, where x goes from 1 to 5 for e.g. STM32F103 chips. We will not distinguish between UART or USART but just call them UARTx.&lt;br /&gt;
&lt;br /&gt;
Concerning the STorM32&#039;s serials, the general rule is that they are named {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}}, and {{BOX|UARTX}}, and that these are accessible in the GUI as {{PARAMVALUE|usb}}, {{PARAMVALUE|uart}}, {{PARAMVALUE|uart2}}, and {{PARAMVALUE|uartx}}. These must not be confused with the STM32&#039;s peripherals UART1, UART2, UART3, and so on.&lt;br /&gt;
&lt;br /&gt;
Concerning the availability of the serials, one can note:&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide the {{BOX|UART}} port.&lt;br /&gt;
&lt;br /&gt;
* The STorM32 v3.x boards do provide a port labeled UART1, which is indeed the STM32 UART1 peripheral, and can be used for flashing firmware, but to the STorM32 firmware it is the {{BOX|USB}} port (accessible in the GUI as {{PARAMVALUE|usb}}). Some STorM32 v3.x boards provide in addition a physical USB connector, which is however just also UART1 (i.e. connected to UART1 with a USB-TTL adapter), with said function. On the STorM32 v1.x boards the {{BOX|USB}} port is indeed the physical USB connector, while the STM32&#039;s UART1 peripheral used for flashing firmware is available on the STorM32 {{BOX|RC}} port, pins RC-0 and RC-1.&lt;br /&gt;
&lt;br /&gt;
* On the STorM32 v3.x boards the {{BOX|UART2}} serial is either available as an explicit {{BOX|UART2}} port or via the {{BOX|ESP}} port. The v1.x boards do not offer this serial at all (for these boards the GUI setting {{PARAMVALUE|uart2}} has no effect).&lt;br /&gt;
&lt;br /&gt;
* On all STorM32 boards the {{BOX|UARTX}} serial is available on the {{BOX|RC}} port, pins RC-0 and RC-1 (accessible in the GUI as {{PARAMVALUE|uartx}}). In pictures of the v1.x board it is however indicated as UART1 and not UARTX (on these boards UARTX is in fact the STM32 UART1 peripheral).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Baudrate ==&lt;br /&gt;
&lt;br /&gt;
The default baudrate is generally 115200 bps for all serial ports (including {{BOX|USB}} on the v3.3 and v4.1 boards).&lt;br /&gt;
&lt;br /&gt;
They can be adjusted for the {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}} serial ports in the GUI. There is no possibility to adjust the baudrate of the {{BOX|UARTX}} serial port.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The GUI per default also communicates with a baudrate of 115200 bps. It can be changed in the GUI.}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|Changing the baudrate of a serial port can imply that one cannot connect to this port with the GUI anymore.}}&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Serial_Ports&amp;diff=11903</id>
		<title>Serial Ports</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Serial_Ports&amp;diff=11903"/>
		<updated>2025-11-21T18:33:43Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* Availability */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article aims at providing some clarification concerning the STorM32&#039;s serial ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
&lt;br /&gt;
The naming of the STorM32 serial ports may appear confusing at first. However, it is in fact pretty consistent, across all boards - with one (unfortunate) exception: UART1. &lt;br /&gt;
&lt;br /&gt;
Generally, the STorM32 port naming follows this scheme: The name of a port is simply the type of the port, plus a number (or symbol) for the 2nd port of that type, and so on. Example: {{BOX|RC}} and {{BOX|RC2}}. The STorM32 serial ports are named {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}}, and {{BOX|UARTX}}, and are accessible in the GUI as {{PARAMVALUE|usb}}, {{PARAMVALUE|uart}}, {{PARAMVALUE|uart2}}, and {{PARAMVALUE|uartx}}. The pins corresponding to, e.g., the ports {{BOX|UART}} and {{BOX|UART2}} are labelled accordingly as Rx/Tx and Rx2/Tx2.&lt;br /&gt;
&lt;br /&gt;
UART1 is different. It is not a port like {{BOX|UART}} or {{BOX|UART2}}, and you won&#039;t find any parameter with the option {{PARAMVALUE|uart1}} in the GUI, yet the name &amp;quot;UART1&amp;quot; appears in various places, e.g. as Rx1/Tx1 labels on boards, or in pin descriptions, or in documentary.&lt;br /&gt;
 &lt;br /&gt;
=== MCU Peripherals and Special Role of UART1 on v1.x, v3.3 Boards ===&lt;br /&gt;
&lt;br /&gt;
The microcontroller (MCU) which is used in the STorM32 controllers (STM32F103 or STM323H7A3) offers a number of hardware peripherals, among them the serial peripherals. These are generally called UARTx or USARTx, where x goes from 1 to 5 for e.g. the STM32F103RC chip (we will not distinguish between UARTx or USARTx but just call them UARTx). Note: This naming convention is a choice of the chip manufacturer, not ours. &lt;br /&gt;
&lt;br /&gt;
  The names for the serial hardware peripherals must not be confused with the names of the serial ports of the STorM32 controller!&lt;br /&gt;
&lt;br /&gt;
For instance, on the v1.3x boards the serial port {{BOX|UART}} is the hardware peripheral UART3, while on the v3.3 and v4.1 boards it is    the hardware peripheral UART5. From a user perspective this is however irrelevant, since all the user needs to know is that there is a serial port {{BOX|UART}} which can be selected in the GUI as {{PARAMVALUE|uart}}.&lt;br /&gt;
&lt;br /&gt;
The hardware peripheral UART1 is special, since it allows us to flash the firmware into the microcontroller of the v1.x and v3.3 boards, and it is used by STorM32 for exactly this purpose. Therefore, this peripheral is exposed on these STorM32 boards so we can flash the firmware using it, which is the reason for why one finds a UART1 port (or Rx1/Tx1 labels) on the v1.x and v3.3 boards.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the number of serial ports provided by v1.3x STorM32 boards is not sufficient for some applications. Therefore, on v1.3x boards one can use also the peripheral UART1 to fullfill the user&#039;s needs. In the STorM32 software, this is made possible, for some features, as {{BOX|UARTX}} port.&lt;br /&gt;
&lt;br /&gt;
=== Availability ===&lt;br /&gt;
&lt;br /&gt;
Concerning the availability of the serial ports (for STorM32 boards documented in this wik) one can note:&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide a {{BOX|UART}} port.&lt;br /&gt;
&lt;br /&gt;
* All &amp;quot;full-size&amp;quot; STorM32 boards provide a {{BOX|USB}} port (exception are some special designs such as micro boards). On the v1.3x and v6.x1 boards the USB connector is tied to the MCU&#039;s USB peripheral, whereas for the v3.3 and v4.1 boards it is connected via a on-board USB-TTL adapter to the UART1 peripheral.&lt;br /&gt;
&lt;br /&gt;
* The v3.3/v4.1/v6.x STorM32 boards provide a {{BOX|UART2}} serial on the {{BOX|UART2}} port or {{BOX|ESP}} port. The v1.x boards do not offer this serial (here the GUI setting {{PARAMVALUE|uart2}} has no effect).&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide the {{BOX|UARTX}} serial. It is found on the {{BOX|RC}} port, pins RC-0 and RC-1, and is accessible in the GUI as {{PARAMVALUE|uartx}}. In pictures of the v1.x board it is however labelled as UART1 and not UARTX.&lt;br /&gt;
&lt;br /&gt;
* On the v3.3 STorM32 board, the UART1 hardware peripheral is available as extra UART1 (Rx1/Tx1) port. On the v1.3x boards this peripheral is on the {{BOX|RC}} port, pins RC-0 and RC-1.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Gui&lt;br /&gt;
! v1.3x &lt;br /&gt;
! v3.3/v4.1&lt;br /&gt;
! v6.2/v6.3&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uart}}  || {{BOX|UART}} port || {{BOX|UART}} port || {{BOX|UART}} port&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uart2}} || has no effect, {{BOX|UART2}} port not available || {{BOX|UART2}} port or on {{BOX|ESP}} port || {{BOX|UART2}} port&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|usb}} || USB connector || USB connector or UART1 port&amp;lt;br&amp;gt;is equal to UART1 || USB connector&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uartx}} || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;is equal to UART1, labeled UART1 || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;labeled UARTX || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;labeled UARTX&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
The naming of the STorM32&#039;s serial ports can be confusing. This article aims at providing some clarification.&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
&lt;br /&gt;
Generally one has to distinguish between the hardware peripherals provided by the STM32 micro-controller and their names, and the available serial ports and their naming. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, there is some overlap in the naming, which certainly contributes to the confusion. Furthermore, some STorM32 serials may not be found on ports which are named accordingly, but on &amp;quot;other&amp;quot; ports. This mess is certainly unfortunate, but reflects the efforts to continually increase the STorM32&#039;s capabilities and satisfy user demands while keeping some backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
The hardware peripherals are generally called UARTx or USARTx, where x goes from 1 to 5 for e.g. STM32F103 chips. We will not distinguish between UART or USART but just call them UARTx.&lt;br /&gt;
&lt;br /&gt;
Concerning the STorM32&#039;s serials, the general rule is that they are named {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}}, and {{BOX|UARTX}}, and that these are accessible in the GUI as {{PARAMVALUE|usb}}, {{PARAMVALUE|uart}}, {{PARAMVALUE|uart2}}, and {{PARAMVALUE|uartx}}. These must not be confused with the STM32&#039;s peripherals UART1, UART2, UART3, and so on.&lt;br /&gt;
&lt;br /&gt;
Concerning the availability of the serials, one can note:&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide the {{BOX|UART}} port.&lt;br /&gt;
&lt;br /&gt;
* The STorM32 v3.x boards do provide a port labeled UART1, which is indeed the STM32 UART1 peripheral, and can be used for flashing firmware, but to the STorM32 firmware it is the {{BOX|USB}} port (accessible in the GUI as {{PARAMVALUE|usb}}). Some STorM32 v3.x boards provide in addition a physical USB connector, which is however just also UART1 (i.e. connected to UART1 with a USB-TTL adapter), with said function. On the STorM32 v1.x boards the {{BOX|USB}} port is indeed the physical USB connector, while the STM32&#039;s UART1 peripheral used for flashing firmware is available on the STorM32 {{BOX|RC}} port, pins RC-0 and RC-1.&lt;br /&gt;
&lt;br /&gt;
* On the STorM32 v3.x boards the {{BOX|UART2}} serial is either available as an explicit {{BOX|UART2}} port or via the {{BOX|ESP}} port. The v1.x boards do not offer this serial at all (for these boards the GUI setting {{PARAMVALUE|uart2}} has no effect).&lt;br /&gt;
&lt;br /&gt;
* On all STorM32 boards the {{BOX|UARTX}} serial is available on the {{BOX|RC}} port, pins RC-0 and RC-1 (accessible in the GUI as {{PARAMVALUE|uartx}}). In pictures of the v1.x board it is however indicated as UART1 and not UARTX (on these boards UARTX is in fact the STM32 UART1 peripheral).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Baudrate ==&lt;br /&gt;
&lt;br /&gt;
The default baudrate is generally 115200 bps for all serial ports (including {{BOX|USB}} on the v3.3 and v4.1 boards).&lt;br /&gt;
&lt;br /&gt;
They can be adjusted for the {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}} serial ports in the GUI. There is no possibility to adjust the baudrate of the {{BOX|UARTX}} serial port.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The GUI per default also communicates with a baudrate of 115200 bps. It can be changed in the GUI.}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|Changing the baudrate of a serial port can imply that one cannot connect to this port with the GUI anymore.}}&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Serial_Ports&amp;diff=11902</id>
		<title>Serial Ports</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Serial_Ports&amp;diff=11902"/>
		<updated>2025-11-21T18:33:11Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* Availability */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article aims at providing some clarification concerning the STorM32&#039;s serial ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
&lt;br /&gt;
The naming of the STorM32 serial ports may appear confusing at first. However, it is in fact pretty consistent, across all boards - with one (unfortunate) exception: UART1. &lt;br /&gt;
&lt;br /&gt;
Generally, the STorM32 port naming follows this scheme: The name of a port is simply the type of the port, plus a number (or symbol) for the 2nd port of that type, and so on. Example: {{BOX|RC}} and {{BOX|RC2}}. The STorM32 serial ports are named {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}}, and {{BOX|UARTX}}, and are accessible in the GUI as {{PARAMVALUE|usb}}, {{PARAMVALUE|uart}}, {{PARAMVALUE|uart2}}, and {{PARAMVALUE|uartx}}. The pins corresponding to, e.g., the ports {{BOX|UART}} and {{BOX|UART2}} are labelled accordingly as Rx/Tx and Rx2/Tx2.&lt;br /&gt;
&lt;br /&gt;
UART1 is different. It is not a port like {{BOX|UART}} or {{BOX|UART2}}, and you won&#039;t find any parameter with the option {{PARAMVALUE|uart1}} in the GUI, yet the name &amp;quot;UART1&amp;quot; appears in various places, e.g. as Rx1/Tx1 labels on boards, or in pin descriptions, or in documentary.&lt;br /&gt;
 &lt;br /&gt;
=== MCU Peripherals and Special Role of UART1 on v1.x, v3.3 Boards ===&lt;br /&gt;
&lt;br /&gt;
The microcontroller (MCU) which is used in the STorM32 controllers (STM32F103 or STM323H7A3) offers a number of hardware peripherals, among them the serial peripherals. These are generally called UARTx or USARTx, where x goes from 1 to 5 for e.g. the STM32F103RC chip (we will not distinguish between UARTx or USARTx but just call them UARTx). Note: This naming convention is a choice of the chip manufacturer, not ours. &lt;br /&gt;
&lt;br /&gt;
  The names for the serial hardware peripherals must not be confused with the names of the serial ports of the STorM32 controller!&lt;br /&gt;
&lt;br /&gt;
For instance, on the v1.3x boards the serial port {{BOX|UART}} is the hardware peripheral UART3, while on the v3.3 and v4.1 boards it is    the hardware peripheral UART5. From a user perspective this is however irrelevant, since all the user needs to know is that there is a serial port {{BOX|UART}} which can be selected in the GUI as {{PARAMVALUE|uart}}.&lt;br /&gt;
&lt;br /&gt;
The hardware peripheral UART1 is special, since it allows us to flash the firmware into the microcontroller of the v1.x and v3.3 boards, and it is used by STorM32 for exactly this purpose. Therefore, this peripheral is exposed on these STorM32 boards so we can flash the firmware using it, which is the reason for why one finds a UART1 port (or Rx1/Tx1 labels) on the v1.x and v3.3 boards.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the number of serial ports provided by v1.3x STorM32 boards is not sufficient for some applications. Therefore, on v1.3x boards one can use also the peripheral UART1 to fullfill the user&#039;s needs. In the STorM32 software, this is made possible, for some features, as {{BOX|UARTX}} port.&lt;br /&gt;
&lt;br /&gt;
=== Availability ===&lt;br /&gt;
&lt;br /&gt;
Concerning the availability of the serial ports (for STorM32 boards documented in this wik) one can note:&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide a {{BOX|UART}} port.&lt;br /&gt;
&lt;br /&gt;
* All &amp;quot;full-size&amp;quot; STorM32 boards provide a {{BOX|USB}} port (exception are some special designs such as micro boards). On the v1.3x and v6.x1 boards the USB connector is tied to the MCU&#039;s USB peripheral, whereas for the v3.3 and v4.1 boards it is connected via a on-board USB-TTL adapter to the UART1 peripheral.&lt;br /&gt;
&lt;br /&gt;
* The v3.3/v4.1/v6.x STorM32 boards provide a {{BOX|UART2}} serial on the {{BOX|UART2}} port or {{BOX|ESP}} port. The v1.x boards do not offer this serial (here the GUI setting {{PARAMVALUE|uart2}} has no effect).&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide the {{BOX|UARTX}} serial. It is found on the {{BOX|RC}} port, pins RC-0 and RC-1, and is accessible in the GUI as {{PARAMVALUE|uartx}}. In pictures of the v1.x board it is however labelled as UART1 and not UARTX.&lt;br /&gt;
&lt;br /&gt;
* On the v3.3 STorM32 board, the UART1 hardware peripheral is available as extra UART1 (Rx1/Tx1) port. On the v1.3x boards this peripheral is on the {{BOX|RC}} port, pins RC-0 and RC-1.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Gui&lt;br /&gt;
! v1.3x &lt;br /&gt;
! v3.3/v4.1&lt;br /&gt;
! v6.2/v6.3&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uart}}  || {{BOX|UART}} port || {{BOX|UART}} port || {{BOX|UART}} port&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uart2}} || has no effect, {{BOX|UART2}} port not available || {{BOX|UART2}} port or on {{BOX|ESP}} port || {{BOX|UART2}} port or on {{BOX|ESP}} port&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|usb}} || USB connector || USB connector or UART1 port&amp;lt;br&amp;gt;is equal to UART1 || USB connector&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uartx}} || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;is equal to UART1, labeled UART1 || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;labeled UARTX || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;labeled UARTX&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
The naming of the STorM32&#039;s serial ports can be confusing. This article aims at providing some clarification.&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
&lt;br /&gt;
Generally one has to distinguish between the hardware peripherals provided by the STM32 micro-controller and their names, and the available serial ports and their naming. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, there is some overlap in the naming, which certainly contributes to the confusion. Furthermore, some STorM32 serials may not be found on ports which are named accordingly, but on &amp;quot;other&amp;quot; ports. This mess is certainly unfortunate, but reflects the efforts to continually increase the STorM32&#039;s capabilities and satisfy user demands while keeping some backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
The hardware peripherals are generally called UARTx or USARTx, where x goes from 1 to 5 for e.g. STM32F103 chips. We will not distinguish between UART or USART but just call them UARTx.&lt;br /&gt;
&lt;br /&gt;
Concerning the STorM32&#039;s serials, the general rule is that they are named {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}}, and {{BOX|UARTX}}, and that these are accessible in the GUI as {{PARAMVALUE|usb}}, {{PARAMVALUE|uart}}, {{PARAMVALUE|uart2}}, and {{PARAMVALUE|uartx}}. These must not be confused with the STM32&#039;s peripherals UART1, UART2, UART3, and so on.&lt;br /&gt;
&lt;br /&gt;
Concerning the availability of the serials, one can note:&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide the {{BOX|UART}} port.&lt;br /&gt;
&lt;br /&gt;
* The STorM32 v3.x boards do provide a port labeled UART1, which is indeed the STM32 UART1 peripheral, and can be used for flashing firmware, but to the STorM32 firmware it is the {{BOX|USB}} port (accessible in the GUI as {{PARAMVALUE|usb}}). Some STorM32 v3.x boards provide in addition a physical USB connector, which is however just also UART1 (i.e. connected to UART1 with a USB-TTL adapter), with said function. On the STorM32 v1.x boards the {{BOX|USB}} port is indeed the physical USB connector, while the STM32&#039;s UART1 peripheral used for flashing firmware is available on the STorM32 {{BOX|RC}} port, pins RC-0 and RC-1.&lt;br /&gt;
&lt;br /&gt;
* On the STorM32 v3.x boards the {{BOX|UART2}} serial is either available as an explicit {{BOX|UART2}} port or via the {{BOX|ESP}} port. The v1.x boards do not offer this serial at all (for these boards the GUI setting {{PARAMVALUE|uart2}} has no effect).&lt;br /&gt;
&lt;br /&gt;
* On all STorM32 boards the {{BOX|UARTX}} serial is available on the {{BOX|RC}} port, pins RC-0 and RC-1 (accessible in the GUI as {{PARAMVALUE|uartx}}). In pictures of the v1.x board it is however indicated as UART1 and not UARTX (on these boards UARTX is in fact the STM32 UART1 peripheral).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Baudrate ==&lt;br /&gt;
&lt;br /&gt;
The default baudrate is generally 115200 bps for all serial ports (including {{BOX|USB}} on the v3.3 and v4.1 boards).&lt;br /&gt;
&lt;br /&gt;
They can be adjusted for the {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}} serial ports in the GUI. There is no possibility to adjust the baudrate of the {{BOX|UARTX}} serial port.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The GUI per default also communicates with a baudrate of 115200 bps. It can be changed in the GUI.}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|Changing the baudrate of a serial port can imply that one cannot connect to this port with the GUI anymore.}}&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Serial_Ports&amp;diff=11901</id>
		<title>Serial Ports</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Serial_Ports&amp;diff=11901"/>
		<updated>2025-11-21T18:28:55Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* Availability */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article aims at providing some clarification concerning the STorM32&#039;s serial ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
&lt;br /&gt;
The naming of the STorM32 serial ports may appear confusing at first. However, it is in fact pretty consistent, across all boards - with one (unfortunate) exception: UART1. &lt;br /&gt;
&lt;br /&gt;
Generally, the STorM32 port naming follows this scheme: The name of a port is simply the type of the port, plus a number (or symbol) for the 2nd port of that type, and so on. Example: {{BOX|RC}} and {{BOX|RC2}}. The STorM32 serial ports are named {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}}, and {{BOX|UARTX}}, and are accessible in the GUI as {{PARAMVALUE|usb}}, {{PARAMVALUE|uart}}, {{PARAMVALUE|uart2}}, and {{PARAMVALUE|uartx}}. The pins corresponding to, e.g., the ports {{BOX|UART}} and {{BOX|UART2}} are labelled accordingly as Rx/Tx and Rx2/Tx2.&lt;br /&gt;
&lt;br /&gt;
UART1 is different. It is not a port like {{BOX|UART}} or {{BOX|UART2}}, and you won&#039;t find any parameter with the option {{PARAMVALUE|uart1}} in the GUI, yet the name &amp;quot;UART1&amp;quot; appears in various places, e.g. as Rx1/Tx1 labels on boards, or in pin descriptions, or in documentary.&lt;br /&gt;
 &lt;br /&gt;
=== MCU Peripherals and Special Role of UART1 on v1.x, v3.3 Boards ===&lt;br /&gt;
&lt;br /&gt;
The microcontroller (MCU) which is used in the STorM32 controllers (STM32F103 or STM323H7A3) offers a number of hardware peripherals, among them the serial peripherals. These are generally called UARTx or USARTx, where x goes from 1 to 5 for e.g. the STM32F103RC chip (we will not distinguish between UARTx or USARTx but just call them UARTx). Note: This naming convention is a choice of the chip manufacturer, not ours. &lt;br /&gt;
&lt;br /&gt;
  The names for the serial hardware peripherals must not be confused with the names of the serial ports of the STorM32 controller!&lt;br /&gt;
&lt;br /&gt;
For instance, on the v1.3x boards the serial port {{BOX|UART}} is the hardware peripheral UART3, while on the v3.3 and v4.1 boards it is    the hardware peripheral UART5. From a user perspective this is however irrelevant, since all the user needs to know is that there is a serial port {{BOX|UART}} which can be selected in the GUI as {{PARAMVALUE|uart}}.&lt;br /&gt;
&lt;br /&gt;
The hardware peripheral UART1 is special, since it allows us to flash the firmware into the microcontroller of the v1.x and v3.3 boards, and it is used by STorM32 for exactly this purpose. Therefore, this peripheral is exposed on these STorM32 boards so we can flash the firmware using it, which is the reason for why one finds a UART1 port (or Rx1/Tx1 labels) on the v1.x and v3.3 boards.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the number of serial ports provided by v1.3x STorM32 boards is not sufficient for some applications. Therefore, on v1.3x boards one can use also the peripheral UART1 to fullfill the user&#039;s needs. In the STorM32 software, this is made possible, for some features, as {{BOX|UARTX}} port.&lt;br /&gt;
&lt;br /&gt;
=== Availability ===&lt;br /&gt;
&lt;br /&gt;
Concerning the availability of the serial ports (for STorM32 boards documented in this wik) one can note:&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide the {{BOX|UART}} port.&lt;br /&gt;
&lt;br /&gt;
* All &amp;quot;full-size&amp;quot; STorM32 boards provide the {{BOX|USB}} port (exception are some special designs such as micro boards). On the v1.3x and v6.x1 boards the USB connector is tied to the MCUs USB peripheral, whereas for the v3.3 and v4.1 boards it is connected via a on-board USB-TTL adapter to the UART1 peripheral. &lt;br /&gt;
&lt;br /&gt;
* The v3.3/v4.1/v6.x STorM32 boards provide the {{BOX|UART2}} serial on the {{BOX|UART2}} port or {{BOX|ESP}} port. The v1.x boards do not offer this serial (here the GUI setting {{PARAMVALUE|uart2}} has no effect).&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards offer the {{BOX|UARTX}} serial, which is found on the {{BOX|RC}} port, pins RC-0 and RC-1, and is accessible in the GUI as {{PARAMVALUE|uartx}}. In pictures of the v1.x board it is however labelled as UART1 and not UARTX.&lt;br /&gt;
&lt;br /&gt;
* The v3.3 STorM32 boards provide a port labeled UART1 (Rx1/Tx1), which is indeed the UART1 hardware peripheral. Some v3.3 also provide a physical USB connector, which is however just again the UART1 peripheral (tied together via a on-board USB-TTL adapter). The UART1 port or USB connector is accessible in the GUI as {{PARAMVALUE|usb}}, i.e., this is the {{BOX|USB}} port. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Gui&lt;br /&gt;
! v1.3x &lt;br /&gt;
! v3.3/v4.1&lt;br /&gt;
! v6.2/v6.3&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uart}}  || {{BOX|UART}} port || {{BOX|UART}} port || {{BOX|UART}} port&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uart2}} || has no effect, {{BOX|UART2}} port not available || {{BOX|UART2}} port or on {{BOX|ESP}} port || {{BOX|UART2}} port or on {{BOX|ESP}} port&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|usb}} || USB connector || USB connector or UART1 port&amp;lt;br&amp;gt;is equal to UART1 || USB connector&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uartx}} || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;is equal to UART1, labeled UART1 || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;labeled UARTX || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;labeled UARTX&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
The naming of the STorM32&#039;s serial ports can be confusing. This article aims at providing some clarification.&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
&lt;br /&gt;
Generally one has to distinguish between the hardware peripherals provided by the STM32 micro-controller and their names, and the available serial ports and their naming. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, there is some overlap in the naming, which certainly contributes to the confusion. Furthermore, some STorM32 serials may not be found on ports which are named accordingly, but on &amp;quot;other&amp;quot; ports. This mess is certainly unfortunate, but reflects the efforts to continually increase the STorM32&#039;s capabilities and satisfy user demands while keeping some backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
The hardware peripherals are generally called UARTx or USARTx, where x goes from 1 to 5 for e.g. STM32F103 chips. We will not distinguish between UART or USART but just call them UARTx.&lt;br /&gt;
&lt;br /&gt;
Concerning the STorM32&#039;s serials, the general rule is that they are named {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}}, and {{BOX|UARTX}}, and that these are accessible in the GUI as {{PARAMVALUE|usb}}, {{PARAMVALUE|uart}}, {{PARAMVALUE|uart2}}, and {{PARAMVALUE|uartx}}. These must not be confused with the STM32&#039;s peripherals UART1, UART2, UART3, and so on.&lt;br /&gt;
&lt;br /&gt;
Concerning the availability of the serials, one can note:&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide the {{BOX|UART}} port.&lt;br /&gt;
&lt;br /&gt;
* The STorM32 v3.x boards do provide a port labeled UART1, which is indeed the STM32 UART1 peripheral, and can be used for flashing firmware, but to the STorM32 firmware it is the {{BOX|USB}} port (accessible in the GUI as {{PARAMVALUE|usb}}). Some STorM32 v3.x boards provide in addition a physical USB connector, which is however just also UART1 (i.e. connected to UART1 with a USB-TTL adapter), with said function. On the STorM32 v1.x boards the {{BOX|USB}} port is indeed the physical USB connector, while the STM32&#039;s UART1 peripheral used for flashing firmware is available on the STorM32 {{BOX|RC}} port, pins RC-0 and RC-1.&lt;br /&gt;
&lt;br /&gt;
* On the STorM32 v3.x boards the {{BOX|UART2}} serial is either available as an explicit {{BOX|UART2}} port or via the {{BOX|ESP}} port. The v1.x boards do not offer this serial at all (for these boards the GUI setting {{PARAMVALUE|uart2}} has no effect).&lt;br /&gt;
&lt;br /&gt;
* On all STorM32 boards the {{BOX|UARTX}} serial is available on the {{BOX|RC}} port, pins RC-0 and RC-1 (accessible in the GUI as {{PARAMVALUE|uartx}}). In pictures of the v1.x board it is however indicated as UART1 and not UARTX (on these boards UARTX is in fact the STM32 UART1 peripheral).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Baudrate ==&lt;br /&gt;
&lt;br /&gt;
The default baudrate is generally 115200 bps for all serial ports (including {{BOX|USB}} on the v3.3 and v4.1 boards).&lt;br /&gt;
&lt;br /&gt;
They can be adjusted for the {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}} serial ports in the GUI. There is no possibility to adjust the baudrate of the {{BOX|UARTX}} serial port.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The GUI per default also communicates with a baudrate of 115200 bps. It can be changed in the GUI.}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|Changing the baudrate of a serial port can imply that one cannot connect to this port with the GUI anymore.}}&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Serial_Ports&amp;diff=11900</id>
		<title>Serial Ports</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Serial_Ports&amp;diff=11900"/>
		<updated>2025-11-21T18:16:47Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* MCU Peripherals and Special Role of UART1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article aims at providing some clarification concerning the STorM32&#039;s serial ports.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
&lt;br /&gt;
The naming of the STorM32 serial ports may appear confusing at first. However, it is in fact pretty consistent, across all boards - with one (unfortunate) exception: UART1. &lt;br /&gt;
&lt;br /&gt;
Generally, the STorM32 port naming follows this scheme: The name of a port is simply the type of the port, plus a number (or symbol) for the 2nd port of that type, and so on. Example: {{BOX|RC}} and {{BOX|RC2}}. The STorM32 serial ports are named {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}}, and {{BOX|UARTX}}, and are accessible in the GUI as {{PARAMVALUE|usb}}, {{PARAMVALUE|uart}}, {{PARAMVALUE|uart2}}, and {{PARAMVALUE|uartx}}. The pins corresponding to, e.g., the ports {{BOX|UART}} and {{BOX|UART2}} are labelled accordingly as Rx/Tx and Rx2/Tx2.&lt;br /&gt;
&lt;br /&gt;
UART1 is different. It is not a port like {{BOX|UART}} or {{BOX|UART2}}, and you won&#039;t find any parameter with the option {{PARAMVALUE|uart1}} in the GUI, yet the name &amp;quot;UART1&amp;quot; appears in various places, e.g. as Rx1/Tx1 labels on boards, or in pin descriptions, or in documentary.&lt;br /&gt;
 &lt;br /&gt;
=== MCU Peripherals and Special Role of UART1 on v1.x, v3.3 Boards ===&lt;br /&gt;
&lt;br /&gt;
The microcontroller (MCU) which is used in the STorM32 controllers (STM32F103 or STM323H7A3) offers a number of hardware peripherals, among them the serial peripherals. These are generally called UARTx or USARTx, where x goes from 1 to 5 for e.g. the STM32F103RC chip (we will not distinguish between UARTx or USARTx but just call them UARTx). Note: This naming convention is a choice of the chip manufacturer, not ours. &lt;br /&gt;
&lt;br /&gt;
  The names for the serial hardware peripherals must not be confused with the names of the serial ports of the STorM32 controller!&lt;br /&gt;
&lt;br /&gt;
For instance, on the v1.3x boards the serial port {{BOX|UART}} is the hardware peripheral UART3, while on the v3.3 and v4.1 boards it is    the hardware peripheral UART5. From a user perspective this is however irrelevant, since all the user needs to know is that there is a serial port {{BOX|UART}} which can be selected in the GUI as {{PARAMVALUE|uart}}.&lt;br /&gt;
&lt;br /&gt;
The hardware peripheral UART1 is special, since it allows us to flash the firmware into the microcontroller of the v1.x and v3.3 boards, and it is used by STorM32 for exactly this purpose. Therefore, this peripheral is exposed on these STorM32 boards so we can flash the firmware using it, which is the reason for why one finds a UART1 port (or Rx1/Tx1 labels) on the v1.x and v3.3 boards.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the number of serial ports provided by v1.3x STorM32 boards is not sufficient for some applications. Therefore, on v1.3x boards one can use also the peripheral UART1 to fullfill the user&#039;s needs. In the STorM32 software, this is made possible, for some features, as {{BOX|UARTX}} port.&lt;br /&gt;
&lt;br /&gt;
=== Availability ===&lt;br /&gt;
&lt;br /&gt;
Concerning the availability of the serial ports (for STorM32 boards documented in this wik) one can note:&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide the {{BOX|UART}} port.&lt;br /&gt;
&lt;br /&gt;
* The v3.3/v4.1 STorM32 boards do provide a port labeled UART1 (Rx1/Tx1), which is indeed the UART1 hardware peripheral. Some v3.3 and the v4.1 boards do also provide a physical USB connector, which is however just again the UART1 peripheral (tied together via a on-board USB-TTL adapter). The UART1 port or USB connector is accessible in the GUI as {{PARAMVALUE|usb}}, i.e., this is the {{BOX|USB}} port. &lt;br /&gt;
&lt;br /&gt;
* On the STorM32 v1.x boards the {{BOX|USB}} serial is indeed the USB connector. The UART1 hardware peripheral, used e.g. for flashing firmware, is available on these boards on the {{BOX|RC}} port, as pins RC-0 and RC-1.&lt;br /&gt;
&lt;br /&gt;
* On the v3.3/v4.1 STorM32 boards the {{BOX|UART2}} serial is either available as an explicit {{BOX|UART2}} port or via the {{BOX|ESP}} port. The v1.x boards do not offer this serial at all (for these boards the GUI setting {{PARAMVALUE|uart2}} has no effect).&lt;br /&gt;
&lt;br /&gt;
* On all STorM32 boards the {{BOX|UARTX}} serial is available on the {{BOX|RC}} port, pins RC-0 and RC-1 (accessible in the GUI as {{PARAMVALUE|uartx}}). In pictures of the v1.x board one however finds it indicated as UART1 and not UARTX (on these boards {{BOX|UARTX}} is in fact the UART1 peripheral).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Gui&lt;br /&gt;
! v1.3x &lt;br /&gt;
! v3.3/v4.1&lt;br /&gt;
! v6.2/v6.3&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uart}}  || {{BOX|UART}} port || {{BOX|UART}} port || {{BOX|UART}} port&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uart2}} || has no effect, {{BOX|UART2}} port not available || {{BOX|UART2}} port or on {{BOX|ESP}} port || {{BOX|UART2}} port or on {{BOX|ESP}} port&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|usb}} || USB connector || USB connector or UART1 port&amp;lt;br&amp;gt;is equal to UART1 || USB connector&lt;br /&gt;
|-&lt;br /&gt;
| {{PARAMVALUE|uartx}} || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;is equal to UART1, labeled UART1 || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;labeled UARTX || RC-0,RC-1 pins on {{BOX|RC}} port&amp;lt;br&amp;gt;labeled UARTX&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
The naming of the STorM32&#039;s serial ports can be confusing. This article aims at providing some clarification.&lt;br /&gt;
&lt;br /&gt;
== Ports ==&lt;br /&gt;
&lt;br /&gt;
Generally one has to distinguish between the hardware peripherals provided by the STM32 micro-controller and their names, and the available serial ports and their naming. &lt;br /&gt;
&lt;br /&gt;
Unfortunately, there is some overlap in the naming, which certainly contributes to the confusion. Furthermore, some STorM32 serials may not be found on ports which are named accordingly, but on &amp;quot;other&amp;quot; ports. This mess is certainly unfortunate, but reflects the efforts to continually increase the STorM32&#039;s capabilities and satisfy user demands while keeping some backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
The hardware peripherals are generally called UARTx or USARTx, where x goes from 1 to 5 for e.g. STM32F103 chips. We will not distinguish between UART or USART but just call them UARTx.&lt;br /&gt;
&lt;br /&gt;
Concerning the STorM32&#039;s serials, the general rule is that they are named {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}}, and {{BOX|UARTX}}, and that these are accessible in the GUI as {{PARAMVALUE|usb}}, {{PARAMVALUE|uart}}, {{PARAMVALUE|uart2}}, and {{PARAMVALUE|uartx}}. These must not be confused with the STM32&#039;s peripherals UART1, UART2, UART3, and so on.&lt;br /&gt;
&lt;br /&gt;
Concerning the availability of the serials, one can note:&lt;br /&gt;
&lt;br /&gt;
* All STorM32 boards provide the {{BOX|UART}} port.&lt;br /&gt;
&lt;br /&gt;
* The STorM32 v3.x boards do provide a port labeled UART1, which is indeed the STM32 UART1 peripheral, and can be used for flashing firmware, but to the STorM32 firmware it is the {{BOX|USB}} port (accessible in the GUI as {{PARAMVALUE|usb}}). Some STorM32 v3.x boards provide in addition a physical USB connector, which is however just also UART1 (i.e. connected to UART1 with a USB-TTL adapter), with said function. On the STorM32 v1.x boards the {{BOX|USB}} port is indeed the physical USB connector, while the STM32&#039;s UART1 peripheral used for flashing firmware is available on the STorM32 {{BOX|RC}} port, pins RC-0 and RC-1.&lt;br /&gt;
&lt;br /&gt;
* On the STorM32 v3.x boards the {{BOX|UART2}} serial is either available as an explicit {{BOX|UART2}} port or via the {{BOX|ESP}} port. The v1.x boards do not offer this serial at all (for these boards the GUI setting {{PARAMVALUE|uart2}} has no effect).&lt;br /&gt;
&lt;br /&gt;
* On all STorM32 boards the {{BOX|UARTX}} serial is available on the {{BOX|RC}} port, pins RC-0 and RC-1 (accessible in the GUI as {{PARAMVALUE|uartx}}). In pictures of the v1.x board it is however indicated as UART1 and not UARTX (on these boards UARTX is in fact the STM32 UART1 peripheral).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Baudrate ==&lt;br /&gt;
&lt;br /&gt;
The default baudrate is generally 115200 bps for all serial ports (including {{BOX|USB}} on the v3.3 and v4.1 boards).&lt;br /&gt;
&lt;br /&gt;
They can be adjusted for the {{BOX|USB}}, {{BOX|UART}}, {{BOX|UART2}} serial ports in the GUI. There is no possibility to adjust the baudrate of the {{BOX|UARTX}} serial port.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The GUI per default also communicates with a baudrate of 115200 bps. It can be changed in the GUI.}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|Changing the baudrate of a serial port can imply that one cannot connect to this port with the GUI anymore.}}&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11899</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11899"/>
		<updated>2025-11-20T07:02:48Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. &amp;lt;br/&amp;gt;&lt;br /&gt;
- Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3]. STorM32 v3 will not support the old and tried v1.3x boards, as well as not the v3.3 and v4.1 boards. Reason is that the STM32F103 microcontroller used on these boards has simply become too limited.&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11898</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11898"/>
		<updated>2025-11-20T07:02:37Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}}&amp;lt;br/&amp;gt;{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. &amp;lt;br/&amp;gt;&lt;br /&gt;
- Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3]. STorM32 v3 will not support the old and tried v1.3x boards, as well as not the v3.3 and v4.1 boards. Reason is that the STM32F103 microcontroller used on these boards has simply become too limited.&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11897</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11897"/>
		<updated>2025-11-20T07:02:25Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}}&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. &amp;lt;br/&amp;gt;&lt;br /&gt;
- Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3]. STorM32 v3 will not support the old and tried v1.3x boards, as well as not the v3.3 and v4.1 boards. Reason is that the STM32F103 microcontroller used on these boards has simply become too limited.&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Scripts&amp;diff=11896</id>
		<title>STorM32 Scripts</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Scripts&amp;diff=11896"/>
		<updated>2025-11-20T02:29:47Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* Scripting Language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:88%&amp;quot;&amp;gt;&#039;&#039;The information on this page refers to firmware v2.69a and higher.&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With firmware version v0.51 the possibility of uploading scripts to the STorM32 controller, which are then executed on-board, without connection to a PC, has been introduced. It allows you to programmatically affect the behavior of the controller in order to achieve user specific needs and tasks with unprecedented flexibility. The STorM32 controller was the first of its kind to offer this innovative feature, which was when later adopted by others. &lt;br /&gt;
&lt;br /&gt;
The on-board scripts bring great possibilities, but need some understanding to avoid doing nonsense. This article gives some background, and presents the concepts by means of examples.&lt;br /&gt;
&lt;br /&gt;
== Overview of Script Types ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
The STorM32 on-board scripts should not be confused with other types of scripts, thus a short overview:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;On-board Scripts&#039;&#039;&#039;&#039;&#039;: These scripts are uploaded and stored into the controller, and are executed permanently by the controller. They are programmed by the user via the GUI&#039;s {{GUI|Scripts}} tab.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;Motion Control Scripts&#039;&#039;&#039;&#039;&#039;: In older firmware versions, the GUI did incorporate a dedicated Motion Control processor. These scripts were executed on the PC, sending commands to the STorM32 controller via e.g. USB, Bluetooth, or any other serial connection between the PC and the controller.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;Mission Planner Scripts&#039;&#039;&#039;&#039;&#039;: ArduPilot&#039;s [http://planner.ardupilot.com/ Mission Planner] allows to run Python scripts, which, similar to Motion Control scripts, are executed on the PC, sending messages to the autopilot.&lt;br /&gt;
&lt;br /&gt;
For all these scripts, the source code is stored in plain ASCII text files (and could hence be edited by any text editor), but the script type can be determined from the default file extension:&lt;br /&gt;
&lt;br /&gt;
 .scr = STorM32 on-board script&lt;br /&gt;
 .mcs = Motion Control script&lt;br /&gt;
 .py  = Mission Planner Python script&lt;br /&gt;
&lt;br /&gt;
When using the respective tools for handling the scripts, only the correct scripts, i.e. files with the correct file extension, should be accessible with the tools, avoiding confusion.&lt;br /&gt;
&lt;br /&gt;
This article focuses exclusively on the STorM32 on-board scripts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The STorM32 on-board scripts should not be confused with other types of scripts. &lt;br /&gt;
&lt;br /&gt;
These on-board scripts are uploaded and stored into the controller, and are executed permanently by the controller. They are programmed by the user via the GUI&#039;s {{GUI|Scripts}} tab. The source code is stored in plain ASCII text files (and could hence be edited by any text editor), with default file extension:&lt;br /&gt;
&lt;br /&gt;
 .scr = STorM32 on-board script&lt;br /&gt;
&lt;br /&gt;
== Technical Background ==&lt;br /&gt;
&lt;br /&gt;
Since the code space on the STorM32 controller is very limited (currently only 128 bytes in total are available for the on-board scripts), and especially because of performance reasons the scripts are stored in the controller as binary pseudo code. &lt;br /&gt;
&lt;br /&gt;
The workflow is thus as follows: The scripts written in the &#039;&#039;&#039;&#039;&#039;STorM32 on-board scripting language&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
are translated into pseudo code with a home-brewed compiler, which is integrated into the GUI. The pseudo code is then stored into the STorM32 controller board with a {{GUIFIELD|Write}}. The pseudo code is permanently executed online by the STorM32 controller using an internal pseudo-code processor.&lt;br /&gt;
&lt;br /&gt;
For understanding the internal working one should realize that the STorM32 controller code is essentially an endless loop, which is triggered and repeated every 1.5 ms. This is called a cycle. Two situations can hence occur in the execution of the pseudo code, namely - first - the next pseudo command should be executed in the same cycle as the previous one, or - second - the next pseudo command should be postponed and executed in the next cycle. Generally, the function commands are of the first kind, while for the control flow commands it depends.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
In total four scripts, named Script1 to Script4, can be run concurrently and independently. For each script, two fields are available in the {{GUI|Scripts}} tab, e.g. for Script1 these are:&lt;br /&gt;
&lt;br /&gt;
* {{PARAMNAME|Script1 Control}}&lt;br /&gt;
* {{PARAMNAME|Script1}}&lt;br /&gt;
&lt;br /&gt;
The first parameter field allows us to select the input channel, to which the script should &amp;quot;listen&amp;quot;, i.e., which input value is used in the script for e.g. triggering one of the up to five cases (see below). &lt;br /&gt;
&lt;br /&gt;
The second parameter field holds the code. It can be edited via the {{GUIFIELD|Edit Script1}} button. It opens the script editor window, which allows you to write, load and save code. Its syntactic correctness may be checked by doing a {{GUIFIELD|Compile}}. For accepting the code use {{GUIFIELD|Accept and Exit}}.&lt;br /&gt;
&lt;br /&gt;
Script1 is the master script in the sense that it allows us to modify the {{PARAMNAME|Script2 Control}}, {{PARAMNAME|Script3 Control}}, and {{PARAMNAME|Script4 Control}} parameters and hence to affect the behavior of the other scripts, while the other three scripts cannot modify any of script control parameters.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The four scripts are actually not run concurrently, but sequentially, and are thus not totally independent on each other. In each cycle, the scripts are processed in the order script1, script2, script3, script4. Therefore, a later script can undo changes made by an earlier script, and an earlier script can make changes which are seen by the later scripts.}}&lt;br /&gt;
&lt;br /&gt;
== Scripting Language ==&lt;br /&gt;
&lt;br /&gt;
The on-board scripting language has a relatively rich set of commands, which allows us to modify the controller behavior in reaction to inputs, as well as to control the camera for motion control.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Control flow commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
 CASE#1&lt;br /&gt;
 CASE#2&lt;br /&gt;
 CASE#3&lt;br /&gt;
 CASE#4&lt;br /&gt;
 STOP&lt;br /&gt;
 REPEAT&lt;br /&gt;
 WAIT time(int, in 0.1secs)&lt;br /&gt;
 RESTART&lt;br /&gt;
&lt;br /&gt;
The cases are determined by the value of the input selected with the {{PARAMNAME|Scriptx Control}} parameter (where x stands for 1,2,3,4). The value ranges for the CASE statements are (see also [[Inputs_and_Functions#Overview_Diagram|Inputs and Functions: Overview Diagram]]):&lt;br /&gt;
&lt;br /&gt;
* CASE#DEFAULT: -166 ... +166&lt;br /&gt;
* CASE#1: +333 ... +500&lt;br /&gt;
* CASE#2: -500 ... -333&lt;br /&gt;
* CASE#3: +216 ... +277&lt;br /&gt;
* CASE#4: -277 ... -216&lt;br /&gt;
&lt;br /&gt;
Note that the ranges for CASE#1 and CASE#2 start at +333 and -333, respectively, which corresponds to ca 1833 us and 1167 us (roughly, this is very transmitter dependent). Default transmitter settings may not reach these values. Note also that the ranges for CASE#3 and CASE#4 are relatively narrow, and thus can easily be missed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Parameter value commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 SETP parametername(string) option(int, float or string)&lt;br /&gt;
 SETPMINMAX parametername(string) option(int, float or string) option(int, float or string)&lt;br /&gt;
 RESTORE&lt;br /&gt;
 RESTOREALL&lt;br /&gt;
 SET parametername(string) value(int)&lt;br /&gt;
 SETMINMAX parametername(string) minvalue(int) maxvalue(int)&lt;br /&gt;
&lt;br /&gt;
The commands {{BOX|SETP}} and {{BOX|SET}} are identical function-wise, namely set a parameter to a value, but differ in the second argument: In {{BOX|SETP}} the set-to value of the parameter is specified as it is displayed in the GUI (except of the unit in value fields), while in {{BOX|SET}} the new value is specified by its internal integer representation. For instance, if the parameter {{PARAMNAME|Camera Model}} should be set to {{PARAMVALUE|GoPro Hero5}}, then the {{BOX|SETP}} command would be {{BOX|SETP &amp;quot;Camera Model&amp;quot; &amp;quot;GoPro Hero5&amp;quot;}}, and the {{BOX|SET}} command would be {{BOX|SET &amp;quot;Camera Model&amp;quot; 10}} (since the option &amp;quot;GoPro Hero5&amp;quot; is internally represented by the integer 10) (you can check this with {{GUI|Share Settings}}).&lt;br /&gt;
&lt;br /&gt;
Similar holds for the second and third parameters in the {{BOX|SETPMINMAX}} and {{BOX|SETMINMAX}} commands.&lt;br /&gt;
 &lt;br /&gt;
The {{BOX|SET}} and {{BOX|SETMINMAX}} commands are still existing for compatibility, but should not be used in new scripts (in fact, the script compiler replaced them with the newer {{BOX|SETP}} and {{BOX|SETPMINMAX}} commands).&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|For some paramneters, a change of their setting initiates further actions, such as a restart of the controller. Changing their values in a script can lead to undetermined behavior, and should thus not be handled in scripts. Parameters of this kind are, e.g., {{PARAMNAME|Pitch Motor Usage}}, {{PARAMNAME|Roll Motor Usage}}, {{PARAMNAME|Yaw Motor Usage}}, {{PARAMNAME|Motor Mapping}}, and {{PARAMNAME|Imu Mapping}}.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Function commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 SETANGLEPITCH angle(float, in degree°)&lt;br /&gt;
 SETANGLEROLL angle(float, in degree°)&lt;br /&gt;
 SETANGLEYAW angle(float, in degree°)&lt;br /&gt;
 SETANGLE pitchangle(float, in degree°) rollangle(float, in degree°) yawangle(float, in degree°)&lt;br /&gt;
 SETANGLEPITCH_W angle(float, in degree°) time(int, in 0.1secs)&lt;br /&gt;
 SETANGLEROLL_W angle(float, in degree°) time(int, in 0.1secs)&lt;br /&gt;
 SETANGLEYAW_W angle(float, in degree°) time(int, in 0.1secs)&lt;br /&gt;
 SETSTANDBY 0/1&lt;br /&gt;
 SETRETRACT 0/1&lt;br /&gt;
 DOCAMERA 0/1/2/3/4&lt;br /&gt;
 DORECENTER&lt;br /&gt;
 DORECENTERPITCH&lt;br /&gt;
 DORECENTERROLL&lt;br /&gt;
 DORECENTERYAW&lt;br /&gt;
 DORECENTER_W time(int, in 0.1secs)&lt;br /&gt;
 DORECENTERPITCH_W time(int, in 0.1secs)&lt;br /&gt;
 DORECENTERROLL_W time(int, in 0.1secs)&lt;br /&gt;
 DORECENTERYAW_W time(int, in 0.1secs)&lt;br /&gt;
 SETPWM pwmvalue(int)&lt;br /&gt;
 SETPANOWAITS pitchtime(int, in 0.1secs) yawtime(int, in 0.1secs) shottime(int, in 0.1secs)&lt;br /&gt;
 SETPANORANGE yawangle(int, in degree°)&lt;br /&gt;
 SETPANOALLOWEXIT&lt;br /&gt;
 DOPANO pitchangle(int, in degree°) steps(int)&lt;br /&gt;
 BEEP&lt;br /&gt;
&lt;br /&gt;
Most function commands mirror serial RC commands (both in fact call the same internal functions). For further info thus please see [[Serial_Communication#Serial_Communication_-_RC_Commands|Serial Communication - RC Commands]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Additional commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 REMOTEENABLE&lt;br /&gt;
 REMOTEDISABLE&lt;br /&gt;
&lt;br /&gt;
The script function commands modify the very same set of internal variables which are also modified by the serial RC commands and MAVLink messages. This can lead to conflicts when the latter are used in combination with scripts, which can be resolved with the {{BOX|REMOTEDISABLE}}/{{BOX|REMOTEENABLE}} script commands. With {{BOX|REMOTEDISABLE}} the scripts are given priority over the serial RC and MAVLink commands. With {{BOX|REMOTEENABLE}} the default behavior is restored.&lt;br /&gt;
&lt;br /&gt;
 SENDMAVTEXT text(string)&lt;br /&gt;
 SENDCAMTEXT text(string)&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SENDMAVTEXT}} command triggers the emission of a MAVLink [https://mavlink.io/en/messages/common.html#STATUSTEXT STATUSTEXT] message. The text is the specified string, prepended by a label &amp;quot;STorM32:&amp;quot;. The text string can be 24 characters long, and contain the characters &#039;0&#039;-&#039;9&#039;, &#039;a&#039;-&#039;z&#039;, &#039;A&#039;-&#039;Z&#039;, &#039; &#039;.&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SENDCAMTEXT}} command sends the specified string, appended by a &#039;\n&#039; char, on the {{PARAMNAME|Camera ComPort}}. The text string can be 24 characters long, and contain the characters &#039;0&#039;-&#039;9&#039;, &#039;a&#039;-&#039;z&#039;, &#039;A&#039;-&#039;Z&#039;, &#039; &#039;. Only for {{PARAMNAME|Camera Model}} = {{PARAMVALUE|Serial Api}}.&lt;br /&gt;
&lt;br /&gt;
Prefer short text strings, in order to not exhaust the limited code space for scripts.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Changing a Parameter via the Transmitter ===&lt;br /&gt;
&lt;br /&gt;
Adjusting the value of a parameter during operation by e.g. tuning a knob on a transmitter is probably the most basic use-case of the scripts.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s consider GekoCH&#039;s application as an example (see [http://www.rcgroups.com/forums/showpost.php?p=29667070&amp;amp;postcount=19 here]): He&#039;s using a gimbal on a copter, and asked for the possibility to change the speed by which the camera turns upon a rc signal via another rc signal. He used a poti on the transmitter and the absolute mode to adjust the pitch orientation of the camera. It&#039;s obviously not possible to simultaneously fly the copter and to move the poti that precisely that a smooth camera motion is obtained, hence the {{PARAMNAME|Speed Limit}} feature was used. That is, the poti is quickly moved to the target orientation, and thanks to the speed limiter a smooth turn of the camera results. However, only one speed was possible before. Three solutions shall be discussed:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Method A&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   SETP &amp;quot;Rc Pitch Speed Limit&amp;quot; 40.0&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETP &amp;quot;Rc Pitch Speed Limit&amp;quot; 5.0&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
When the input specified in the {{PARAMNAME|Script Control}} parameter field yields a &amp;quot;default&amp;quot; value, then the pitch speed limit is set to 40.0 °/s, respectively, while when the input value is such to trigger {{BOX|CASE#1}}, then the speed limit is set to 5.0 °/s. Every CASE statement needs to be finished with either a {{BOX|STOP}} or {{BOX|REPEAT}}. Here the {{BOX|STOP}} command is used, which means that the preceding {{BOX|SETP}} command is executed only once when the input value changes, and not every cycle again.&lt;br /&gt;
&lt;br /&gt;
At this point one may ask, which input values triggers which case? The full answer isn&#039;t trivial and needs a familiarity with the STorM32 controller. In the given example, the default case is selected then the poti is below ca. 33% (&amp;lt; 1633 us), and case #1 is triggered then the switch is above ca. 83% (&amp;gt; 1830 us).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Method B&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  SETPMINMAX &amp;quot;Rc Pitch Speed Limit&amp;quot; 5.0 40.0&lt;br /&gt;
  REPEAT&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SETPMINMAX}} command linearly interpolates between the minimum value (5.0 °/s) and maximum value (40.0 °/s), depending on the input value. For instance, for an input value of 200 the pitch speed limit is set to 200 * (40.0-5.0)/1000 + (40.0+5.0)/2 = 29.5°/s. Hence, method B allows us to adjust the speed limit continuously in the range of 5.0 °/s to 40.0 °/s. The {{BOX|REPEAT}} command at the end ensures, that the {{BOX|SETPMINMAX}} command is executed at every cycle anew, and not just once, so that any change in the input value is quickly tracked.&lt;br /&gt;
&lt;br /&gt;
A video by GekoCH using this feature is [http://www.rcgroups.com/forums/showpost.php?p=30246328&amp;amp;postcount=2723 here].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Method C&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   RESTORE &amp;quot;Rc Pitch Speed Limit&amp;quot;&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETP &amp;quot;Rc Pitch Speed Limit&amp;quot; 5.0&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
This example is essentially method A, but overcomes a minor yet potentially annoying issue. In method A, the parameter value specified in the {{PARAMVALUE|Rc Pitch Speed Limit}} field of the GUI is overwritten immediately by the script, and hence becomes obsolete. In most cases one would however prefer that the default value is determined by the entry in the GUI, and not by that in the script. This issue is resolved by the {{BOX|RESTORE}} command, which sets the {{PARAMVALUE|Rc Pitch Speed Limit}} parameter to the value stored in the EEPROM.&lt;br /&gt;
&lt;br /&gt;
A similar {{BOX|RESTOREALL}} command exists, which sets all parameters to their values stored in the EEPROM. However, for efficiency reasons it should not be used, except then it is really absolutely needed. Using several {{BOX|RESTORE}} commands is much preferred over using {{BOX|RESTOREALL}}. In short, avoid {{BOX|RESTOREALL}} if you can.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Concluding Remarks&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Of course, one is not limited to only the {{PARAMNAME|Rc Pitch Speed Limit}} parameter. ANY other available parameter (except of the {{PARAMNAME|Script Control}} parameters as discussed before), can be used in the {{BOX|SET}} and {{BOX|SETPMINMAX}} commands and hence be modified by the scripts. Furthermore, any case statement can of course be followed by more than one command, such that complex situations can be tackled (it is though not possible to have another case statement within a case statement).&lt;br /&gt;
&lt;br /&gt;
Up to four cases can be distinguished, via the {{BOX|CASE#DEFAULT}}, {{BOX|CASE#1}}, {{BOX|CASE#2}}, and {{BOX|CASE#3}} statements. A case is chosen dependent on the value of the input selected by the {{PARAMNAME|Script Control}} parameter, in close analogy to all the other available functions such as the Rc Inputs, Pan Control or IR Camera Control, see also [[Inputs and Functions]].&lt;br /&gt;
&lt;br /&gt;
=== Running a Motion Control Sequence ===&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETANGLE -22.5 0 31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW 0&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW -31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLE 22.5 0 -31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW 0&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW 31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   DORECENTER&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
This short sequence consumes already 62 of the 128 bytes, which shows that only relatively short motion control sequences are possible with the on-board scripts.&lt;br /&gt;
&lt;br /&gt;
=== Running a Pano Sequence ===&lt;br /&gt;
&lt;br /&gt;
The previous motion control sequence allows to record a pano, which however is severely limited by the maximal possible script code size. Thus, more powerful commands were introduced, which allow quite extensive pano shots.&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   DORECENTER&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETANGLEYAW_W 45 30&lt;br /&gt;
   SETPANOWAITS 30 30 10&lt;br /&gt;
   SETPANORANGE 90&lt;br /&gt;
   DOPANO 30 -8&lt;br /&gt;
   DOPANO 0 8&lt;br /&gt;
   DOPANO -30 -8&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SETANGLEYAW_W}} command sets the yaw angle to 45°, and waits 3.0 secs in addition to the predicted time for the turn. &lt;br /&gt;
&lt;br /&gt;
The {{BOX|SETPANOWAITS}} and {{BOX|SETPANORANGE}} commands set some &amp;quot;global&amp;quot; parameters of the pano, namely the time to wait after each pitch movement, the time to wait after each yaw step, the time to wait before each shot, and the total yaw angle range which shall be covered. &lt;br /&gt;
&lt;br /&gt;
The {{BOX|DOPANO}} commands finally run the pano sequence. The first {{BOX|DOPANO}} command, e.g., sets the pitch angle to 30°, and then does 8 yaw steps in counterclockwise direction. In each step the yaw axis is progressed by 90°/8 = 11.25°. Similarly for the next two {{BOX|DOPANAO}} commands.&lt;br /&gt;
&lt;br /&gt;
In the above example, the pano cannot be terminated during execution. That is, the script is executed command by command until it reaches the {{BOX|STOP}} command, and only then it is tested if the input has changed and whether it should jump to CASE#DEFAULT. Often this is the desired behavior, e.g. when the pano is triggered with a momentary push button. Often it is however desired that the pano runs for as long as the input is set but is terminated then it is cleared. A typical use case would be when the pano is triggered with a transmitter switch, there one might want it to run when the switch is flipped but be stopped when the switch is cleared, even if the pano is not yet completed. This can be accomplished with the {{BOX|SETPANOALLOWEXIT}} command. An example script would be&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETANGLEYAW_W 45 30&lt;br /&gt;
   SETPANOWAITS 30 30 10&lt;br /&gt;
   SETPANORANGE 90&lt;br /&gt;
   SETPANOALLOWEXIT&lt;br /&gt;
   DOPANO 30 -8&lt;br /&gt;
   WAIT 10&lt;br /&gt;
   DOPANO -30 8&lt;br /&gt;
   DORECENTER&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
Note that here only the {{BOX|DOPANO}} commands are cut short if the input becomes different from CASE#1, but that the other commands are still executed until the {{BOX|STOP}} command is reached. That is, in the example, if the input changes while the first {{BOX|DOPANO}} command is executed, the {{BOX|WAIT}} and {{BOX|DORECENTER}} commands would be still executed.&lt;br /&gt;
&lt;br /&gt;
=== Running a Script in Combination with Serial and MAVLink Commands ===&lt;br /&gt;
&lt;br /&gt;
The serial RC commands and the MAVLink messages all set the very same internal variables which are also set by the scripts, and conflicts can accordingly occur.&lt;br /&gt;
&lt;br /&gt;
Such a situation occurs, e.g., when the STorM32 controller is connected to an ArduPilot flight controller via MAVLink, and a continuous stream of DO_MOUNT_CONTROL (or similar) MAVLink commands is sent to the STorM32 controller. In this case a pano script for instance would appear to not work since the commands for setting the angle of the gimbal emitted by the script would be nearly instantaneously overwritten by the DO_MOUNT_CONTROL (or similar) MAVLink commands received from the flight controller. &lt;br /&gt;
&lt;br /&gt;
Such situations can be resolved by using the {{BOX|REMOTEDISABLE}} and {{BOX|REMOTEENABLE}} script commands. {{BOX|REMOTEDISABLE}} gives the script priority, and essentially disables the serial and MAVLink commands. With {{BOX|REMOTEENABLE}} the default behavior is restored.&lt;br /&gt;
&lt;br /&gt;
A script using this mechanism would typically look like &lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   REMOTEDISABLE&lt;br /&gt;
   ...&lt;br /&gt;
   REMOTEENABLE&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   REMOTEDISABLE&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   REMOTEENABLE&lt;br /&gt;
   ...&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
The two script do not exactly work the same and which one to use depends on the actual script. The behavior of the second example could also be achieved as&lt;br /&gt;
&lt;br /&gt;
 REMOTEENABLE&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   REMOTEDISABLE&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   ...&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
which might be easier to write.&lt;br /&gt;
&lt;br /&gt;
== User Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Switching Between Two Alternate Functions of a Continuous RC Channel Using a &amp;quot;Shift Key&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;by Hb121280, see also [https://www.rcgroups.com/forums/showthread.php?2262624-STorM32-BGC-Scripts-Discussion-and-Development-Thread/page2&amp;amp;perpage=50#post39876923]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Imagine you want to control gimbal pitch and gimbal yaw using an analog dial on the remote control, but only one analog dial is available. This example uses a button channel to switch between alternate functions of one continuous channel.&lt;br /&gt;
&lt;br /&gt;
  CASE#DEFAULT&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
  CASE#1&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
  CASE#2&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
  CASE#3&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
&lt;br /&gt;
The {{PARAMNAME|Script Control}} variable is set to the button channel, e.g. {{PARAMVALUE|Virtual-8}}. In the present case the button channel delivers a value 0 in case it is not pressed and 254 if it is pressed. According to [[Inputs_and_Functions#Overview_Diagram|Inputs and Functions: Overview Diagram]], the value ranges for the CASE statements are:&lt;br /&gt;
&lt;br /&gt;
* CASE#DEFAULT: -166 ... +166&lt;br /&gt;
* CASE#1: +333 ... +500&lt;br /&gt;
* CASE#2: -500 ... -333&lt;br /&gt;
* CASE#3: +216 ... +277&lt;br /&gt;
&lt;br /&gt;
Thus, the cases CASE#DEFAULT and CASE#3 have to be used, because the button values 0 (not pressed) and 254 (pressed) fall into their value ranges. The script language does not allow &#039;missing&#039; case statements, and CASE#1 and CASE#2 need also to be specified (they can be filled with any commands, since they never would be triggered).&lt;br /&gt;
&lt;br /&gt;
In the above script, the standard behavior (button not pressed) uses the analog channel, or input {{PARAMVALUE|Virtual-8}}, for {{PARAMNAME|Rc Pitch}}. {{PARAMNAME|Rc Yaw}} is accordingly set to {{PARAMVALUE|off}}. Pressing the button reverses the assignments: The analog channel on input {{PARAMVALUE|Virtual-8}} is now used for {{PARAMNAME|Rc Yaw}}, and the control of pitch is deactivated.&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Scripts&amp;diff=11895</id>
		<title>STorM32 Scripts</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Scripts&amp;diff=11895"/>
		<updated>2025-11-20T02:28:51Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* Scripting Language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:88%&amp;quot;&amp;gt;&#039;&#039;The information on this page refers to firmware v2.69a and higher.&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With firmware version v0.51 the possibility of uploading scripts to the STorM32 controller, which are then executed on-board, without connection to a PC, has been introduced. It allows you to programmatically affect the behavior of the controller in order to achieve user specific needs and tasks with unprecedented flexibility. The STorM32 controller was the first of its kind to offer this innovative feature, which was when later adopted by others. &lt;br /&gt;
&lt;br /&gt;
The on-board scripts bring great possibilities, but need some understanding to avoid doing nonsense. This article gives some background, and presents the concepts by means of examples.&lt;br /&gt;
&lt;br /&gt;
== Overview of Script Types ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
The STorM32 on-board scripts should not be confused with other types of scripts, thus a short overview:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;On-board Scripts&#039;&#039;&#039;&#039;&#039;: These scripts are uploaded and stored into the controller, and are executed permanently by the controller. They are programmed by the user via the GUI&#039;s {{GUI|Scripts}} tab.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;Motion Control Scripts&#039;&#039;&#039;&#039;&#039;: In older firmware versions, the GUI did incorporate a dedicated Motion Control processor. These scripts were executed on the PC, sending commands to the STorM32 controller via e.g. USB, Bluetooth, or any other serial connection between the PC and the controller.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;Mission Planner Scripts&#039;&#039;&#039;&#039;&#039;: ArduPilot&#039;s [http://planner.ardupilot.com/ Mission Planner] allows to run Python scripts, which, similar to Motion Control scripts, are executed on the PC, sending messages to the autopilot.&lt;br /&gt;
&lt;br /&gt;
For all these scripts, the source code is stored in plain ASCII text files (and could hence be edited by any text editor), but the script type can be determined from the default file extension:&lt;br /&gt;
&lt;br /&gt;
 .scr = STorM32 on-board script&lt;br /&gt;
 .mcs = Motion Control script&lt;br /&gt;
 .py  = Mission Planner Python script&lt;br /&gt;
&lt;br /&gt;
When using the respective tools for handling the scripts, only the correct scripts, i.e. files with the correct file extension, should be accessible with the tools, avoiding confusion.&lt;br /&gt;
&lt;br /&gt;
This article focuses exclusively on the STorM32 on-board scripts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The STorM32 on-board scripts should not be confused with other types of scripts. &lt;br /&gt;
&lt;br /&gt;
These on-board scripts are uploaded and stored into the controller, and are executed permanently by the controller. They are programmed by the user via the GUI&#039;s {{GUI|Scripts}} tab. The source code is stored in plain ASCII text files (and could hence be edited by any text editor), with default file extension:&lt;br /&gt;
&lt;br /&gt;
 .scr = STorM32 on-board script&lt;br /&gt;
&lt;br /&gt;
== Technical Background ==&lt;br /&gt;
&lt;br /&gt;
Since the code space on the STorM32 controller is very limited (currently only 128 bytes in total are available for the on-board scripts), and especially because of performance reasons the scripts are stored in the controller as binary pseudo code. &lt;br /&gt;
&lt;br /&gt;
The workflow is thus as follows: The scripts written in the &#039;&#039;&#039;&#039;&#039;STorM32 on-board scripting language&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
are translated into pseudo code with a home-brewed compiler, which is integrated into the GUI. The pseudo code is then stored into the STorM32 controller board with a {{GUIFIELD|Write}}. The pseudo code is permanently executed online by the STorM32 controller using an internal pseudo-code processor.&lt;br /&gt;
&lt;br /&gt;
For understanding the internal working one should realize that the STorM32 controller code is essentially an endless loop, which is triggered and repeated every 1.5 ms. This is called a cycle. Two situations can hence occur in the execution of the pseudo code, namely - first - the next pseudo command should be executed in the same cycle as the previous one, or - second - the next pseudo command should be postponed and executed in the next cycle. Generally, the function commands are of the first kind, while for the control flow commands it depends.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
In total four scripts, named Script1 to Script4, can be run concurrently and independently. For each script, two fields are available in the {{GUI|Scripts}} tab, e.g. for Script1 these are:&lt;br /&gt;
&lt;br /&gt;
* {{PARAMNAME|Script1 Control}}&lt;br /&gt;
* {{PARAMNAME|Script1}}&lt;br /&gt;
&lt;br /&gt;
The first parameter field allows us to select the input channel, to which the script should &amp;quot;listen&amp;quot;, i.e., which input value is used in the script for e.g. triggering one of the up to five cases (see below). &lt;br /&gt;
&lt;br /&gt;
The second parameter field holds the code. It can be edited via the {{GUIFIELD|Edit Script1}} button. It opens the script editor window, which allows you to write, load and save code. Its syntactic correctness may be checked by doing a {{GUIFIELD|Compile}}. For accepting the code use {{GUIFIELD|Accept and Exit}}.&lt;br /&gt;
&lt;br /&gt;
Script1 is the master script in the sense that it allows us to modify the {{PARAMNAME|Script2 Control}}, {{PARAMNAME|Script3 Control}}, and {{PARAMNAME|Script4 Control}} parameters and hence to affect the behavior of the other scripts, while the other three scripts cannot modify any of script control parameters.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The four scripts are actually not run concurrently, but sequentially, and are thus not totally independent on each other. In each cycle, the scripts are processed in the order script1, script2, script3, script4. Therefore, a later script can undo changes made by an earlier script, and an earlier script can make changes which are seen by the later scripts.}}&lt;br /&gt;
&lt;br /&gt;
== Scripting Language ==&lt;br /&gt;
&lt;br /&gt;
The on-board scripting language has a relatively rich set of commands, which allows us to modify the controller behavior in reaction to inputs, as well as to control the camera for motion control.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Control flow commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
 CASE#1&lt;br /&gt;
 CASE#2&lt;br /&gt;
 CASE#3&lt;br /&gt;
 CASE#4&lt;br /&gt;
 STOP&lt;br /&gt;
 REPEAT&lt;br /&gt;
 WAIT time(int, in 0.1secs)&lt;br /&gt;
 RESTART&lt;br /&gt;
&lt;br /&gt;
The cases are determined by the value of the input selected with the {{PARAMNAME|Scriptx Control}} parameter (where x stands for 1,2,3,4). The value ranges for the CASE statements are (see also [[Inputs_and_Functions#Overview_Diagram|Inputs and Functions: Overview Diagram]]):&lt;br /&gt;
&lt;br /&gt;
* CASE#DEFAULT: -166 ... +166&lt;br /&gt;
* CASE#1: +333 ... +500&lt;br /&gt;
* CASE#2: -500 ... -333&lt;br /&gt;
* CASE#3: +216 ... +277&lt;br /&gt;
* CASE#4: -277 ... -216&lt;br /&gt;
&lt;br /&gt;
Note that the ranges for CASE#1 and CASE#2 start at +333 and -333, respectively, which corresponds to ca 1833 us and 1167 us (roughly, this is very transmitter dependent). Default transmitter settings may not reach these values. Note also that the ranges for CASE#3 and CASE#4 are relatively narrow, and thus can easily be missed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Parameter value commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 SETP parametername(string) option(int, float or string)&lt;br /&gt;
 SETPMINMAX parametername(string) option(int, float or string) option(int, float or string)&lt;br /&gt;
 RESTORE&lt;br /&gt;
 RESTOREALL&lt;br /&gt;
 SET parametername(string) value(int)&lt;br /&gt;
 SETMINMAX parametername(string) minvalue(int) maxvalue(int)&lt;br /&gt;
&lt;br /&gt;
The commands {{BOX|SETP}} and {{BOX|SET}} are identical function-wise, namely set a parameter to a value, but differ in the second argument: In {{BOX|SETP}} the set-to value of the parameter is specified as it is displayed in the GUI (except of the unit in value fields), while in {{BOX|SET}} the new value is specified by its internal integer representation. For instance, if the parameter {{PARAMNAME|Camera Model}} should be set to {{PARAMVALUE|GoPro Hero5}}, then the {{BOX|SETP}} command would be {{BOX|SETP &amp;quot;Camera Model&amp;quot; &amp;quot;GoPro Hero5&amp;quot;}}, and the {{BOX|SET}} command would be {{BOX|SET &amp;quot;Camera Model&amp;quot; 10}} (since the option &amp;quot;GoPro Hero5&amp;quot; is internally represented by the integer 10) (you can check this with {{GUI|Share Settings}}).&lt;br /&gt;
&lt;br /&gt;
Similar holds for the second and third parameters in the {{BOX|SETPMINMAX}} and {{BOX|SETMINMAX}} commands.&lt;br /&gt;
 &lt;br /&gt;
The {{BOX|SET}} and {{BOX|SETMINMAX}} commands are still existing for compatibility, but should not be used in new scripts (in fact, the script compiler replaced them with the newer {{BOX|SETP}} and {{BOX|SETPMINMAX}} commands).&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|For some paramneters, a change of their setting initiates further actions, such as a restart of the controller. Changing their values in a script can lead to undetermined behavior, and shoucl thu snot be handled in scripts. Parameters of this kind are, e.g., {{PARAMNAME|Pitch Motor Usage}}, {{PARAMNAME|Roll Motor Usage}}, {{PARAMNAME|Yaw Motor Usage}}, {{PARAMNAME|Motor Mapping}}, and {{PARAMNAME|Imu Mapping}}.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Function commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 SETANGLEPITCH angle(float, in degree°)&lt;br /&gt;
 SETANGLEROLL angle(float, in degree°)&lt;br /&gt;
 SETANGLEYAW angle(float, in degree°)&lt;br /&gt;
 SETANGLE pitchangle(float, in degree°) rollangle(float, in degree°) yawangle(float, in degree°)&lt;br /&gt;
 SETANGLEPITCH_W angle(float, in degree°) time(int, in 0.1secs)&lt;br /&gt;
 SETANGLEROLL_W angle(float, in degree°) time(int, in 0.1secs)&lt;br /&gt;
 SETANGLEYAW_W angle(float, in degree°) time(int, in 0.1secs)&lt;br /&gt;
 SETSTANDBY 0/1&lt;br /&gt;
 SETRETRACT 0/1&lt;br /&gt;
 DOCAMERA 0/1/2/3/4&lt;br /&gt;
 DORECENTER&lt;br /&gt;
 DORECENTERPITCH&lt;br /&gt;
 DORECENTERROLL&lt;br /&gt;
 DORECENTERYAW&lt;br /&gt;
 DORECENTER_W time(int, in 0.1secs)&lt;br /&gt;
 DORECENTERPITCH_W time(int, in 0.1secs)&lt;br /&gt;
 DORECENTERROLL_W time(int, in 0.1secs)&lt;br /&gt;
 DORECENTERYAW_W time(int, in 0.1secs)&lt;br /&gt;
 SETPWM pwmvalue(int)&lt;br /&gt;
 SETPANOWAITS pitchtime(int, in 0.1secs) yawtime(int, in 0.1secs) shottime(int, in 0.1secs)&lt;br /&gt;
 SETPANORANGE yawangle(int, in degree°)&lt;br /&gt;
 SETPANOALLOWEXIT&lt;br /&gt;
 DOPANO pitchangle(int, in degree°) steps(int)&lt;br /&gt;
 BEEP&lt;br /&gt;
&lt;br /&gt;
Most function commands mirror serial RC commands (both in fact call the same internal functions). For further info thus please see [[Serial_Communication#Serial_Communication_-_RC_Commands|Serial Communication - RC Commands]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Additional commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 REMOTEENABLE&lt;br /&gt;
 REMOTEDISABLE&lt;br /&gt;
&lt;br /&gt;
The script function commands modify the very same set of internal variables which are also modified by the serial RC commands and MAVLink messages. This can lead to conflicts when the latter are used in combination with scripts, which can be resolved with the {{BOX|REMOTEDISABLE}}/{{BOX|REMOTEENABLE}} script commands. With {{BOX|REMOTEDISABLE}} the scripts are given priority over the serial RC and MAVLink commands. With {{BOX|REMOTEENABLE}} the default behavior is restored.&lt;br /&gt;
&lt;br /&gt;
 SENDMAVTEXT text(string)&lt;br /&gt;
 SENDCAMTEXT text(string)&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SENDMAVTEXT}} command triggers the emission of a MAVLink [https://mavlink.io/en/messages/common.html#STATUSTEXT STATUSTEXT] message. The text is the specified string, prepended by a label &amp;quot;STorM32:&amp;quot;. The text string can be 24 characters long, and contain the characters &#039;0&#039;-&#039;9&#039;, &#039;a&#039;-&#039;z&#039;, &#039;A&#039;-&#039;Z&#039;, &#039; &#039;.&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SENDCAMTEXT}} command sends the specified string, appended by a &#039;\n&#039; char, on the {{PARAMNAME|Camera ComPort}}. The text string can be 24 characters long, and contain the characters &#039;0&#039;-&#039;9&#039;, &#039;a&#039;-&#039;z&#039;, &#039;A&#039;-&#039;Z&#039;, &#039; &#039;. Only for {{PARAMNAME|Camera Model}} = {{PARAMVALUE|Serial Api}}.&lt;br /&gt;
&lt;br /&gt;
Prefer short text strings, in order to not exhaust the limited code space for scripts.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Changing a Parameter via the Transmitter ===&lt;br /&gt;
&lt;br /&gt;
Adjusting the value of a parameter during operation by e.g. tuning a knob on a transmitter is probably the most basic use-case of the scripts.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s consider GekoCH&#039;s application as an example (see [http://www.rcgroups.com/forums/showpost.php?p=29667070&amp;amp;postcount=19 here]): He&#039;s using a gimbal on a copter, and asked for the possibility to change the speed by which the camera turns upon a rc signal via another rc signal. He used a poti on the transmitter and the absolute mode to adjust the pitch orientation of the camera. It&#039;s obviously not possible to simultaneously fly the copter and to move the poti that precisely that a smooth camera motion is obtained, hence the {{PARAMNAME|Speed Limit}} feature was used. That is, the poti is quickly moved to the target orientation, and thanks to the speed limiter a smooth turn of the camera results. However, only one speed was possible before. Three solutions shall be discussed:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Method A&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   SETP &amp;quot;Rc Pitch Speed Limit&amp;quot; 40.0&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETP &amp;quot;Rc Pitch Speed Limit&amp;quot; 5.0&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
When the input specified in the {{PARAMNAME|Script Control}} parameter field yields a &amp;quot;default&amp;quot; value, then the pitch speed limit is set to 40.0 °/s, respectively, while when the input value is such to trigger {{BOX|CASE#1}}, then the speed limit is set to 5.0 °/s. Every CASE statement needs to be finished with either a {{BOX|STOP}} or {{BOX|REPEAT}}. Here the {{BOX|STOP}} command is used, which means that the preceding {{BOX|SETP}} command is executed only once when the input value changes, and not every cycle again.&lt;br /&gt;
&lt;br /&gt;
At this point one may ask, which input values triggers which case? The full answer isn&#039;t trivial and needs a familiarity with the STorM32 controller. In the given example, the default case is selected then the poti is below ca. 33% (&amp;lt; 1633 us), and case #1 is triggered then the switch is above ca. 83% (&amp;gt; 1830 us).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Method B&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  SETPMINMAX &amp;quot;Rc Pitch Speed Limit&amp;quot; 5.0 40.0&lt;br /&gt;
  REPEAT&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SETPMINMAX}} command linearly interpolates between the minimum value (5.0 °/s) and maximum value (40.0 °/s), depending on the input value. For instance, for an input value of 200 the pitch speed limit is set to 200 * (40.0-5.0)/1000 + (40.0+5.0)/2 = 29.5°/s. Hence, method B allows us to adjust the speed limit continuously in the range of 5.0 °/s to 40.0 °/s. The {{BOX|REPEAT}} command at the end ensures, that the {{BOX|SETPMINMAX}} command is executed at every cycle anew, and not just once, so that any change in the input value is quickly tracked.&lt;br /&gt;
&lt;br /&gt;
A video by GekoCH using this feature is [http://www.rcgroups.com/forums/showpost.php?p=30246328&amp;amp;postcount=2723 here].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Method C&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   RESTORE &amp;quot;Rc Pitch Speed Limit&amp;quot;&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETP &amp;quot;Rc Pitch Speed Limit&amp;quot; 5.0&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
This example is essentially method A, but overcomes a minor yet potentially annoying issue. In method A, the parameter value specified in the {{PARAMVALUE|Rc Pitch Speed Limit}} field of the GUI is overwritten immediately by the script, and hence becomes obsolete. In most cases one would however prefer that the default value is determined by the entry in the GUI, and not by that in the script. This issue is resolved by the {{BOX|RESTORE}} command, which sets the {{PARAMVALUE|Rc Pitch Speed Limit}} parameter to the value stored in the EEPROM.&lt;br /&gt;
&lt;br /&gt;
A similar {{BOX|RESTOREALL}} command exists, which sets all parameters to their values stored in the EEPROM. However, for efficiency reasons it should not be used, except then it is really absolutely needed. Using several {{BOX|RESTORE}} commands is much preferred over using {{BOX|RESTOREALL}}. In short, avoid {{BOX|RESTOREALL}} if you can.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Concluding Remarks&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Of course, one is not limited to only the {{PARAMNAME|Rc Pitch Speed Limit}} parameter. ANY other available parameter (except of the {{PARAMNAME|Script Control}} parameters as discussed before), can be used in the {{BOX|SET}} and {{BOX|SETPMINMAX}} commands and hence be modified by the scripts. Furthermore, any case statement can of course be followed by more than one command, such that complex situations can be tackled (it is though not possible to have another case statement within a case statement).&lt;br /&gt;
&lt;br /&gt;
Up to four cases can be distinguished, via the {{BOX|CASE#DEFAULT}}, {{BOX|CASE#1}}, {{BOX|CASE#2}}, and {{BOX|CASE#3}} statements. A case is chosen dependent on the value of the input selected by the {{PARAMNAME|Script Control}} parameter, in close analogy to all the other available functions such as the Rc Inputs, Pan Control or IR Camera Control, see also [[Inputs and Functions]].&lt;br /&gt;
&lt;br /&gt;
=== Running a Motion Control Sequence ===&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETANGLE -22.5 0 31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW 0&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW -31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLE 22.5 0 -31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW 0&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW 31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   DORECENTER&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
This short sequence consumes already 62 of the 128 bytes, which shows that only relatively short motion control sequences are possible with the on-board scripts.&lt;br /&gt;
&lt;br /&gt;
=== Running a Pano Sequence ===&lt;br /&gt;
&lt;br /&gt;
The previous motion control sequence allows to record a pano, which however is severely limited by the maximal possible script code size. Thus, more powerful commands were introduced, which allow quite extensive pano shots.&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   DORECENTER&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETANGLEYAW_W 45 30&lt;br /&gt;
   SETPANOWAITS 30 30 10&lt;br /&gt;
   SETPANORANGE 90&lt;br /&gt;
   DOPANO 30 -8&lt;br /&gt;
   DOPANO 0 8&lt;br /&gt;
   DOPANO -30 -8&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SETANGLEYAW_W}} command sets the yaw angle to 45°, and waits 3.0 secs in addition to the predicted time for the turn. &lt;br /&gt;
&lt;br /&gt;
The {{BOX|SETPANOWAITS}} and {{BOX|SETPANORANGE}} commands set some &amp;quot;global&amp;quot; parameters of the pano, namely the time to wait after each pitch movement, the time to wait after each yaw step, the time to wait before each shot, and the total yaw angle range which shall be covered. &lt;br /&gt;
&lt;br /&gt;
The {{BOX|DOPANO}} commands finally run the pano sequence. The first {{BOX|DOPANO}} command, e.g., sets the pitch angle to 30°, and then does 8 yaw steps in counterclockwise direction. In each step the yaw axis is progressed by 90°/8 = 11.25°. Similarly for the next two {{BOX|DOPANAO}} commands.&lt;br /&gt;
&lt;br /&gt;
In the above example, the pano cannot be terminated during execution. That is, the script is executed command by command until it reaches the {{BOX|STOP}} command, and only then it is tested if the input has changed and whether it should jump to CASE#DEFAULT. Often this is the desired behavior, e.g. when the pano is triggered with a momentary push button. Often it is however desired that the pano runs for as long as the input is set but is terminated then it is cleared. A typical use case would be when the pano is triggered with a transmitter switch, there one might want it to run when the switch is flipped but be stopped when the switch is cleared, even if the pano is not yet completed. This can be accomplished with the {{BOX|SETPANOALLOWEXIT}} command. An example script would be&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETANGLEYAW_W 45 30&lt;br /&gt;
   SETPANOWAITS 30 30 10&lt;br /&gt;
   SETPANORANGE 90&lt;br /&gt;
   SETPANOALLOWEXIT&lt;br /&gt;
   DOPANO 30 -8&lt;br /&gt;
   WAIT 10&lt;br /&gt;
   DOPANO -30 8&lt;br /&gt;
   DORECENTER&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
Note that here only the {{BOX|DOPANO}} commands are cut short if the input becomes different from CASE#1, but that the other commands are still executed until the {{BOX|STOP}} command is reached. That is, in the example, if the input changes while the first {{BOX|DOPANO}} command is executed, the {{BOX|WAIT}} and {{BOX|DORECENTER}} commands would be still executed.&lt;br /&gt;
&lt;br /&gt;
=== Running a Script in Combination with Serial and MAVLink Commands ===&lt;br /&gt;
&lt;br /&gt;
The serial RC commands and the MAVLink messages all set the very same internal variables which are also set by the scripts, and conflicts can accordingly occur.&lt;br /&gt;
&lt;br /&gt;
Such a situation occurs, e.g., when the STorM32 controller is connected to an ArduPilot flight controller via MAVLink, and a continuous stream of DO_MOUNT_CONTROL (or similar) MAVLink commands is sent to the STorM32 controller. In this case a pano script for instance would appear to not work since the commands for setting the angle of the gimbal emitted by the script would be nearly instantaneously overwritten by the DO_MOUNT_CONTROL (or similar) MAVLink commands received from the flight controller. &lt;br /&gt;
&lt;br /&gt;
Such situations can be resolved by using the {{BOX|REMOTEDISABLE}} and {{BOX|REMOTEENABLE}} script commands. {{BOX|REMOTEDISABLE}} gives the script priority, and essentially disables the serial and MAVLink commands. With {{BOX|REMOTEENABLE}} the default behavior is restored.&lt;br /&gt;
&lt;br /&gt;
A script using this mechanism would typically look like &lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   REMOTEDISABLE&lt;br /&gt;
   ...&lt;br /&gt;
   REMOTEENABLE&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   REMOTEDISABLE&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   REMOTEENABLE&lt;br /&gt;
   ...&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
The two script do not exactly work the same and which one to use depends on the actual script. The behavior of the second example could also be achieved as&lt;br /&gt;
&lt;br /&gt;
 REMOTEENABLE&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   REMOTEDISABLE&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   ...&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
which might be easier to write.&lt;br /&gt;
&lt;br /&gt;
== User Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Switching Between Two Alternate Functions of a Continuous RC Channel Using a &amp;quot;Shift Key&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;by Hb121280, see also [https://www.rcgroups.com/forums/showthread.php?2262624-STorM32-BGC-Scripts-Discussion-and-Development-Thread/page2&amp;amp;perpage=50#post39876923]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Imagine you want to control gimbal pitch and gimbal yaw using an analog dial on the remote control, but only one analog dial is available. This example uses a button channel to switch between alternate functions of one continuous channel.&lt;br /&gt;
&lt;br /&gt;
  CASE#DEFAULT&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
  CASE#1&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
  CASE#2&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
  CASE#3&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
&lt;br /&gt;
The {{PARAMNAME|Script Control}} variable is set to the button channel, e.g. {{PARAMVALUE|Virtual-8}}. In the present case the button channel delivers a value 0 in case it is not pressed and 254 if it is pressed. According to [[Inputs_and_Functions#Overview_Diagram|Inputs and Functions: Overview Diagram]], the value ranges for the CASE statements are:&lt;br /&gt;
&lt;br /&gt;
* CASE#DEFAULT: -166 ... +166&lt;br /&gt;
* CASE#1: +333 ... +500&lt;br /&gt;
* CASE#2: -500 ... -333&lt;br /&gt;
* CASE#3: +216 ... +277&lt;br /&gt;
&lt;br /&gt;
Thus, the cases CASE#DEFAULT and CASE#3 have to be used, because the button values 0 (not pressed) and 254 (pressed) fall into their value ranges. The script language does not allow &#039;missing&#039; case statements, and CASE#1 and CASE#2 need also to be specified (they can be filled with any commands, since they never would be triggered).&lt;br /&gt;
&lt;br /&gt;
In the above script, the standard behavior (button not pressed) uses the analog channel, or input {{PARAMVALUE|Virtual-8}}, for {{PARAMNAME|Rc Pitch}}. {{PARAMNAME|Rc Yaw}} is accordingly set to {{PARAMVALUE|off}}. Pressing the button reverses the assignments: The analog channel on input {{PARAMVALUE|Virtual-8}} is now used for {{PARAMNAME|Rc Yaw}}, and the control of pitch is deactivated.&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Scripts&amp;diff=11894</id>
		<title>STorM32 Scripts</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Scripts&amp;diff=11894"/>
		<updated>2025-11-20T02:28:17Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* Scripting Language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:88%&amp;quot;&amp;gt;&#039;&#039;The information on this page refers to firmware v2.69a and higher.&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With firmware version v0.51 the possibility of uploading scripts to the STorM32 controller, which are then executed on-board, without connection to a PC, has been introduced. It allows you to programmatically affect the behavior of the controller in order to achieve user specific needs and tasks with unprecedented flexibility. The STorM32 controller was the first of its kind to offer this innovative feature, which was when later adopted by others. &lt;br /&gt;
&lt;br /&gt;
The on-board scripts bring great possibilities, but need some understanding to avoid doing nonsense. This article gives some background, and presents the concepts by means of examples.&lt;br /&gt;
&lt;br /&gt;
== Overview of Script Types ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
The STorM32 on-board scripts should not be confused with other types of scripts, thus a short overview:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;On-board Scripts&#039;&#039;&#039;&#039;&#039;: These scripts are uploaded and stored into the controller, and are executed permanently by the controller. They are programmed by the user via the GUI&#039;s {{GUI|Scripts}} tab.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;Motion Control Scripts&#039;&#039;&#039;&#039;&#039;: In older firmware versions, the GUI did incorporate a dedicated Motion Control processor. These scripts were executed on the PC, sending commands to the STorM32 controller via e.g. USB, Bluetooth, or any other serial connection between the PC and the controller.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;Mission Planner Scripts&#039;&#039;&#039;&#039;&#039;: ArduPilot&#039;s [http://planner.ardupilot.com/ Mission Planner] allows to run Python scripts, which, similar to Motion Control scripts, are executed on the PC, sending messages to the autopilot.&lt;br /&gt;
&lt;br /&gt;
For all these scripts, the source code is stored in plain ASCII text files (and could hence be edited by any text editor), but the script type can be determined from the default file extension:&lt;br /&gt;
&lt;br /&gt;
 .scr = STorM32 on-board script&lt;br /&gt;
 .mcs = Motion Control script&lt;br /&gt;
 .py  = Mission Planner Python script&lt;br /&gt;
&lt;br /&gt;
When using the respective tools for handling the scripts, only the correct scripts, i.e. files with the correct file extension, should be accessible with the tools, avoiding confusion.&lt;br /&gt;
&lt;br /&gt;
This article focuses exclusively on the STorM32 on-board scripts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The STorM32 on-board scripts should not be confused with other types of scripts. &lt;br /&gt;
&lt;br /&gt;
These on-board scripts are uploaded and stored into the controller, and are executed permanently by the controller. They are programmed by the user via the GUI&#039;s {{GUI|Scripts}} tab. The source code is stored in plain ASCII text files (and could hence be edited by any text editor), with default file extension:&lt;br /&gt;
&lt;br /&gt;
 .scr = STorM32 on-board script&lt;br /&gt;
&lt;br /&gt;
== Technical Background ==&lt;br /&gt;
&lt;br /&gt;
Since the code space on the STorM32 controller is very limited (currently only 128 bytes in total are available for the on-board scripts), and especially because of performance reasons the scripts are stored in the controller as binary pseudo code. &lt;br /&gt;
&lt;br /&gt;
The workflow is thus as follows: The scripts written in the &#039;&#039;&#039;&#039;&#039;STorM32 on-board scripting language&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
are translated into pseudo code with a home-brewed compiler, which is integrated into the GUI. The pseudo code is then stored into the STorM32 controller board with a {{GUIFIELD|Write}}. The pseudo code is permanently executed online by the STorM32 controller using an internal pseudo-code processor.&lt;br /&gt;
&lt;br /&gt;
For understanding the internal working one should realize that the STorM32 controller code is essentially an endless loop, which is triggered and repeated every 1.5 ms. This is called a cycle. Two situations can hence occur in the execution of the pseudo code, namely - first - the next pseudo command should be executed in the same cycle as the previous one, or - second - the next pseudo command should be postponed and executed in the next cycle. Generally, the function commands are of the first kind, while for the control flow commands it depends.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
In total four scripts, named Script1 to Script4, can be run concurrently and independently. For each script, two fields are available in the {{GUI|Scripts}} tab, e.g. for Script1 these are:&lt;br /&gt;
&lt;br /&gt;
* {{PARAMNAME|Script1 Control}}&lt;br /&gt;
* {{PARAMNAME|Script1}}&lt;br /&gt;
&lt;br /&gt;
The first parameter field allows us to select the input channel, to which the script should &amp;quot;listen&amp;quot;, i.e., which input value is used in the script for e.g. triggering one of the up to five cases (see below). &lt;br /&gt;
&lt;br /&gt;
The second parameter field holds the code. It can be edited via the {{GUIFIELD|Edit Script1}} button. It opens the script editor window, which allows you to write, load and save code. Its syntactic correctness may be checked by doing a {{GUIFIELD|Compile}}. For accepting the code use {{GUIFIELD|Accept and Exit}}.&lt;br /&gt;
&lt;br /&gt;
Script1 is the master script in the sense that it allows us to modify the {{PARAMNAME|Script2 Control}}, {{PARAMNAME|Script3 Control}}, and {{PARAMNAME|Script4 Control}} parameters and hence to affect the behavior of the other scripts, while the other three scripts cannot modify any of script control parameters.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The four scripts are actually not run concurrently, but sequentially, and are thus not totally independent on each other. In each cycle, the scripts are processed in the order script1, script2, script3, script4. Therefore, a later script can undo changes made by an earlier script, and an earlier script can make changes which are seen by the later scripts.}}&lt;br /&gt;
&lt;br /&gt;
== Scripting Language ==&lt;br /&gt;
&lt;br /&gt;
The on-board scripting language has a relatively rich set of commands, which allows us to modify the controller behavior in reaction to inputs, as well as to control the camera for motion control.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Control flow commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
 CASE#1&lt;br /&gt;
 CASE#2&lt;br /&gt;
 CASE#3&lt;br /&gt;
 CASE#4&lt;br /&gt;
 STOP&lt;br /&gt;
 REPEAT&lt;br /&gt;
 WAIT time(int, in 0.1secs)&lt;br /&gt;
 RESTART&lt;br /&gt;
&lt;br /&gt;
The cases are determined by the value of the input selected with the {{PARAMNAME|Scriptx Control}} parameter (where x stands for 1,2,3,4). The value ranges for the CASE statements are (see also [[Inputs_and_Functions#Overview_Diagram|Inputs and Functions: Overview Diagram]]):&lt;br /&gt;
&lt;br /&gt;
* CASE#DEFAULT: -166 ... +166&lt;br /&gt;
* CASE#1: +333 ... +500&lt;br /&gt;
* CASE#2: -500 ... -333&lt;br /&gt;
* CASE#3: +216 ... +277&lt;br /&gt;
* CASE#4: -277 ... -216&lt;br /&gt;
&lt;br /&gt;
Note that the ranges for CASE#1 and CASE#2 start at +333 and -333, respectively, which corresponds to ca 1833 us and 1167 us (roughly, this is very transmitter dependent). Default transmitter settings may not reach these values. Note also that the ranges for CASE#3 and CASE#4 are relatively narrow, and thus can easily be missed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Parameter value commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 SETP parametername(string) option(int, float or string)&lt;br /&gt;
 SETPMINMAX parametername(string) option(int, float or string) option(int, float or string)&lt;br /&gt;
 RESTORE&lt;br /&gt;
 RESTOREALL&lt;br /&gt;
 SET parametername(string) value(int)&lt;br /&gt;
 SETMINMAX parametername(string) minvalue(int) maxvalue(int)&lt;br /&gt;
&lt;br /&gt;
The commands {{BOX|SETP}} and {{BOX|SET}} are identical function-wise, namely set a parameter to a value, but differ in the second argument: In {{BOX|SETP}} the set-to value of the parameter is specified as it is displayed in the GUI (except of the unit in value fields), while in {{BOX|SET}} the new value is specified by its internal integer representation. For instance, if the parameter {{PARAMNAME|Camera Model}} should be set to {{PARAMVALUE|GoPro Hero5}}, then the {{BOX|SETP}} command would be {{BOX|SETP &amp;quot;Camera Model&amp;quot; &amp;quot;GoPro Hero5&amp;quot;}}, and the {{BOX|SET}} command would be {{BOX|SET &amp;quot;Camera Model&amp;quot; 10}} (since the option &amp;quot;GoPro Hero5&amp;quot; is internally represented by the integer 10) (you can check this with {{GUI|Share Settings}}).&lt;br /&gt;
&lt;br /&gt;
Similar holds for the second and third parameters in the {{BOX|SETPMINMAX}} and {{BOX|SETMINMAX}} commands.&lt;br /&gt;
 &lt;br /&gt;
The {{BOX|SET}} and {{BOX|SETMINMAX}} commands are still existing for compatibility, but should not be used in new scripts (in fact, the script compiler replaced them with the newer {{BOX|SETP}} and {{BOX|SETPMINMAX}} commands).&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|For some paramneters, a change of their setting initiates further actions, such as a restart of the controller. Changing their values in a script can lead to undetermined behavior, and shoucl thu snot be handled in scripts. Parameters of this kind are, e.g., {{PARAMNAME|Pitch Motor Usage}}, Roll Motor Usage, Yaw Motor Usage, Motor Mapping, and Imu Mapping.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Function commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 SETANGLEPITCH angle(float, in degree°)&lt;br /&gt;
 SETANGLEROLL angle(float, in degree°)&lt;br /&gt;
 SETANGLEYAW angle(float, in degree°)&lt;br /&gt;
 SETANGLE pitchangle(float, in degree°) rollangle(float, in degree°) yawangle(float, in degree°)&lt;br /&gt;
 SETANGLEPITCH_W angle(float, in degree°) time(int, in 0.1secs)&lt;br /&gt;
 SETANGLEROLL_W angle(float, in degree°) time(int, in 0.1secs)&lt;br /&gt;
 SETANGLEYAW_W angle(float, in degree°) time(int, in 0.1secs)&lt;br /&gt;
 SETSTANDBY 0/1&lt;br /&gt;
 SETRETRACT 0/1&lt;br /&gt;
 DOCAMERA 0/1/2/3/4&lt;br /&gt;
 DORECENTER&lt;br /&gt;
 DORECENTERPITCH&lt;br /&gt;
 DORECENTERROLL&lt;br /&gt;
 DORECENTERYAW&lt;br /&gt;
 DORECENTER_W time(int, in 0.1secs)&lt;br /&gt;
 DORECENTERPITCH_W time(int, in 0.1secs)&lt;br /&gt;
 DORECENTERROLL_W time(int, in 0.1secs)&lt;br /&gt;
 DORECENTERYAW_W time(int, in 0.1secs)&lt;br /&gt;
 SETPWM pwmvalue(int)&lt;br /&gt;
 SETPANOWAITS pitchtime(int, in 0.1secs) yawtime(int, in 0.1secs) shottime(int, in 0.1secs)&lt;br /&gt;
 SETPANORANGE yawangle(int, in degree°)&lt;br /&gt;
 SETPANOALLOWEXIT&lt;br /&gt;
 DOPANO pitchangle(int, in degree°) steps(int)&lt;br /&gt;
 BEEP&lt;br /&gt;
&lt;br /&gt;
Most function commands mirror serial RC commands (both in fact call the same internal functions). For further info thus please see [[Serial_Communication#Serial_Communication_-_RC_Commands|Serial Communication - RC Commands]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Additional commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 REMOTEENABLE&lt;br /&gt;
 REMOTEDISABLE&lt;br /&gt;
&lt;br /&gt;
The script function commands modify the very same set of internal variables which are also modified by the serial RC commands and MAVLink messages. This can lead to conflicts when the latter are used in combination with scripts, which can be resolved with the {{BOX|REMOTEDISABLE}}/{{BOX|REMOTEENABLE}} script commands. With {{BOX|REMOTEDISABLE}} the scripts are given priority over the serial RC and MAVLink commands. With {{BOX|REMOTEENABLE}} the default behavior is restored.&lt;br /&gt;
&lt;br /&gt;
 SENDMAVTEXT text(string)&lt;br /&gt;
 SENDCAMTEXT text(string)&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SENDMAVTEXT}} command triggers the emission of a MAVLink [https://mavlink.io/en/messages/common.html#STATUSTEXT STATUSTEXT] message. The text is the specified string, prepended by a label &amp;quot;STorM32:&amp;quot;. The text string can be 24 characters long, and contain the characters &#039;0&#039;-&#039;9&#039;, &#039;a&#039;-&#039;z&#039;, &#039;A&#039;-&#039;Z&#039;, &#039; &#039;.&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SENDCAMTEXT}} command sends the specified string, appended by a &#039;\n&#039; char, on the {{PARAMNAME|Camera ComPort}}. The text string can be 24 characters long, and contain the characters &#039;0&#039;-&#039;9&#039;, &#039;a&#039;-&#039;z&#039;, &#039;A&#039;-&#039;Z&#039;, &#039; &#039;. Only for {{PARAMNAME|Camera Model}} = {{PARAMVALUE|Serial Api}}.&lt;br /&gt;
&lt;br /&gt;
Prefer short text strings, in order to not exhaust the limited code space for scripts.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Changing a Parameter via the Transmitter ===&lt;br /&gt;
&lt;br /&gt;
Adjusting the value of a parameter during operation by e.g. tuning a knob on a transmitter is probably the most basic use-case of the scripts.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s consider GekoCH&#039;s application as an example (see [http://www.rcgroups.com/forums/showpost.php?p=29667070&amp;amp;postcount=19 here]): He&#039;s using a gimbal on a copter, and asked for the possibility to change the speed by which the camera turns upon a rc signal via another rc signal. He used a poti on the transmitter and the absolute mode to adjust the pitch orientation of the camera. It&#039;s obviously not possible to simultaneously fly the copter and to move the poti that precisely that a smooth camera motion is obtained, hence the {{PARAMNAME|Speed Limit}} feature was used. That is, the poti is quickly moved to the target orientation, and thanks to the speed limiter a smooth turn of the camera results. However, only one speed was possible before. Three solutions shall be discussed:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Method A&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   SETP &amp;quot;Rc Pitch Speed Limit&amp;quot; 40.0&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETP &amp;quot;Rc Pitch Speed Limit&amp;quot; 5.0&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
When the input specified in the {{PARAMNAME|Script Control}} parameter field yields a &amp;quot;default&amp;quot; value, then the pitch speed limit is set to 40.0 °/s, respectively, while when the input value is such to trigger {{BOX|CASE#1}}, then the speed limit is set to 5.0 °/s. Every CASE statement needs to be finished with either a {{BOX|STOP}} or {{BOX|REPEAT}}. Here the {{BOX|STOP}} command is used, which means that the preceding {{BOX|SETP}} command is executed only once when the input value changes, and not every cycle again.&lt;br /&gt;
&lt;br /&gt;
At this point one may ask, which input values triggers which case? The full answer isn&#039;t trivial and needs a familiarity with the STorM32 controller. In the given example, the default case is selected then the poti is below ca. 33% (&amp;lt; 1633 us), and case #1 is triggered then the switch is above ca. 83% (&amp;gt; 1830 us).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Method B&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  SETPMINMAX &amp;quot;Rc Pitch Speed Limit&amp;quot; 5.0 40.0&lt;br /&gt;
  REPEAT&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SETPMINMAX}} command linearly interpolates between the minimum value (5.0 °/s) and maximum value (40.0 °/s), depending on the input value. For instance, for an input value of 200 the pitch speed limit is set to 200 * (40.0-5.0)/1000 + (40.0+5.0)/2 = 29.5°/s. Hence, method B allows us to adjust the speed limit continuously in the range of 5.0 °/s to 40.0 °/s. The {{BOX|REPEAT}} command at the end ensures, that the {{BOX|SETPMINMAX}} command is executed at every cycle anew, and not just once, so that any change in the input value is quickly tracked.&lt;br /&gt;
&lt;br /&gt;
A video by GekoCH using this feature is [http://www.rcgroups.com/forums/showpost.php?p=30246328&amp;amp;postcount=2723 here].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Method C&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   RESTORE &amp;quot;Rc Pitch Speed Limit&amp;quot;&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETP &amp;quot;Rc Pitch Speed Limit&amp;quot; 5.0&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
This example is essentially method A, but overcomes a minor yet potentially annoying issue. In method A, the parameter value specified in the {{PARAMVALUE|Rc Pitch Speed Limit}} field of the GUI is overwritten immediately by the script, and hence becomes obsolete. In most cases one would however prefer that the default value is determined by the entry in the GUI, and not by that in the script. This issue is resolved by the {{BOX|RESTORE}} command, which sets the {{PARAMVALUE|Rc Pitch Speed Limit}} parameter to the value stored in the EEPROM.&lt;br /&gt;
&lt;br /&gt;
A similar {{BOX|RESTOREALL}} command exists, which sets all parameters to their values stored in the EEPROM. However, for efficiency reasons it should not be used, except then it is really absolutely needed. Using several {{BOX|RESTORE}} commands is much preferred over using {{BOX|RESTOREALL}}. In short, avoid {{BOX|RESTOREALL}} if you can.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Concluding Remarks&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Of course, one is not limited to only the {{PARAMNAME|Rc Pitch Speed Limit}} parameter. ANY other available parameter (except of the {{PARAMNAME|Script Control}} parameters as discussed before), can be used in the {{BOX|SET}} and {{BOX|SETPMINMAX}} commands and hence be modified by the scripts. Furthermore, any case statement can of course be followed by more than one command, such that complex situations can be tackled (it is though not possible to have another case statement within a case statement).&lt;br /&gt;
&lt;br /&gt;
Up to four cases can be distinguished, via the {{BOX|CASE#DEFAULT}}, {{BOX|CASE#1}}, {{BOX|CASE#2}}, and {{BOX|CASE#3}} statements. A case is chosen dependent on the value of the input selected by the {{PARAMNAME|Script Control}} parameter, in close analogy to all the other available functions such as the Rc Inputs, Pan Control or IR Camera Control, see also [[Inputs and Functions]].&lt;br /&gt;
&lt;br /&gt;
=== Running a Motion Control Sequence ===&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETANGLE -22.5 0 31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW 0&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW -31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLE 22.5 0 -31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW 0&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW 31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   DORECENTER&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
This short sequence consumes already 62 of the 128 bytes, which shows that only relatively short motion control sequences are possible with the on-board scripts.&lt;br /&gt;
&lt;br /&gt;
=== Running a Pano Sequence ===&lt;br /&gt;
&lt;br /&gt;
The previous motion control sequence allows to record a pano, which however is severely limited by the maximal possible script code size. Thus, more powerful commands were introduced, which allow quite extensive pano shots.&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   DORECENTER&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETANGLEYAW_W 45 30&lt;br /&gt;
   SETPANOWAITS 30 30 10&lt;br /&gt;
   SETPANORANGE 90&lt;br /&gt;
   DOPANO 30 -8&lt;br /&gt;
   DOPANO 0 8&lt;br /&gt;
   DOPANO -30 -8&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SETANGLEYAW_W}} command sets the yaw angle to 45°, and waits 3.0 secs in addition to the predicted time for the turn. &lt;br /&gt;
&lt;br /&gt;
The {{BOX|SETPANOWAITS}} and {{BOX|SETPANORANGE}} commands set some &amp;quot;global&amp;quot; parameters of the pano, namely the time to wait after each pitch movement, the time to wait after each yaw step, the time to wait before each shot, and the total yaw angle range which shall be covered. &lt;br /&gt;
&lt;br /&gt;
The {{BOX|DOPANO}} commands finally run the pano sequence. The first {{BOX|DOPANO}} command, e.g., sets the pitch angle to 30°, and then does 8 yaw steps in counterclockwise direction. In each step the yaw axis is progressed by 90°/8 = 11.25°. Similarly for the next two {{BOX|DOPANAO}} commands.&lt;br /&gt;
&lt;br /&gt;
In the above example, the pano cannot be terminated during execution. That is, the script is executed command by command until it reaches the {{BOX|STOP}} command, and only then it is tested if the input has changed and whether it should jump to CASE#DEFAULT. Often this is the desired behavior, e.g. when the pano is triggered with a momentary push button. Often it is however desired that the pano runs for as long as the input is set but is terminated then it is cleared. A typical use case would be when the pano is triggered with a transmitter switch, there one might want it to run when the switch is flipped but be stopped when the switch is cleared, even if the pano is not yet completed. This can be accomplished with the {{BOX|SETPANOALLOWEXIT}} command. An example script would be&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETANGLEYAW_W 45 30&lt;br /&gt;
   SETPANOWAITS 30 30 10&lt;br /&gt;
   SETPANORANGE 90&lt;br /&gt;
   SETPANOALLOWEXIT&lt;br /&gt;
   DOPANO 30 -8&lt;br /&gt;
   WAIT 10&lt;br /&gt;
   DOPANO -30 8&lt;br /&gt;
   DORECENTER&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
Note that here only the {{BOX|DOPANO}} commands are cut short if the input becomes different from CASE#1, but that the other commands are still executed until the {{BOX|STOP}} command is reached. That is, in the example, if the input changes while the first {{BOX|DOPANO}} command is executed, the {{BOX|WAIT}} and {{BOX|DORECENTER}} commands would be still executed.&lt;br /&gt;
&lt;br /&gt;
=== Running a Script in Combination with Serial and MAVLink Commands ===&lt;br /&gt;
&lt;br /&gt;
The serial RC commands and the MAVLink messages all set the very same internal variables which are also set by the scripts, and conflicts can accordingly occur.&lt;br /&gt;
&lt;br /&gt;
Such a situation occurs, e.g., when the STorM32 controller is connected to an ArduPilot flight controller via MAVLink, and a continuous stream of DO_MOUNT_CONTROL (or similar) MAVLink commands is sent to the STorM32 controller. In this case a pano script for instance would appear to not work since the commands for setting the angle of the gimbal emitted by the script would be nearly instantaneously overwritten by the DO_MOUNT_CONTROL (or similar) MAVLink commands received from the flight controller. &lt;br /&gt;
&lt;br /&gt;
Such situations can be resolved by using the {{BOX|REMOTEDISABLE}} and {{BOX|REMOTEENABLE}} script commands. {{BOX|REMOTEDISABLE}} gives the script priority, and essentially disables the serial and MAVLink commands. With {{BOX|REMOTEENABLE}} the default behavior is restored.&lt;br /&gt;
&lt;br /&gt;
A script using this mechanism would typically look like &lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   REMOTEDISABLE&lt;br /&gt;
   ...&lt;br /&gt;
   REMOTEENABLE&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   REMOTEDISABLE&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   REMOTEENABLE&lt;br /&gt;
   ...&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
The two script do not exactly work the same and which one to use depends on the actual script. The behavior of the second example could also be achieved as&lt;br /&gt;
&lt;br /&gt;
 REMOTEENABLE&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   REMOTEDISABLE&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   ...&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
which might be easier to write.&lt;br /&gt;
&lt;br /&gt;
== User Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Switching Between Two Alternate Functions of a Continuous RC Channel Using a &amp;quot;Shift Key&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;by Hb121280, see also [https://www.rcgroups.com/forums/showthread.php?2262624-STorM32-BGC-Scripts-Discussion-and-Development-Thread/page2&amp;amp;perpage=50#post39876923]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Imagine you want to control gimbal pitch and gimbal yaw using an analog dial on the remote control, but only one analog dial is available. This example uses a button channel to switch between alternate functions of one continuous channel.&lt;br /&gt;
&lt;br /&gt;
  CASE#DEFAULT&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
  CASE#1&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
  CASE#2&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
  CASE#3&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
&lt;br /&gt;
The {{PARAMNAME|Script Control}} variable is set to the button channel, e.g. {{PARAMVALUE|Virtual-8}}. In the present case the button channel delivers a value 0 in case it is not pressed and 254 if it is pressed. According to [[Inputs_and_Functions#Overview_Diagram|Inputs and Functions: Overview Diagram]], the value ranges for the CASE statements are:&lt;br /&gt;
&lt;br /&gt;
* CASE#DEFAULT: -166 ... +166&lt;br /&gt;
* CASE#1: +333 ... +500&lt;br /&gt;
* CASE#2: -500 ... -333&lt;br /&gt;
* CASE#3: +216 ... +277&lt;br /&gt;
&lt;br /&gt;
Thus, the cases CASE#DEFAULT and CASE#3 have to be used, because the button values 0 (not pressed) and 254 (pressed) fall into their value ranges. The script language does not allow &#039;missing&#039; case statements, and CASE#1 and CASE#2 need also to be specified (they can be filled with any commands, since they never would be triggered).&lt;br /&gt;
&lt;br /&gt;
In the above script, the standard behavior (button not pressed) uses the analog channel, or input {{PARAMVALUE|Virtual-8}}, for {{PARAMNAME|Rc Pitch}}. {{PARAMNAME|Rc Yaw}} is accordingly set to {{PARAMVALUE|off}}. Pressing the button reverses the assignments: The analog channel on input {{PARAMVALUE|Virtual-8}} is now used for {{PARAMNAME|Rc Yaw}}, and the control of pitch is deactivated.&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Scripts&amp;diff=11893</id>
		<title>STorM32 Scripts</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Scripts&amp;diff=11893"/>
		<updated>2025-11-20T02:28:00Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* Scripting Language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;font-size:88%&amp;quot;&amp;gt;&#039;&#039;The information on this page refers to firmware v2.69a and higher.&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With firmware version v0.51 the possibility of uploading scripts to the STorM32 controller, which are then executed on-board, without connection to a PC, has been introduced. It allows you to programmatically affect the behavior of the controller in order to achieve user specific needs and tasks with unprecedented flexibility. The STorM32 controller was the first of its kind to offer this innovative feature, which was when later adopted by others. &lt;br /&gt;
&lt;br /&gt;
The on-board scripts bring great possibilities, but need some understanding to avoid doing nonsense. This article gives some background, and presents the concepts by means of examples.&lt;br /&gt;
&lt;br /&gt;
== Overview of Script Types ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
The STorM32 on-board scripts should not be confused with other types of scripts, thus a short overview:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;On-board Scripts&#039;&#039;&#039;&#039;&#039;: These scripts are uploaded and stored into the controller, and are executed permanently by the controller. They are programmed by the user via the GUI&#039;s {{GUI|Scripts}} tab.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;Motion Control Scripts&#039;&#039;&#039;&#039;&#039;: In older firmware versions, the GUI did incorporate a dedicated Motion Control processor. These scripts were executed on the PC, sending commands to the STorM32 controller via e.g. USB, Bluetooth, or any other serial connection between the PC and the controller.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;Mission Planner Scripts&#039;&#039;&#039;&#039;&#039;: ArduPilot&#039;s [http://planner.ardupilot.com/ Mission Planner] allows to run Python scripts, which, similar to Motion Control scripts, are executed on the PC, sending messages to the autopilot.&lt;br /&gt;
&lt;br /&gt;
For all these scripts, the source code is stored in plain ASCII text files (and could hence be edited by any text editor), but the script type can be determined from the default file extension:&lt;br /&gt;
&lt;br /&gt;
 .scr = STorM32 on-board script&lt;br /&gt;
 .mcs = Motion Control script&lt;br /&gt;
 .py  = Mission Planner Python script&lt;br /&gt;
&lt;br /&gt;
When using the respective tools for handling the scripts, only the correct scripts, i.e. files with the correct file extension, should be accessible with the tools, avoiding confusion.&lt;br /&gt;
&lt;br /&gt;
This article focuses exclusively on the STorM32 on-board scripts.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
The STorM32 on-board scripts should not be confused with other types of scripts. &lt;br /&gt;
&lt;br /&gt;
These on-board scripts are uploaded and stored into the controller, and are executed permanently by the controller. They are programmed by the user via the GUI&#039;s {{GUI|Scripts}} tab. The source code is stored in plain ASCII text files (and could hence be edited by any text editor), with default file extension:&lt;br /&gt;
&lt;br /&gt;
 .scr = STorM32 on-board script&lt;br /&gt;
&lt;br /&gt;
== Technical Background ==&lt;br /&gt;
&lt;br /&gt;
Since the code space on the STorM32 controller is very limited (currently only 128 bytes in total are available for the on-board scripts), and especially because of performance reasons the scripts are stored in the controller as binary pseudo code. &lt;br /&gt;
&lt;br /&gt;
The workflow is thus as follows: The scripts written in the &#039;&#039;&#039;&#039;&#039;STorM32 on-board scripting language&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
are translated into pseudo code with a home-brewed compiler, which is integrated into the GUI. The pseudo code is then stored into the STorM32 controller board with a {{GUIFIELD|Write}}. The pseudo code is permanently executed online by the STorM32 controller using an internal pseudo-code processor.&lt;br /&gt;
&lt;br /&gt;
For understanding the internal working one should realize that the STorM32 controller code is essentially an endless loop, which is triggered and repeated every 1.5 ms. This is called a cycle. Two situations can hence occur in the execution of the pseudo code, namely - first - the next pseudo command should be executed in the same cycle as the previous one, or - second - the next pseudo command should be postponed and executed in the next cycle. Generally, the function commands are of the first kind, while for the control flow commands it depends.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
In total four scripts, named Script1 to Script4, can be run concurrently and independently. For each script, two fields are available in the {{GUI|Scripts}} tab, e.g. for Script1 these are:&lt;br /&gt;
&lt;br /&gt;
* {{PARAMNAME|Script1 Control}}&lt;br /&gt;
* {{PARAMNAME|Script1}}&lt;br /&gt;
&lt;br /&gt;
The first parameter field allows us to select the input channel, to which the script should &amp;quot;listen&amp;quot;, i.e., which input value is used in the script for e.g. triggering one of the up to five cases (see below). &lt;br /&gt;
&lt;br /&gt;
The second parameter field holds the code. It can be edited via the {{GUIFIELD|Edit Script1}} button. It opens the script editor window, which allows you to write, load and save code. Its syntactic correctness may be checked by doing a {{GUIFIELD|Compile}}. For accepting the code use {{GUIFIELD|Accept and Exit}}.&lt;br /&gt;
&lt;br /&gt;
Script1 is the master script in the sense that it allows us to modify the {{PARAMNAME|Script2 Control}}, {{PARAMNAME|Script3 Control}}, and {{PARAMNAME|Script4 Control}} parameters and hence to affect the behavior of the other scripts, while the other three scripts cannot modify any of script control parameters.&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The four scripts are actually not run concurrently, but sequentially, and are thus not totally independent on each other. In each cycle, the scripts are processed in the order script1, script2, script3, script4. Therefore, a later script can undo changes made by an earlier script, and an earlier script can make changes which are seen by the later scripts.}}&lt;br /&gt;
&lt;br /&gt;
== Scripting Language ==&lt;br /&gt;
&lt;br /&gt;
The on-board scripting language has a relatively rich set of commands, which allows us to modify the controller behavior in reaction to inputs, as well as to control the camera for motion control.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Control flow commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
 CASE#1&lt;br /&gt;
 CASE#2&lt;br /&gt;
 CASE#3&lt;br /&gt;
 CASE#4&lt;br /&gt;
 STOP&lt;br /&gt;
 REPEAT&lt;br /&gt;
 WAIT time(int, in 0.1secs)&lt;br /&gt;
 RESTART&lt;br /&gt;
&lt;br /&gt;
The cases are determined by the value of the input selected with the {{PARAMNAME|Scriptx Control}} parameter (where x stands for 1,2,3,4). The value ranges for the CASE statements are (see also [[Inputs_and_Functions#Overview_Diagram|Inputs and Functions: Overview Diagram]]):&lt;br /&gt;
&lt;br /&gt;
* CASE#DEFAULT: -166 ... +166&lt;br /&gt;
* CASE#1: +333 ... +500&lt;br /&gt;
* CASE#2: -500 ... -333&lt;br /&gt;
* CASE#3: +216 ... +277&lt;br /&gt;
* CASE#4: -277 ... -216&lt;br /&gt;
&lt;br /&gt;
Note that the ranges for CASE#1 and CASE#2 start at +333 and -333, respectively, which corresponds to ca 1833 us and 1167 us (roughly, this is very transmitter dependent). Default transmitter settings may not reach these values. Note also that the ranges for CASE#3 and CASE#4 are relatively narrow, and thus can easily be missed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Parameter value commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 SETP parametername(string) option(int, float or string)&lt;br /&gt;
 SETPMINMAX parametername(string) option(int, float or string) option(int, float or string)&lt;br /&gt;
 RESTORE&lt;br /&gt;
 RESTOREALL&lt;br /&gt;
 SET parametername(string) value(int)&lt;br /&gt;
 SETMINMAX parametername(string) minvalue(int) maxvalue(int)&lt;br /&gt;
&lt;br /&gt;
The commands {{BOX|SETP}} and {{BOX|SET}} are identical function-wise, namely set a parameter to a value, but differ in the second argument: In {{BOX|SETP}} the set-to value of the parameter is specified as it is displayed in the GUI (except of the unit in value fields), while in {{BOX|SET}} the new value is specified by its internal integer representation. For instance, if the parameter {{PARAMNAME|Camera Model}} should be set to {{PARAMVALUE|GoPro Hero5}}, then the {{BOX|SETP}} command would be {{BOX|SETP &amp;quot;Camera Model&amp;quot; &amp;quot;GoPro Hero5&amp;quot;}}, and the {{BOX|SET}} command would be {{BOX|SET &amp;quot;Camera Model&amp;quot; 10}} (since the option &amp;quot;GoPro Hero5&amp;quot; is internally represented by the integer 10) (you can check this with {{GUI|Share Settings}}).&lt;br /&gt;
&lt;br /&gt;
Similar holds for the second and third parameters in the {{BOX|SETPMINMAX}} and {{BOX|SETMINMAX}} commands.&lt;br /&gt;
 &lt;br /&gt;
The {{BOX|SET}} and {{BOX|SETMINMAX}} commands are still existing for compatibility, but should not be used in new scripts (in fact, the script compiler replaced them with the newer {{BOX|SETP}} and {{BOX|SETPMINMAX}} commands).&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|For some paramneters, a change of their setting initiates further actions, such as a restart of the controller. Changing their values in a script can lead to undetermined behavior, and shoucl thu snot be handled in scripts. Parameters of this kind are, e.g., {{PARAMNAME|Pitch Motor Usage}}, Roll Motor Usage, Yaw Motor Usage, Motor Mapping, and Imu Mapping.}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Function commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 SETANGLEPITCH angle(float, in degree°)&lt;br /&gt;
 SETANGLEROLL angle(float, in degree°)&lt;br /&gt;
 SETANGLEYAW angle(float, in degree°)&lt;br /&gt;
 SETANGLE pitchangle(float, in degree°) rollangle(float, in degree°) yawangle(float, in degree°)&lt;br /&gt;
 SETANGLEPITCH_W angle(float, in degree°) time(int, in 0.1secs)&lt;br /&gt;
 SETANGLEROLL_W angle(float, in degree°) time(int, in 0.1secs)&lt;br /&gt;
 SETANGLEYAW_W angle(float, in degree°) time(int, in 0.1secs)&lt;br /&gt;
 SETSTANDBY 0/1&lt;br /&gt;
 SETRETRACT 0/1&lt;br /&gt;
 DOCAMERA 0/1/2/3/4&lt;br /&gt;
 DORECENTER&lt;br /&gt;
 DORECENTERPITCH&lt;br /&gt;
 DORECENTERROLL&lt;br /&gt;
 DORECENTERYAW&lt;br /&gt;
 DORECENTER_W time(int, in 0.1secs)&lt;br /&gt;
 DORECENTERPITCH_W time(int, in 0.1secs)&lt;br /&gt;
 DORECENTERROLL_W time(int, in 0.1secs)&lt;br /&gt;
 DORECENTERYAW_W time(int, in 0.1secs)&lt;br /&gt;
 SETPWM pwmvalue(int)&lt;br /&gt;
 SETPANOWAITS pitchtime(int, in 0.1secs) yawtime(int, in 0.1secs) shottime(int, in 0.1secs)&lt;br /&gt;
 SETPANORANGE yawangle(int, in degree°)&lt;br /&gt;
 SETPANOALLOWEXIT&lt;br /&gt;
 DOPANO pitchangle(int, in degree°) steps(int)&lt;br /&gt;
 BEEP&lt;br /&gt;
&lt;br /&gt;
Most function commands mirror serial RC commands (both in fact call the same internal functions). For further info thus please see [[Serial_Communication#Serial_Communication_-_RC_Commands|Serial Communication - RC Commands]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Additional commands:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 REMOTEENABLE&lt;br /&gt;
 REMOTEDISABLE&lt;br /&gt;
&lt;br /&gt;
The script function commands modify the very same set of internal variables which are also modified by the serial RC commands and MAVLink messages. This can lead to conflicts when the latter are used in combination with scripts, which can be resolved with the {{BOX|REMOTEDISABLE}}/{{BOX|REMOTEENABLE}} script commands. With {{BOX|REMOTEDISABLE}} the scripts are given priority over the serial RC and MAVLink commands. With {{BOX|REMOTEENABLE}} the default behavior is restored.&lt;br /&gt;
&lt;br /&gt;
 SENDMAVTEXT text(string)&lt;br /&gt;
 SENDCAMTEXT text(string)&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SENDMAVTEXT}} command triggers the emission of a MAVLink [https://mavlink.io/en/messages/common.html#STATUSTEXT STATUSTEXT] message. The text is the specified string, prepended by a label &amp;quot;STorM32:&amp;quot;. The text string can be 24 characters long, and contain the characters &#039;0&#039;-&#039;9&#039;, &#039;a&#039;-&#039;z&#039;, &#039;A&#039;-&#039;Z&#039;, &#039; &#039;.&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SENDCAMTEXT}} command sends the specified string, appended by a &#039;\n&#039; char, on the {{PARAMNAME|Camera ComPort}}. The text string can be 24 characters long, and contain the characters &#039;0&#039;-&#039;9&#039;, &#039;a&#039;-&#039;z&#039;, &#039;A&#039;-&#039;Z&#039;, &#039; &#039;. Only for {{PARAMNAME|Camera Model}} = {{PARAMVALUE|Serial Api}}.&lt;br /&gt;
&lt;br /&gt;
Prefer short text strings, in order to not exhaust the limited code space for scripts.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Changing a Parameter via the Transmitter ===&lt;br /&gt;
&lt;br /&gt;
Adjusting the value of a parameter during operation by e.g. tuning a knob on a transmitter is probably the most basic use-case of the scripts.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s consider GekoCH&#039;s application as an example (see [http://www.rcgroups.com/forums/showpost.php?p=29667070&amp;amp;postcount=19 here]): He&#039;s using a gimbal on a copter, and asked for the possibility to change the speed by which the camera turns upon a rc signal via another rc signal. He used a poti on the transmitter and the absolute mode to adjust the pitch orientation of the camera. It&#039;s obviously not possible to simultaneously fly the copter and to move the poti that precisely that a smooth camera motion is obtained, hence the {{PARAMNAME|Speed Limit}} feature was used. That is, the poti is quickly moved to the target orientation, and thanks to the speed limiter a smooth turn of the camera results. However, only one speed was possible before. Three solutions shall be discussed:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Method A&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   SETP &amp;quot;Rc Pitch Speed Limit&amp;quot; 40.0&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETP &amp;quot;Rc Pitch Speed Limit&amp;quot; 5.0&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
When the input specified in the {{PARAMNAME|Script Control}} parameter field yields a &amp;quot;default&amp;quot; value, then the pitch speed limit is set to 40.0 °/s, respectively, while when the input value is such to trigger {{BOX|CASE#1}}, then the speed limit is set to 5.0 °/s. Every CASE statement needs to be finished with either a {{BOX|STOP}} or {{BOX|REPEAT}}. Here the {{BOX|STOP}} command is used, which means that the preceding {{BOX|SETP}} command is executed only once when the input value changes, and not every cycle again.&lt;br /&gt;
&lt;br /&gt;
At this point one may ask, which input values triggers which case? The full answer isn&#039;t trivial and needs a familiarity with the STorM32 controller. In the given example, the default case is selected then the poti is below ca. 33% (&amp;lt; 1633 us), and case #1 is triggered then the switch is above ca. 83% (&amp;gt; 1830 us).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Method B&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  SETPMINMAX &amp;quot;Rc Pitch Speed Limit&amp;quot; 5.0 40.0&lt;br /&gt;
  REPEAT&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SETPMINMAX}} command linearly interpolates between the minimum value (5.0 °/s) and maximum value (40.0 °/s), depending on the input value. For instance, for an input value of 200 the pitch speed limit is set to 200 * (40.0-5.0)/1000 + (40.0+5.0)/2 = 29.5°/s. Hence, method B allows us to adjust the speed limit continuously in the range of 5.0 °/s to 40.0 °/s. The {{BOX|REPEAT}} command at the end ensures, that the {{BOX|SETPMINMAX}} command is executed at every cycle anew, and not just once, so that any change in the input value is quickly tracked.&lt;br /&gt;
&lt;br /&gt;
A video by GekoCH using this feature is [http://www.rcgroups.com/forums/showpost.php?p=30246328&amp;amp;postcount=2723 here].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Method C&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   RESTORE &amp;quot;Rc Pitch Speed Limit&amp;quot;&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETP &amp;quot;Rc Pitch Speed Limit&amp;quot; 5.0&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
This example is essentially method A, but overcomes a minor yet potentially annoying issue. In method A, the parameter value specified in the {{PARAMVALUE|Rc Pitch Speed Limit}} field of the GUI is overwritten immediately by the script, and hence becomes obsolete. In most cases one would however prefer that the default value is determined by the entry in the GUI, and not by that in the script. This issue is resolved by the {{BOX|RESTORE}} command, which sets the {{PARAMVALUE|Rc Pitch Speed Limit}} parameter to the value stored in the EEPROM.&lt;br /&gt;
&lt;br /&gt;
A similar {{BOX|RESTOREALL}} command exists, which sets all parameters to their values stored in the EEPROM. However, for efficiency reasons it should not be used, except then it is really absolutely needed. Using several {{BOX|RESTORE}} commands is much preferred over using {{BOX|RESTOREALL}}. In short, avoid {{BOX|RESTOREALL}} if you can.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Concluding Remarks&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Of course, one is not limited to only the {{PARAMNAME|Rc Pitch Speed Limit}} parameter. ANY other available parameter (except of the {{PARAMNAME|Script Control}} parameters as discussed before), can be used in the {{BOX|SET}} and {{BOX|SETPMINMAX}} commands and hence be modified by the scripts. Furthermore, any case statement can of course be followed by more than one command, such that complex situations can be tackled (it is though not possible to have another case statement within a case statement).&lt;br /&gt;
&lt;br /&gt;
Up to four cases can be distinguished, via the {{BOX|CASE#DEFAULT}}, {{BOX|CASE#1}}, {{BOX|CASE#2}}, and {{BOX|CASE#3}} statements. A case is chosen dependent on the value of the input selected by the {{PARAMNAME|Script Control}} parameter, in close analogy to all the other available functions such as the Rc Inputs, Pan Control or IR Camera Control, see also [[Inputs and Functions]].&lt;br /&gt;
&lt;br /&gt;
=== Running a Motion Control Sequence ===&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETANGLE -22.5 0 31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW 0&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW -31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLE 22.5 0 -31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW 0&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   SETANGLEYAW 31.5&lt;br /&gt;
   WAIT 20&lt;br /&gt;
   DOCAMERA 1&lt;br /&gt;
   DORECENTER&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
This short sequence consumes already 62 of the 128 bytes, which shows that only relatively short motion control sequences are possible with the on-board scripts.&lt;br /&gt;
&lt;br /&gt;
=== Running a Pano Sequence ===&lt;br /&gt;
&lt;br /&gt;
The previous motion control sequence allows to record a pano, which however is severely limited by the maximal possible script code size. Thus, more powerful commands were introduced, which allow quite extensive pano shots.&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   DORECENTER&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETANGLEYAW_W 45 30&lt;br /&gt;
   SETPANOWAITS 30 30 10&lt;br /&gt;
   SETPANORANGE 90&lt;br /&gt;
   DOPANO 30 -8&lt;br /&gt;
   DOPANO 0 8&lt;br /&gt;
   DOPANO -30 -8&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
The {{BOX|SETANGLEYAW_W}} command sets the yaw angle to 45°, and waits 3.0 secs in addition to the predicted time for the turn. &lt;br /&gt;
&lt;br /&gt;
The {{BOX|SETPANOWAITS}} and {{BOX|SETPANORANGE}} commands set some &amp;quot;global&amp;quot; parameters of the pano, namely the time to wait after each pitch movement, the time to wait after each yaw step, the time to wait before each shot, and the total yaw angle range which shall be covered. &lt;br /&gt;
&lt;br /&gt;
The {{BOX|DOPANO}} commands finally run the pano sequence. The first {{BOX|DOPANO}} command, e.g., sets the pitch angle to 30°, and then does 8 yaw steps in counterclockwise direction. In each step the yaw axis is progressed by 90°/8 = 11.25°. Similarly for the next two {{BOX|DOPANAO}} commands.&lt;br /&gt;
&lt;br /&gt;
In the above example, the pano cannot be terminated during execution. That is, the script is executed command by command until it reaches the {{BOX|STOP}} command, and only then it is tested if the input has changed and whether it should jump to CASE#DEFAULT. Often this is the desired behavior, e.g. when the pano is triggered with a momentary push button. Often it is however desired that the pano runs for as long as the input is set but is terminated then it is cleared. A typical use case would be when the pano is triggered with a transmitter switch, there one might want it to run when the switch is flipped but be stopped when the switch is cleared, even if the pano is not yet completed. This can be accomplished with the {{BOX|SETPANOALLOWEXIT}} command. An example script would be&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   SETANGLEYAW_W 45 30&lt;br /&gt;
   SETPANOWAITS 30 30 10&lt;br /&gt;
   SETPANORANGE 90&lt;br /&gt;
   SETPANOALLOWEXIT&lt;br /&gt;
   DOPANO 30 -8&lt;br /&gt;
   WAIT 10&lt;br /&gt;
   DOPANO -30 8&lt;br /&gt;
   DORECENTER&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
Note that here only the {{BOX|DOPANO}} commands are cut short if the input becomes different from CASE#1, but that the other commands are still executed until the {{BOX|STOP}} command is reached. That is, in the example, if the input changes while the first {{BOX|DOPANO}} command is executed, the {{BOX|WAIT}} and {{BOX|DORECENTER}} commands would be still executed.&lt;br /&gt;
&lt;br /&gt;
=== Running a Script in Combination with Serial and MAVLink Commands ===&lt;br /&gt;
&lt;br /&gt;
The serial RC commands and the MAVLink messages all set the very same internal variables which are also set by the scripts, and conflicts can accordingly occur.&lt;br /&gt;
&lt;br /&gt;
Such a situation occurs, e.g., when the STorM32 controller is connected to an ArduPilot flight controller via MAVLink, and a continuous stream of DO_MOUNT_CONTROL (or similar) MAVLink commands is sent to the STorM32 controller. In this case a pano script for instance would appear to not work since the commands for setting the angle of the gimbal emitted by the script would be nearly instantaneously overwritten by the DO_MOUNT_CONTROL (or similar) MAVLink commands received from the flight controller. &lt;br /&gt;
&lt;br /&gt;
Such situations can be resolved by using the {{BOX|REMOTEDISABLE}} and {{BOX|REMOTEENABLE}} script commands. {{BOX|REMOTEDISABLE}} gives the script priority, and essentially disables the serial and MAVLink commands. With {{BOX|REMOTEENABLE}} the default behavior is restored.&lt;br /&gt;
&lt;br /&gt;
A script using this mechanism would typically look like &lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   REMOTEDISABLE&lt;br /&gt;
   ...&lt;br /&gt;
   REMOTEENABLE&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   REMOTEDISABLE&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   REMOTEENABLE&lt;br /&gt;
   ...&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
The two script do not exactly work the same and which one to use depends on the actual script. The behavior of the second example could also be achieved as&lt;br /&gt;
&lt;br /&gt;
 REMOTEENABLE&lt;br /&gt;
 CASE#DEFAULT&lt;br /&gt;
   REMOTEDISABLE&lt;br /&gt;
   STOP&lt;br /&gt;
 CASE#1&lt;br /&gt;
   ...&lt;br /&gt;
   STOP&lt;br /&gt;
&lt;br /&gt;
which might be easier to write.&lt;br /&gt;
&lt;br /&gt;
== User Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Switching Between Two Alternate Functions of a Continuous RC Channel Using a &amp;quot;Shift Key&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;by Hb121280, see also [https://www.rcgroups.com/forums/showthread.php?2262624-STorM32-BGC-Scripts-Discussion-and-Development-Thread/page2&amp;amp;perpage=50#post39876923]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Imagine you want to control gimbal pitch and gimbal yaw using an analog dial on the remote control, but only one analog dial is available. This example uses a button channel to switch between alternate functions of one continuous channel.&lt;br /&gt;
&lt;br /&gt;
  CASE#DEFAULT&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
  CASE#1&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
  CASE#2&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
  CASE#3&lt;br /&gt;
    SETP &amp;quot;Rc Pitch&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
    SETP &amp;quot;Rc Yaw&amp;quot; &amp;quot;Virtual-8&amp;quot;&lt;br /&gt;
    STOP&lt;br /&gt;
&lt;br /&gt;
The {{PARAMNAME|Script Control}} variable is set to the button channel, e.g. {{PARAMVALUE|Virtual-8}}. In the present case the button channel delivers a value 0 in case it is not pressed and 254 if it is pressed. According to [[Inputs_and_Functions#Overview_Diagram|Inputs and Functions: Overview Diagram]], the value ranges for the CASE statements are:&lt;br /&gt;
&lt;br /&gt;
* CASE#DEFAULT: -166 ... +166&lt;br /&gt;
* CASE#1: +333 ... +500&lt;br /&gt;
* CASE#2: -500 ... -333&lt;br /&gt;
* CASE#3: +216 ... +277&lt;br /&gt;
&lt;br /&gt;
Thus, the cases CASE#DEFAULT and CASE#3 have to be used, because the button values 0 (not pressed) and 254 (pressed) fall into their value ranges. The script language does not allow &#039;missing&#039; case statements, and CASE#1 and CASE#2 need also to be specified (they can be filled with any commands, since they never would be triggered).&lt;br /&gt;
&lt;br /&gt;
In the above script, the standard behavior (button not pressed) uses the analog channel, or input {{PARAMVALUE|Virtual-8}}, for {{PARAMNAME|Rc Pitch}}. {{PARAMNAME|Rc Yaw}} is accordingly set to {{PARAMVALUE|off}}. Pressing the button reverses the assignments: The analog channel on input {{PARAMVALUE|Virtual-8}} is now used for {{PARAMNAME|Rc Yaw}}, and the control of pitch is deactivated.&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11892</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11892"/>
		<updated>2025-11-17T16:52:03Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. &amp;lt;br/&amp;gt;&lt;br /&gt;
- Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3]. STorM32 v3 will not support the old and tried v1.3x boards, as well as not the v3.3 and v4.1 boards. Reason is that the STM32F103 microcontroller used on these boards has simply become too limited.&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11891</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11891"/>
		<updated>2025-11-17T16:51:12Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. &amp;lt;br/&amp;gt;&lt;br /&gt;
- Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3]. STorM32 v3 will not support the old and tried v1.3x boards, as well as not the v3.3 and v4.1 boards. The reason is that the STM32F103 microcontroller used on these boards has simply become too limited.&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11890</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11890"/>
		<updated>2025-11-17T16:50:53Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series.&lt;br /&gt;
- Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3]. STorM32 v3 will not support the old and tried v1.3x boards, as well as not the v3.3 and v4.1 boards. The reason is that the STM32F103 microcontroller used on these boards has simply become too limited.&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11889</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11889"/>
		<updated>2025-11-17T16:50:34Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. &lt;br /&gt;
- Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3]. STorM32 v3 will not support the old and tried v1.3x boards, as well as not the v3.3 and v4.1 boards. The reason is that the STM32F103 microcontroller used on these boards has simply become too limited.&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11888</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11888"/>
		<updated>2025-11-17T16:49:54Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3].&lt;br /&gt;
- STorM32 v3 will not support the old and tried v1.3x boards, as well as not the v3.3 and v4.1 boards. The reason is that the STM32F103 microcontroller used on these boards has simply become too limited.&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11887</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11887"/>
		<updated>2025-11-17T16:45:15Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3].&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11886</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11886"/>
		<updated>2025-11-17T16:44:59Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3].}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11885</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11885"/>
		<updated>2025-11-17T16:44:48Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;!--- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3].}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11884</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11884"/>
		<updated>2025-11-17T16:42:34Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-v2-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
&amp;lt;!--- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3].}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11883</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11883"/>
		<updated>2025-11-17T16:42:04Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
&amp;lt;!--- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. Development will shift to [//www.olliw.eu/storm32bgc-wiki STorM32 v3].}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11882</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11882"/>
		<updated>2025-11-17T16:41:12Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
&amp;lt;!--- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;&lt;br /&gt;
- The v2.xx firmware series will phase out, i.e., currently it is planned that firmware 2.74 is the last release in this series. Development will shift to STorM32 v3.}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11881</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11881"/>
		<updated>2025-11-17T16:39:32Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
&amp;lt;!--- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.--&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11880</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11880"/>
		<updated>2025-11-17T16:39:11Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11879</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11879"/>
		<updated>2025-11-17T16:39:01Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &amp;lt;br/&amp;gt;&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11878</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11878"/>
		<updated>2025-11-17T16:38:52Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}} &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11877</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11877"/>
		<updated>2025-11-17T16:38:40Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}}&lt;br /&gt;
&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11876</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11876"/>
		<updated>2025-11-17T16:37:54Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* Repository */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11875</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=Downloads&amp;diff=11875"/>
		<updated>2025-11-17T16:37:03Z</updated>

		<summary type="html">&lt;p&gt;OlliW: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ALERT| &#039;&#039;&#039;PLEASE READ THIS FIRST&#039;&#039;&#039;                     &lt;br /&gt;
There are 2 types of IMU modules which STorM32 v1.3x controllers can use, NT IMUs and I2C IMUs, and there are 2 firmwares which correspond to each type. It is important to choose the correct firmware, otherwise your controller and gimbal will not work. Read this page to understand the difference between the two types of IMUs [[//www.olliw.eu/storm32bgc-wiki/What_is_STorM32_NT_about%3F]], and this post to identify your IMU [[//www.rcgroups.com/forums/showpost.php?p=38258334&amp;amp;postcount=10256]]. &lt;br /&gt;
&lt;br /&gt;
The STorM32 v3.x, v4.x, v6.x controllers can only use NT IMUs, not I2C IMUs.&lt;br /&gt;
&lt;br /&gt;
Only firmwares with version v0.96 or less work with I2C IMUs. Firmwares with version numbers v2.xx are not usable for setups with I2C IMU. If you do not know what a NT IMU is, then you likely have a I2C IMU and need firmware v0.96.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ALERT| &#039;&#039;&#039;ANNOUNCEMENTS&#039;&#039;&#039;&lt;br /&gt;
- Support of the v1.3x STorM32 boards will phase out. That is, the next official release (whenever this will be), will be the last release which supports these old and tried main boards. Reason is that since few years I have migrated to the STM32 HAL&amp;amp;LL libraries, but the v1.3x code is still on the legacy SPL library since it&#039;s I2C is ca 50-100 us faster than the HAL I2C lib. So I maintain two codes, which is obviously not sustainable.&lt;br /&gt;
- Support for quite a number of presumably &amp;quot;old&amp;quot; cameras will phase out. Some of them are so old that it&#039;s hard to imagine they are still in use. Examples are Git2, Mapir Survey, Firefly Split 4K, Runcam, GoPro Hero5&amp;amp;7.}}&lt;br /&gt;
&lt;br /&gt;
== v2.xx Firmware for NT IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a NT camera IMU. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Direct link to v2.53 firmware download (this firmware is pretty old, it is highly recommended to use v2.67e):&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v253-v20200517.zip o323bgc-release-v253-v20200517] [.zip] (12.2 MB)&lt;br /&gt;
:[//www.rcgroups.com/forums/showpost.php?p=44539519&amp;amp;postcount=12349 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Latest beta release v2.73e:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/main/firmware%20binaries%20%26%20gui/o323bgc-release-v273e-v20250711.zip o323bgc-release-v273e-v20250711] [.zip] (15.9 MB)&lt;br /&gt;
:[https://www.rcgroups.com/forums/showpost.php?p=53978973&amp;amp;postcount=15988 Release Notes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NTLoggerTool release v0.50:&amp;lt;br&amp;gt;&lt;br /&gt;
:[//www.olliw.eu/downloads/storm32/ntloggertool/ntloggertool-release-v050-v20231003.zip ntloggertool-release-v050-v20231003] [.zip] (295 MB)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BetaCopter/BetaPlane 4.7-dev:&amp;lt;br&amp;gt;&lt;br /&gt;
:For downloading the firmwares and all further info please visit the article [[Using STorM32 with BetaPilot]].&lt;br /&gt;
&lt;br /&gt;
== v0.96 Firmware for I2C IMUs ==&lt;br /&gt;
&lt;br /&gt;
Firmware for STorM32 setups using a I2C camera IMU. Examples are the HakRC gimbal and other gimbals from Aliexpress.&lt;br /&gt;
&lt;br /&gt;
Latest firmware v0.96 for I2C IMUs:&amp;lt;br&amp;gt; &lt;br /&gt;
:[//github.com/olliw42/storm32bgc/raw/master/firmware%20binaries%20%26%20gui/o323bgc-release-v096-v20160319.zip o323bgc-release-v096-v20160319] [.zip] (9.4MB)&lt;br /&gt;
&lt;br /&gt;
Note: This wiki here is not appropriate for v0.96 I2C setups, you should go to [//www.olliw.eu/storm32bgc-v1-wiki/Main_Page STorM32 v0.xx Wiki].&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v0.96 release also includes firmwares for NT IMUs, identifiable by a label &amp;quot;nt&amp;quot; in the file names. Don&#039;t use them, use the v0.96 firmware (without a &amp;quot;nt&amp;quot; in the file name).}}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Various files related to the STorM32-BGC project can be downloaded from several places:&lt;br /&gt;
* [//github.com/olliw42/storm32bgc Github repository]&lt;br /&gt;
* For other firmware versions see the 1st page of the [//www.rcgroups.com/forums/showthread.php?t=2055844 rcgroups discussion thread]&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Boards&amp;diff=11874</id>
		<title>STorM32 Boards</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Boards&amp;diff=11874"/>
		<updated>2025-11-17T14:19:42Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* STorM32-BGC v4.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The technical specifications of various STorM32 boards are presented, as far as they are known. To find suppliers/vendors please go to [[Where to buy STorM32 boards]]. For a detailed description of the various connectors on the (original) boards see [[Pins and Connectors]].&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Original&amp;quot; STorM32 Boards ==&lt;br /&gt;
&lt;br /&gt;
At present, board versions v1.3, v3.3, v4.1, v6.2 and v6.3 are in use and supported (v0.17/v1.0, v1.1, v1.2 and v2.4 boards are deprecated).&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
* The characteristic of the v1.3 board is a linear voltage regulator and on-board TC4452 motor drivers. &lt;br /&gt;
* The v3.3 board is specifically designed for NT and especially T-STorM32, and is available in different form factors. It is distinguished by a low-noise 5 V switching voltage regulator and a 2nd UART2 port, but it has no motor drivers on board.&lt;br /&gt;
* The v4.1 board combines, so to say, the v1.3 and v3.3 boards; it is designed for NT and T-STorM32 but also provides DRV8839 motor drivers on board.&lt;br /&gt;
* The v6.2 board is similar to the v3.3 board, butsubstantially upgraded. It has STM32H7 processor and runs much faster, and also offers beefier voltage regulators. &lt;br /&gt;
* The v6.3 board is the v6.x version which also provides DRV8839 motor drivers on board.. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== STorM32-BGC v6.3 ===&lt;br /&gt;
----&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32H7A3RG at 280 MHz&lt;br /&gt;
* motor drivers: DRV8839&lt;br /&gt;
* voltage regulator: 5 V, 2 A (??) switching regulator&lt;br /&gt;
* on-board ICM42688P/ICM42688V connected to SPI&lt;br /&gt;
* 2x NT port and 1x NT-X port&lt;br /&gt;
* UART2/ESP port&lt;br /&gt;
* USB-C connector, permits flashing per USB&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 12 V or 2 - 3S (with motor drivers enabled) &amp;lt;br/&amp;gt;&#039;&#039;&#039;&#039;&#039;Comment&#039;&#039;&#039;: The motor drivers are enabled by closing the JP1 solder bridge on the bottom side of the board. When the solder bridge is open (motor drivers disabled), the board can be used with voltages up to 20 V or 4S.&#039;&#039;&lt;br /&gt;
* motor current: 1.0 A (??)&lt;br /&gt;
* board dimensions: 40 mm x 28 mm, 35 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|This board is design of [https://www.gohstanddesigns.com/ Gohstand Designs] and based on the v4.1 design of [https://www.krattworks.com/ KrattWorks].}}&lt;br /&gt;
&lt;br /&gt;
=== STorM32-BGC v6.2 ===&lt;br /&gt;
----&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32H7A3RG at 280 MHz&lt;br /&gt;
* motor drivers: none&lt;br /&gt;
* voltage regulator: 5 V, 2.0 A low-noise switching regulator&lt;br /&gt;
* on-board ICM42688P/ICM42688V connected to SPI&lt;br /&gt;
* 2x NT port and 1x NT-X port&lt;br /&gt;
* UART2/ESP port&lt;br /&gt;
* USB-C connector, permits flashing per USB&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 27 V or 2 - 6S&lt;br /&gt;
* motor current: depends on used NT motor modules&lt;br /&gt;
* board dimensions: 40 mm x 25 mm, 35 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== STorM32-BGC v4.1 ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Storm32-bgc-nt-v41-picture.jpg|thumb|caption|STorM32 board v4.1, for NT and T-STorM32, with on-board motor drivers and USB-C connector.]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: DRV8839&lt;br /&gt;
* voltage regulator: 5 V, 2 A (??) switching regulator&lt;br /&gt;
* on-board IMU ICM42688P/ICM42688V, connected to SPI&lt;br /&gt;
* 2x NT port and 1x NT-X port&lt;br /&gt;
* UART2 port&lt;br /&gt;
* on-board USB-TTL adapter CP2102, permits flashing per USB&lt;br /&gt;
* USB-C connector&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 12 V or 2 - 3S (with motor drivers enabled) &amp;lt;br/&amp;gt;&#039;&#039;&#039;&#039;&#039;Comment&#039;&#039;&#039;: The motor drivers are enabled by closing the JP1 solder bridge on the bottom side of the board. When the solder bridge is open (motor drivers disabled), the board can be used with voltages up to 20 V or 4S (??).&#039;&#039;&lt;br /&gt;
* motor current: 1.0 A (??)&lt;br /&gt;
* board dimensions: 40 mm x 28 mm, 35 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|This board is design of [https://www.krattworks.com/ KrattWorks], [https://bitbucket.org/teamkrattworks/hw_storm32_v4/src/master/release/storm32-nt-v4_1/].}}&lt;br /&gt;
&lt;br /&gt;
=== STorM32-BGC v3.3m, v3.3i ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Storm32-v33m-thumb.jpg|thumb|caption|STorM32 board v3.3 specifically designed for NT and T-STorM32]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: none&lt;br /&gt;
* voltage regulator: 5 V, 0.6 A low-noise switching regulator&lt;br /&gt;
* on-board IMU MPU9250 (v3.3m) or ICM42605/ICM42688P/ICM42688V (v3.3i), connected to SPI&lt;br /&gt;
* 2x NT port and 1x NT-X port&lt;br /&gt;
* UART2/ESP port&lt;br /&gt;
* CAN bus port (obsolete as not supported anymore)&lt;br /&gt;
* on-board USB-TTL adapter CP2102, permits flashing per USB&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 27 V or 2 - 6S&lt;br /&gt;
* motor current: depends on used NT motor modules&lt;br /&gt;
* board dimensions: 40 mm x 25 mm, 35 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v3.3m version has a MPU9250 on-board IMU and the v3.3i version has a ICM42605/ICM42688P/ICM42688V on-board IMU.}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|This board has no motor drivers; NT motor modules are thus mandatorily required.}}}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== STorM32-BGC v2.4 ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Storm32-bgc-nt-v24-picture.jpg|thumb|caption|STorM32-BGC board v2.4 specifically designed for NT]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers for yaw axis: TC4452&lt;br /&gt;
* voltage regulator: linear resistive&lt;br /&gt;
* on-board MPU9250 IMU&lt;br /&gt;
* Futaba S-Bus&lt;br /&gt;
* Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, one BUT port&lt;br /&gt;
* 2x NT ports and 1x NT-X port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 18 V or 2 - 4S&lt;br /&gt;
* motor current: max. 1 A per motor&lt;br /&gt;
* board dimensions: 40 mm x 25 mm, 35 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|This board has been deprecated.}}}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Micro STorM32-BGC v3.3i ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Storm32-micro-v33i-thumb.jpg|thumb|caption|Micro STorM32 board v3.3i]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: none&lt;br /&gt;
* voltage regulator: none&lt;br /&gt;
* on-board IMU ICM42605/ICM42688P/ICM42688V, connected to SPI&lt;br /&gt;
* 1x NT port and 1x NT-X port&lt;br /&gt;
* UART2/ESP port&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 5 V&lt;br /&gt;
* motor current: depends on used NT motor modules&lt;br /&gt;
* board dimensions: 26 mm x 26 mm, 20 mm bolt to bolt, holes Ø2 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|This board has no motor drivers; NT motor modules are thus mandatorily required.}}}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|Also the STorM32 Raspberry Pi Hat v3.3i exists, which is essentially the Micro board in different form factor with some additional peripherals useful for Raspberry Pi applications.}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== STorM32 Raspberry Pi Hat v3.3i ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Storm32-rpihat-v33i-thumb.jpg|thumb|caption|STorM32 RPi Hat]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: none&lt;br /&gt;
* voltage regulator: none&lt;br /&gt;
* on-board IMU ICM42605/ICM42688P/ICM42688V, connected to SPI&lt;br /&gt;
* 1x NT port and 1x NT-X port&lt;br /&gt;
* UART2/ESP port&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to three PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, BUT port&lt;br /&gt;
* Dual UART expander SC16IS762, connected to SPI&lt;br /&gt;
* RPi Uart and RPi I2C on 6-pin JST-GH connector, DroneCode compatible&lt;br /&gt;
* UART expander Uart on 6-pin JST-GH connector, DroneCode compatible&lt;br /&gt;
* LED, controllable by RPi&lt;br /&gt;
* extension board for dual 5.3V/3.5A power supply available&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 5 V&lt;br /&gt;
* motor current: depends on used NT motor modules&lt;br /&gt;
* board dimensions: RaspberryPi micro hat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|This board has no motor drivers; NT motor modules are thus mandatorily required.}}}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== STorM32-BGC v1.3 ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Joepaisley-storm32-bgc-v13-board-wiki.jpg|thumb|caption|STorM32-BGC board v1.3 with motor drivers in SOIC package]]&lt;br /&gt;
&amp;lt;!--[[File:Storm32 bgc v120 board dfn mpu-01-wp01.jpg|thumb|caption|STorM32-BGC board v1.2 with motor drivers in DFN package]]&lt;br /&gt;
[[File:Storm32-bgc-v110-board-top-01-wp01.jpg|thumb|caption|STorM32-BGC board v1.1 with motor drivers in SOIC package]]--&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: TC4452&lt;br /&gt;
* voltage regulator: linear resistive&lt;br /&gt;
* on-board Bluetooth (optional)&lt;br /&gt;
* on-board IMU (MPU6050)&lt;br /&gt;
* IR led&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to seven PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick ports for three axes&lt;br /&gt;
* additional I2C port (I2C#2)&lt;br /&gt;
* 3 auxiliary ports &lt;br /&gt;
* BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 18 V or 2 - 4S&lt;br /&gt;
* motor current: max. 1.5 A per motor&amp;lt;br/&amp;gt;&#039;&#039;&#039;&#039;&#039;Comment&#039;&#039;&#039;: This is not yet fully exploited and also depends on the package, with DFN packages motors with resistances of 12 Ohm or larger have been tested to be well handled at 4S, motors with 10 Ohm may be handled with care; for the latest summary see [http://www.rcgroups.com/forums/showpost.php?p=30564101&amp;amp;postcount=3166 here] (for details see also [//www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=2&amp;amp;pp=50#post27515444 here], [//www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=15&amp;amp;pp=50#post28578479 here]), [http://www.rcgroups.com/forums/showpost.php?p=28825482&amp;amp;postcount=947 here] and [http://www.rcgroups.com/forums/showpost.php?p=28852888&amp;amp;postcount=953 here])&#039;&#039;.&lt;br /&gt;
* board dimensions: 50 mm x 50 mm, 45 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|This board was designed in cooperation with Martinez.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=== STorM32-BGC v1.2 ===&lt;br /&gt;
----&lt;br /&gt;
Differences to the v1.3 board:&lt;br /&gt;
* voltage regulator: smaller SOT223 package&lt;br /&gt;
* only 2 auxiliary ports &lt;br /&gt;
&lt;br /&gt;
=== STorM32-BGC v1.1 ===&lt;br /&gt;
----&lt;br /&gt;
Differences to the v1.3 board:&lt;br /&gt;
* no Futaba S-bus support&lt;br /&gt;
* Spektrum satellite is supported, but no extra Spektrum connector on board&lt;br /&gt;
* no extra USB voltage protection diode&lt;br /&gt;
* voltage regulator: smaller SOT223 package&lt;br /&gt;
* only 2 auxiliary ports &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;{{WARNING|&#039;&#039;&#039;WARNING:&#039;&#039;&#039; The pins of connector I2C#2 are in reverse order to those of connector I2C, which implies also reversed voltage polarity. Pay attention to that before connecting a second IMU to the I2C#2 port.}}&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Descendants ==&lt;br /&gt;
&lt;br /&gt;
The STorM32 boards listed here are designs of third parties, which are based on or derived from the &amp;quot;original&amp;quot; board designs, but modified in some ways.&lt;br /&gt;
&lt;br /&gt;
=== Ensys STorM32 v3.3 ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Ensys storm32 33 persp.png|thumb|caption|Ensys STorM32 v3.3]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: none&lt;br /&gt;
* voltage regulator: 5.5 V, 1 A switching regulator&lt;br /&gt;
* on-board MPU9250, connected to SPI&lt;br /&gt;
* 2x NT ports and 1x NT-X port&lt;br /&gt;
* UART2/ESP port&lt;br /&gt;
* CAN bus port (obsolete as not supported anymore)&lt;br /&gt;
* on-board CH340, enables flashing per USB&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, one BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 17 V or 2 - 4S&lt;br /&gt;
* motor current: depends on used NT motor modules&lt;br /&gt;
* board dimensions: 40 mm x 25 mm, 35 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|This board has no motor drivers; NT motor modules are thus mandatorily required.}}}}&lt;br /&gt;
&lt;br /&gt;
=== GLB STorM32 v1.31 ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Sku 110143 1.jpg|thumb|caption|STorM32-BGC board v1.31 with DRV8313 motor drivers]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: DRV8313&lt;br /&gt;
* voltage regulator: switched step-down&lt;br /&gt;
* on-board Bluetooth (optional)&lt;br /&gt;
* on-board 6DOF IMU (MPU6050)&lt;br /&gt;
* IR led&lt;br /&gt;
* Futaba S-Bus&lt;br /&gt;
* Spektrum satellite&lt;br /&gt;
* up to seven PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick ports for all three axes&lt;br /&gt;
* additional I2C port (I2C#2)&lt;br /&gt;
* 3 auxiliary ports &lt;br /&gt;
* BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 9 - 25 V or 3 - 6S (according to the specs given by GLB, not yet confirmed in practice)&lt;br /&gt;
* motor current: 1.5 A&amp;lt;br/&amp;gt;&#039;&#039;&#039;&#039;&#039;Comment&#039;&#039;&#039;: The board uses the same motor drivers as the BaseCam SimpleBGC 32-bit board, and the same spec can hence be expected, but the real capability has not yet been tested in practice&#039;&#039;.&lt;br /&gt;
* board dimensions: 50 mm x 50 mm, 45 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|The 3.3V power on this board seems to be quite weak, and has caused repeatedly issues with powering NT modules. One single NT IMU seems to be ok, but not more. See also [[https://www.rcgroups.com/forums/showpost.php?p=36049535&amp;amp;postcount=9117]].}}}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|There had been cases with a problem with EMI noise on the 433/915 MHz band from this board, see [[https://www.rcgroups.com/forums/showpost.php?p=34132760&amp;amp;postcount=579]]. For solutions see [[https://www.rcgroups.com/forums/showpost.php?p=34139984&amp;amp;postcount=585]]. EMI noise seems not to be a problem in general, however, see [[https://github.com/ArduPilot/ardupilot_wiki/pull/885]].}}}}&lt;br /&gt;
&lt;br /&gt;
=== STorM32 v1.32 ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Storm32-BGC-32Bit-3-Axis-Brushless-Gimbal-Controller-V1-31-ESC-Alexmos32-RC-Gimbal-RC-Quadcopter.jpg|thumb|caption|STorM32-BGC board v1.32 with DRV8313 motor drivers]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: DRV8313&lt;br /&gt;
* voltage regulator: linear&lt;br /&gt;
* on-board Bluetooth (optional)&lt;br /&gt;
* on-board 6DOF IMU (MPU6050)&lt;br /&gt;
* IR led&lt;br /&gt;
* Futaba S-Bus&lt;br /&gt;
* Spektrum satellite&lt;br /&gt;
* up to seven PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick ports for all three axes&lt;br /&gt;
* additional I2C port (I2C#2)&lt;br /&gt;
* 3 auxiliary ports &lt;br /&gt;
* BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 9 - 18 V or 3 - 4S&lt;br /&gt;
* motor current: 1.5 A&amp;lt;br/&amp;gt;&#039;&#039;&#039;&#039;&#039;Comment&#039;&#039;&#039;: The board uses the same motor drivers as the BaseCam SimpleBGC 32-bit board, and the same spec can hence be expected, but the real capability has not yet been tested in practice&#039;&#039;.&lt;br /&gt;
* board dimensions: 50 mm x 50 mm, 45 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|For NT setups this board might be preferred over the v1.31 board, since it uses the same linear regulator as the v1.3 and not the weak switching regulator of the v1.31. For older I2C-based setups it&#039;s probably better to get a v1.31, which tends to be cheaper and especially offers a switching voltage regulator.}}&lt;br /&gt;
&lt;br /&gt;
=== Witespy STorM32-BGC v1.1 Mosfet Version ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Witespy-v11-mosfet.jpg|thumb|caption|Witespy STorM32-BGC v1.1 board with mosfet motor drivers]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: mosfet&lt;br /&gt;
* voltage regulator: linear&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: ? (no specs given by witespy)&lt;br /&gt;
* motor current: ? (no specs given by wiitespy)&lt;br /&gt;
* board dimensions: 50 mm x 50 mm, 45 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Third-Party Boards ==&lt;br /&gt;
&lt;br /&gt;
The terms of usage of the STorM32 project allows, and in fact encourages, making own hardware, for both DIY and commercial purposes, without restrictions. The STorM32 boards listed here are independent designs by third-parties.&lt;br /&gt;
&lt;br /&gt;
=== Micro STorM32 BGC ===&lt;br /&gt;
----&lt;br /&gt;
[[File:HTB1REO1IpXXXXXjXpXXq6xXFXXX3-kl.jpg|thumb|caption|Micro STorM32-BGC board]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: TC4452&lt;br /&gt;
* voltage regulator: linear (LG33)&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 7.4 - 16.8 V or 2 - 4S&lt;br /&gt;
* motor current: 1.5 A (according to the given specs, whatever this means)&lt;br /&gt;
* board dimensions: 40 mm x 22 mm, no mounting holes&lt;br /&gt;
* no BOOT0 and RESET buttons&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING| This board is suitable only for 2S (see [[http://www.rcgroups.com/forums/showpost.php?p=33480082&amp;amp;postcount=7004]]), with higher voltages it gets quite hot and may malfunction. Read also this: [[http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=144&amp;amp;pp=50#post33773254]]. The board can only be flashed with a ST-Link adapter via SWD, it cannot be flashed via the &amp;quot;usual&amp;quot; procedure. Many pins/ports are not available. Overall, this board cannot be recommended, except for special applications.}}}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GLB Mini STorM32 BGC ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Sku 113113 1.jpg|thumb|caption|GLB Mini STorM32-BGC board with L6230 motor drivers]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: L6230&lt;br /&gt;
* voltage regulator: switched step-down&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 7 - 25 V or 3 - 6S (according to the specs given by GLB, whatever this means)&lt;br /&gt;
* motor current: 1.5 A (according to the specs given by GLB, whatever this means)&lt;br /&gt;
* board dimensions: 42 mm x 30 mm, ? mm bolt to bolt, holes Ø? mm&lt;br /&gt;
|}&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== AliExpress Mini STorM32 BGC ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Aliexpress-min-storm32.jpg|thumb|caption|AliExpress Mini STorM32-BGC board]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: DRV8313&lt;br /&gt;
* voltage regulator: linear&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 7.4 - 16.8 V or 2 - 4S (according to the specs given by AE, whatever this means)&lt;br /&gt;
* motor current: 1.5 A&lt;br /&gt;
* board dimensions: 40 mm x 30 mm, 43 mm pitch ??, holes Ø2 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|The info given on some pages is definitely wrong in some aspects.}}}} &#039;&#039;What we know so far (see also [http://www.rcgroups.com/forums/showpost.php?p=32058700&amp;amp;postcount=5525 here] and followup posts):&#039;&#039;&lt;br /&gt;
* DRV8313 motor drivers do not allow 2S operation&lt;br /&gt;
* only the RC port is available&lt;br /&gt;
* SBus is not supported&lt;br /&gt;
* BT module cannot be installed on-board&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
	<entry>
		<id>http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Boards&amp;diff=11873</id>
		<title>STorM32 Boards</title>
		<link rel="alternate" type="text/html" href="http://www.olliw.eu/storm32bgc-v2-wiki/index.php?title=STorM32_Boards&amp;diff=11873"/>
		<updated>2025-11-17T14:19:27Z</updated>

		<summary type="html">&lt;p&gt;OlliW: /* STorM32-BGC v6.3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The technical specifications of various STorM32 boards are presented, as far as they are known. To find suppliers/vendors please go to [[Where to buy STorM32 boards]]. For a detailed description of the various connectors on the (original) boards see [[Pins and Connectors]].&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Original&amp;quot; STorM32 Boards ==&lt;br /&gt;
&lt;br /&gt;
At present, board versions v1.3, v3.3, v4.1, v6.2 and v6.3 are in use and supported (v0.17/v1.0, v1.1, v1.2 and v2.4 boards are deprecated).&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
* The characteristic of the v1.3 board is a linear voltage regulator and on-board TC4452 motor drivers. &lt;br /&gt;
* The v3.3 board is specifically designed for NT and especially T-STorM32, and is available in different form factors. It is distinguished by a low-noise 5 V switching voltage regulator and a 2nd UART2 port, but it has no motor drivers on board.&lt;br /&gt;
* The v4.1 board combines, so to say, the v1.3 and v3.3 boards; it is designed for NT and T-STorM32 but also provides DRV8839 motor drivers on board.&lt;br /&gt;
* The v6.2 board is similar to the v3.3 board, butsubstantially upgraded. It has STM32H7 processor and runs much faster, and also offers beefier voltage regulators. &lt;br /&gt;
* The v6.3 board is the v6.x version which also provides DRV8839 motor drivers on board.. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== STorM32-BGC v6.3 ===&lt;br /&gt;
----&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32H7A3RG at 280 MHz&lt;br /&gt;
* motor drivers: DRV8839&lt;br /&gt;
* voltage regulator: 5 V, 2 A (??) switching regulator&lt;br /&gt;
* on-board ICM42688P/ICM42688V connected to SPI&lt;br /&gt;
* 2x NT port and 1x NT-X port&lt;br /&gt;
* UART2/ESP port&lt;br /&gt;
* USB-C connector, permits flashing per USB&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 12 V or 2 - 3S (with motor drivers enabled) &amp;lt;br/&amp;gt;&#039;&#039;&#039;&#039;&#039;Comment&#039;&#039;&#039;: The motor drivers are enabled by closing the JP1 solder bridge on the bottom side of the board. When the solder bridge is open (motor drivers disabled), the board can be used with voltages up to 20 V or 4S.&#039;&#039;&lt;br /&gt;
* motor current: 1.0 A (??)&lt;br /&gt;
* board dimensions: 40 mm x 28 mm, 35 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|This board is design of [https://www.gohstanddesigns.com/ Gohstand Designs] and based on the v4.1 design of [https://www.krattworks.com/ KrattWorks].}}&lt;br /&gt;
&lt;br /&gt;
=== STorM32-BGC v6.2 ===&lt;br /&gt;
----&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32H7A3RG at 280 MHz&lt;br /&gt;
* motor drivers: none&lt;br /&gt;
* voltage regulator: 5 V, 2.0 A low-noise switching regulator&lt;br /&gt;
* on-board ICM42688P/ICM42688V connected to SPI&lt;br /&gt;
* 2x NT port and 1x NT-X port&lt;br /&gt;
* UART2/ESP port&lt;br /&gt;
* USB-C connector, permits flashing per USB&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 27 V or 2 - 6S&lt;br /&gt;
* motor current: depends on used NT motor modules&lt;br /&gt;
* board dimensions: 40 mm x 25 mm, 35 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== STorM32-BGC v4.1 ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Storm32-bgc-nt-v41-picture.jpg|thumb|caption|STorM32 board v4.1, for NT and T-STorM32, with on-board motor drivers and USB-C connector.]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: DRV8839&lt;br /&gt;
* voltage regulator: 5 V, 2 A (??) switching regulator&lt;br /&gt;
* on-board IMU ICM42688P/ICM42688V, connected to SPI&lt;br /&gt;
* 2x NT port and 1x NT-X port&lt;br /&gt;
* UART2 port&lt;br /&gt;
* on-board USB-TTL adapter CP2102, permits flashing per USB&lt;br /&gt;
* USB-C connector&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 12 V or 2 - 3S (with motor drivers enabled) &amp;lt;br/&amp;gt;&#039;&#039;&#039;&#039;&#039;Comment&#039;&#039;&#039;: The motor drivers are enabled by closing the JP1 solder bridge (on the bottom side of the board). When the solder bridge is open, the board can be used with voltages up to 20 V or 4S (??).&#039;&#039;&lt;br /&gt;
* motor current: 1.0 A (??)&lt;br /&gt;
* board dimensions: 40 mm x 28 mm, 35 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|This board is design of [https://www.krattworks.com/ KrattWorks], [https://bitbucket.org/teamkrattworks/hw_storm32_v4/src/master/release/storm32-nt-v4_1/].}}&lt;br /&gt;
&lt;br /&gt;
=== STorM32-BGC v3.3m, v3.3i ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Storm32-v33m-thumb.jpg|thumb|caption|STorM32 board v3.3 specifically designed for NT and T-STorM32]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: none&lt;br /&gt;
* voltage regulator: 5 V, 0.6 A low-noise switching regulator&lt;br /&gt;
* on-board IMU MPU9250 (v3.3m) or ICM42605/ICM42688P/ICM42688V (v3.3i), connected to SPI&lt;br /&gt;
* 2x NT port and 1x NT-X port&lt;br /&gt;
* UART2/ESP port&lt;br /&gt;
* CAN bus port (obsolete as not supported anymore)&lt;br /&gt;
* on-board USB-TTL adapter CP2102, permits flashing per USB&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 27 V or 2 - 6S&lt;br /&gt;
* motor current: depends on used NT motor modules&lt;br /&gt;
* board dimensions: 40 mm x 25 mm, 35 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|The v3.3m version has a MPU9250 on-board IMU and the v3.3i version has a ICM42605/ICM42688P/ICM42688V on-board IMU.}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|This board has no motor drivers; NT motor modules are thus mandatorily required.}}}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== STorM32-BGC v2.4 ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Storm32-bgc-nt-v24-picture.jpg|thumb|caption|STorM32-BGC board v2.4 specifically designed for NT]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers for yaw axis: TC4452&lt;br /&gt;
* voltage regulator: linear resistive&lt;br /&gt;
* on-board MPU9250 IMU&lt;br /&gt;
* Futaba S-Bus&lt;br /&gt;
* Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, one BUT port&lt;br /&gt;
* 2x NT ports and 1x NT-X port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 18 V or 2 - 4S&lt;br /&gt;
* motor current: max. 1 A per motor&lt;br /&gt;
* board dimensions: 40 mm x 25 mm, 35 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|This board has been deprecated.}}}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Micro STorM32-BGC v3.3i ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Storm32-micro-v33i-thumb.jpg|thumb|caption|Micro STorM32 board v3.3i]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: none&lt;br /&gt;
* voltage regulator: none&lt;br /&gt;
* on-board IMU ICM42605/ICM42688P/ICM42688V, connected to SPI&lt;br /&gt;
* 1x NT port and 1x NT-X port&lt;br /&gt;
* UART2/ESP port&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 5 V&lt;br /&gt;
* motor current: depends on used NT motor modules&lt;br /&gt;
* board dimensions: 26 mm x 26 mm, 20 mm bolt to bolt, holes Ø2 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|This board has no motor drivers; NT motor modules are thus mandatorily required.}}}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|Also the STorM32 Raspberry Pi Hat v3.3i exists, which is essentially the Micro board in different form factor with some additional peripherals useful for Raspberry Pi applications.}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== STorM32 Raspberry Pi Hat v3.3i ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Storm32-rpihat-v33i-thumb.jpg|thumb|caption|STorM32 RPi Hat]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: none&lt;br /&gt;
* voltage regulator: none&lt;br /&gt;
* on-board IMU ICM42605/ICM42688P/ICM42688V, connected to SPI&lt;br /&gt;
* 1x NT port and 1x NT-X port&lt;br /&gt;
* UART2/ESP port&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to three PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, BUT port&lt;br /&gt;
* Dual UART expander SC16IS762, connected to SPI&lt;br /&gt;
* RPi Uart and RPi I2C on 6-pin JST-GH connector, DroneCode compatible&lt;br /&gt;
* UART expander Uart on 6-pin JST-GH connector, DroneCode compatible&lt;br /&gt;
* LED, controllable by RPi&lt;br /&gt;
* extension board for dual 5.3V/3.5A power supply available&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 5 V&lt;br /&gt;
* motor current: depends on used NT motor modules&lt;br /&gt;
* board dimensions: RaspberryPi micro hat&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|This board has no motor drivers; NT motor modules are thus mandatorily required.}}}}&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== STorM32-BGC v1.3 ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Joepaisley-storm32-bgc-v13-board-wiki.jpg|thumb|caption|STorM32-BGC board v1.3 with motor drivers in SOIC package]]&lt;br /&gt;
&amp;lt;!--[[File:Storm32 bgc v120 board dfn mpu-01-wp01.jpg|thumb|caption|STorM32-BGC board v1.2 with motor drivers in DFN package]]&lt;br /&gt;
[[File:Storm32-bgc-v110-board-top-01-wp01.jpg|thumb|caption|STorM32-BGC board v1.1 with motor drivers in SOIC package]]--&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: TC4452&lt;br /&gt;
* voltage regulator: linear resistive&lt;br /&gt;
* on-board Bluetooth (optional)&lt;br /&gt;
* on-board IMU (MPU6050)&lt;br /&gt;
* IR led&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to seven PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick ports for three axes&lt;br /&gt;
* additional I2C port (I2C#2)&lt;br /&gt;
* 3 auxiliary ports &lt;br /&gt;
* BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 18 V or 2 - 4S&lt;br /&gt;
* motor current: max. 1.5 A per motor&amp;lt;br/&amp;gt;&#039;&#039;&#039;&#039;&#039;Comment&#039;&#039;&#039;: This is not yet fully exploited and also depends on the package, with DFN packages motors with resistances of 12 Ohm or larger have been tested to be well handled at 4S, motors with 10 Ohm may be handled with care; for the latest summary see [http://www.rcgroups.com/forums/showpost.php?p=30564101&amp;amp;postcount=3166 here] (for details see also [//www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=2&amp;amp;pp=50#post27515444 here], [//www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=15&amp;amp;pp=50#post28578479 here]), [http://www.rcgroups.com/forums/showpost.php?p=28825482&amp;amp;postcount=947 here] and [http://www.rcgroups.com/forums/showpost.php?p=28852888&amp;amp;postcount=953 here])&#039;&#039;.&lt;br /&gt;
* board dimensions: 50 mm x 50 mm, 45 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|This board was designed in cooperation with Martinez.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=== STorM32-BGC v1.2 ===&lt;br /&gt;
----&lt;br /&gt;
Differences to the v1.3 board:&lt;br /&gt;
* voltage regulator: smaller SOT223 package&lt;br /&gt;
* only 2 auxiliary ports &lt;br /&gt;
&lt;br /&gt;
=== STorM32-BGC v1.1 ===&lt;br /&gt;
----&lt;br /&gt;
Differences to the v1.3 board:&lt;br /&gt;
* no Futaba S-bus support&lt;br /&gt;
* Spektrum satellite is supported, but no extra Spektrum connector on board&lt;br /&gt;
* no extra USB voltage protection diode&lt;br /&gt;
* voltage regulator: smaller SOT223 package&lt;br /&gt;
* only 2 auxiliary ports &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;{{WARNING|&#039;&#039;&#039;WARNING:&#039;&#039;&#039; The pins of connector I2C#2 are in reverse order to those of connector I2C, which implies also reversed voltage polarity. Pay attention to that before connecting a second IMU to the I2C#2 port.}}&#039;&#039; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Descendants ==&lt;br /&gt;
&lt;br /&gt;
The STorM32 boards listed here are designs of third parties, which are based on or derived from the &amp;quot;original&amp;quot; board designs, but modified in some ways.&lt;br /&gt;
&lt;br /&gt;
=== Ensys STorM32 v3.3 ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Ensys storm32 33 persp.png|thumb|caption|Ensys STorM32 v3.3]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: none&lt;br /&gt;
* voltage regulator: 5.5 V, 1 A switching regulator&lt;br /&gt;
* on-board MPU9250, connected to SPI&lt;br /&gt;
* 2x NT ports and 1x NT-X port&lt;br /&gt;
* UART2/ESP port&lt;br /&gt;
* CAN bus port (obsolete as not supported anymore)&lt;br /&gt;
* on-board CH340, enables flashing per USB&lt;br /&gt;
* Futaba S-Bus, CRSF, Spektrum satellite&lt;br /&gt;
* up to four PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick port for two axes&lt;br /&gt;
* 2 auxiliary ports, one BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 6 - 17 V or 2 - 4S&lt;br /&gt;
* motor current: depends on used NT motor modules&lt;br /&gt;
* board dimensions: 40 mm x 25 mm, 35 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|This board has no motor drivers; NT motor modules are thus mandatorily required.}}}}&lt;br /&gt;
&lt;br /&gt;
=== GLB STorM32 v1.31 ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Sku 110143 1.jpg|thumb|caption|STorM32-BGC board v1.31 with DRV8313 motor drivers]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: DRV8313&lt;br /&gt;
* voltage regulator: switched step-down&lt;br /&gt;
* on-board Bluetooth (optional)&lt;br /&gt;
* on-board 6DOF IMU (MPU6050)&lt;br /&gt;
* IR led&lt;br /&gt;
* Futaba S-Bus&lt;br /&gt;
* Spektrum satellite&lt;br /&gt;
* up to seven PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick ports for all three axes&lt;br /&gt;
* additional I2C port (I2C#2)&lt;br /&gt;
* 3 auxiliary ports &lt;br /&gt;
* BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 9 - 25 V or 3 - 6S (according to the specs given by GLB, not yet confirmed in practice)&lt;br /&gt;
* motor current: 1.5 A&amp;lt;br/&amp;gt;&#039;&#039;&#039;&#039;&#039;Comment&#039;&#039;&#039;: The board uses the same motor drivers as the BaseCam SimpleBGC 32-bit board, and the same spec can hence be expected, but the real capability has not yet been tested in practice&#039;&#039;.&lt;br /&gt;
* board dimensions: 50 mm x 50 mm, 45 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|The 3.3V power on this board seems to be quite weak, and has caused repeatedly issues with powering NT modules. One single NT IMU seems to be ok, but not more. See also [[https://www.rcgroups.com/forums/showpost.php?p=36049535&amp;amp;postcount=9117]].}}}}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|There had been cases with a problem with EMI noise on the 433/915 MHz band from this board, see [[https://www.rcgroups.com/forums/showpost.php?p=34132760&amp;amp;postcount=579]]. For solutions see [[https://www.rcgroups.com/forums/showpost.php?p=34139984&amp;amp;postcount=585]]. EMI noise seems not to be a problem in general, however, see [[https://github.com/ArduPilot/ardupilot_wiki/pull/885]].}}}}&lt;br /&gt;
&lt;br /&gt;
=== STorM32 v1.32 ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Storm32-BGC-32Bit-3-Axis-Brushless-Gimbal-Controller-V1-31-ESC-Alexmos32-RC-Gimbal-RC-Quadcopter.jpg|thumb|caption|STorM32-BGC board v1.32 with DRV8313 motor drivers]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: DRV8313&lt;br /&gt;
* voltage regulator: linear&lt;br /&gt;
* on-board Bluetooth (optional)&lt;br /&gt;
* on-board 6DOF IMU (MPU6050)&lt;br /&gt;
* IR led&lt;br /&gt;
* Futaba S-Bus&lt;br /&gt;
* Spektrum satellite&lt;br /&gt;
* up to seven PWM/Sum-PPM inputs/outputs&lt;br /&gt;
* joystick ports for all three axes&lt;br /&gt;
* additional I2C port (I2C#2)&lt;br /&gt;
* 3 auxiliary ports &lt;br /&gt;
* BUT port&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 9 - 18 V or 3 - 4S&lt;br /&gt;
* motor current: 1.5 A&amp;lt;br/&amp;gt;&#039;&#039;&#039;&#039;&#039;Comment&#039;&#039;&#039;: The board uses the same motor drivers as the BaseCam SimpleBGC 32-bit board, and the same spec can hence be expected, but the real capability has not yet been tested in practice&#039;&#039;.&lt;br /&gt;
* board dimensions: 50 mm x 50 mm, 45 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|For NT setups this board might be preferred over the v1.31 board, since it uses the same linear regulator as the v1.3 and not the weak switching regulator of the v1.31. For older I2C-based setups it&#039;s probably better to get a v1.31, which tends to be cheaper and especially offers a switching voltage regulator.}}&lt;br /&gt;
&lt;br /&gt;
=== Witespy STorM32-BGC v1.1 Mosfet Version ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Witespy-v11-mosfet.jpg|thumb|caption|Witespy STorM32-BGC v1.1 board with mosfet motor drivers]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: mosfet&lt;br /&gt;
* voltage regulator: linear&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: ? (no specs given by witespy)&lt;br /&gt;
* motor current: ? (no specs given by wiitespy)&lt;br /&gt;
* board dimensions: 50 mm x 50 mm, 45 mm bolt to bolt, holes Ø3 mm&lt;br /&gt;
|}&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Third-Party Boards ==&lt;br /&gt;
&lt;br /&gt;
The terms of usage of the STorM32 project allows, and in fact encourages, making own hardware, for both DIY and commercial purposes, without restrictions. The STorM32 boards listed here are independent designs by third-parties.&lt;br /&gt;
&lt;br /&gt;
=== Micro STorM32 BGC ===&lt;br /&gt;
----&lt;br /&gt;
[[File:HTB1REO1IpXXXXXjXpXXq6xXFXXX3-kl.jpg|thumb|caption|Micro STorM32-BGC board]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: TC4452&lt;br /&gt;
* voltage regulator: linear (LG33)&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 7.4 - 16.8 V or 2 - 4S&lt;br /&gt;
* motor current: 1.5 A (according to the given specs, whatever this means)&lt;br /&gt;
* board dimensions: 40 mm x 22 mm, no mounting holes&lt;br /&gt;
* no BOOT0 and RESET buttons&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING| This board is suitable only for 2S (see [[http://www.rcgroups.com/forums/showpost.php?p=33480082&amp;amp;postcount=7004]]), with higher voltages it gets quite hot and may malfunction. Read also this: [[http://www.rcgroups.com/forums/showthread.php?t=2055844&amp;amp;page=144&amp;amp;pp=50#post33773254]]. The board can only be flashed with a ST-Link adapter via SWD, it cannot be flashed via the &amp;quot;usual&amp;quot; procedure. Many pins/ports are not available. Overall, this board cannot be recommended, except for special applications.}}}} &lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GLB Mini STorM32 BGC ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Sku 113113 1.jpg|thumb|caption|GLB Mini STorM32-BGC board with L6230 motor drivers]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: L6230&lt;br /&gt;
* voltage regulator: switched step-down&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 7 - 25 V or 3 - 6S (according to the specs given by GLB, whatever this means)&lt;br /&gt;
* motor current: 1.5 A (according to the specs given by GLB, whatever this means)&lt;br /&gt;
* board dimensions: 42 mm x 30 mm, ? mm bolt to bolt, holes Ø? mm&lt;br /&gt;
|}&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== AliExpress Mini STorM32 BGC ===&lt;br /&gt;
----&lt;br /&gt;
[[File:Aliexpress-min-storm32.jpg|thumb|caption|AliExpress Mini STorM32-BGC board]]&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=300px|&lt;br /&gt;
* MCU: STM32F103RC at 72 MHz&lt;br /&gt;
* motor drivers: DRV8313&lt;br /&gt;
* voltage regulator: linear&lt;br /&gt;
|&lt;br /&gt;
* supply voltage: 7.4 - 16.8 V or 2 - 4S (according to the specs given by AE, whatever this means)&lt;br /&gt;
* motor current: 1.5 A&lt;br /&gt;
* board dimensions: 40 mm x 30 mm, 43 mm pitch ??, holes Ø2 mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{COMMENT|{{WARNING|The info given on some pages is definitely wrong in some aspects.}}}} &#039;&#039;What we know so far (see also [http://www.rcgroups.com/forums/showpost.php?p=32058700&amp;amp;postcount=5525 here] and followup posts):&#039;&#039;&lt;br /&gt;
* DRV8313 motor drivers do not allow 2S operation&lt;br /&gt;
* only the RC port is available&lt;br /&gt;
* SBus is not supported&lt;br /&gt;
* BT module cannot be installed on-board&lt;/div&gt;</summary>
		<author><name>OlliW</name></author>
	</entry>
</feed>