GUI: https://www.basecamelectronics.com/files/SimpleBGC_GUI_2_72_0.zip User Manual: https://www.basecamelectronics.com/files/v3/SimpleBGC_32bit_manual_eng.pdf Serial API: https://www.basecamelectronics.com/files/SimpleBGC_2_6_Serial_Protocol_Specification.pdf 2.72.0 - A lot of minor bugfixes to improved overall reliability of the system - On "Emeregency stop" error it's saved last system state and details ("Extended, "Plus" only) - GUI: IMU advanced multipoint calibration is improved: data collection is more reliable and error-protected - GUI: "Analyze" tab - new test "Level of vibrations" showing an amplitude spectrum captured by IMU sensor in order to estimate the level of vibrations on any platform where sensor is mounted - stability is improved: the 'frequency range to test' is taken into account to prevent sending low-frequency signal causing big deviations - MavLink new flag in command DO_MOUNT_CONTROL: FLAG_TARGET_PRECISION, intended to enhance tracking accuracy for a high-rate MODE_ANGLE, where the gimbal tracks the commanded target more aggressively. - MavLink new message supported: TIMESYNC (#111) in protocol V2.0 - New parameter - "Encoders" - "Settings" - "Limit returning speed" - "Tripod mode" extended: - added a detection of frame still condition to automatically toggle tripod mode on/off to compensate heading drift when used on cranes, rails, etc.; - "heading correction factor" affects tripod mode as well - A new control modes in the "RC - "Operation mode": - new flag "Control in motor coordinates" ("servo mode"), when the axes of rotation are linked to the motors and gimbal acts like a PTZ head; - new Euler order "Screen-realted X,Y,Z" - when the axes of rotation are linked to the video frame (a very basic support, SPEED mode only). - Impoved an operation in 'local' control modes (where axes of rotation are linked to motors: "ROLL - PITC(M) - YAW(M)", "PITCH(M) - ROLL - YAW(M)"); if OuterP is not zero, gimbal keeps the constant motor angles for 'local' axes. - New flag "RC" - "Acceleration limit" - "Auto-adjust for weak motors" to automatically reduce acceleration that motor can't handle - Improved performance near the encoder's software limits: in SPEED mode, gimbal de-accelerates with the configured "ACC Limit" rate and stops exactly at the limit rather than hitting it at a full speed. - New option in "Service" tab to select the startup profile (by default it's the last writtent profile) - New function "Service" - "Retracted position", with the corresponding menu command. Gimbal goes to pre-defined position and stays there until the "Home position" command is sent. - "Frame inversion" auto-detection was changed to keep consistency: it does not update the sensitive parameters in EEPROM anymore, it updates them in memory. The only flag "Is in inverted position" is updated. Serial API: - CAN_DRV telemetry can be requiested via CMD_DATA_STREAM_INTERVAL + CMD_CAN_DRV_TELEMETRY - New command CMD_TRANSPARENT_SAPI (#151) to send arbitrary data to a distant serial port over CAN bus - Better errors handling: commands return error codes on failure. BUGFIXES: - GUI: TCP-IP and UDP connection didn't work - In the "Analyze" tool, the tests "Plant (closed loop)", "Plant+filters (closed loop)" didn't run correctly - In 1,2-axis system angle error was not corrected if the re-assigned Euler stabilized axis differs from the motor's native axis. - Accidental error "Wrong initial position" for a geared motor configuration with the frame IMU - For the "Extended Long", "Tiny" controllers with GD32 MCU: - Encoder PWM interface didn't work - Problems accessing internal EEPROM - System didn't work with CAN_IMU versions 1.20 - 1.24; - CAN_IMU firmware couldn't be updated - If CAN_DRV is assigned but not connected, cycle time was distorted - "RC Settings" - "Limit jerks" didn't work - CMD_SET_ADJ_VARS_VAL could overwrite parameters in EEPROM when parameters were written internall after calibrations 2.71b9 All boards: - IMU auto-discovery sequences changed: frame IMU can't be used as a main IMU (need to be selected explicitly from the "IMU Model" drop-down) - New mode added for LED indication: "Serial API communication" under the "Service" - "Buzzer and LED" - "LED indicator". It blinks slowly when there is an incoming serial API data on any port. - No more limitation of 720 degrees max. rotation in scripts, timelapse, etc. - New option 'Service' - 'Buzzer and LED' - 'External buzzer output' - New option 'Service' - 'Automated tasks' - 'Auto-pass motor's restricted area' allows to pass over angles that motor can't reach when being commanded, by making a quick 360-degrees rotation in opposite direction. "Extended" family: - Bugfix: CMD_DATA_STREAM_INTERVAL didn't work via MavLink V2 tunnelling extension - The IC-MU encoder internal calibration can be processed using GUI w/out need of extra tools and software. - New function "Hardware" - "Sync motors" to mechanically align two motors working in parallel for a single axis. - New flag "Disable follow mode at startup" - Bugfix: Vectornav VN200,VN300 it was displayed wrong quality status in GUI - CAN Drv: Option to leave motor outputs in 'floating' state when the motor is turned OFF, to reduce a break force (requires CAN_DRV firmware 1.26). - CAN Drv startup bugfix - Encoder Aksim2 via BiSS-C calibration bugfix Serial API: - new command CMD_CONTROL_EXT allowing multi-turn rotations exceeding 720 degrees in a single command; - CMD_REALTIME_DATA_CUSTOM was extended by the new variables: TARGET_ANGLES_20[] and IMU_ANGLES_20[] to correctly read angles exceeding 720 degrees. - CMD_CONTROL_CONFIG was extended by the new parameter JERK_SLOPE (the rate of change of an acceleration) responsigble on increasing smoothness of start/stop of the motion. 2.71b7 - Delayed IMU start: at startup, system waits for the response from GPS_IMU and CAN_IMU instead of generating "emergency stop" error - Reconnection to GPS_IMU and CAN_IMU when the connection is lost (max. timeout is 2000 ms) - fix CAN Drv startup problem + all changes from 2.70b7 release 2.71b6 - New IMU sensor is supported: ICM-42688-P - New "Serial Link over CAN" function to pass a serial data via gimbal's CAN bus between modules that has hardware serial port (main controller, CAN_IMU, GPS_IMU) - (CAN_IMU): add a support of an external sensor Murata SCHA63X (high-quality 6-DOF gyroscope and accelerometer) - The model of IMU sensor can be explicitly configured to prevent wrong auto-detection at startup + all changes from 2.70b6 release 2.71b0 (Experimental) Experimental version includes all the functionality available in 2.70b0 version, and adds new: "Extended" family: - GPS_IMU v1.2 can be connected by the CAN bus and used as main IMU - Improved CAN bus communication - (GUI): CAN_IMU supports new external sensors: Vectornav VN100, VN200, STIM210, STIM300 2.70b9 - Bugfix: CMD_DATA_STREAM_INTERVAL didn't work via MavLink V2 tunnelling extension Extended family: - The IC-MU encoder internal calibration can be processed using GUI w/out need of extra tools and software. - New function "Hardware" - "Sync motors" to mechanically align two motors working in parallel for a single axis. - New flag "Disable follow mode at startup" 2.70b8 - Bugfix: Vectornav VN200,VN300 it was displayed wrong quality status in GUI - New mode added for LED indication: "Serial API communication" under the "Service" - "Buzzer and LED" - "LED indicator". It blinks slowly when there is an incoming serial API data on any port. - No more limitation of 720 degrees rotation in scripts, timelapse, etc. - New option 'Service' - 'Buzzer and LED' - 'External buzzer output' - New option 'Service' - 'Automated tasks' - 'Auto-pass motor's restricted area' allows to pass over angles that motor can't reach when being commanded, by making a quick 360-degrees rotation in opposite direction. - Serial API: - new command CMD_CONTROL_EXT allowing multi-turn rotations exceeding 720 degrees in a single command; - CMD_REALTIME_DATA_CUSTOM was extended by the new variables: TARGET_ANGLES_20[] and IMU_ANGLES_20[] to correctly read angles exceeding 720 degrees. - CMD_CONTROL_CONFIG was extended by the new parameter JERK_SLOPE (the rate of change of an acceleration) responsigble on increasing smoothness of start/stop of the motion. - CAN_DRV: Option to leave motor outputs in 'floating' state when motor is turned OFF, to ease resistance to free rotation (requires CAN_DRV firmware 1.26). 2.70b7 - New HW periphery is supported: encoder AS5600L, IMU sensor IAM-20680 - "Adaptive gyro trust" algorithm is upgraded to make the system immune to short-term accelerations impacted IMU when using gimbal on drones, cars, big cranes, etc., without GNSS correction. - The way how software limits are applied is improved: break-down distance width now depends on speed, and other axes are less affected by the blocked motor - Bugfix: it might be a potential problem with Biss-C encoders combined with SPI encoder - GUI: data logger logs all variables displayed in the "Monitoring" tab, with the same rate as they are updated in the real-time data chart - "Regular" and "Tiny" boards with the encoder firmware: RC_ROLL PWM/Sum-PPM input functions can be optionally moved to AUX3 port by the flag "Swap RC_Serial-UART2 ports". If the flag isn't set, all functions (PWM/Sum-PPM/Serial) stay on the RC_ROLL port. In the previous version (Regular, Tiny board + encoders) PWM/Sum-PPM function was moved to AUX3 permanently. - "Analyze" tool is improved: the gimbal doesn't lose its position during the test and doesn't go into an infinite swinging loop - New options in block "Axes to stabilize for 1- 2- axes system": - introduced an adjustable range where the motor is aligned to the stabilized axis; - option to switch axis in runtime; - option to switch axis fluently in RC ANGLE mode; - New option "Angle mode floating offset" in the "RC" - "Operation mode": it allows to fluently switch modes from SPEED to ANGLE, having the camera keep its current position by shifting the middle point of the ANGLE mode range - Minor bugfixes 2.70b6 - MavLink new commands are supported: - MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN param3 = 1 - restart system - V2_EXTENSION - provide access to Serial API via MavLink, allowing to connect GUI or host controller to the gimbal connected to a UAV. Minor bugfixes: - IMU state shouldn't reset after the 'motors ON' command (particularly, the heading shouldn't change) - ANGLE command in scripts, following after the SPEED command, shouldn't cause jerks 2.70b5 - New menu commands: -"Tripod mode ON/OFF" - to eliminate YAW drift in static installations; -"Update 'RC sub-trim' parameter by actual RC values" - to adjust RC signal trimming on the spot; - Added a profile-based flag "Disable motor" to have an alternative way of switching between 1-, 2-, or 3-axes configurations on-the-fly. - Added a motion synchronization option in scripts to let all axes to travel equal time in commands ANGLE, INC - Minor bugfixes - improved follow mode initialization and toggling ON/OFF in runtime - for the hardware configuration Camera-ROLL-PITCH follow by the ROLL axis doesn't work when pointing up/down - GUI: advanced multipoint calibration interrupts with error "init phase is not static" - GUI: command-line mode extended by commands send_cmd, send_str - Serial API > CMD_CONTROL > new flag CONTROL_FLAG_MIX_FOLLOW allows to keep the follow mode working and mixed with the commanded motion. - "Extended" family: improved stability in systems with external motor drivers CAN_Drv when working mode is changed repeatedly (switchig profiles, toggling follow mode, etc.) 2.70b4 - Saves full set of parameters to the "Backup" slot (before, some parameters were missed; now "Backup" slot takes ~5Kb of EEPROM) - Add an optional speed parameter for the encoder field offset calibration (useful to reduce speed for heavy systems) - Bugfix: removes shakes and mixed up melodies at startup - Bugfix: since 2.69b1, touching the software limits by any motor caused a small loose in a position on other axes. - GUI: prevent shakes and messy sound when writing parameters to the board - "Extended" family: improved compatibility with the Vectornav VN300 external IMU - Improved handling of the startup actions ("Service" - "Execute action at system start") 2.70b3 - Bugfix: incorrect work near gimbal lock position in the Cam-YAW-ROLL-PITCH order of axes - Improved precision of CMD_CONTROL (MODE_ANGLE + FLAG_AUTO_TASK) near the target angle - GUI: add support of gamepad connected to PC (Windows only), allowing assigning analog axes and buttons to any function in a gimbal. "Extended" boards family only: - Enabling the software limits in runtime (via adjustable variables) for any axis correctly handles the multiple turns it has made; 2.70b2: - Bugfix: MavLink MESSAGE_INTERVAL not worked - Non-encoder firmware: improved startup synchronization of main and frame IMUs "Extended" boards family only: - MavLink protocol 2.0 is supported; - Supported TUNNEL messages, providing access to Serial API over MavLink channel 2.70b1: -Bugfix: YAW in follow mode with External IMU connected rotates wrongly after pressing "WRITE" button in GUI -Bugfix: GUI 2.70b0 saves *.profile format incompatible with older versions of GUI -! Critical bugfix: MavLink "send heartbeat" option does not work and system may fail to start when this option is enabled. -New encoder supported: RLS Aksim 2 (SPI, Biss-C); option to start encoder self-calibration from GUI -Serial API: - new parameter 'ACC_LIMIT' in 'CMD_CONTROL_CONFIG' allows changing the acceleration limiter filter in runtime - new parameter 'SYNC_TO_DATA' in 'CMD_DATA_STREAM_INTERVAL' allows synchronizing data packets to the internal update rate, to minimize delays. 2.70b0: Stable version. Release notes: https://www.basecamelectronics.com/downloads/32bit/#latest 2.69b8: - Bugfix: GUI under Windows starts enormously slow and COM port dropdown list freezes, if there are bluetooth serial devices resistered in system. 2.69b7: - Bugfix: GUI don't run on some Java + OS configurations - Minor bugfixes: Level ROLL/PITCH to horizon; "Tiny" board may fail to start with the 2.69b6 non-encoder firmware; - Add new parameter "Hardware" - "Misc. hw settings" - "Motor startup delay, ms", to energize motors on system initialization with delay - "Extended" series: -- add current sensor calibration -- Scripts: implemented temporarily variables and basic math operations for using in other commands and for data logging in GPS_IMU; added IF .. GOTO command for program flow control and cycles; 2.69b6: - Minor bugfixes: CAN_MCU power switch, "center YAW axis at startup" behavior - New option "Tripod mode" for gyro drift compensation when gimbal's frame is steady 2.69b5 - Minor bugfixes: startup actions, snap-at-startup after moving to home position - "Extended" version: -- new order of axes "CAM-ROLL-YAW-PITCH" is supported -- add a support of new parameters for CAN_DRV frw.ver. 1.09 -- new tool for the encoder non-linearity calibration in-place using IMU sensor (very experimental) -- Motor cogging correction: GUI displays calibration process and resulting LUT 2.69b4 - Add support of magnetic field sensor QMC5883L (wrongly labeled "HMC5883L" by some manufacturers of breakout boards) - Bugfix: long-lasting calibrations were terminated with the error "System was reset by watchdog timer" - Add an option to connect a magnetometer sensor directly to I2C port of the CAN_IMU sensor (requires firmware update of CAN_IMU) 2.69b3 - "Extended" versions: Fixed bug: non-functional automatic multipoint ACC calibration - Improved smooth operation near the extreme Euler angles and added possibility to enable/disable it ("RC" - "Gimbal lock smooth transition") 2.69b2 - Improved operation in the follow mode and remote control near extreme Euler angles - "Extended" firmware: - add support of KVH FOG gyroscopes - add support of encoder iC-MU (SPI) from iC-Haus - extended the list of supported encoders for CAN_Drv (1.07 firmware is required) 2.69b1 - Minor bugfixes 2.69b0 - New option "Service" - "Camera upside-down as working position": start system with the camera, or frame, or both positioned upside-down and keep working in this position - Minor bugfixes 2.68b9 - Bugfix: YAW encoder does not work in regular (non-encoder) version - Bugfix: Current limiter was not applied - Minor bugfixes 2.68b8 - Minor bugfixes and improvements 2.68b7 - Minor bugfixes - Optional delay of communication with the external IMU at startup "Extended", "Pro" boards: - Option to collect basic system statistics and store to EEPROM for further analysis. - Gyroscope biases online calibration using the external IMU as a reference - Advanced calibration of 12 parameters of gyroscope using the external IMU as a reference - Advanced multi-point calibration of 21 parameters of the main IMU sensor (accelerometer and gyroscope) 2.68b6 - New encoder model: MPS MA730 (SPI, PWM). - Bugfix: MavLink connection may hangs undr some specific conditions 2.68b4 - Encoder firmware: max. motor torque is increased by 15% - New menu command "Forced follow mode toggle ON/OFF". Use this mode for a fast camera movement. - Up to 5 extra buttons are supported, allowing a flexible configuration of their actions ("Service" - "Extra buttons") 2.68b3 - New encoder model: Allegro A1335 (SPI, I2C) - New option "Force follow mode by holding menu button" that can be used for a fast camera re-position Extended, Pro boards: - Bugfix: the "Emergency stop / high rate of CAN errors" may appear randomly even if no CAN devices are connected. 2.68b1 - New encoder model: TLE5012B (PWM, SPI) - On a profile switch, the profile number is signaled by the number of beeps of the buzzer. - Bugfix: mixed types of SPI or PWM encoders may work incorrectly - Minor bugfixes "Extended" and "Pro" boards: - New encoder model: Zettlex Incoder (5V SPI 14-21bits) - New function: 4th axis control signal output to optimize the frame position. It can be used any (geared) servo motor with the PWM input, or CAN_drv + BLDC motor + encoder. 2.67b3 - Solved a problem with the forbidden Euler angles (ROLL=90 for PITCH-ROLL-YAW, PITCH=90 for ROLL-PITCH-YAW) - now all axes support full 360 deg. rotation - "Extended" and "Pro" boards: improved work near gimbal lock condition by smart correction of the middle motor position. New parameter GLOCK_MID_MOT_POS_CORR_RATE - Minor bugfixes 2.67b2 - New encoder RLS AM4096 (I2C) - 12bit magnetic encoder - Minor bugfixes 2.67b1 - Option to replace the ADC 1..3 signal source to another RC source, if a device on the ADC input is not connected. - Bugfix: UART port used for external IMU or MavLink connection, may freeze system if an external device is enabled, but not connected. - (Encoder firmware) Tilted middle motor in hardware configuration (motor can be not orthogonal to others) - MavLink: support param #5..7 of the MAV_CMD_DO_MOUNT_CONFIGURE message (control in angular rate mode) 2.66b9 - (GUI) firmware upgrade over TCP/IP and UDP is supported - Minor bugfixes 2.66b8 - "Force to position by hands" function is improved for non-standard gimbal configurations (like 45-degrees tilted outer motor) - Bugfix: "frame upside-down auto rotate" was not working as expected - Possibility to change default melodies ("Service" - "Custom melodies") - (Encoder firmware) Option to change the width of the software limiter break-down area for each motor 2.66b7 - IMU precision is improved: better filtering of accelerations with the ACC LPF parameter, faster convergence if the gyroscope calibration is not precise. - (GUI): added option to forward all serial API commands from all ports to the currently connected port for a debugging. - (GUI) "MavLink" tab renamed to "External IMU" tab and extended by number of options for a correction of the internal IMU sensor by the external, high-grade GPS-aided AHRS/IMU. - "Extended" and "Pro" boards: Add a support of the Vectornav VN100, VN200 and the Inertialsense uAHRS external IMU sensors. - "Extended" and "Pro" boards: Fully automatic multipoint calibration of the accelerometer. - Disable the "beep" sound during IMU calibrations to not disturb sensors. - (GUI) Fixed problem with the firmware update when launching GUI using Java 9 - Magnetometer (compass) calibration algorithm slightly improved - Bugfix: software limits were not updated when applied "frame upside-down auto-detection" in the encoder firmware - Add new option "Service" - "Keep current position on system init" 2.66b2 - New option "MavLink control mode" - use it to disable the MavLink control and switch to regular RC/Follow control mode. Also, modes can be switched by the corresponding adjustable variable. - New option "Overall current limit" - if this value is set to non-zero, controller tries to estimate an overall current consumed by motors, and limits if exceeded. 2.66b1 - Add a support of the new IMU sensor ICM20602 and magnetometer HMC5983 - Recovery from backup: the special action "click 10 times and hold" of the menu button does not erase EEPROM, but recovers all settings from the "backup" slot, if it's saved in the "Service" - "Profile sets" group. - "Extended" and "Pro" boards: add a support of CAN_Drv modules 2.66b0 - MavLink: allow to specify new mounting positions for a flight controller: "Below the middle motor" and "On the camera platform" - Minor bugfixes 2.65b9 - Bugfix: the temperature calibration of the gyroscope, if present, was not refined by the subsequent regular calibrations. - New option: the Step Signal source may be enabled by holding of the menu button, to share its functionality with other functions where RC channel is assigned - Bugfix: "Frame auto-rotate" was applied incorrectly at startup. - New menu command "Motors OFF safely" prevents camera falling if gimbal is not balanced well. - Bugfix: Camera control in the MODE_ANGLE (from RC or by the CMD_CONTROL command) with the acceleration limits was not smooth under some conditions. 2.65b8 - Add a "jerks limiter" that limits the rate of change of an acceleration to get smooth S-curve in a speed profile when controlling gimbal from RC or from scripts. - New menu commands: "Snap to fixed angles", "Camera Rec/Photo event" - Serial API: event subscription model in the CMD_DATA_STREAM_INTERVAL allows for the external device to track various events in a gimbal. - Minor bugfixes: * Gyro calibration does not work when assigned to the "startup action" command. 2.65b7 - Menu command "Menu button press" supports emulation of the "long press" mode if linked to the RC CMD or trigger-type adjustable variables channels. - Minor bugfixes 2.65b6 - System can be configured to turn OFF motors when they are fully loaded for a long time, to prevent a damage when working gimbal is put in the bag, for example ("Service" - "Max. time to work under full load"). - (GUI) Add a group of buttons to indicate the currently active profile and to switch between profiles faster. - New option to create a special backup copy of all profiles ("Service" - "Profile sets" - "BACKUP" slot, "Auto-save to BACKUP slot"). This copy will be automatically used if for some reasons configuration is corrupted (it may happen if system is powered OFF accidentally when writing to EEPROM). 2.65b5 - Option to connect external LED and duplicate the main LED functionality ("Service" - "Buzzer and LED") - Option to configure a "parking position" - when selected motor goes outside it's working range, motors are turned OFF automatically, and turned ON again after returning back to the working range ("Encoders" - "Do parking outside limits"). - Reduced osciallations after big disturbance of a camera under the "Follow" mode; fix an issue related to a wrong direction of rotation if error angle >180 2.65b4 - New menu command "Invert RC XX" - inverts a direction of RC control for any axis. - New option "Encoders" - "Do not check limits at startup" - New option to calibrate 5 arbitrary RC inputs against "min", "max" and "neutral" points. 2.65b3 - PID Auto tuning is adopted for heavy systems by adding a new parameter. - New group "RC" - "Step signal source" adds six virtual channels to the list of available signal sources. The value in this channel is incremented by the fixed steps, triggered by the "high" or "low" levels of any assigned RC signal source. - "FOLLOW_PITCH" and "FOLLOW_YAW_PITCH" adjustable variables are redesigned to allow to control follow mode without the need of switching profiles. 2.65b1 - New option "Service" - "Execute action at system start" to activate any function by special combinations of RC/joystick sticks at system start. - New option "Service" - "Profile sets" that allows creating sets of profiles and switch between them. - Updated function "Force to a new position by hands" is located in the "Service" tab now, support snapping to pre-defined angles and variety of options. - (GUI) New function "Copy parameters between profiles" 2.63b0 - New parameter "Outer motor tilt angle" in the "Hardware" section that adds a support of non-orthogonal motor configurations. - Fixed possible problems with the AS5048(A,B) encoder in PWM mode - (GUI) Solved problem with the latest CP210x drivers 6.7.4 2.62b9 - New menu command "Repeat timelapse" - Add a support of WiFi (TCP/IP) connection to GUI software - Bugfixes 2.62b7 - New option to switch to different stabilization axes automatically or by profiles, for 1- or 2-axis gimbals - Minor bugfixes 2.62b6 - New flag "Don't power ON motor at system start" - New parameter "Follow range" what allow to set the range that differs from 60 degrees, hard-coded in previos versions. - (Encoder version) option to set the range of angles used for the calibration of electrical field with encoders. - (Encoder version) it's now possible to calibrate encoders in unusual positions. See updated encoder manual for details. 2.62b5 - New type of Adjustable Variables: look-up table. See User Manual for details - Minor bugfixes 2.62b4 - (GUI) New option to store settings into .profile files based on templates. Use it to prevent changing of unwanted parameters when sharing the .profile to other users. - (GUI) New option to manually tune the view level in the conf/view_level.properties: allows assigning a level for groups and individual UI controls. - (GUI) Fixed problem in the configuration utility for the bluetooth module HM-12 (BLE+EDR) - New type of Adjustable Variables: 'relative'. More details in the User Manual 2.6x. - Bugfix: inconsistent reading of the "RLS Orbis" (PWM) encoder at the zero crossing point - Bugfix: different types of PWM encoders may work together incorrectly 2.62b4, "Extended" and "Pro" controllers only + "encoder" firmware: - New feature "Motor non-linearities correction" - improve performance by compensating the cogging effect - New feature "Momentum of inertia". Used to reduce the latency of RC control. 2.62b3 - Bugfix: Encoder AS5048A(SPI) does not work, if connected two or three of them. - Bugfix: "Tiny rev.A": can not connect to the GUI via USB port - Minor bugfixes 2.62b2 - (GUI) Bugfix: changing of the view level clears selectd values in some of drop-down lists - Bugfixes 2.62b0 - (GUI) New "View level" menu to choose the level of complexity - (GUI) Settings was re-arranged and better grouped by their meaning - Minor bugfixes 2.61b8 - Bugfix: CAN_IMU connected by I2C: sensor's EEPROM is not accessable - Bugfix: serial port reading may impact stabilization in case of poor wireless connection - Gyro drift correction algorithm was slightly changed to be more stable under some conditions 2.61b7 - Bugfix: gyro drifts w/out ACC correction - PWM and SPI encoders can be mixed - Minor bugfixes 2.61b6 - New menu command "Setup and start time-lapse motion". See User Manual for more details. - New option "Follow" - "Disable follow mode by holding menu button": use it to disable follow mode temporarily by pressing and holding menu button (no need to switch profiles to lock camera for a short time). - New encoder type is supportd: RLS "Orbis" with PWM 459Hz, SPI interfaces. 2.61b5 - (GUI) New backup manager that allows to save an EEPROM image (containing all settings and calibrations) to the cloud; The password-protected 'factory' and up to 3 'user' backups are supported. - (Scripting language) New command "SET_ADJ_VAR" and new example of using it for drift-free timelapse shooting 2.61b4 - Bugfix in the searching of home position/hard limits at startup - Minor bugfixes 2.61b3 - Bugfix: IMU sensors may work incorrectly - Bugfix: MavLink gimbal control was inverted by YAW axis 2.61b2 - CAN_IMU sensor support via CAN/I2C interfaces. 2.61b1 - New options "Advanced" - "Sensor" - "Misalignment correction": allows to correct misalignemnt of the IMU sensor's internal axes relative to the camera's optical axis, or motor axes. Semi-automatic calibration is supported. 2.61b0 - New "Adaptive gyro trust" parameter: automatically decrease weight of gyroscope compared to accelreomter, if error between them grows high. If gyro drifts, the attitude error is accumulated during long period of time. This option allows to apply stronger correction if error goes outside 1-degree threshold. Also, this option improves IMU initialization if gyroscope calibration is not perfect. As a drawback, long-lasting lateral accelerations may impact IMU harder. - Serial API: new command CMD_CONTROL_CONFIG; command CMD_HELPER_DATA was extended by extra coordinate systems; - New option to move all motors to a home position at startup (encoder firmware only). It able to search home position even in the case of multi-turn freedom for particular motor. It is important to set 'Min' and 'Max' software limits 5-15 degrees ahead of hardware limits. - Automated motion tasks ("Look down", "Home position", etc) now have a separate configuration for speed and acceleration (Advanced -> Automated motion tasks) - New menu command to switch into portrait mode (ROLL=90) and back. System stays in this mode even on profile switching. In portrait mode, PITCH angle is limited to +-80 degrees, because the "Order of Euler angles" is set to "CAM-ROLL-PITCH-YAW". 2.60b4 - Bugfixes - New option for LED to blink battery charge level - New commands in scripting language; dynamic variables linked to RC signal sources; - 3 new menu commands "Rotate YAW 180 ..." that may be used to switch gimbal in "selfie" mode 2.60b2 - Bugfixes 2.60b0 - Minor bugfixes 2.59b9 - Bugfixes -(GUI): can fix problems with the firmware upgrade under modern MacOS versions 2.59b8 - PID auto-tuning: new option to update all profiles; tuning configuration is loaded from the board and stored in profile files; - (GUI): Option to enable 3rd serial port: UART2 (Rx: AUX3, Tx: not conected) - (GUI): Option to swap serial port pins: UART2 with the RC_SERIAL, that allows to restore RC_SERIAL port original functionality in the encoder firmware. 2.59b7 - Bugfixes 2.59b6 - Angle of motors can be used as a source in the "Adjustable Variables" to set a dependency of system parameters on the camera-to-frame relative position. Encoder version: - Motor over-heating protection is improved: more precise model, virtual temperature is shown in the GUI, new option to alaram and cut-off motors. 2.59b5 - Option to backup/restore IMU calibrations to a file 2.59b4 - Bugfixes - Script parser: properly handles speed below 0.07 degree/sec for very slow timelapses 2.59b3 - Bugfixes - Add a support of MavLink protocol for ArduPilot FC connection. Documentation will be available later. 2.59b1 - Bugfixes - Serial API was extended by new commands - (GUI) Option to disable using gyro signal from the frame IMU for stabilization, but keep using it it for the frame angle detection (may help in the case of high level of vibrations on the frame) - (GUI) Low-pass filter setting for frame IMU, if it's used for stabilization 2.58b9 - USB port communication in "Tiny" boards may loose data under some very certain conditions - (GUI) new option 'PID Gain multiplier' to extend the range of PID settings - New adjustable variables PID_GAIN_X, that gives a simple way to adjust PIDs without GUI connection by RC or potentiometer 2.58b8 - New types of encoders are supported for YAW axis in regular firmware: PWM and I2C. - Encoder field offset is calibrated automatically, no frame movement is required. - No overshoot problem after fast break of RC control (Outer PI loop algorithm was modified) 2.58b7 - New parameter "Magnetic linkage of a motor" to improve presision of stabilization; Auto-calibration of this parameter. - (GUI) Acceleration limiter setting was split per-axis 2.58b6 - Notch filter can be used as peak filter by setting the 'Gain' parameter to negative value - Notch gain is specified in dB instead of % 2.58b5 - Bugfixes - RC makes smother control in ANGLE mode 2.58b4 - Completely new automatic PID tuning algorightm: - Fast and reliable - Find most optimal PID gains - Flexible: can tune PID from zero or slightly ajust gains starting from the current values - Can tune other parameters, like low-pass filter - Has safety interrupts to prevent damage in case of wrong PID values - No GUI connection is required (can be run by menu button command) - New settings "Filters" - "D-term LPF filters" that can help to remove high-frequency oscillations in some setups and allows to set greater PID gains 2.57b0 -Bugfixes 2.56b9 -Bugfix: if a middle motor (ROLL in normal case) rotates over +-90 degrees, system becomes unstable -Minor bugfixes 2.56b8 -Bugfix: systems without 2nd IMU and encoders goes crazy when rotating by +-90 degrees by YAW axis -Bugfix: 1-axis system does not handle extreme angles properly 2.56b7 - Bugfixes 2.56b6 - Option to emergency stop if the motor angles reported by encoder, differs a lot from the angle reported by the IMU. 2.56b5 - New adjustable variables GYRO_HEADING_CORRECTION, FRAME_HEADING_ANGLE that helps to manually correct YAW axis drift - New option "Advanced" - "Set to normal position on profile switch" - ENCODERS: Encoder-to-motor gearing ratio can be adjusted; Uncertanity in angle in the geared setups can be removed with the help of 2nd IMU 2.56b4 - Bugfixes - Support of saving and restoring of calibation data to the IMU's EEPROM (if present) 2.56b3 - Gimbal control from scripting language was updated to better handle high-sped motion - Magnetometer (compass) calibration was significantly improved: - you do not need a GUI connection (allows to calibrate in the field by menu button) - ellipsoid approximation is used instead of simple min/max range - sound is emitted to help in calibration process 2.56b2 - Regular calibration of ACC and GYRO does not discard the results of temperature calibration but improves it; - ACC calibration at "normal" Z-top position does discard the results of 6-point calibration. 2.56b1 - Advanced algorithms of correction of mutual drift in both IMUs; "2nd IMU above YAW" position is more reliable now. - Magnetometer can be installed on the frame instead of the camera 2.56b0 - New option "ACC low-pass filter" that helps to improve the stability of the IMU angles under dynamic conditions like motion with short lateral accelerations 2.55b9 - New option to skip gyro calibration if gimbal is not fixed well during startup: it allows to start with fresh calibration for best quality, or to start immediately with the previous calibration. - Improved the range of working angles in 1- and 2-axes systems, making use of 2nd IMU or encoders. All 2-axes configurations are supported now. - New options for "RC" tab, "Order of Euler angles" parameter (more details is in the User Manual) - Add a support of ICM20608 gyro sensor (auto-detection) 2.55b8 - Improved the precision of RC control in the "Follow" mode 2.55b7 - New option "Follow" - "Apply offset correction when axis is not following" (it was set by default) - "Frame IMU below YAW+PID source" works correctly in all possible angles - New option "Follow" - "Follow rate inside deadband" to apply very soft control to keep camera always in the center of the deadband when working in the "Follow" mode. - New menu command: "Untwist cables" 2.55b6 - New checkbox "Advanced" - "Upside-down PITCH auto-rotation" - New option "Follow" - "Use frame IMU, if possible" to use 2nd IMU for the "Follow Mode" control, to make it more reliable - New menu command: "Center YAW axis" to move camera to neutral position by YAW - New menu command: "Level Roll, Pitch to horizon" - Support of encoder (rotary position sensor) on YAW axis in regular firmware - New option "Service" - "Blink profile number" - on-board LED will show currently selected profile - Serial API: CMD_CONTROL extended format allows to specify different control modes for each axes 2.55b4 - (GUI) New "emergency stop" option (stop motors in case of big rate of I2C errors) - System is stable in the "gimbal lock" condition, when YAW and PITCH motor axes are parallel. Useful for applications, where extreme angles of frame are possible (fixed wings, helmet mounts, etc.) - Bugfixes of previous 2.55x 2.55b3 (GUI) Bux fixed: cant connect to the board (GUI) Bluetooth module configuration dialog 2.55b2 - Core mathematics was completely rewritten, that gives more precise and reliable stabilization in extreme angles and in special cases. - New setting: "RC" -> "Euler order of axes". See User Manual v.2.55 for details. - (!?) New setting: mechanical order of axes configuration - Support of magnetometer. See User Manual v.2.55 for details - Option to enable Briefcase position auto-detection on-the fly when in "Follow" mode: just hold camera by hand and turn frame +-90 degrees. - (GUI) Serial-over-UDP connection to configure remote devices via network (WiFi, Ethernet, Internet). - Acceleration limiter works smoother in the "Follow" mode - Menu button pressed 12 times in series will reset "Serial speed" setting to default value 115200 - OuterP,OuterI gain increased about 5x times (if gimbal becomes not stabl after upgrade, it may be required decrease this values in the GUI) - Gimbal tries to keep position in the "Follow" mode when motors loose sync (miss steps), like in the "Lock" mode Encoder version: - More reliable soft limits. No need to set them for all 3 axes, you may leave zeros to disable limits for any axis - Bugfix: Encoder offset calibration may become wrong after firmware update - Bugfix: Follow mode + RC contol may cause random jerks in some cases - Back-EMF compensation is applied at full battery voltage amplitude. It allows to get max. available speed from motor even with low POWER setting. (Note: It may be required to re-tune "Magnetic linkage" parameter after upgrade to this version) 2.50b2 - New tab "Scripting" to upload and run user-written scenarios for camera movement - IMU temperature calibration and compensation. - New tool "Analyze" to make analysis of system response. - Notch filters have adjustable gain (0..100%) - "Motor outputs" settings group is changed to per-profile basis - GUI and firmware support Bluetooth Low-Energy (BLE) module communication (experimental) - New setting group "Outer PI controller" to adjust values for outer (cascade) PI controller (default value is 100 suit most setups) - New option "Swap frame and main sensors" to use frame IMU as main IMU and vice versa - New option "Gyro deadband" to cut off gyro noise around zero (that may be audible as 'white noise' in heavy setups) - New option "I2C high-speed". Use it carefuly: high speed mode may cause I2C errors. - Bugfixes: -Frame upside-down command loads default profile after reset -frame upside-down detection doesn't work if "skip gyro calibration" is disabled. -acceleration limiter does not work properly with the big speed setting in the "Follow" mode: camera overshoots target position -minor bugs related to accelerometer calibration - for ENCODER version only: -New encoder type "Analog". See updated manual http://www.basecamelectronics.com/files/SimpleBGC_32bit_Encoders.pdf -Different encoder types may be assigned to different axis -Option to adjust sound volume in the 'beep by motors' mode in the 'Service' tab -Bug fixed: frame upside-down switching is not correct -Several bugs fixed related to encoder calibration 2.43b8 - Bug fixed: in the Follow mode when the camera is pitched down about 90 degrees, its not controlled by YAW - Bug fixed: calibration of accelerometer in the simple mode did not reset extended mode calibration, making a result of simple calibration not correct. - (GUI): new option to enable auto-detection of system start in the upside-down mode - (GUI): New interactive dialog to detect sensor orientation - (GUI): New interactive dialog to calibrate sensors 2.43b7 - Bug fixed: "Estimate angle from motors" doesnt work in 2.43b6 - Second UART port to process Serial API commands: Rx goes to RC_ROLL, Tx goes to RC_YAW. It can be enabled in the RC tab, "RC_ROLL pin mode" parameter. - Spektrum satellite new binding and data format options (used in the "Bind RC" command and to decode spektrum protocol) 2.43b6 - (GUI) New command to backup/restore whole EEPROM (including all calibrations) - Analog joystick auto-detection: if signal at startup is outside +-50 of neutral point, analog input is disabled. Option can be enabled in the RC tab. - Several minor bugs is fixed 2.43b5 Matching GUI version: http://www.basecamelectronics.com/files/SimpleBGC_GUI_2_43b5.zip User Manual: http://www.basecamelectronics.com/files/v3/SimpleBGC_32bit_manual_2_43_eng.pdf Serial API specification: http://www.basecamelectronics.com/files/SimpleBGC_2_4_Serial_Protocol_Specification.pdf - Fixed several minor bugs in the firmware and GUI - Control of analog-type adjustable variables may be inverted 2.43b4 - New GUI tab "Adjustable variables" to change system parameters remotely in real-time: - 10 slots for trigger-type controls - 15 slots for analog-type controls - New sound model: if "Beep with motors" option is enabled, gimbal plays various sounds instead of simple beeps. - New Serial API commands to communicate with external I2C devices - New Serial API commands to store up to 128 bytes of user data in the EEPROM (may be usefull for third-party GUI or external application developers) - New RC signal source "API_VIRT_CH1..32" controlled via Serial API - PID Auto Tuning should give more precise results because of decreased error threshold - Better error handling on writing parameters to the board via slow connection. - (GUI) New menu option to save all profiles into single file. This file can be loaded back by standard "Load from file.." command - (GUI) New menu option to write all profiles to the board. - Updated examples for Arduino: http://www.basecamelectronics.com/files/SBGC_Serial_API_Examples.zip CHANGES RELATED TO THE SUPPORT OF ENCODERS: - Follow mode correctly works with encoders, and "Offset" parameter can be used to setup a startup angles. - "Manual set time" settings work in the follow mode, too. - Smoother operation with motors with big number of poles or low-resolution encoders. - New setting: "Motor's magnetic linkage" in the Encoders tab. See updated manual about encoders for more details: - New encoder type is supported: MA3 (10 or 12 bit PWM) - Bug fixed: after 4 full turns encoders gives wrong data and stabilization suffers - Bug fixed: the "Frame upside-down mode" now works with encoders properly (NOTE, THAT THIS FIRMWARE WORKS BADLY IF ENCODERS ARE DISABLED / NOT CALIBRATED. It allows just to tune PIDs before calibration of encoders.) 2.42b7 Matching GUI version: http://www.basecamelectronics.com/files/SimpleBGC_GUI_2_42b7.zip User manual: http://www.basecamelectronics.com/files/v3/SimpleBGC_32bit_manual_2_42_eng.pdf - Bug fixed: in Follow mode, when ROLL is locked, "INIT.ANGLE" has no effect. - New command LOOK_DOWN: Camera pithes down to 90 degree with the speed configured in the RC tab. - New command HOME_POSITION: Camera goes to home position (set by INIT.ANGLE for each axis) with the speed configured in the RC tab. - Add a 4-second delay after the "Upside-down mode" command is switched, to let to rotate gimbal to new position. - (GUI) New option "Remember last used profile", to make the profile (activated by RC or menu button) default. If disabled, system always starts with profile set as default from the GUI. - (GUI) Firmware upgrade now works under Mac OS and Linux. - (GUI) Option to log realtime data to CSV file for further analysis 2.42b6 Matching GUI version: http://www.basecamelectronics.com/files/SimpleBGC_GUI_2_42b6.zip User manual: http://www.basecamelectronics.com/files/v3/SimpleBGC_32bit_manual_2_42_eng.pdf Updated Serial API: http://www.basecamelectronics.com/files/SimpleBGC_2_4_Serial_Protocol_Specification.pdf - 4xPWM servo output with adjustale rate to output virtual channels decoded from RC input, or driven by Serial API - PID auto-tuning - Adaptive PID gains - Digital filters to remove resonances: 3 x Notch filters, 2nd-order low-pass filter - Bug fixed: upside-down settings lost after switching to different profile - "Frame upside-down" command now inverts RC control for YAW, together with inverting YAW motor and rotating second IMU - Bug fixed: should ignore CMD channel during system init - MOTORS_ON command resets system to home position - New option for second (frame) IMU: "Below YAW + PID source". It means, if Frame IMU is mounted below YAW motor, it can be used as data source for PID controller, and in some cases can give better result, than main IMU. - (GUI) UI elements re-arranged to adopt new settings and make groupping more consistent - (GUI) Separate LPF setting for RC and Follow Mode - (GUI) New setting "RC Inverse" (you can use it or switch Min. and Max. angles, as before) - Last used profile is saved as default when switched by service button, RC CMD command of from GUI. - Bug fixed: s-bus fast mode was not decoded correctly 2.41b4 Matched GUI version: http://www.basecamelectronics.com/files/SimpleBGC_GUI_2_41b4.zip - Bug with the Serial Control fixed (board hangs after first command sent via Serial API) - IMU: better handling of corrupted sensor data (wrong calibration, vibration, accelerated motion, etc.) 2.41b3 Matched GUI version: http://www.basecamelectronics.com/files/SimpleBGC_GUI_2_41b3.zip - Follow speed rate is decreased 4x times, range is increased to 0..255 - Changing sensor orientation in GUI does not reset calibration data - Fixed problems with RC control in Follow mode and Follow<->Lock transition - Battery voltage sensor drifting with time issue was fixed (but may be required to re-calibrate it) - (GUI) New extended debug variables RMS_ERR_X, FREQ_X helps to detect problems with oscillation - New button command "Frame upside-down". Use it to quickly re-configure system for new frame position (YAW motor is inverted, second IMU orientation is updated) 2.41b2 Matched GUI version: http://www.basecamelectronics.com/files/SimpleBGC_GUI_2_41b2.zip - Bugfix: calibrate poles and direction did not work as expected - 'Beep by motors' option: motors emit sound instead of internal buzzer, when motors are energized. - Lost of synchronization detection: -better recovery from this mode -notification by LED and buzzer (enable 'Errors' checkbox in the 'Service' tab) 2.41b1_test Matched GUI version is 2.41b0: http://www.basecamelectronics.com/files/SimpleBGC_GUI_2_41b0.zip - Add UART parity setting auto-detection from firmware side. Together with GUI auto-detection, it allows to connect Bluetooth modules with Parity=No|Even (but with Parity=No, module doesn't allow to upgrade firmware) - Upper limit for PID values increased to 255 (2.55 for I) - Range for I setting was increased 2x times (old 0.01 equals new 0.02). Range for P, D setting was increased 4x times (values will be updated automatically after upgrading). - PID distribution between motors is more correct when frame is picthed and if ROLL and YAW motors differs a lot. - Upper limit for RC speed was increased to 255 and its effect was decreased 4x times to get finer step in adjustment - Smooth motor start at power-on - Option to disable RC limits in SPEED mode (set min=max) - Switching between Follow and Lock modes without jerks and loss the camera position - (GUI) New "Erase EEPROM" menu command - Stable work at bigger ROLL angles (system keep stability up to +-80 degree for ROLL inclination) - Improved PID and IMU algorithms lets to achieve precision +-0.06 degree in dynamics, +-0.02 degree in static - Short beep on each press of menu button (if buzzer confirmation mode is enabled in GUI) - (GUI) Profile name is stored in the board after renaming. Max. 48 ASCII characters allowed (or less, if national characters used) - (GUI) New option in the RC tab: "INIT.ANGLE" to set initial angle of the camera at system startup, if RC control is not applied. Background changes: - USB VCP support (for upcoming boards where USB is directly connected to MCU)