SMALL - espritmodel.com SMALL - Telemetry SMALL - Radio
Reply
Thread Tools
Old Dec 14, 2013, 09:46 AM
OlliW
Joined Sep 2009
1,593 Posts
Cool
STorM32 BGC: 32-bit 3-axis brushless gimbal controller

DOCUMENTATION: http://www.olliw.eu/storm32bgc-wiki
Where to buy: http://www.olliw.eu/storm32bgc-wiki/...STorM32_boards


20. Sep. 2014: beta firmware version v0.43e released http://www.rcgroups.com/forums/showp...postcount=1605
--------------------------------------------------------------------------------------------------
26. Aug. 2014:
fantastic flight video featuring the STorM32bgc by francischie: http://www.rcgroups.com/forums/showp...postcount=1516
--------------------------------------------------------------------------------------------------
26. Aug. 2014: beta firmware version v0.41e released http://www.rcgroups.com/forums/showp...postcount=1509
24. Aug. 2014: beta firmware version v0.40e released http://www.rcgroups.com/forums/showp...postcount=1465
18. Aug. 2014: beta firmware version v0.39e released http://www.rcgroups.com/forums/showp...postcount=1386
10. Aug. 2014: beta firmware version v0.38e released http://www.rcgroups.com/forums/showp...postcount=1242
--------------------------------------------------------------------------------------------------
25. June 2014:
excellent and entertaining video demonstrating the STorM32bgc by careyer: http://www.rcgroups.com/forums/showp...&postcount=870
--------------------------------------------------------------------------------------------------
19. June 2014: firmware version v0.33 released http://www.rcgroups.com/forums/showp...&postcount=832
28. Mai 2014: firmware version v0.31 released
18. Mai 2014: firmware version v0.29 released http://www.rcgroups.com/forums/showp...&postcount=593
--------------------------------------------------------------------------------------------------
12. Mai 2014:
new firmware version v0.28 released: http://www.rcgroups.com/forums/showp...&postcount=556
fantastic demo videos by fpvberlin: http://www.rcgroups.com/forums/showp...&postcount=563, http://www.rcgroups.com/forums/showp...&postcount=535
--------------------------------------------------------------------------------------------------
10. Apr. 2014:
demo video demonstrating the advantages of a 2nd IMU: http://www.rcgroups.com/forums/showp...&postcount=269 (see also post #339)
excellent demo video by hexakopter: http://www.rcgroups.com/forums/showp...&postcount=299
funny demo video by careyer: http://www.rcgroups.com/forums/showp...&postcount=320
nice demo video by Greg Covey: http://www.rcgroups.com/forums/showp...&postcount=337
--------------------------------------------------------------------------------------------------
20. Mar. 2014: current version of the board is v1.3
--------------------------------------------------------------------------------------------------
26. Feb. 2014:
nice demo videos by Erick: http://www.rcgroups.com/forums/showp...9&postcount=94
--------------------------------------------------------------------------------------------------
20. Feb. 2014:
v1.2 board has been tested now, and it works prefectly, and I could not spot any mistake
wiki for documentation created: www.olliw.eu/storm32bgc-wiki
--------------------------------------------------------------------------------------------------
4. Jan. 2014:
Files can be be downloaded from here:
* project web page: http://www.olliw.eu/2013/storm32bgc/
* github repository: https://github.com/olliw42/storm32bgc
The current version of the board is v1.1. It has the reverse voltage protection, as well as several additional nice things.

In order to avoid confusion/questions: The feature list below is NOT a wish list, it lists implemented and working features
--------------------------------------------------------------------------------------------------

Hey folks

I'd like to present you my take at an 3-axis brushless gimbal controller. I called it STorM32-BGC, where the STM32 part indicates that the hardware makes use of a STM32 32-bit microcontroller. The firmware and GUI I called o323bgc and o323BgcTool, but I frequently will call all simply as STorM32BGC. The hardware is open source, the firmware is free.

From the outset I'd like to mention clearly that this is a hobby project, i.e., I don't have any commercial interest here. Also, I'd like to emphasise that this is not meant to compete with any other projects. EvvGC (or the upcoming BGC32) comes to mind here. There are obvious similarities, but the hardware differs substantially in that I opted for integrated motor drivers (I didn't wanted to go into the difficulties of discrete drivers and liked the intrinsic saftey of integrated devices). As a result the targets are somewhat different. Also my coding style is substantially different (be assured that I didn't use any code of EvvGC), and future/long-term vision of features. So, let's consider them simply alternatives.

As regards the layout of the board I'd like to acknowledge that I hat tremendous help by Martinez, he really did the hard part, THANKS! The board is IMHO well designed in that it makes "best" use of the microcontroller ports. The preliminary version v0.17 has a slight issue in that it doesn't have reverse voltage protection, but the next version v1.0 has already been shipped and will have that. The STorM32BGC is designed with saftey in mind. The current version of the firmware also has some features, which you wouldn't find for other projects. Just check it out. Clearly, the firmware will be under constant development (not fast development, but - trust me - constant), so features will improve and new will be added.

Let me highlight some features (to the best of my knowledge the STorM32BGC is the only free 3-axis brushless gimbal controller offering them)
(adapted on 10. Aug. 2014):

* this is probably the best feature of all: the motor direction is determined automatically... this removes really a lot of issues in setting up the gimbal, in particular of the yaw axis
* the IMU/MPU6050 module can be mounted in any of the 24 possible orientation, the GUI makes setting this up very simple
* on-board bluetooth: the board allows for a bluetooth module to be integrated on-board, the firmware+GUI provides an auto configuration tool for a one-click configuration of the module
* battery voltage measurement: it is used for a lipo saver function (I wouldn't want to be without it anymore!) and a voltage drop compensation of the PID controller
* proper PID controller, increases precision
* pan/follow mode on all three axes, can be set independently for each axis
* the follow speed can be adjusted in a wide range independently without affecting the controller precision
* continuous, smooth changes between pan and follow modes possible via keys, rc signals or remote commands
* orientation of all three axes controllable by external rc signals and/or a joystick (works for both pan and follow modes)
* external control can be adjusted precisely, speed limits as well as acceleration limits can be set
* IR led remote control of camera: shutter, shutter delayed, video on/off
* Mavlink-type commands for a remote control of the camera by e.g. a smartphone app
* as usual, USB and UART ports
* plenty of RC input/output ports, 3 ADC inputs to connect a joystick, 3 AUX ports
* the GUI provides a tab to make flashing the firmware simple; it uses a STMLoader which I modified to make this simple
* the startup procedure includes a dedicated no-oscillation detection scheme, this I found crucial for a good gyro calibration in particular of the yaw axis (minimizes drift in the yaw axis)
* quaternion based IMU algorithm (Mahony type), with unique mechanism to correct for drift on the yaw axis
* unique adaptive acceleration correction to avoid/minimize horizon drift in high-g maneuvers
* support of 2nd IMU, either on-board or external, for extended angle range, increased control precision, and stability in pan mode

Here a little demo video
STorM32 BGC: 32-bit 3-axis brushless gimbal controller (11 min 22 sec)

Have fun,
Olli
OlliW is online now Find More Posts by OlliW
Last edited by OlliW; Sep 20, 2014 at 01:16 PM.
Reply With Quote
Sign up now
to remove ads between posts
Old Dec 14, 2013, 02:07 PM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,061 Posts
Deleted
aadamson is offline Find More Posts by aadamson
Last edited by aadamson; Dec 14, 2013 at 02:18 PM.
Reply With Quote
Old Dec 14, 2013, 02:45 PM
Registered User
Joined Feb 2011
1,419 Posts
That is very impressive, great job.

You mention it is not for commercial purposes, why not? Hate to see all that knowledge and work lost.
milo12 is online now Find More Posts by milo12
Reply With Quote
Old Dec 14, 2013, 03:08 PM
OlliW
Joined Sep 2009
1,593 Posts
Quote:
You mention it is not for commercial purposes,
oh... thanks for asking, I migt have been missleading

what I meant is that I am doing this just for the sake of fun in my spare time, and that I am not doing this with a hope for some financial gain... if you read the terms of usages on the project web page it should become clear that this project is open to be commercialized by anyone who wants to... it's just that I myself am not interested in that (you wouldn't even find a donation button, like for any of my projects). Hope this made it clearer.
OlliW is online now Find More Posts by OlliW
Reply With Quote
Old Dec 14, 2013, 05:04 PM
1sq
Registered User
1sq's Avatar
United States, CA, Imperial Beach
Joined Mar 2013
1,310 Posts
Olliw,

Can you share where you got your motors for this gimbbal.

Thanks.
1sq is online now Find More Posts by 1sq
Reply With Quote
Old Dec 14, 2013, 05:27 PM
OlliW
Joined Sep 2009
1,593 Posts
ebay
search PS2 Slim disc drive replacement motor
for the technical specs see http://www.olliw.eu/2013/micro-brushless-gimbal/#motors
OlliW is online now Find More Posts by OlliW
Reply With Quote
Old Dec 15, 2013, 03:22 AM
Registered User
Joined Sep 2013
37 Posts
Do you have already build board which i can buy?
erickwesz is offline Find More Posts by erickwesz
Reply With Quote
Old Dec 15, 2013, 05:33 AM
g0t rabb1t?
ABLomas's Avatar
Lietuva, Vilnius
Joined Jul 2011
1,500 Posts
OlliW, how about proper acceleration compensation (centrifugal forces) on your board? Software supports this?
If so, this would be end to all those "flying away horizon" issues while using bl gimbal on planes... So far, i do not know any controller which do such stuff, go on and be first one? =)
ABLomas is offline Find More Posts by ABLomas
Reply With Quote
Old Dec 15, 2013, 09:48 AM
OlliW
Joined Sep 2009
1,593 Posts
@erickwesz: see your PM

@ABLomas: unfortunately it's not about some proper code lines but about basic physical principles

let me try to explain with Einstein's famous Gedanken experiment he used to motivate his general relativity: consider you're in an elavator, without any windows so that you just can see and notice what's going on within your small elevator cabin. Now you might feel a force which presses you on the floor. However, you don't have any chance to know whether this force comes from the gravity of a nearby massive body or from an accelaration of the elevator cabin (specifically you wouldn't know if you're on earth with the elevator cabin at rest or on the moon with the elevator cabin accelerating with 5/6 g). In physics this phenomenon is also know as equivalence of inertial mass and gravitational mass. You only can overcome this issue by having some additional knowledge. For instance you might know that you had been on earth when you entered the elevator, so that is a safe bet that you're still on earth, or you might have the chance to peek through a window and see the outside, etc. pp.

So, you see, there is fundamental limitation involved, not just code. I see only two approaches: i) One adds additional appropriate sensors, e.g. a velocity measurement (e.g. GPS), or ii) one uses better, more precise gyroscopes. The last thing would be the simples thing to do because much better gyroscopes are available... but they are also more expensive...
OlliW is online now Find More Posts by OlliW
Reply With Quote
Old Dec 15, 2013, 09:56 AM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,061 Posts
Quote:
Originally Posted by OlliW View Post
@erickwesz: see your PM

@ABLomas: unfortunately it's not about some proper code lines but about basic physical principles

let me try to explain with Einstein's famous Gedanken experiment he used to motivate his general relativity: consider you're in an elavator, without any windows so that you just can see and notice what's going on within your small elevator cabin. Now you might feel a force which presses you on the floor. However, you don't have any chance to know whether this force comes from the gravity of a nearby massive body or from an accelaration of the elevator cabin (specifically you wouldn't know if you're on earth with the elevator cabin at rest or on the moon with the elevator cabin accelerating with 5/6 g). In physics this phenomenon is also know as equivalence of inertial mass and gravitational mass. You only can overcome this issue by having some additional knowledge. For instance you might know that you had been on earth when you entered the elevator, so that is a safe bet that you're still on earth, or you might have the chance to peek through a window and see the outside, etc. pp.

So, you see, there is fundamental limitation involved, not just code. I see only two approaches: i) One adds additional appropriate sensors, e.g. a velocity measurement (e.g. GPS), or ii) one uses better, more precise gyroscopes. The last thing would be the simples thing to do because much better gyroscopes are available... but they are also more expensive...
OlliW,

We spent a good deal of time chasing this in flight code a few years ago. John worked with the original author of MARG and a couple of other university professors and they all came up with some *acceleration* cutoffs that if enabled greatly decrease the influence of the disturbances in the accelerometer when it's put into a high G maneuver. We call the phenomena the *leans* as that how it would show, it would build up a gradual offset in one of the axis. After we enabled some acceleration cutoffs in the code, we solved most of this issue.

You are correct, when in this mode, you don't know if you are moving due to acceleration or gravity. Also having a Magnetometer as another source of input into the attitude estimator will help.

Course there is always that *really expensive* IMU from Analog Devices that we could play with ...
aadamson is offline Find More Posts by aadamson
Reply With Quote
Old Dec 15, 2013, 10:10 AM
OlliW
Joined Sep 2009
1,593 Posts
Hey Alan,
thanks for your input. I think I know about these tricks (and I use them to some extend already, and I have plans for improvements)(one can see the traces of that already in the GUI LOL), but nevertheless you can't beat the physics facts. In this specific case e.g. once you cut off acceleration you're bound by the quality of the gyro... so, you can't do this for too long...obviously we're coming back to point (ii) here...
It's always possible to do things badly, but even with the most sophisticated code you won't get much better (except i and ii).
The magnetometers are btw of little help here, you need something like e.g. a velocity measurement.
Going with better gyros is IMHO the most promising route.

(btw: I put my plans with the magnetometer on the gimbal on lowest priority, it's of help only for the very specific use of "endless" yaw hold, but introduces serious calibrating issues, I think you'll discover that too... I'll focus on the auxiliary IMU)
OlliW is online now Find More Posts by OlliW
Reply With Quote
Old Dec 15, 2013, 10:20 AM
g0t rabb1t?
ABLomas's Avatar
Lietuva, Vilnius
Joined Jul 2011
1,500 Posts
You do not need expensive sensors, GPS (well, GPS would help, but this is complicated, also would require constant movement, wind speed estimation and other stuff)... Magnetometer! MPU9150 is cheap... ;-)
ABLomas is offline Find More Posts by ABLomas
Reply With Quote
Old Dec 15, 2013, 10:29 AM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,061 Posts
Quote:
Originally Posted by OlliW View Post
Hey Alan,
thanks for your input. I think I know about these tricks (and I use them to some extend already, and I have plans for improvements)(one can see the traces of that already in the GUI LOL), but nevertheless you can't beat the physics facts. In this specific case e.g. once you cut off acceleration you're bound by the quality of the gyro... so, you can't do this for too long...obviously we're coming back to point (ii) here...
It's always possible to do things badly, but even with the most sophisticated code you won't get much better (except i and ii).
The magnetometers are btw of little help here, you need something like e.g. a velocity measurement.
Going with better gyros is IMHO the most promising route.

(btw: I put my plans with the magnetometer on the gimbal on lowest priority, it's of help only for the very specific use of "endless" yaw hold, but introduces serious calibrating issues, I think you'll discover that too... I'll focus on the auxiliary IMU)
Actually, the Mag can be of huge value to correct the *drift* from the gyros.

And yes, you need calibration routines for the Mag and for the Accel/Gyro and if done right it will calculate a temperature curve that it will to further keep the axis in alignment.

But to your point, you are correct, Physics is always the challenge ...
aadamson is offline Find More Posts by aadamson
Reply With Quote
Old Dec 15, 2013, 10:36 AM
OlliW
Joined Sep 2009
1,593 Posts
Quote:
You do not need expensive sensors... Magnetometer!
please read the 6th line of my last post
a magnetometer is of as much help here as a smoke detector would be

Quote:
Actually, the Mag is off huge value to the attitude estimator that we use, it corrects the *drift* in the gyros that calibration won't address.
yes, but not for acceleration compensation/centrifugal forces... which was the question to be answered
OlliW is online now Find More Posts by OlliW
Reply With Quote
Old Dec 15, 2013, 12:25 PM
1sq
Registered User
1sq's Avatar
United States, CA, Imperial Beach
Joined Mar 2013
1,310 Posts
How about getting hobbyking manufacture the motor and controller for you.
1sq is online now Find More Posts by 1sq
Reply With Quote
Reply


Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Sold Alexmos 3-axis brushless gimbal controller (Soldered, ready-to-go) - $180 apextwin Aircraft - Electric - Multirotor (FS/W) 2 Dec 17, 2013 04:19 PM
Sold New AlexMos 3-axis brushless gimbal controller - $225 shipped Shane QG Aircraft - Electric - Multirotor (FS/W) 0 Nov 29, 2013 07:27 PM