GA250 Coax Gyromixer: The Ultimative Boardless Brushless Conversion?
Hey coax enthusiasts,
to start with, I know, the title is a bit provocative... there is certainly nothing such as "ultimative" in this hobby...
Anyhow, I am kind of active in this forum since some time but have never ever actually started a thread, so I thought I could open one and share my latest project with you. The project I am going to describe is in some way the most simple approach to a BLBL conversion but at the same time also the most "stupiest"... I am sure you will have your own opinion on this.
Current state of affairs (Oct. 23 2011)
This project evolved since the first posting quite a bit, in particular Tommy@LA from RCline Forum successfully build a GA250 gyromixer Big Lama BLBL, and his problems with the gyromixer helped me a lot to improve it and solve the issues (many thanks to him). As with Version 0.21 I think the project is kind of mature and I hence consider it now as stable. I have updated all the sections below accordingly.
I have also added a full list of the hardware and software which is needed for completing the hardware modding of the GA250 and running it.
I understand that for many of you the hardware modifications and burning the bootloader(s) may be scaring off. So, if that's the case but you would otherwise have liked to give this project a try I do offer this: If you send me all required hardware together with a return ticket, I will do the modding and burning and send it back to you (all for free).
(the statement "all required hardware together with a return ticket" should mean that I get everything needed so that I do not have any financial cost including the shipping and the "only" thing I have to do is to do the work, I don't have the financial resources to stockpile things )
Terms of usage
The software/firmware is not free. You may use it gratis and freely for private purposes. However, you may not use the work in full or in parts in any manner that is intended for or directed toward commercial advantage or private monetary compensation without explicit agreement by the author.
About this project
As you know, in a BLBL conversion all electronics except of maybe the reciever is removed, and replaced by devices which provide the five functions reciever, gyro, mixer, BESCs, and BEC. From these five functions the two most critical ones are the gyro and mixer. The choice of the BESCs is mainly dependent on the power requirements/desirements, but otherwise rarely a problem since essentially all BESCs of today will work fine. The BEC is usually integrated in the BESCs, and no concern either. And the choice of a reciever has often been made way before venturing into BLBL. In contrast, the choice of the gyro and mixer is critical. This is seldomly because of perfomance issues, but because of communication issues: the mixer has to deal with an asynchrounous inflow of PPM signals from the reciever and gyro, and it's not garantueed that any mixer will work with any reciever and gyro combination. In fact, reviewing the various brushless conversion approaches presented in the past, one may summarize them as the never ending story of how to deal with the gyro and mixer functionalities in the BL game...
I will here describe how to modify the hard- and software of the ASSAN GA250 gyro (a MEMS gyro for 10$ at HK) such as to work as both gyro AND mixer - I call this a coax gyromixer. As a result, it becomes the only other electronic piece required for a full BLBL conversion besides the reciever and BESCs. As you will see, the hardware is the simple part in the game since not much has actually to be done here, just some simple solder work. However, though the GA250 provides a convenient hardware platform, its software has to be redone to get it to work as a gyromixer. Since the GA250 does not come with any means to adjust parameters, such as gain or prop, one has also to implement a means to "program" it. This could be done via the usual transmitter-stick-up-down-procedures, which I however don't like much, in particular if many parameters are provided. I hence decided to realize the parameter setting via a programming box which can be connected to the GA250 gyromixer, and I found the Robbe Programming Box V2 to be an excellent hardware platform for that matter. In the meantime I have also developed a Windows GUI which allows setting the parameters of the GA250 gyromixer from a PC. I called it AvrConfig. Hence, these two alternatives exist now; the PC option is certainly cheaper while the programming box option may be more convennient (but is not easily found in the US).
So, this project, the GA250 coax gyromixer project, consists of four things, the hardware modifications to the GA250 gyro, the firmware for the GA250, the AvrConfig PC program, and the firmware for the Robbe Programming Box.
During development of such a project it can hardly be avoided that the micro controller(s) need to be reflashed often, it is hence quite convenient to use a bootloader. I am using the bootloader by Haagen published in a German forum, http://www.mikrocontroller.net/topic/95839#new. It is powerfull yet compact. Thanks to Haagen for this excellent piece of work!
I will start with chating a bit about the background of this project. I will then describe the hardware of the GA250 gyro and Robbe Programming Box, will then present the remodelling of the GA250 gyro, and spend some words on the firmware for it. If you are not afraid of German, or reading a google English translation, you may follow the project also here: http://www.olliw.eu/2011/ga250-fpkoax-gyro-mischer/
Last edited by OlliW; Dec 14, 2011 at 09:51 AM.
The whole thing started about 1 1/2 years ago, then I decided to also attempt a brushless conversion of my esky lama V4. Hence I bought one of these "plug-and-play" kits, which consist of the motors, the BESCs, and two converters. The conversion worked... but barely so... I didn't liked the performance at all. The tail was extremely waggy, and I found this inacceptable. The obvious next step would have been to go BLBL, but somehow I didn't liked that either. Instead I realized that the ESKy 4in1 can be remodelled such, by removing the original processor and replacing it by an Atmel Attiny 861, that I can program it with all functions I wanted to. This resulted in what I called the 4-1+2in1 project (4in1 with the BEC removed but a lipo saver and a light controller added). The first working version performed quite nicely, and I liked the lipo saver and the switchable lights (canopy lights, Landing light, spot light). I worked on putting this hardware-wise onto more "solid" grounds, but despite several attempts this never actually got to anything final. About a year ago, I started with CP helicopters, and as a result I got in touch with gyro's such as the HK401B or KDS800. Of course, I peeked inside them and realized that they provide all the hardware components needed to implement both the gyro and mixer function, and moreover the hardware was essentially identical to what I used already in the 4-1+2in1 project... and the coax gyromixer project was born. I developped this into a working version, but did not further pursue this path, since the 4-1+2in1 approach looked more appealing to me, on which I focused in the recent time. I fooled around a bit with the LPX brand of MEMS gyro from ST, but found them to be too vibration sensitive, and the latest attempt was hence based again on the Murata piezo gyro.
However, the appearance of the GA250 has quite changed the game. It made me to stop my latest attempt in the 4-1+2in1 project, since it made me realize that the time of piezo-gyro based projects has passed (I do not have - yet - the skills to solder ICs such as the new Invensense gyros), and on the other hand it pushed the coax gyromixer project back into the limelight, because of the coolness factor of a MEMS gyro and the cheapness of the GA250. The result you find below.
In the following pictures are shown the top and bottom sides of the print board contained in the GA250 together with my labeling of the components, the electric circuit diagram, and the original fuse settings:
Fuse Settings: http://www.olliw.eu/uploads/gyro-GA2...ogfuses-wp.jpg
The hardware consists of an Atmel Atmega8 micro controller (the label has been made irrecognizable, but according to avrdude the chip ID is 0x1e9307) run by a 8 MHz ceramic oscillator. The gyro sensor is the Invensense ISZ-650 (the label has also been made irrecognizable, it also could be the ISZ-500, but this appears unlikely). The GA250 offers a red and a blue led for signaling. Also, it offers a quite elaborate voltage source and reference voltage circuitry, and the print board (4 layer!) and fabrictaion (soldering!) appears to be of high quality. I would not have expected to see such a high quality both as regards the electronic scheme and fabrication in such a low-cost product (I hope that this is not going to change in time). Congrats ASSAN. The most beautiful thing, however, is that the ISP pins, which allow programming the micro controller, are easily available via soldering pads. Besides the fact that it offers a high quality MEMS gyro sensor, this point makes the GA250 an ideal platform for this project. Hardware-wise it can't be simpler.
Atmega8 datasheet: http://www.atmel.com/dyn/products/pr...0&part_id=2004
ISZ-650 datasheet: http://invensense.com/mems/catalog.html
The ports of the Atmega8 are connected as follows:
PB0 / ICP: input signal 1 from reciever (rudder input in the gyromixer)
PD2 / INT0: input signal 2 from reciever (throttle input in the gyromixer)
PB2 / OC1B: output signal 1 (PPM output signal for motor B in the gyromixer)
PC0 / ADC0: PTATS signal from ISZ-650 gyro sensor (this reads the temperature, not used in the gyromixer)
if one removes R14 this port may also be used as a further analog input, e.g. for a lipo saver
PC1 / ADC1: Zx4.5 out signal from ISZ-650 gyro sensor (+-440°/s -> +-1V gyro signal)
PB4 / MISO: AZ pin of the ISZ-650 gyro sensor (allows to zero the gyro signal)
PD3: red LED
PD4: blue LED
Via the ISP pads additionally the following ports are easily available:
PB3 / MOSI: general port (PPM output signal for motor A in the gyromixer)
PB5 / SCK: general port (connection to the programming box and bootloader in the gyromixer)
Two further ports are available through careful soldering (and removing of R11):
PD5: (not used yet in the gyromixer)
PD0/PD1: these two ports are connected (not used yet in the gyromixer)
In order to use the GA250 for our purposes, in principle only two cables need to be soldered to those two pads, which are connected to ports PB3 and PB5. These together with the other cables will provide the two PPM inputs for rudder and throttle, the two PPM outputs for the BESCs of motor A and B, and an additional connector for attaching the programer box.
Robbe Programmer V2 No. 8642 Hardware
Robbe Programmer V2 No. 8642 Hardware:
In the following pictures are shown the top and bottom sides of the print board and a hand drawing of the electronic scheme, the electric circuit diagram, and the original fuse settings:
Fuse setting: http://www.olliw.eu/uploads/robbe-pr...2-fuses-wp.jpg
The hardware consists of an Atmel Atmega88 micro controller run by a 8 MHz ceramic oscillator, a 2x16 tiny LCD display (no backlight), four keys, a beeper, and a servo connector. Again, besides offering all the hardware required for a "cool" programming box the most beautiful thing is that the ISP pins are easily available via soldering pads, which makes the Robbe Box an ideal platform for our (and many other :-)) purposes.
Atmega88 datasheet: http://www.atmel.com/dyn/products/pr...0&part_id=3302
The ports of the Atmega88 are connected as follows:
PB3: E line of the LCD display
PB4: R/W line of the LCD display
PB5: RS line of the LCD display
PC0-PC4: DB4 to DB7 lines of the LCD display
PB5 / OC1B: beeper (high = off!)
PD6: down arrow key (most left key)
PD5: inc + key (middle left key)
PD4: dec - key (middle right key)
PD7: up arrow key (most right key)
PD0 / RXD & PD1 / TXD: connected via a resistor network to the servo connector, allows for a half-duplex serial 1-wire communication
In order to use this box, no hardware changes are required!
EDIT(2. July 2011): The Robbe Box may also come with an Atmega88PA (signature 0x1e930f) instead of the Atmega88. Otherwise, however, the circuit and fuse settings are exactly identical as shown in the above.
Last edited by OlliW; Jul 02, 2011 at 12:01 PM.
Remodelling of the GA250 gyro
Remodelling of the GA250 Gyro:
Update Oct. 23 2011: the photos below show the result of my first converson of a GA250 to a GA250 Gyromixer. In the meantime I do some things in a somewhat better way. A gallery of photos which presents the current remodeling of the hardware in much more detail can be found here: http://www.olliw.eu/2011/ga250-fpkoa...cher/#21072011
The first step consists of soldering the cables to the ISP pads and flash the Atmega8 with Haagens bootloader. This looked as follows:
Then these cables can permanently be removed, and two cables soldered to the pads which are connected to ports PB3 and PB5. In principle this would be it, but I did a bit more soldering to end up with a nice, fully wired device:
That's it for the hardware
Last edited by OlliW; Oct 23, 2011 at 07:28 AM.
Firmware for the Programming Box and the AvrCongif PC Program
Firmware for the Programming Box:
As with the GA250 the first thing to do is to solder cables to the ISP pads and burn the Atmega88 or Atmega88PA (which depends on your Robbe Box) with Haagens bootloader. Here I used a modified version of the bootloader, which requires the most left key to be pressed upon startup for the bootloader to become active. This was necessary to avoid potential communication conflicts on the one-wire port. After that the ISP cables can permanently be removed and the box closed, "for ever".
Then the firmware can be flashed into the programming box using Haagen's AVRootLoader Windows program. A serial or usb port is needed on the computer and an approrpiate adapter needs to be build (which is however simple to do) to connect the programming box to the PC.
A link to the latest firmware for the programming box I will provide below.
Functions of the Programming Box
The programming box is connected to the gyromixer via a standard servo extension cable to the programming connector atthe gyromixer, which is the YELLOW marked one. ATTENTION: please ensue that the servo extension cable is correctly plugged into the programming box (the black/brown ground cable should be at the top, and the white/yellow/orange/red signal cable at the bottom). Depending on the current state of the gyromixer (see next post), a connection is then established, which will be indictaed on the gyromixer by a blue LED going on and on the programming box by the display changing from "not connected" to showing the first menu item.
One may browse the parameters using the up and down keys to the most rright and left. The paramter setting may be changed using the + and - keys (also labelled Inc and Dec) in the middle of the key field.
IMPORTANTLY: Any change to the parameter becomes effectivel immediately. That is, if one disconnects the programming box and starts flying, the newly set parameters wil be used. This is most convennient as the heli does not have to be switched on and off for every parameter changes. HOWEVER, the parameter changes will be lost if the gyromixer is switched off, and the "old" parameters would be used the next time, whichis convennient of one doesn't like the parameter setting.
In order to store the current parameters PERMANENTLY one has to browse to the last menu item, switch to yes by pressing the + button, and initiate the permanet store by holding down the + key for about 2 seconds.
Some words on what happens internally.
The firmware for the programming box consists in fact of two parts, which have to work hand-in-hand, namely the code which is to be flashed into the uC of the programming box, and of course the code which has to be integrated into the GA250 software as the counter-part. The development of these software was in fact (so far) the most difficult part in the project, because of two reasons:
(A) I didn't wanted to have to update the software for the programmer box whenever I would change the parameters for the GA250 gyromixer... So, the parameters, their values, etc., i.e., the menu of the programming box has to be stored somehow in the GA250 itself. Since, however, menus do quickly consume quite a lot of the precious memory space this has to be done in some clever, memory friendly way.
(B) The communication between the box and gyromixer should be one wire, which in principle is simple. However, unfortunately, the ports easily available via the soldering pads in the GA250 do not provide an interrupt, hence one has to use a software UART with polling, but polling means that any interference by interrupts has to be avoided, which in turn means that during this time period all actions basically have to be disabled. In short, having to use a polling software UART requires some quite careful considerations as regards the communication protocol and timing.
Anyhow, after some efforts I found a reasonable solution. It comes at some cost, however, namely the minimal frame length for the PPM output signals to the motors is limited to 4 ms... Clearly, 3 ms or even 2 ms would be cool, but considering the limitations set by the mechanics of the coax heli itself a frame rate of 4 ms, which corresponds to 250 Hz update frequency, is way sufficient.
AvrConfig Windows PC Program
As an alternative to the programming box, a Windows PC program is available which allows to set the parameters via a GUI. A screen shot is attached below.
However, in contrast to the programming box it doesn't allow a "live" changing of the parameters. That is, the gyromixer has first to be connected to the computer, then the "Connect" button needs to be clickedm, and then the gyromixer needs to be switched on. Now the paramters can be read from the gyromixer, changed, and written back into the gyromixer. During all this the gyromixer is not functional as the firmware in it is actually not excecuted.
For the connection to the gyro mixer a computer with a serial or usb port is needed. If the usb port is to be used, which I consider the standard way of doing things and which I will describe only here, one needs a USB-TTL adapter together with a connector-button-wire-assembly which is described below (I call it the USB-Programming Adapter), and the appropriate drivers such that the usb-ttl adapter is recognized as a virtual COM port by Windows.
PS: I am not a good Windows GUI programmer, so I am not sure how well AvrConfig will do on different environments, I have tested it myself on a couple of Windows XP computers, where it worked, but this doesn't mean a lot. The key problem is the COM port handling (enumerating, timeout settings).
Last edited by OlliW; Oct 23, 2011 at 10:36 AM.
Firmware for the GA250 gyromixer
Firmware for the GA250 gyromixer:
The firmware is currently in Version 0.22. The most important advancement as compared to the first version(s) posted here is that heading hold is now implemented and fully operational, and failsafe is considered. Also, some behavior which could confuse the user was improved.
A link to the latest firmware is provided below.
The main function, the gyro, is implemented as a simple PI controller. I fooled around with a PID controller with real D term and setpoint weighting, but didn't found this to be of any advantage, in the contrary. So, I sticked to a PI controller. The second function, the mixer, is a piece of cake to implement.
Besides these two native functions, which give rise to the parameters gain and prop as they are also usually available via potis in the standard coax electronics, I implemented quite a number of additional features which allow to fine-tune the behavior of the coax, such as expo for rudder, or various parameters to affect the throttle curve. So, the number of parameters may look scaring but most are actually not mandatory for a basic functioning, but can signficantly improve the "feel" of how the coax flies.
Parameters in the GA250 Gyromixer
Gyro Mode [off,rate,heading hold]
rate and heading hold shoudl be obvious
off means that the gyro is completely inoperative, which is an intersting experience, but is actually implemented to facilitate a test, which I would ask experienced pilots to do
Rate Gain [0.00 ... 2.50]
gain when gyro is operated in rate mode
PID Gain [0.00 ... 2.50]
gain when gyro is operated in heading hold mode
PID I [0.000 ... 0.100]
this is simply spoken the heading hold capability (and hence only effective in heading hold mode)
The larger this value, the more serious is the gyro about holding the heading, but by increasing it usually also gain has to be reduced to avoid tail wagging. Hence a compromise between large gain and large I has to be found. A good approach is to first determine the gain setting when operated in rate mode, and when to slowly increase I from zero in heading hold mode.
Prop [-100 ... 100]
should be obvious, corresponds to the prop dial on the usualy 3in1 or 4in1 koax units
Revo [-100 ... 100]
allows for a pitch dependent compensation of the torque excerted by the two rotor. This can significantly help the gyro to do its job upon strong "pitch pumps". Technically, revo changes the slopes of the throttle curves of motor A and B in comparison to each other.
Rudd Rate [0.0 ... 3.0]
sets the maximally possible pirouette rate, 1.0 corresponds to about 1 turn per second
Due to the limitations of the ISZ650 gyro sensor used in the GA250 device, a pirouette rate larger than ca. 1.3 leads to uncontrolled pirouettes at large rudder signals, this can be impressive and fun though. Increase this value ONLY slowly step by step by 0.1 ticks.
Rudd Expo [0.00 ... 1.00]
expo setting for rudder
This allows to have more sensitivity for rudder control near zero rudder. A value of 0.00 means no sensitivity enhancement (expo off), a value of 1.00 corresponds to a completly flat response near zero rudder.
Thro Expo [0.00 ... 1.00]
expo setting for thror
This allows to have more sensitivity for thro control near the thro level determined by Thro Hover. A value of 0.00 means no sensitivity enhancement (expo off), a value of 1.00 corresponds to a completly flat response near the Thro Hover point.
Thro Hover [25% ... 75%]
refence for the Revo and Thro Expo functions
Thro Min [0% ... 35%]
lower limit to the PPM signals send to the BESCs of the motors
This allows to fine tune the reponse of the koax upon thro.
Thro Max [65% ... 100%]
upper limit to the PPM signals send to the BESCs of the motors
This allows to fine tune the reponse of the koax upon thro.
Frame Length [4 ms ... 22 ms in steps of 2 ms]
frame length of the PPM signals for the BESCs for the motors
In principle the shorter the frame rate the better, however not all BESCs may work with to short frame lengths.
Besides these, additional parameters are available, which are however only for "experts". These are:
Low Pass Time [0 ... 10]
Low Pass Average [1 ... 8]
Cntrl Limit [0 ... 500]
Dead Band [0 ... 30]
Rudd Sense [0.00 ... 1.00]
Mot Min Value [us]
Mot Max Value [us]
Thro Min Value [us]
Thro Max Value [us]
Functions of the GA250 Gyromixer
The behavior of the gyromixer and its interaction with the programming box is described. The gyromixer has a red LED and a blue LED, which are of course used to signal in which state the gyromixer currently is, on which its behavior of course depends. Unfortunately the red LED is not well seen if the blue is on, look carefully, it's easy to get confused here. The meaning of the LEDS is that:
The blue LED is ON whenever a connection to the programming box is established, and OFF if not (whith one lttle exception, see below).
The red LED tells you about the current STATE of the device. The gyromixer can be in any of FIVE different states:
(A0) Initialization and startup
This is the state after having switched on the gyromixer. The gyromixer first waits for a valid signal to come in from the reciever. The red LED is blinking very fast.
(A1) Rx signal recieved
Once a valid rx signal has been detected the gyromixer checks for the position of the Thro stick. The red LED is blinking fast. The gyromixer will wait as long as one the following positions have be detected:
Thro fully down (Thro low):
If the gyromixer detects thro down at startup it moves on and enters the Thro low state (C). Once it has entered this state the gyromixer can only be in either state (C) or (D).
Thro fully up (Thro high):
If the gyromixer detects thro up at startup it enters the Thro range programming state (B).
(B) Thro range programming mode
That's essentially exactly what is known for the BESCs. That is, as next step one is expected to pull the Thro stick fully down, which makes the gyromixer to store the Thro up and down values of the transmitter/reciever into memory, i.e., the gyromixer is learned as for BESCs. In that mode the red LED blinks slowly. Once Thro fully down is detected the red and blue LEDs start blinking alternatively, and the only way to get out of that mode is to switch off the gyromixer.
IMPORTANTLY, during states (A1) and (B) the Thro signal as it is recieved from rx is passed through unchanged to the two motor outputs of the gyromixer. That is, by having Thro up at startup and pulling it then down, it is possible to simultaneously learn also BOTH BESCs! In these states the gyromixer behaves as if it were a "piece of wire" as regards the PPM signals to the motor BESCs.
(C) Thro low mode:
This mode is entered whenever the gyromixer detects that the Thro stick is low for longer than ca. 4 seconds. The red LED will be on. In this mode a signal is output to the motor outputs, but the rudd, gyro, and mixer functions are off for saftey reasons.
(D) Flight mode:
If the Thro is moved up a tiny bit (4% of the full range if the gyromixer was learned), the gyromixer enters the Flight mode and the red LED goes off. In this mode the motor BESCs get their PPM signals and the gyromixer does what you expect it to do. During the transition from state (C) to state (D) the gyromixer will be recalibrated, i.e., the gyrosensor signal will be reset to zero. Hence, one actually doesn't have to keep the coax standing still after switched on, since the crucial calibration steps will be done ONLY very shortly (10 ms) before the Flight mode is entered.
If a loss of a valid signal from the reciever is detected, the gyromixer enters the failsafe condition. This is not actually a separate state but may occur during any of the above states. During Failsafe, the red LED blinks very fast. In states (A) and (B), a failsafe will "reset" the gyromixer and it will start from the very beginning, i.e., state (A0). In state (C) a failsafe doesn't harm much and hence not much is happening. However, as a saftey feature the gyromixer will require that Thro is low for few seconds before it accepts any further thro commands. In state (D) the motor signals are slowly reduced to minimum for saftey. However, if within this period a signal is comming in again, the motor signals will go back to what they are supposed to be.
Interaction with the programming box
IMPORTANTLY, a connection to the Robbe Box is ONLY possible if the gyromixer is in STATE (A) or (B) or (C), but not in state (D). (I figured it doesn't make much sense to change parameters during flight... ).
However, a failsafe doesn't interfer with the connection. Hence, if one is in state (C) one may switch off the transmitter if one wants for saftey reasons before one connects the programming box to the gyromixer. After having finsihed the programming bussines one may switch on the transmitter again, but the gyromixer will wait for thro is low before it allows to continue.
As stated before, the blue LED will go on if a connection is established, which is also indicated on the display of the programming box.
Last edited by OlliW; Apr 10, 2012 at 10:22 AM.
Demonstrating the claims
"Demonstrating the Claims":
So much to the claims. Here now some pictures/videos to demonstrate what has been, and what has not yet been achieved:
picture of BLBL lama V4 coax used for the developments and tests:
Here I wanted now to provide two videos, but I couldn't figure out of how to embeed in a similar way as the pictures or as it's seen in so many posts (somehow a usueful help does not seem to exist)(maybe some has an advice for me). So, sorry, I can just direct you to the following sites
video of the basic features and functions of the GA250 gyromixer in version 0.10:
[or for download http://www.olliw.eu/uploads/coax-gyr...etup-en-wp.flv]
[or for download http://www.olliw.eu/uploads/coax-gyr...light04-wp.flv]
EDIT: A careful observer will realize the points which could still be improved. The tail is slightly drifting. I don't think that this is gyro drift, I mean, it's a MEMS gyro now. I rather think that it's due to the trivial effect that with lowering battery voltage during flight the prop doesn't stay constant. I hope that this will be solved by implementing a heading-hold gyro. Also, the tail yaws a bit upon sudden pitch pulses (what's the correct English word for that!?). I observed that, and tried to understand the origing, for quite a while now, but I still don't have a clue. Even with revo and a D term in the controller I couldn't get rid of that. Here too I hope that heading-hold will do the trick.
EDITII (Oct. 23 2011): heading hold is now fully implemented and IMHO working quite well. Newer videos demsonstrating the claims are available on my blog on this project (www.olliw.eu).
Last edited by OlliW; Oct 23, 2011 at 07:30 AM.
I guess you sensed by now why I called this the most "stupiest" approach to a BLBL conversion... it was a lot of work (but also a lot of fun ), and still will require a lot of work to improve it further... there would have been certainly faster ways to get to a BLBL lama (e.g. using Achim's mixer, which I did and which worked seamlesly). However, why did I call it also the most simple approach? Well, in terms of item count it certainly is. Also, there are garantueed no hazzles with incompatibilities of certain gyro - reciever - mixer combinations. And finally, once all pieces are in hand, it is just a matter of a "bit" of work to get a very functional BLBL conversion.
So far I do in fact not know how functional the gryomixer actually is, since I have tested and used it only on my platform so far... but there, I am pleased. In the meantime Tommy@LA implemented it also successfully in his BLBL Big Lama. Luvmyhelis has also gotten some gyromixers, but - as he showed interest in this project at a very early stage - he got the earliest versions, and has to deal now with their shortcomings. However, I think that in the meantime they became more reliable, also because the "don't do's" are better known.
What could be the future? Well, bugs may of course still be there and improvements hence required, but I think that as it is currently the gyromixer is performing well. A major next step would be adding a lipo saver, which is possible with the GA250 hardware but needs a bit more elaborate soldering work, but it's quite doable. The soldering work I have in fact done now in two cases, a gallery of pictures describing that can be found here, http://www.olliw.eu/2011/ga250-fpkoa...cher/#10082011, but no firmware which would use this optioin is yet available.
And finally, as stated in the above, if you are scarerd off by the soldering and programming parts, but otherwise would like to attempt this project, I think we may find an arrangement.
Last edited by OlliW; Oct 23, 2011 at 07:46 AM.
Summary of Firmware, Software and Hardware
Latest Firm- and Softwares
GA250 Gyromixer Firmware , Version 0.22: GA250_Coax_GyroMixer_Firmware_v022.hex
Programming Box Firmware, Version 0.14: Olliw_GA250_ProgBox_v014b_m88.hex or Olliw_GA250_ProgBox_v014b_m88pa.hex, depending on the uC of your box
AvrConfig Windows GUI, Version 0.16
These files are available as .zip here: http://www.olliw.eu/uploads/olliw-ga...2012-01-22.zip
Unfortunately, some person seems to intend to not play by the rules, and I hence inactivated the links for downloading the firmware/software. It is still available for free under the conditions stated in the above, but I kindly ask you to register on my web page and to download from there. Sorry for the inconveniences.
I shortly describe the possible configurations and which hardware/software is needed to get a running system (excluding hardware/software needed for actually building things).
You will - obviously - need the GA250 gyromixer (first attached picture). Additionally you should have the USB-Programming adapter, which consists of a USB-TTL adapter and a selfmade "plug-button-wire-assembly" (last attached picture). Finally you may wish to have the programming box (second attached picture), which is optional but (IMHO) very handy. Pictures of these three units are attached below for better overview.
Working configurations are:
1) GA250 gyromixer + programming box (+ servo cable)
2) GA250 gyromixer + USB-programming adapter + AvrConfig PC program (+ usb cable)
For flashing a new firmware onto the GA250 gyromixer and/or the programming box you need:
USB-programming adapter + AVRootLoader program (+ usb cable)
If you build the gyromixer (and/or the programming box) yourself, you will additionally need an AVR ISP programmer for burning the bootloader into the GA250 (and/or the Robbe Box)(plus cables to solder to the ISP pins). In order to simplify this step I wrote a little Windows GUI program, which I called AvrBurnTool, and which guides you through the process in six simple steps.
Functions of the Servo Plugs on the GA250 Gyromixer
The five servo cables coming out of the GA250-gyromixer are (please compare with the first attached picture below):
- four-wired servo cable with BLACK heat shrink tube: red servo plug = throttle, black servo plug = rudder
- servo cable with RED heat shrink tube: connector to the BESC for motor A (upper rotor)
- servo cable with BLUE heat shrink tube: connector to the ESC for motor B (lower rotor)
- servo cable with YELLOW heat shrink tube: I will call it the PROGRAMING CABLE, it has a triple functionality:
1) connector for flashing a new firmware into the GA250 gyromixer
2) connector for parameter setting via the AvrConfig PC program
3) connector for parameter setting via the programming box
Further Info on the Operation of the GA250 Gyromixer
- The gyromixer can be in a couple of different states, which are indicated by the LED signals. The possible states and the meaning of the LEDs are described in post #160.
- After powering up, the gyromixer waits for certain conditions to happen before it proceeds and actually outputs a PPM signal to the motor BESCs (on the respective plugs, see above). In particular, the gyromixer allows to calibrate both motor BESCs simultaneously WITHOUT having to disconnect the BESCs from the gyromixer or any other "tedious" procedure. These things are (briefly) described in post #162.
- Some ideas on how to tune the parameters of the GA250 gyromixer for finding a first reasonable parameter set are described in post #189.
- an explanation/overview of the gyromixer parameters, and their relative importance is here
- a comment on the four parameters Gyro Mode, Rate Gain, PID Gain and PID I is here
- an effort to explain what P, I, D of a PID controller are is here
- if you are confused by all these things such as ISP AVR programmer, USB programming adapter, USB TTL adapter, USBasp, Arduino USB adapter you may look up this post here
- the rcgroups members bebev and jrjr have some additional good information and reports on their blog pages!
Saftey Precautions and Warnings
Pay attention to the correct polarity then connecting the servo plugs. This holds true in particular for connector Mot A as it is not protected internally by a resistor and is hence more susceptible to overvoltages.
You must not apply more than 5V to the power-plug at the usb adapter. 1S of a lipo battery works fine. With the usb-adapter AND the motor BESCs connected to the gyromixer, it is safer to not power the gyromixer through the battery plug at the usb-adapter.
Hardware for Modding the GA250
1 x ASSAN GA250 (Hobbyking)
2 x servo extension cables (e.g. 40CM Servo Lead (JR) 32AWG Ultra Light 10pcs/bag, Hobbyking)
1 x piece heat shrink tube 2mm red
1 x piece heat shrink tube 2mm blue
1 x piece heat shrink tube 2mm yellow
1 x piece heat shrink tube 3mm black
1 x piece heat shrink tube 5-6mm black
Additionally an AVR ISP programmer is needed for setting the fuses and burning the bootloader.
A gallery of photos which presents the current remodeling of the hardware in much more detail can be found here: http://www.olliw.eu/2011/ga250-fpkoa...cher/#21072011 ATTENTION: it shows photos with fuses settings which are NOT correct, please use the fuse settings given in this post here below!
Fuses and Bootloader for the modded GA250
bootloader hex file: BL_4GA250GyroMixer.hex
The fuses are set and the bootloader permanently burned into the microcontroller using an AVR ISP programmer. It has temporarily to be connected to the ISP pins on the GA250 print board; the location of the ISP pins can be seen in post #3 in the first photo (see to the left).
Hardware for Building the USB-Programming Adapter
1 x USB-TTL adapter with FTDI FT232RL chip
1 x servo extension cord (e.g. 40CM Servo Lead (JR) 32AWG Ultra Light 10pcs/bag, Hobbyking)
1 x switch
1 x male pin connector 2.54mm with 6 pins
1 x male pin connector 2.54mm with 3 pins
1 x heat shrink tubes as liked
1 x maybe a small piece of evtl. kleines Stück strip board 6×4 holes
1 x maybe a small piece of evtl. kleines Stück strip board 3×3 holes
It's IMPORTANT to use an USB-TTL adapter with FTDI FT232RL chip. Suitable items would be e.g. SparkFun DEV-09873, DEV-09716, or if no plug is desired DEV-10008. My current best suggestion is to use the Arduino USB adapter which are available for less than $10, e.g. at dealextreme or ebay. I recall, pay attention that your USB-TTL adapter uses a FTDI FT232RL chip!
The other stuff is needed to build the "plug-button-wire-assembly" which goes between the USB-TTL adapter and the GA250 gyromixer. The scheme you may find here http://www.olliw.eu/2011/ga250-gyro-...rammingadapter. The resistor R* is not needed for the gyromixer project and can be just a short.
The materials list is just a suggestion of what you may need as there are infinitely many ways to build the "plug-button-wire-assembly" (I myself e.g. are doing it differently now)!
Software for the USB-Programming Adapter
The usb-ttl adapter which is needed here has to have a chip which allows to invert the RX and TX lines. I myself am familiar only with the FT232RL chip. In principle any usb-ttl adapter with this chip can be used. Softwarewise the VCP driver is required, but I recommend to host also the respective D2XX driver and FT_PROG utility program in your GA250 gyromixer folder. If you build the USB-programming adapter yourself, you have to invert the RX and TX pins, which can be done by the FT_PROG utility program, which needs the D2XX drivers.
VCP driver: http://www.ftdichip.com/Drivers/VCP.htm
D2XX driver: http://www.ftdichip.com/Drivers/D2XX.htm
For more descriptions on inverting the RX and TX pins and using FT_PROG go to post #223.
Hardware for Modding the Robbe Programming Box
1 x Robbe Roxxy BL Controller Programmer V2 No. 8642
1 x servo extension cord (e.g. 40CM Servo Lead (JR) 32AWG Ultra Light 10pcs/bag, Hobbyking)
Additionally an AVR ISP programmer is needed for setting the fuses and burning the bootloader.
Fuses and Bootloader for the modded Robbe Programming Box
bootloader hex for Atmega88: BL_4RobbeProgger_m88.hex
bootloader hex for Atmega88pa: BL_4RobbeProgger_m88pa.hex
Which of the hex files has to be used depends on which microcontroller (ATmega88 or ATmega88PA) is found in your Robbe Programming Box.
The fuses are set and the bootloader permanently burned into the microcontroller using an AVR ISP programmer. It has temporarily to be connected to the ISP pins on the Robbe Box print board; the location of the ISP pins can be seen in post #4 in the first photo (see to the right).
Software for Flashing the Firmwares into the GA250 Gyromixer or Programming Box
The firmwares are flashed into the GA250 gyromixer (and/or programing box) by connecting the device via the USB-programming adapter to a computer and running Haagen's tool AVRootLoader.
Any AVR-ISP programmer will be suitable.
As there are really quite many different units available, no further comments as regards usage shall be made here, the other sections at rcgroup or google will help. A very popular AVR-ISP programmer is USBasp, which is available for less than $5 e.g. at hobbyking or ebay. Several softwares are suitable to run it, the most basic and in some way most reliable is maybe avrdude, but it's a command line program and not GUI based.
I have written a little Windows GUI tool I called AvrBurnTool which you can run on your PC and which simplifies using the AVR-ISP Programmer and the burning of the bootloader, firmware and setting the fuses quite significantly. I have not yet officially released it and hence the info is a bit stretched out. Info you can find in post #307 and the zip file for download here https://www.rcgroups.com/forums/show...0#post21029292 (with further info albeit for the different but related coaxmixer project).
Some time ago I was not aware that the Arduino USB adapter and USBASP programmer are avaliable together for less than $15 incl. shipping, and hence recommended using the SparkFun USB-TTL adapters as they can be used for both the USB-programming adapter and as AVR ISP programmer. This works, but (miss)using them as AVR-ISP programmer is tedious for the unexperienced (I estimate that about 75% of the first 200 posts here are on this)(I applogize, Randy). I keep this note only for historical purposes, since related pieces of information can be found from post #72 on until about #150 or so...
Pictures of the GA250 Gyromixer, Programming Box, and USB-Programming Adapter
Last edited by OlliW; Apr 10, 2012 at 11:07 AM.
OlliW, you rock my friend! What you just did is greatly simplify my latest mod by eliminating the DD mixer/G110 combo and giving me much greater versatility by eliminating the piezo. Thank you bro! I just posted this new build of mine pictured below, so now it looks like I may have to spend some time behind my soldering iron this next week doing your beautiful mod! If you weren't a guy I would fly over and kiss you bro!
This is huge, just huge, I have the GA-250 and was trying to integrate it into the build. This dumps weight, eliminates components, and works great in confined spaces. KJ, if you are seeing this, this mod answers the problem with getting a brushless mod into your small walkera.
Nicely done Olli, nicely done!
By the way, does the intoduction of the new Assan GA-250 gyro that is capable of running an analog servo change any of the design application here? These new next gen gyros are supposed to be hitting the shelves as we speak. I emailed Dan back at Dionysus and let him know about the gyro, since even with his plug and play DDmixer this gyro is a game changer. It removes the piezo completely from the formula.
Last edited by Luvmyhelis; Jun 04, 2011 at 03:23 AM.
@4712: nice that you are still with us here
|Category||Thread||Thread Starter||Forum||Replies||Last Post|
|Discussion||Lama V4 Brushless Boardless Conversion Parts List||mountainsax||Coaxial Helicopters||44||May 31, 2011 09:45 AM|
|Discussion||Coax 370 brushless conversion||Fly-a-kite||Coaxial Helicopters||6||Dec 11, 2009 07:24 AM|
|Build Log||brushless conversion of walkera 53-1 into an AP coax||HyperHelis||Coaxial Helicopters||16||Dec 12, 2008 06:51 PM|