The Assan GA250 is nifty little gyro for $9,99, unfortunately it is very hard (or impossible) to get it to hold the tail in aggressive maneuvers with the original firmware, it just does not have enough adjustments. Don’t worry, there is a solution; flash a custom firmware to your GA250! There are at least two custom firmwares for the GA250 that I know of, but this how-to will deal with OlliW’s (site in german) custom firmware. This how-to is based on “Idiot’s Guide to Olliw’s GA250 Firmware” -pdf. The custom firmware gives you a lot of adjustments with which you should be able to get the gyro perform as good as a Spartan Quark, ie. rock solid tail.
The procedure is fairly simple:
Flash the gyro with a bootloader
Upload the custom firmware with the bootloader
Configure and go flying!
All the files required for this are included in the .zip available from here (site in german, try to find a zip archive). If you want the newest firmware (v0.16 at the time of writing this) you need to register (and wait for OlliW to confirm your registration).
Flashing the bootloader
The first step is to flash the bootloader. To do this you need to open the gyro and solder wires to the gyros in-system programming (ISP) pads:
After you have attached your AVR programmer to the ISP pads (Vcc is 5V), you need to flash a file named “BL_4GA250CpGyro_BlackServoPlug.hex“. For this operation I used my bus pirate as a programmer. I just basically soldered short pieces of wire to the pads and attached the clips to them (after you have flashed the bootloader, you can flash the gyro through the bootloader):
Before flashing the image you need to erase the AVR (after this there is no going back! You will be unable to get the original firmware back) and set the correct fuses (replace the programmer/port with whatever programmer/port you are using):
avrdude -c buspirate -p m8 -P /dev/ttyUSB0 -e
avrdude -c buspirate -p m8 -P /dev/ttyUSB0 -U lfuse:w:0xBF:m
avrdude -c buspirate -p m8 -P /dev/ttyUSB0 -U hfuse:w:0xDC:m
After setting the fuses you can just flash the bootloader:
avrdude -c buspirate -p m8 -P /dev/ttyUSB0 -U flash:w:BL_4GA250CpGyro_BlackServoPlug.hex
Flashing the firmware
After you have flashed the bootloader, you need to flash the actual firmware through the servo plug. For this you need a USB-to-serial adapter with a chip made by FTDI like the FT232RL. First thing you need to do is install the VCP drivers for the FTDI chip from their website: FTDI. You need to invert the TXD and RXD pins with the FT_prog.exe included in the .zip. You do this by pressing “Scan for devices” then from the tree menu on the left go to Hardware_Specific -> Invert_RS232_Signals and check the values for “Invert TXD” and “Invert RXD” on the window on the right. Then you just press the “Program device” button on the toolbar.
After configuring your FTDI adapter you need to put a 100ohm resistor between the RXD and TXD, then you connect the RXD pin to the signal pin on the servo plug (the green wire). You also need to power the gyro, you can do this by attaching the gain plug and the rudder signal plug to your receiver OR you can attach the 5V line and ground from your FTDI adapter to the red gain plug (middle wire is 5V, brown wire is ground). If you power the gyro from your receiver you also need to attach the ground from your FTDI adapter to the brown wire in the servo plug.
After you have attached your gyro to your FTDI board, run the AVRootloader.exe. Select the correct COM port and press the connect button. After you have pressed connect, power on the gyro. The AVRootloader should connect to the gyro, then you can just press the”program” button to flash the firmware. You can monitor the flashing process from the “protocol” tab.
After this you can configure your gyro with the AvrConfig.exe! It is also possible to configure the gyro with a self-made programming box for which there is also a firmware available (included in the zip). Here is a quote from the guide that describes the basic procedure for configuring your gyro:
Olli provided some instructions, which are basically a procedure to find the right values for
the most important gyro parameters. Here is my German to English translation of that.
1. Gyro in RateMode: Set up your gyro in rate, you start dealing with only one parameter first the Gain. When your helicopter is not acting like it should in rate mode, chances are low that it does in HH mode. When you face some issues here to stabilize your tail, make sure that you iron out any mechanical issues before you continue.
2. Gyro in HHMode and De-Acceleration Limit = 30: The Rudderfilter/limiter is at 30 almost completely off and now you just have to work with two parameters: Gain and PID I. Start with a lowered PID I and fly some pirouettes. Look how the tail stops after the pirouette. Is the tail after a stop kind of pulled back again, your PID I is too low. When you get a bounce after a stop, its too high. Try to adjust your PID I and Gain, until your tail ends a piroutte stop, with one short but strong backbounce. Thats the ideal setting.
3. Gyro in HHMode, Gain and PID I when the right parameters are found as in (2), start to lower the De/Acceleration limit Right step by step. The short but strong backbounce should become lesser and lesser. Find the right value for you. You can elimiate the backbounce completely, but then your tail might feel sluggish. I like to have a slight backbounce, the tail feels more locked in for me.
4. Go flying and adjust your gain until there is no wagging in any kind of flight situation.