STorM32 FAQ: Difference between revisions
No edit summary |
No edit summary |
||
(32 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Electronics == | == Electronics == | ||
==== What are the differences between the boards? ==== | ==== What are the differences between the STorM32 boards? ==== | ||
For a comparison of v1.3 and v1.31 boards see this post on rcgroups: [ | For a comparison of v1.3 and v1.31 boards see this post on rcgroups: [//www.rcgroups.com/forums/showpost.php?p=30438164&postcount=2949 #2949]. The v1.1 is essentially identical to the v1.3 board, except of some minor details. The v3.3 board is the next generation StorM32 board and is dedicated to full NT and to T-STorM32 setups. It is small, has a voltage regulator on board, but has no motor drivers. | ||
For more info on the technical details of the boards see [[Boards]]. | |||
==== Which IMU modules work with the STorM32 board? ==== | |||
The camera IMU must be a NT IMU module, with its ID solder bridge open. The 2nd IMU can be the on-board IMU if the board has one, a further NT IMU module configured as IMU2. | |||
When using a v1.3x STorM32 board, these comments on the supply voltage are important: | |||
* The v1.3x STorM32 boards only provide 3.3 V, e.g., at their I2C (= NT bus) port. The NT modules have however a 3.3 V voltage regulator on board, which means that they should be supplied with voltages larger than 3.3 V. Powering the NT modules with 3.3 V is thus not ideal. However, so far no issues have been reported with doing so. | |||
* A more serious concern is the current draw. The v1.3x STorM32 board's 3.3 V voltage cannot provide much current, which can especially be an issue when several NT modules need to be powered. In that case it is best to use an extra 5 V BEC for powering e.g. all NT modules. This issue is most prevalent for v1.31 boards (see [[Boards#GLB_STorM32_v1.31|Boards:GLB STorM32 v1.31]]). | |||
==== What connectors are used for connecting | ==== What connectors are used for connecting NT or MPU modules to the board? ==== | ||
On the v1.3x STorM32 boards, the connectors for the NT bus, or an I2C-based 2nd MPU module, are [//www.molex.com/molex/products/family?key=picoblade&channel=products&chanName=family&pageTitle=Introduction Molex Picoblade] types with 1.25 mm pitch (they are also commonly referred to as micro JST 1.25 mm). The connectors on the v3.3 STorM32 board are [//www.jst-mfg.com/product/detail_e.php?series=231 JST SH] connectors with 1.0 mm pitch, often called JST 1.0. | |||
The plugs on the NT modules depend on the manufacturer. The NT "standard" uses [//www.jst-mfg.com/product/detail_e.php?series=231 JST SH] connectors with 1.0 mm pitch (JST 1.0). | |||
For a comparison of various connectors see [//www.rcgroups.com/forums/showthread.php?t=1493712 here]. | |||
==== Will my motors work with my STorM32 board? ==== | ==== Will my motors work with my STorM32 board? ==== | ||
Line 21: | Line 27: | ||
Even after more of a year that this project is running, the question which motors will work with which boards is still not fully clear. Especially for larger motors essentially no reports or tests exist. The v1.1/v1.2/v1.3 type of boards, which use TC4452 motor drivers, need to be distinguished from the v1.31 board, which uses DRV8313 drivers: | Even after more of a year that this project is running, the question which motors will work with which boards is still not fully clear. Especially for larger motors essentially no reports or tests exist. The v1.1/v1.2/v1.3 type of boards, which use TC4452 motor drivers, need to be distinguished from the v1.31 board, which uses DRV8313 drivers: | ||
'''''v1.1/v1.2/v1.3 boards:''''' 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 [ | '''''v1.1/v1.2/v1.3 boards:''''' 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 [//www.rcgroups.com/forums/showpost.php?p=30564101&postcount=3166 here] (for details see also [//www.rcgroups.com/forums/showthread.php?t=2055844&page=2&pp=50#post27515444 here], [//www.rcgroups.com/forums/showthread.php?t=2055844&page=15&pp=50#post28578479 here], [//www.rcgroups.com/forums/showpost.php?p=28825482&postcount=947 here] and [//www.rcgroups.com/forums/showpost.php?p=28852888&postcount=953 here])''. | ||
'''''v1.31/v1.32 board:''''' As it uses the same motor driver as the "original" 32-bit AlexMos/BaseCam gimbal controller board, it can be assumed that it works also for all motors/setups for which the BaseCam board works. | |||
'''''v3.3 board:''''' This board has no motor drivers on-board. It thus requires three additional NT motor modules for operation. | |||
==== Which USB-TTL adapter should I use? ==== | |||
The v3.3 board has a CP2012n US-TTL adapter on board. So, the following is mostly relevant to v1.3x boards. | |||
The situation with the USB-TTL adapters is a bit delicate, because of the number of types around, and because improper wording has become customary. For instance, "FTDI adapter", "serial adapter", "TTL adapter", "RS232 adapter", and so on, may or may not mean one and the same thing. So, first some explanations (or skip to the end for the conclusions). Two points need to be realized: | |||
The | * Logical levels: Three types are around, namely RS232, RS232 at 5 V level, and UART. The original RS232, as it was used by the "historical" serial bus on PCs, works with +-15 V levels, with -15 V representing logical 0. For many cases it was more convenient to narrow the voltage range to 0 .. 5 V, so that 0 V or LOW represents logic 0. UART is the serial unit found in microcontrollers, and it works with voltages of 0 ... 3.3/5 V, but - importantly - logic 0 is represented by 3.3/5 V or HIGH. That is, the logic is inverted with respect to RS232, and obviously both are incompatible. This gives rise to many confusions. E.g., since both 5 V-RS232 and UART formally work with TTL levels (or something similar to it), both were and are called "TTL adapters". Also, since all three are serial protocols all three were and are called "serial adapters". Nowadays it seems that a kind of consensus has been reached in as much as that "TTL" in most cases means UART logical levels (but you get the sense, you cannot count on that). In this wiki we will use "USB-TTL adapter" to denote a UART compatible adapter. | ||
* | * Chip set: Different chip sets by different companies are around to accomplish essentially the same task. For instance, FTDI is such a company, which produces e.g. the FT232RL chip set which uses UART logical levels. Unfortunately, it has become custom to just call any USB serial adapter a FTDI adapter, even if it uses a chip set from a different company, e.g. SILABS, and sometimes even if it doesn't use TTL levels but RS232-type levels. | ||
After that introduction, the real beef: Currently, four chip sets are around: FT232RL or similar by FTDI, CP2102 by SILABS, CH340 by WCH, and PL2303HX by PROLIFIC (more may exist). My '''''personal''''' (!) account of them is as follows: | |||
* '''''FT232RL - FTDI''''': Used to be my favorite. According to web reports there is a slight chance to get a fake, but the real chip just works flawlessly without any issues, and fakes can be avoided by buying from trusted sources. In addition, this chip set allows to use baudrates of 2000000 bps, as needed for using the [[NT_Data_Logging#Live_Recording|NT Data Logging: Live Recording]] feature, out of the box without any further configuration. | |||
''''' | * '''''CP2102 - SILABS''''': An excellent choice. There used to be issues with drivers, but these seem to have been overcome for quite a while, which makes this chip set a reliable and solid choice. However, it doesn't support a baudrate of 2000000 bps out of the box, as needed for [[NT_Data_Logging#Live_Recording|NT Data Logging: Live Recording]]; it can though be configured easily to do so via freely available configuration software. | ||
''''' | * '''''CH340 - WCH''''': The driver is not auto-installed by Win. I myself stopped here, but once the correct driver is installed it is reported to be a viable choice. It is also reported to work with 2000000 bps out of the box, as needed for the [[NT_Data_Logging#Live_Recording|NT Data Logging: Live Recording]] feature. | ||
''''' | * '''''PL2303HX - PROLIFIC''''': I had one PLxxxx adapter, and it didn't provide TTL but RS232-type signals. However, some web sources report using PLxxxx for microcontroller applications. The data sheet for these chips, including the PL2303HX, I find unclear in this point. So, the bottom line, I find the situation for these chips quite confusing, and thus simply stay away from them, as there are alternatives. | ||
''''' | '''''Conclusion:''' For flashing the main STorM32 controller board, USB adapters with either FTDI, CH340, or CP2102 chip sets can be used without issues. CP2102 adapters need some configuration to handle the high baudrate of the NT bus when the [[NT_Data_Logging#Live_Recording|NT Data Logging: Live Recording]] feature shall be used, see [[How to configure CP2102 USB adapters for high baud rates]]. USB adapters with PL2303 chips NEVER work since they don't provide TTL levels.'' | ||
==== What about the magnetometer support? ==== | ==== What about the magnetometer support? ==== | ||
A magnetometer is not | A magnetometer is not supported. | ||
== Software and GUI == | == Software and GUI == | ||
Line 58: | Line 63: | ||
==== How does Read, Write, and Store work? ==== | ==== How does Read, Write, and Store work? ==== | ||
{{ | {{GUIFIELD|Read}} reads the currently active settings from the board to the GUI. | ||
{{ | {{GUIFIELD|Write}} writes the values of the GUI to the board and makes them effective immediately. The changes last until the board is reset or powered down. | ||
{{ | {{GUIFIELD|Store}} makes that the board stores its current values into the EEPROM so that they become permanent. The settings stored in the EEPROM will be used at power up. | ||
{{ | {{GUIFIELD|Write+Store}} does first a Write and then a Store. | ||
Thus: With the {{ | Thus: With the {{GUIFIELD|Write}} button, all parameter values are copied to the board, and become effective immediately. They are however not stored permanently in the EEPROM, i.e., changes will be lost after a power down. To store changes permanently do a {{GUIFIELD|Write+Store}}, e.g., by clicking the check box next to the {{GUIFIELD|Write}} button which turns it into a {{GUIFIELD|Write+Store}} button. | ||
==== How to enter precise parameter values? ==== | ==== How to enter precise parameter values? ==== | ||
The o323BGCTool GUI doesn't allow to enter values in the text fields directly. | The o323BGCTool GUI doesn't allow to enter values in the text fields directly. However, the sliders can be moved using the mouse, or via the up/down keys when selected. The later allows precise adjustment of the values. | ||
==== Which drivers are needed for the USB? ==== | ==== Which drivers are needed for the USB? ==== | ||
On Win7 the driver is usually installed automatically. This may take some minutes, be patient! It is important to wait until Win7 has finished the install before doing anything else. The correct Virtual Com Port (VCP) driver, usable also for WinXP and Win8/8.1, can be obtained from the [ | On Win7 the driver is usually installed automatically. This may take some minutes, be patient! It is important to wait until Win7 has finished the install before doing anything else. The correct Virtual Com Port (VCP) driver, usable also for WinXP and Win8/8.1, can be obtained from the [//www.st.com/web/en/catalog/tools/PF257938 STM download page]. {{COMMENT| It is crucial to follow the instructions in the readme.txt file, otherwise it won't work!}}. | ||
==== Storing the parameter values to the EEPROM doesn't seem to work ==== | ==== Storing the parameter values to the EEPROM doesn't seem to work ==== | ||
Line 80: | Line 85: | ||
Please double-check that the correct firmware for your board has been flashed. The problem typically happens then e.g. the firmware for a F103RB is flashed onto a board with a F103RC. | Please double-check that the correct firmware for your board has been flashed. The problem typically happens then e.g. the firmware for a F103RB is flashed onto a board with a F103RC. | ||
==== Flashing with the | ==== Flashing with the USB-TTL adapter produces Windows error messages ==== | ||
If upon flashing you get Windows errors such as mfc110.dll is missing, msvcr110.dll is missing, or application was unable to start correctly (0xc000007b), then first check that you're not using an outdated GUI version. Otherwise, you need to install the VC++ runtime libraries. Download vcredist_x64.exe or vcredist_x86.exe depending on your Win system from [//www.microsoft.com/en-us/download/details.aspx?id=30679 here], and run the exe file. | If upon flashing you get Windows errors such as mfc110.dll is missing, msvcr110.dll is missing, or application was unable to start correctly (0xc000007b), then first check that you're not using an outdated GUI version. Otherwise, you need to install the VC++ runtime libraries. Download vcredist_x64.exe or vcredist_x86.exe depending on your Win system from [//www.microsoft.com/en-us/download/details.aspx?id=30679 here], and run the exe file. | ||
Line 92: | Line 97: | ||
==== In which orientation should the IMU(s) be mounted? ==== | ==== In which orientation should the IMU(s) be mounted? ==== | ||
The IMU can be placed in any position provided it is parallel with the vertical and horizontal axis of the camera. In the GUI, under {{GUI|Gimbal Configuration Tab}}, click on the {{ | The IMU can be placed in any position provided it is parallel with the vertical and horizontal axis of the camera. In the GUI, under {{GUI|Gimbal Configuration Tab}}, click on the {{GUIFIELD|Configure Gimbal Tool}} button. This will produce a pop up window with instructions to follow for the controller to automatically determine the IMU orientations. When it says to tilt 45 degrees, tilt the entire gimbal, including the camera; don't rotate the pitch mechanism to 45 degrees. If you are doing it wrong, the procedure will time out. Once an attitude of about 45 degrees is met, the software will recognize the position, then you can continue. | ||
==== Where should the main board be mounted for correct use of the second IMU? ==== | ==== Where should the main board be mounted for correct use of the second IMU? ==== | ||
See [[Using a 2nd IMU]]. | See [[Using a 2nd IMU]]. |
Latest revision as of 06:52, 5 January 2024
Electronics
What are the differences between the STorM32 boards?
For a comparison of v1.3 and v1.31 boards see this post on rcgroups: #2949. The v1.1 is essentially identical to the v1.3 board, except of some minor details. The v3.3 board is the next generation StorM32 board and is dedicated to full NT and to T-STorM32 setups. It is small, has a voltage regulator on board, but has no motor drivers.
For more info on the technical details of the boards see Boards.
Which IMU modules work with the STorM32 board?
The camera IMU must be a NT IMU module, with its ID solder bridge open. The 2nd IMU can be the on-board IMU if the board has one, a further NT IMU module configured as IMU2.
When using a v1.3x STorM32 board, these comments on the supply voltage are important:
- The v1.3x STorM32 boards only provide 3.3 V, e.g., at their I2C (= NT bus) port. The NT modules have however a 3.3 V voltage regulator on board, which means that they should be supplied with voltages larger than 3.3 V. Powering the NT modules with 3.3 V is thus not ideal. However, so far no issues have been reported with doing so.
- A more serious concern is the current draw. The v1.3x STorM32 board's 3.3 V voltage cannot provide much current, which can especially be an issue when several NT modules need to be powered. In that case it is best to use an extra 5 V BEC for powering e.g. all NT modules. This issue is most prevalent for v1.31 boards (see Boards:GLB STorM32 v1.31).
What connectors are used for connecting NT or MPU modules to the board?
On the v1.3x STorM32 boards, the connectors for the NT bus, or an I2C-based 2nd MPU module, are Molex Picoblade types with 1.25 mm pitch (they are also commonly referred to as micro JST 1.25 mm). The connectors on the v3.3 STorM32 board are JST SH connectors with 1.0 mm pitch, often called JST 1.0.
The plugs on the NT modules depend on the manufacturer. The NT "standard" uses JST SH connectors with 1.0 mm pitch (JST 1.0).
For a comparison of various connectors see here.
Will my motors work with my STorM32 board?
Even after more of a year that this project is running, the question which motors will work with which boards is still not fully clear. Especially for larger motors essentially no reports or tests exist. The v1.1/v1.2/v1.3 type of boards, which use TC4452 motor drivers, need to be distinguished from the v1.31 board, which uses DRV8313 drivers:
v1.1/v1.2/v1.3 boards: 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 here (for details see also here, here, here and here).
v1.31/v1.32 board: As it uses the same motor driver as the "original" 32-bit AlexMos/BaseCam gimbal controller board, it can be assumed that it works also for all motors/setups for which the BaseCam board works.
v3.3 board: This board has no motor drivers on-board. It thus requires three additional NT motor modules for operation.
Which USB-TTL adapter should I use?
The v3.3 board has a CP2012n US-TTL adapter on board. So, the following is mostly relevant to v1.3x boards.
The situation with the USB-TTL adapters is a bit delicate, because of the number of types around, and because improper wording has become customary. For instance, "FTDI adapter", "serial adapter", "TTL adapter", "RS232 adapter", and so on, may or may not mean one and the same thing. So, first some explanations (or skip to the end for the conclusions). Two points need to be realized:
- Logical levels: Three types are around, namely RS232, RS232 at 5 V level, and UART. The original RS232, as it was used by the "historical" serial bus on PCs, works with +-15 V levels, with -15 V representing logical 0. For many cases it was more convenient to narrow the voltage range to 0 .. 5 V, so that 0 V or LOW represents logic 0. UART is the serial unit found in microcontrollers, and it works with voltages of 0 ... 3.3/5 V, but - importantly - logic 0 is represented by 3.3/5 V or HIGH. That is, the logic is inverted with respect to RS232, and obviously both are incompatible. This gives rise to many confusions. E.g., since both 5 V-RS232 and UART formally work with TTL levels (or something similar to it), both were and are called "TTL adapters". Also, since all three are serial protocols all three were and are called "serial adapters". Nowadays it seems that a kind of consensus has been reached in as much as that "TTL" in most cases means UART logical levels (but you get the sense, you cannot count on that). In this wiki we will use "USB-TTL adapter" to denote a UART compatible adapter.
- Chip set: Different chip sets by different companies are around to accomplish essentially the same task. For instance, FTDI is such a company, which produces e.g. the FT232RL chip set which uses UART logical levels. Unfortunately, it has become custom to just call any USB serial adapter a FTDI adapter, even if it uses a chip set from a different company, e.g. SILABS, and sometimes even if it doesn't use TTL levels but RS232-type levels.
After that introduction, the real beef: Currently, four chip sets are around: FT232RL or similar by FTDI, CP2102 by SILABS, CH340 by WCH, and PL2303HX by PROLIFIC (more may exist). My personal (!) account of them is as follows:
- FT232RL - FTDI: Used to be my favorite. According to web reports there is a slight chance to get a fake, but the real chip just works flawlessly without any issues, and fakes can be avoided by buying from trusted sources. In addition, this chip set allows to use baudrates of 2000000 bps, as needed for using the NT Data Logging: Live Recording feature, out of the box without any further configuration.
- CP2102 - SILABS: An excellent choice. There used to be issues with drivers, but these seem to have been overcome for quite a while, which makes this chip set a reliable and solid choice. However, it doesn't support a baudrate of 2000000 bps out of the box, as needed for NT Data Logging: Live Recording; it can though be configured easily to do so via freely available configuration software.
- CH340 - WCH: The driver is not auto-installed by Win. I myself stopped here, but once the correct driver is installed it is reported to be a viable choice. It is also reported to work with 2000000 bps out of the box, as needed for the NT Data Logging: Live Recording feature.
- PL2303HX - PROLIFIC: I had one PLxxxx adapter, and it didn't provide TTL but RS232-type signals. However, some web sources report using PLxxxx for microcontroller applications. The data sheet for these chips, including the PL2303HX, I find unclear in this point. So, the bottom line, I find the situation for these chips quite confusing, and thus simply stay away from them, as there are alternatives.
Conclusion: For flashing the main STorM32 controller board, USB adapters with either FTDI, CH340, or CP2102 chip sets can be used without issues. CP2102 adapters need some configuration to handle the high baudrate of the NT bus when the NT Data Logging: Live Recording feature shall be used, see How to configure CP2102 USB adapters for high baud rates. USB adapters with PL2303 chips NEVER work since they don't provide TTL levels.
What about the magnetometer support?
A magnetometer is not supported.
Software and GUI
How does Read, Write, and Store work?
[Read] reads the currently active settings from the board to the GUI.
[Write] writes the values of the GUI to the board and makes them effective immediately. The changes last until the board is reset or powered down.
[Store] makes that the board stores its current values into the EEPROM so that they become permanent. The settings stored in the EEPROM will be used at power up.
[Write+Store] does first a Write and then a Store.
Thus: With the [Write] button, all parameter values are copied to the board, and become effective immediately. They are however not stored permanently in the EEPROM, i.e., changes will be lost after a power down. To store changes permanently do a [Write+Store], e.g., by clicking the check box next to the [Write] button which turns it into a [Write+Store] button.
How to enter precise parameter values?
The o323BGCTool GUI doesn't allow to enter values in the text fields directly. However, the sliders can be moved using the mouse, or via the up/down keys when selected. The later allows precise adjustment of the values.
Which drivers are needed for the USB?
On Win7 the driver is usually installed automatically. This may take some minutes, be patient! It is important to wait until Win7 has finished the install before doing anything else. The correct Virtual Com Port (VCP) driver, usable also for WinXP and Win8/8.1, can be obtained from the STM download page. Comment: It is crucial to follow the instructions in the readme.txt file, otherwise it won't work!.
Storing the parameter values to the EEPROM doesn't seem to work
Please double-check that the correct firmware for your board has been flashed. The problem typically happens then e.g. the firmware for a F103RB is flashed onto a board with a F103RC.
Flashing with the USB-TTL adapter produces Windows error messages
If upon flashing you get Windows errors such as mfc110.dll is missing, msvcr110.dll is missing, or application was unable to start correctly (0xc000007b), then first check that you're not using an outdated GUI version. Otherwise, you need to install the VC++ runtime libraries. Download vcredist_x64.exe or vcredist_x86.exe depending on your Win system from here, and run the exe file.
Gimbal Construction
Does it matter where to install the camera IMU sensor?
In principle no, one can mount it wherever it is most convenient (of course as long as it tracks the camera motion). Some folks have however reported that the performance can depend on where the IMU sensor is mounted, depending on the specific gimbal some places seem to be better, i.e. allow e.g high PID values, than others. So, it may need experimenting.
In which orientation should the IMU(s) be mounted?
The IMU can be placed in any position provided it is parallel with the vertical and horizontal axis of the camera. In the GUI, under [GUI:Gimbal Configuration Tab], click on the [Configure Gimbal Tool] button. This will produce a pop up window with instructions to follow for the controller to automatically determine the IMU orientations. When it says to tilt 45 degrees, tilt the entire gimbal, including the camera; don't rotate the pitch mechanism to 45 degrees. If you are doing it wrong, the procedure will time out. Once an attitude of about 45 degrees is met, the software will recognize the position, then you can continue.
Where should the main board be mounted for correct use of the second IMU?
See Using a 2nd IMU.