bool DoRoll(double rollAngle, string sPlane = "Roll")
        {
            //Echo("rollAngle=" + Math.Round(rollAngle,5));
            float   targetRoll = 0;
            IMyGyro gyro       = gyros[0] as IMyGyro;
            float   maxRoll    = 60; // gyro.GetMaximum<float>(sPlane);

//            float minRoll = gyro.GetMinimum<float>(sPlane);

            if (Math.Abs(rollAngle) > 1.0)
            {
                targetRoll = (float)maxRoll * (float)(rollAngle);
            }
            else if (Math.Abs(rollAngle) > .7)
            {
                // need to dampen
                targetRoll = (float)maxRoll * (float)(rollAngle) / 4;
            }
            else if (Math.Abs(rollAngle) > 0.5)
            {
                targetRoll = 0.11f * Math.Sign(rollAngle);
            }
            else if (Math.Abs(rollAngle) > 0.1)
            {
                targetRoll = 0.07f * Math.Sign(rollAngle);
            }
            else if (Math.Abs(rollAngle) > 0.01)
            {
                targetRoll = 0.05f * Math.Sign(rollAngle);
            }
            else if (Math.Abs(rollAngle) > 0.001)
            {
                targetRoll = 0.035f * Math.Sign(rollAngle);
            }
            else
            {
                targetRoll = 0;
            }

            //				Echo("targetRoll=" + targetRoll);
            //	rollLevel = (int)(targetRoll * 1000);

            for (int i = 0; i < gyros.Count; i++)
            {
                gyro = gyros[i] as IMyGyro;
                gyro.SetValueFloat(sPlane, targetRoll);
                gyro.SetValueBool("Override", true);
            }
            return(true);
        }