SimpleBGC Software User Manual



Board ver. 1.0

Firmware ver. 2.2

GUI ver. 2.2


Connection to PC

To connect the main controller board equipped with an FTDI interface to a PC you will need a USB-to-serial converter and a suitable software driver. For board versions with integrated USB interface you will need a miniUSB cable. For a USB connection you’ll need to install the appropriate software driver. Depending on your controller, the FTDI chip driver might be, or for the CP2102 chip use In both cases, after you install the driver and connecting the board, a new virtual COM port will be created. You will need to choose this COM port in the SimleBGC software (GUI) to initiate the connection.


The GUI starts in the English version of the user interface. To change the interface language, choose one in the ‘language’ menu and restart the program.


Follow these steps to connect your main controller board to the GUI software:


  • Connect the FTDI adapter cable with the right polarity (Black wire usually is the “ground” wire), or use mini-USB cable in case of USB port is present on board.


  • Start the GUI, select correct COM-port from the list, and click Connect”.

After the connection is established, all board settings and profiles will be loaded into the GUI. . You can re-load the current board parameters anytime by clicking the READ” button.


  • After adjusting parameters in the GUI you should write them to the controller board by clicking the “WRITE” button. Only the current profile parameters will be saved to the board. To return to the default settings push the “RESET TO DEFAULTS” button.


  • To choose a different profile (with different settings) select it from the list of profiles (located in the upper right corner of the GUI window). You can store different settings as three different profiles onto the controller board. You can switch profiles saved on the board by choosing the profile in the GUI or by pressing the MENU button on the controller board.


Remember that some settings are common for all profiles and can not be saved on a per profile basis. Parameters such as sensor orientation, hardware configuration, RC inputs, and motors outs are the same across   all profiles.


GUI Blocks

gui blocks



The GUI contains different functional blocks:


  1. Configuration block in the central part of the window, organized by ‘tab’:


  • Basic – Basic gimbal stabilization settings. Adjusting these settings is usually adequate to achieve good camera stabilization.


  • Advanced — More precise tuning options.


  • RC Settings – settings to control the gimbal roll/pitch/yaw orientation with RC inputs.


  • Follow Mode – settings related to special mode of the camera control.


  • Menu Button – Specify the behavior of the MENU button (located on the controller board or mounted externally)


  • Real-time Data — real-time sensor data monitoring. This screen is extremely helpful in tuning your gimbal performance. Firmware Update — Firmware and GUI software versions and update options.


  1. Connection — COM-port selection and connection status.


  1. Profile — Profile selection, loading, re-naming, and saving.


  1. Control Panel — graphic visualization of gimbal orientation angles in three axes.


  • Black arrows are displaying the angles, blue arrows are a 10x time magnification to provide higher precision. Thin blue lines shows the maximum deflection from the central, neutral point.


  • Blue digits show peak deflection amplitude. Using these numbers, stabilization quality can

be estimated.


  1. READ/WRITE/RESET TO DEFAULTS buttons. Resets all settings to the defaults.



  1. At the bottom of the screen, tips, status or error messages (in red color) are displayed . Overall cycle time and I2C error count is also displayed.


Basic Settings.


Note: Before tuning your controller, install the camera into the gimbal firmly and ensure your gimbal’s center of gravity is leveled as much as possible.



P,I,D – PID regulation parameters for all axis


  • P – describes the power of disturbance response. Higher values means a stronger response reaction to external disturbance. Raise this value until the stabilization quality of fast disturbances will be adequate. If the “P” value is too high, oscillations of the axis will start to be present. These oscillations will get worse if there are vibrations that reach the IMU sensor board. If oscillations occur, raise the “D” parameter by 1 or 2 units, and then try to raise the “P” value again.


  • D – The “D” value reduces the reaction speed. This value helps to remove low-frequency oscillations. A “D” value that is too high can cause high-frequency oscillations, particularly, when the IMU sensor is exposed to vibrations.
  •  I – The “I” value changes the speed at which the gimbal moves to incoming RC commands and to move the gimbal back to neutral. Low values result in a slow and smooth reaction to RC commands and to getting back to neutral. Increase this value to speed up the movement


  • POWER – maximum voltage supplied to the motors (0 – 255, where 255 means full battery voltage).  Choose this parameter according to your motor characteristics. Basic tuning:


  • Motors should not get too hot! Motor temperatures of over 80? will cause permanent damage to motor magnets.
  •   A Power value that is too low will not provide enough force for the motor to move the gimbal and stabilize the camera adequately. A low power value will be most noticeable in windy conditions, when the gimbal is not well balanced, or if the gimbal suffers from mechanical friction. Slowly lower the Power parameter to find its optimal value. Find the lowest value that still provides good stabilization and adequate holding torque.
  •  Raising the power equals raising the “P” value of PID settings. If you raise the POWER value, you should re-tune your PID values as well.


  • INVERT – reverse motor rotation direction. It’s extremely important to choose the correct motor rotation direction to not damage your gimbal. To determine the correct direction, set the P, I, and D values to 0 and the POWER values to 80 (or higher if your motors don’t produce enough force to hold/move the camera). Level the camera tray horizontally and click the AUTO button in the “Motor configuration” settings. The gimbal will make small movement to determine correct motor rotation direction. Wait for the calibration procedure to complete. Then, re-set your PID values and tune your Power values.


  • NUM.POLES – Number of motor poles. This value needs to be equal to the number of magnets in your motor’s bell. During the “auto” calibration process described above, this  value is automatically detected. However, this value is sometimes not correctly determined during the “auto” calibration process and will need to be verified and possibly corrected manually. Most brushless gimbal motors are built with 14 poles (or magnets) and utilize a DLRK winding scheme. Count your motor magnets and enter this value if the value is not correct in the GUI.


  • External FC Gain – Gain value for matching the gimbal data from your flight controller (optional).   For better stabilization and utilization of some additional features, the knowledge about the frame inclination angles is required. SimpleBGC IMU doesn’t provide such information. Most of FC have servo outs for connecting gimbals. This outs should be connected to SimpleBGC controller through EXT_ROLL and EXT_PITCH inputs.


  • Activate gimbal outs in FC and set range limits for angles you generally fly (for example ,+- 30 degrees of frame inclination should equals full servo range about 1000-2000).
  • Deactivate all filters and smoothing of FC gimbal settings (if present).
  •  In the RC-settings tab, make sure that inputs EXT_ROLL, EXT_PITCH doesn’t used to control gimbal. (i.e. are not chosen as source for any other RC control task).
  •  In REALTIME DATA tab, check availability of EXT_FC_ROLL, EXT_FC_PITCH signals, and make sure they are split to axes correctly. (Frame roll angle tilting should cause EXT_FC_ROLL change in approximately 900..2100 range. The same is for pitch.)
  •  Connect power supply, and setup stabilization as described above (tune POWER, INVERT, PID)
  •  Push AUTO button in FLIGHT CONTROL GAIN group, and smoothly incline copter frame to different directions by all axes for 10-30 seconds.
  •  Push AUTO button again to complete calibration. (Calibration will stop automatically after some time too). New gains will be written into EEPROM and shown in the GUI.


NOTE : You may skip this step and leave zero values at initial setup.



  • Sensor — Specify your IMU sensor board’s orientation and position on the gimbal . For a standard IMU sensor installation, look at the gimbal from behind just like  the camera will view out from the gimbal. Viewing the gimbal in this way, the UP and Right direction will match the Z and X axis. You can place the IMU sensor in any direction, keeping its sides always parallel to the motor axis (be very accurate here, it is a very important to precisely align the sensor and mount it firmly). Configure your IMU orientation in the GUI. The correct configuration should result in the following:


  • Camera pitches forward – the PITCH arrow spins clockwise in the GUI.
  • Camera rolls right – ROLL arrow spins clockwise in the GUI.
  • Camera yaws clockwise – YAW arrow spins clockwise.
  •  Skip Gyro calibration at startup – With this option, the board starts working immediately after powering it on, using the saved calibration data from last gyroscope calibration call. However, stored calibration data may become inaccurate over time or during temperature changes. We recommend you to re-calibrate your gyro from time to time to ensure the best performance.




RC Settings tab


  • RC Input Mapping – here you can assign  hardware RC inputs to virtual control channels.

There are 4 hardware inputs provided on the board for RC Radio control connections, which you can assign to control any of three channels, one for each axes, and one command channel. If control for an axis is not needed, leave the option at “no input”.


  • SOURCE — you can choose one of three input signal formats:


?   PWM – Pulse Width Modulation. Most widespread RC output/input signal type.


?   Analog — analog input (voltage from 0 to +5 volts). For example, joystick variable resistor provides such signal. Each RC port have Signal, +5V and GND pins. Connect Signal to center contact of variable resistor, +5V and GND to side contacts. Also you need to solder (or close jumper on different board versions) to supply RC port with +5V. Normally it is disconnected, because RC may have its own power supply.


?   PPM-Sum – PWM format modification, in which every channel transmits sequentially through one cable. If your receiver has SumPPM signal out, connect it to RC_ROLL input. (Read your receiver instructions to be sure it has SumPPM out). Than you can assign one of 8 RC channels to each control channel.


?   A special channel CMD allows to execute some actions. You can configure 2- or 3-position switch on your RC for specified channel, and assign it to CMD channel. Its range is split in the 3 sections : LOW ,MID ,HIGH. When changing the position of your RC-switch, signal jumps from one section to another, and assigned command is executed. The full list of available commands is described  in the section “MENU BUTTON” of this manual.


  • MIN.ANGLE, MAX.ANGLE – range of the angles controlled from RC. To inverse the control, set higher value first, and lower value second. For example, if you want to configure a camera to go from leveled position to down position, set 0-90 (or 90-0 to inverse).


  • ANGLE MODE — RC stick will control the camera angle directly. The full RC range will cause a camera to go from min to max angles, as specified above. If RC stick doesn’t move, camera stands still. To change the speed of rotation, change the I-part of the PID settings.


  • SPEED MODE — RC stick will control the rotation speed. If stick is centered – camera stands still, if stick is deflected, camera starts to rotate, but does not exceed min-max range. Speed is slightly decreased near min-max borders. Speed of rotation is proportional to stick angle and the SPEED setting. RC control inversion is allowed in both of control modes.


  • LPF – RC signal filtering. The higher is value – the smoother is reaction to the stick commands.

This filter cuts fast stick movements, but adds some delay.

Follow Mode


There is a special control mode, when the camera “follows” for a tilting of the outer frame, but eliminates small frame jerking.  Several modes of operation are possible:


•       Disabled – camera is locked to ground and may be rotated only from RC.


•       Follow Flight Controller – camera is controlled from RC together with mixed signal from external flight controller (FC).  Almost every FC has servo outputs to drive a gimbal. It feeds the information about the frame angles to this outputs, in the PWM format that all servos understand. SimpleBGC can get this information and use it to control a camera. It is necessary to connect and calibrate external flight controller (see EXT.FC GAIN settings). After calibration you can setup the percentage values for ROLL and PITCH axis, so the camera will follow frame inclinations.


•       Follow PITCH” mode – this mode is dedicated to hand-held systems. FC connection is not required. In this mode, the position of the outer frame by all of 3 axes is estimated from the motor’s magnetic field. This means that if motor will skip steps, position will be estimated incorrectly and operator should correct camera by hands, returning it to proper position.  You should use this mode carefully for FPV flying, because if camera missed its initial direction, there is no chance to return it back automatically.


•       Follow YAW – the same as Follow PITCH, except it can be used separately only for YAW axis.

For example, you can lock camera by ROLL and PITCH axis by selecting “Disabled” option, but still control camera by YAW by enabling “Follow YAW” option.


The speed of rotation in all modes of operation is defined by I-term of the PID settings. There are additional settings to tune follow mode:

•       Deadband, degrees: you can set the range where the rotation of an outer frame does not affect the camera.  It helps to skip small jerks when you operate gimbal by hands.


•       Expo curve: you can specify the strength of the control when outer frame declines from neutral position. For example: when the expo curve is enabled (i.e. is not flat), small or medium declination of an outer frame will cause very fine control even if I-term is configured high. But the strength of control exponentially grows when angles of declination becomes close to 60 degrees.  It gives a big freedom in camera operation: from fine and smooth control to very fast movements.


•       PITCH offset: it is a very important to properly configure the initial position of motor’s magnetic poles, because all further calculations use this information. When you turn on the system with the “Follow PITCH” mode enabled, camera must stays exactly parallel to PITCH holding arm:



If camera is in wrong position, you need to adjust the offset setting. Enter values by hands or use an

AUTO button.


•       YAW offset: the same as PITCH offset. It helps to correct the camera YAW axis angle related to outer frame.  Note: just after adjusting this setting and writing to the board, camera does not reflect changes. You need to reset controller to see changes in the YAW offset.



You can switch between modes on-the-fly by activating different profiles. Camera will keep their position between modes.




Advanced tab


  • AHRS – options influencing camera angle determination accuracy.


?   Gyro trust – The higher is value, the more trust to the gyro data compared with the accelerometer data when estimating angles. It can reduce errors caused by accelerations during moving, but also decreases gyro drift compensation, resulting in horizon drift in time. For smooth flying, it is recommended to set low values (40-80), which will give more stable horizon for longer time. For aggressive flying, it’s better to set higher values (100-150).


?   Accelerations compensation – enable it to use a physical model of multirotor to compensate accelerations during flight. This option works only when external FC is connected and calibrated.


  • Serial port speed — changes baud rate used for serial communication. Decrease it when using over-the-air serial adapters that can’t work on maximum speed. The GUI can auto-detect the baud rate configured in the board.


  • PWM Frequency — sets the PWM frequency used to drive motors by power stage. Two modes are available : Low Frequency (in audible range) and High Frequency (outside audible range). In the high frequency mode it is necessary to increase  the POWER setting a bit.


  • Motor outputs — you can assign hardware motor outs for any of stabilization axes. For example, you can use second controller for YAW stabilization and  set it up this way:


ROLL=disabled, PITCH=disabled, YAW=ROLL_OUT, and connect a YAW motor to hardware ROLL_OUT.


Connection diagram:


With a single controller you can stabilize and control any of two axes. With 3rd axis expansion board is connected, you can stabilize and control all three axes.


Connection diagram:



  • RC Sub-Trim – allows to correct transmitter inaccuracy.


?   ROLL, PITCH, YAW trim – central point trimming. Central point here is PWM 1500. It’s better to trim it in transmitter. But in case of it is not possible (when using joystick, for example), you can use AUTO function in the GUI. Just place stick in center, and press AUTO button. Actual data becomes new center point. Press WRITE button to apply settings.


?   Deadband — adjusts a dead band around neutral point. There’s no control while RC signal is inside this range. This feature works only in SPEED mode, and helps to achieve better control by eliminating jitters of stick around neutral point.


?   Expo curve – adjusts the curvature of an exponential function, that allows to get precise control from RC in the range of the small values, but rough and strong control near endpoints. Works only in SPEED mode.


·                   Sensor


?   Gyro LPF – adjust filtering gyro data. It’s not recommended to set values different than 0, because it will make adjusting PID controller harder. You can experiment with this.


?   Gyro high sensitivity – Increase gyro sensitivity twice. Use this option for big-sized DSLR cameras, in case if your PID settings are close to upper limits, but stabilization still not good. Increasing gyro sensitivity equals to multiplying P and D values by 2.


?   I2C Pullups Enable – turns ON built in I2C pull-up resistors for SDA and SCL lines.

Use function on only if sensor doesn’t work properly (i.e. there are  too many I2C errors). WARNING! Built in pull-ups can make sensor work better, but voltage levels exceed its limits and sensor may be damaged in very rare cases.




Menu Button


If you’ve connected menu button to BTN connector on the controller, you can assign different actions to it.


Available actions:


  • Use profile 1..3 — loads selected profile


  • Calibrate ACC – accelerometer calibration, works the same as button in the GUI.


  • Calibrate Gyro – gyroscope calibration.


  • Swap RC PITCH – ROLL — temporary swap RC inputs from PITCH to ROLL. In most cases only one PITCH channel is enough to control a camera in 2-axis systems. Before a flight you can assign control from pitch channel to roll, and make a camera precisely leveled. Activating this function again swaps channels back, and saves roll position in the static memory.


  • Swap RC YAW – ROLL — like the previous.


  • Set tilt angles by hand – motors will be turned off, after that you can take the camera in hands and fix it in the new position for a few seconds. Controller will save and hold the new position. This function may be useful to correct camera position before flight if there is no RC control connected.


·                   Reset controller


Realtime Data tab


In this tab you can see raw sensor data stream, and logical RC input levels.


  • ACC_X,Y,Z – accelerometer data.


  • GYRO_X,Y,Z – gyroscope data. Helps to determine quality of P and D settings. Disturb gimbal by hand and see trace. If it looks like sine wave, D setting is too low and gimbal tends to low- frequency oscillations. If some noise is always present even without any disturbance, D setting is too high and gimbal tends to high-frequency self-excitation.


  • DEBUG_1..4 – used in development and experimental firmwares.


  • ERR_ROLL,PITCH,YAW – stabilization error graph. Same as peak indicators on the control panel and shows maximum deflection angle.


Each graph can be turned on or off, scale can be adjusted for Y axis. You can pause the data transmission at any time.


 Setup step-by-step sequence


1.   Adjusting the mechanics


Mount the camera on the tray and balance the gimbal in all three axes. Stabilization quality is hardly connected to the balance quality. To check your balance, pick your turned off gimbal in hands. Make fast motions along all axes, trying to catch resonance point and swing the gimbal. If it is hard to do  – gimbal is balanced correctly.


NOTE : With good balance and low friction, It’s possible to scale down power consumption and keep good quality of stabilization


If you rewound motors by yourself, it’s recommended to check winding. Remove motors from gimbal, connect them to controller and set parameters P=0, I=0.1, D=0 for each axis and set enough POWER. Connect main power supply. Motors should spin smoothly, while rolling the sensor. Little jitter is normal due to magnetic force between rotor and stator (“cogging” effect).


Pay great attention to sensor installation. Its axes must be parallel with motor axes. Pay attention to mechanical links. They must be a VERY RIGID and backlash-free. Sensor provides feedback data for stabilization, and even any little freedom or flexibility will cause delays and low-frequency resonances. This can result in difficult PID setting, and unstable work in real conditions ( frame vibrations, wind, etc)





2.   Calibrating the sensor


Gyro is calibrated every time you turn controller on, and lasts about 4 seconds. Try to immobilize sensor (camera) as hard as you can in first seconds after powering on, while signal LED is blinking. After powering on you have 3 seconds to freeze gimbal before calibration starts.


If you activated option “Skip gyro calibration at startup”, gyro is not calibrated every time and controller start working immediately after powering up. Be careful and recalibrate gyro manually, if you will notice something wrong with IMU angles.



Calibrating Accelerometer

You must perform ACC calibration only once, but it’s recommended to recalibrate it from time to time or when the temperature significantly changes.


  • Simple calibration mode: set sensor horizontally, and press CALIB.ACC in the GUI (or menu button, if it’s assigned). LED will blink for 3 seconds. Try not to move sensor during calibration. At this step no matter how camera is leveled. You are calibrating the sensor, not the camera!
    • Advanced mode (recommended): perform calibration in simple mode as above. Then turn sensor in order that each side of sensor looks up (6 positions at all, including base one). Fix the sensor in each position, press CALIB.ACC button in the GUI, and wait about 3-4 seconds, while LED if flashing. The order  does not matter, but the base position always goes first (because the simple calibration cancels a result of advanced calibration). You have not to press WRITE button, calibration data is written automatically after each step.



NOTE: Precise accelerometer calibration is a very important for horizon holding during dynamic flying or YAW rotation.


4.   Tuning basic settings


  • Connect the main power supply.


  • Set POWER according to the motor configuration (see recommendations above)


  • Auto-detect number of poles and motors direction.


  • Adjust PID controller. To check stabilization quality, use peak indicator in control panel.

Incline the frame by small angles and try to minimize peak values by increasing P, I and D to its maximum. You may use gyro data from Realtime Data tab to estimate stabilization quality, too.


  • At this time it is possible to get 1 degree mistake , otherwise 2-3 degrees is a good result to.




5.   Connecting and configuring RC


•      Connect one of the free receiver’s channels to RC_PITCH input, preserving right polarity In the RC Settings tab:

•       Set SORCE=PWM


•       Assign RC_PITCH input to PITCH axis


•       Leave all other axes and CMD as “no input”


•       For PITCH axis, set MIN.ANGLE=-90, MAX.ANGLE=90, ANGLE MODE=checked, LPF=5,

SPEED=10 (not used in angle mode)


•       Connect the battery to the main controller and receiver, and check that RC_PITCH input receives data in the “Realtime Data” tab (slider should be blue filled and reflects to stick movement)


Now you can control the camera from your RC transmitter, from -90 to 90 degrees. If you are not satisfied with the speed of movement, adjust the I-term setting for PITCH in the “Basic” tab.


Try the SPEED mode and feel difference with the ANGLE mode. Connect and tune remaining axes the same way, as required.


6.   Testing gimbal in real conditions


Connect controller to the GUI and turn ON multirotor motors, holding it above your head. Check the vibrations on the camera by using Realtime Data tab / ACC raw data. Try to decrease the level of vibrations using soft dampers.


NOTE: Brushless motors versus traditional servos provide faster reaction, but less torque. That’s why it’s hard for them to fight against wind and air flows from props. If you are developing multirotor frame by yourself, try to avoid this influences (for example, lengthen arms a bit, or tilt motors away from center or place camera above props in case of H-frame). Also keep in mind, that when copter moves with high speed, an air flow is deflected and can affect the gimbal.





Status LED


There are 2 LEDs onboard. Red led lights when power is connected. Green/blue LED  signals actual state of the system:


  • LED is off — pause before calibration, to take hands off or to level gimbal.


  • LED blinks slowly – Calibration in action. Freeze gimbal during this process.


  • LED blinks fast — system error, stabilization cannot be performed. To check error description, connect to GUI.


  • LED is on — normal operation mode.


  • LED is on, but blinks irregularly – I2C errors appears.


Also, additional LEDs may present to signal serial communication on RX and TX line.




Connecting YAW expansion board.


Main board contains only two motor drivers, and can stabilize two axes. Extension board allows to get stabilization for all three axes. It’s connected with I2C and gets commands from main board.


No extra sensor is needed.


Connection diagram:


To activate 3rd axis, go to Advanced / Motor outputs and set YAW=YAW ext.board


NOTE: The expansion board needs extra power supply to operate. When you are tuning gimbal connected to PC, It can’t get power supply from FTDI or USB, and therefore may not be recognized by the main board.



Status LED on expansion board shows current mode of operation:


  • LED is OFF – power supply is not connected, or short-circuit protection in action, or current overload detected (protection strategy – turn motors off for 1 second)


  • LED is ON – power supply connected, but no I2C commands received.


  • LED is ON and blinking – normal operation mode.


© 2013 Basecamelectronics®