v2.37: (L236) (imu v0.36)(motor v0.38)(logger v0.38)(oled v0.09)(NTLoggerTool v0.40)
 - bug: setup_handle_parameters_change(), do a STARTUP_RELEVEL only if not in startup, else go back to STARTUP_MOTORS
 - bug: a 'xW' serial command was made ineffective when scripts use e.g. a RESTOREALL in the #DEFAULT case
        since also other parameters might have been set, the "only" way is to disable scripts
 - bug gui: system bootloader for v3.x should not use flash COM port
 - bug gui: DataDisplay IMU2 status shown in T-STorM32 mode
 - bug gui: Gimbal Config Tool didn't reconfigure when mode changed from encoder to conventional
 - nt motor: many changes in Q mode, support of move and r2 commands added =>  NT Motor v0.38
 - nt logger: qmode to read rtc =>  NT Logger v0.38
 - gui: startup time massively reduced by loading packages on demand via eval
 - gui: version in title
 - SERIALRESPONSE cases changed to use SETTASK()
 - MAININIT_Init case is not needed since init() is always called, hence removed
 - gui: first attempt of a NT Module CLI tool
VERSION Released as version v2.37e on 27.Mai.2018

v2.36: (L236)
 - bug: wasn't upgrade to L235, now L236 handling added
 - nt motor: motordrive_set_phases() called twice in FOC mode => NT Motor v0.37
 - nt motor: don't use Motor.ofs in non-FOC mode
 - nt logger: RTC support for DS3231 added
 - nt logger: NTBUS_CMD_SETLOGGERDATETIME added, to allow setting date&time => NT Logger v0.37
 - serial cmd Cl added, TASK_NT_SETLOGGERDATETIME added, ntbus_setdatetime_loggermodule() added
 - gui: RTC tool window added
VERSION Distributed as version v2.36a on 25.Jan.2018
 - bug: SUMPPM_TOTALMAX_US extended to 27000, to handle frsky 27ms ppm (by ziele)
 - nt logger: extension .ntlog, requires use of fno.lfnanme, and thus of an additional static working buffer
 - nt logger: allow NTBUS_CMD_SETLOGGERDATETIME only if rtc_ok is true, initialize rtc_ok=0
VERSION Distributed as version v2.36b-4ziele on 31.Jan.2018
 - logger: some changes to ds3231.h lib => snap shot v0.37x
 - changed STorM32Link Configuration to 'off', 'basic', 'yaw drift comp.', 'v1'
 - bug: = instead of == in storm32link check
 - storm32link: basic and yawdriftcomp are identical, so remove basic, the other stuff works as soon as link is OK
 - storm32link: ArduPilot quaternion tested, is also 1 1 -1 -1, as expected for NED
                also angles tested, and tested that yawoffset startup correction works
 - storm32link: flag STATUS_STORM32LINK_INUSE added, mirrors storm32link_isyawoffsetvalid(), but allows GUI to see this
 - storm32link: organize such that storm32link works in its default behavior also for non-encoder
 - bug: remote_set_anglesallfromqNED() modified according to findings for DJI&ArduPilot, not tested
=> betacopter v006-004, fligh-tested frequently, keep this as a shnapshot synchronized to betacopter
 - storm32link: NTBUS_STORM32LINK_STATUSFLAG_INUSE renamed to NTBUS_STORM32LINK_STATUSFLAG_HDCINUSE
 - storm32link: made setyawoffset also dependent on storm32link_isqfix()
 - storm32link: first attempt of choice and handling of storm32link flags for arduPilot
 - removed all remains of WAITFORSTORM32LINK
 - in enc-mode: Imu1 YawAngleTarget was not set to something meaningful in NORMAL, gave ugly plots
 - slow YawT to 50
 - in enc-mode: Imu1 YawAngleTarget startup setting also when STATE == STATE_STANDBY, with fast YawT
flight test with flamewheel and solo, storm32link horizon drift compensation worked great
=> betacopter v006-005, flight-tested frequently, keep this as a snapshot synchronized to betacopter
tested that STorM32Link also works on non encoder, as much as it is supposed to work
 - p!=SETUP_PARAMETER_SIZE guards removed in setup_X_parametersandscripts_X_buf()
 - bug: in uc4h_lib compose filter functions, and in canard isr set filters
 - tested: CANARD_STM32_RXFRAMEBUFSIZE 64, UAVCAN_MEMORYPOOL_SIZE 1024 leads to 12=37% pool, and 6=9% rxbuf, even with full escRaw
 - tx bufs for uart,uart2 increased to 512
=> betacopter v006, flight test 2018-02-24, flamewheel with uavcan gimbal, passed (needs extra power on CAN 5V!!)
VERSION Released as version v2.36e on 25.Feb.2018

v2.35: (L234) (imu v0.36)(motor v0.35)(logger v0.36)(oled v0.09)(STorM32 App v0.04)(NTLoggerTool v0.40)(STorM32 WebApp v0.30)
 - bug nt: config&parameter logging still "bad", replaced sizeof by explicit number
 - mavlink: loop code moved to lib, mavlink_do()
 - logging of AccGyro2Data not needed with encoder enabled
 - quaternion typedefs in types.h
 - LOGSTORM32LINK
 - nt logger: handling for NTBUS_CMD_STORM32LINKDATA added => NT Logger v0.36, NTLoggerTool v0.40
 - storm32link logging status and numSat added
 - storm32link setter & updater functions redesigned
 - storm32link: fix status for dji can
 - ahrs modified to Anorm and Ain, to have both accessible
 - lipo loop code moved to lib, lipo_do()
 - post-main logging code moved to lib
 - bug: storm32link allow setting yawoffset only after gimbal yaw is set
 - storm32link yawoffset handling for Q and V tested, and confirmed
 - storm32link R2, V2, A2, A1 estimation tested, and confirmed, A1 matches nicely Acc1 in linear flights
v2.35b flight-tested
 - storm32link logging split into storm32link and debug => NT Logger v0.36, NTLoggerTool v0.40
 - nt logger: new storm32link, and debug added
 - storm32link_update_fromdjican() added
 - serial storm32link rccmd V2 added, 0xDA, tStorm32LinkPayloadV2, V1 still available
 - WAITFORSTORM32LINK deprecated, code fragments removed
 - STorM32LinkAHRSFactor available, but not yet used/supported, takes factor 1.0
 - startup_usingstorm32link_isallowed() removed
 - in nt logging NTBUS_STORM32LINK_STATUSFLAG_INUSE tracks _a1_valid
 - with IS_ENCODERS_ENABLED aImu2Angle reports the latest storm32link R2 angles
 - LIVEDATA_STORM32LINK reports Imu1AHRS._a1_valid and Imu1Params.aYawAngleTarget
 - yaw drift correction added
 - nt motor: #define MOTORFOC removed, STORM32NT_MOTOR_V10F103T8 removed from hal
 - nt motor: NTBUS_MOTOR_CONFIG_FOC cleaned up
 - cnvt Temp for mpu6000/9250, mpu_cnvtTemp() in stdstm32-mpu.h, also change in nt imu
 - nt imu: cnvt Temp for mpu6000/9250 => NT Imu v0.36, NTLoggerTool v0.40
VERSION Released as version v2.35e on 17.Jan.2018

v2.34: (L234)
 - bug: script, very nasty bug in determining the stateness of the input in script_init(), very difficult to debug
 - script code straightened a bit
 - uc4h_lib updated
 - setup prepared for byte params, code straightened a bit
 - ntbus_logdata_v3_dma() for Storm32LinkDataPtr
 - mavlink: comport selectable, needs reboot (by lvale)
 - com,com2,com3 baudrates selectable, needs reboot, removed support from GUI, is "dangerous" hence in expert and not interface tab
 - mavlink: for the time being ApCompatibility flag added
 - mavlink: MAV_CMD_DO_MOUNT_CONFIGURE isn't supported by ArduPilot anymore, hence handle p7 in MAV_CMD_DO_MOUNT_CONTROL
 - mavlink: re-added DIGICAM_CONTROL,MOUNT_CONFIGURE,MOUNT_CONTROL for v0.96 compatibility mode, not needed as AP translates into CMD_LONG
 - mavlink: some clean-ups
VERSION Released as version v2.34e on 16.Dec.2017

v2.33: (L233) (imu v0.35)(motor v0.35)(logger v0.33)(oled v0.09)(STorM32 App v0.03)(NTLoggerTool v0.39)(STorM32 WebApp v0.29)
 - bug gui: wlan startup issue solved (by fs008)
 - bug nt imu: some cc3d's had startup issues, resolved by deep work in rcgroups thread (by jihlein)
 - bug nt imu: checkregisters counter wasn't counting correctly
 - bug mavlink: MAV_CMD_DO_MOUNT_CONTROL did not do -+- conversion from STorM32 to Mavlink convention (by Pedals2Paddles)
 - bug mavlink: hang up, needs to set com port in com_start_transmit_mavlink()
 - bug: since v2.31e bug when spektrum used, has to do with change in uartb-hw.h, leads to infinite ORE errors, reversed rx isr part to old, which works
 - bug: spektrum range corrected by factor 1.17
 - bug: setup update for [L223,L229[ wasn't correct
 - bug: StartupDelayTime wasn't effective then IS_ENCODER_ENABLED
 - bug nt motor: for v3.x boards with its uart the qmode sends too fast, use longer delays, add more streams
 - LipoSaverLevel extended to down to 2.5 V (suggested by fs008)
 - sequence changed to usb,uart,uart2
 - tracking, gps removed, core of uart1_rx kept, uart1rxconfiguration forced to 0
 - spektrum: tested 125000 according to here https://www.spektrumrc.com/ProdInfo/Files/Remote%20Receiver%20Interfacing%20Rev%20A.pdf
             but this clearly gave incorrect readings, sticked with 115200
 - in mpu.h: icm20602 added, whoiam changed to full byte
 - ntbus: icm20602 = 0x03
 - v3.2: icm20602
 - v3.2: BOARD_W_15KVOLTAGEDIVIDER to account for 15/1.5 voltage divider, change in adc.h, change in hal to PC4
 - uavcan: use "new" lib
 - renamed UavcanConfiguration to CanConfiguration, changed CANCONFIGURATIONENUM to 1=UAVCAN
          UavcanUavcanNodeId to CanUavcanNodeId,
 - uavcan storm32 data types moved to uavcan.olliw.storm32 name space
          => requires adapting betacopter
 - DJI can bus naza v2 support: reads input channels, reads osd attitude, storm32 link
 - storm32link time stamp, velocity
 - new log_str(), log_param(), log_buf(), also bug removed in these logs()
 - systematic use of SYSTICK_DELAY_MS()
 - motorfoc_EncoderAngle() for better encapsulation
 - foc: motorfoc inverted handling, allows to startup inverted, allows also to flip in operation, but not "nicely"
        attempt at a "smooth" flip, but wans't really an improvement
 - oled: new logo, fault message on LEVEL_FAILED and EMERGENCY
 - add v3.3 support, remove v3.2
 - changes to uc4h_lib, only tiny changes needed to compile, needs checking if messages still work
 - DJI quaternion tested, converted by diag(1, 1, -1, -1), as expected for NED -> STorM32, R1' = R2RM doesn't track R1 very well
   calibration needed
 - all AccXXX parameters except of AccCompensationMethod removed, set to default values in imu_setparamsfromsetup()
   to my knowledge no one ever adjusted them, or tried to improve by testing, so obsolete
 - storm32link yaw offset startup correction, set then link becomes present&ok the first time
   yaw1 prediction values, tested and found to work for "any" startup arrangement
   in the dataplot pitch,roll offset visible, determinable by rotating around yaw
   setup&gui prepared for them
VERSION Released as version v2.33e on 19.Nov.2017

v2.32: (L231) (imu v0.33)(motor v0.34)(logger v0.33)(oled v0.08)(STorM32 App v0.03)(NTLoggerTool v0.39)(STorM32 WebApp v0.29)
 - bug gui: some params wrong in STorM32App and STorM32WebApp
 - gui: sequence of params in expert tab swapped, uart1 tx config moved to setup
 - gui: PySTorM32_createParamJsons.py to create py and js param lists for App and WebApp
 - gui: STorM32WebApp has external storm32web_paramjson.js to hold the parameter list
 - gui: PySTorM32_createParamJsons.py copy4dist.bat to pack things
 - UART1TUNNEL renamed to UART1RXTUNNEL
 - nt motor: support for AS5048A, v0.34
 - nt motor: setmodeltle5012b, setmodelas5048a, clrmodel, added to qmode
 - nt motor: setpp, setofs added to qmode
 - bug nt motor: prevent rrange to go on for indefinitely
 - oled: "LOW" added to battery indicator if VOLTAGE IS LOW, v0.08
VERSION Released as version v2.32e on 8.Oct.2017

v2.31: (L231)
 - bug nt: logging of mot config may get scrambled, tmo's extended
 - bug gui: config gimbal sometimes not adapted to FOC/nonFOC
 - bug gui: flashing v3.x boards per usb didn't work when connect wasn't possible, connection test changed
 - bug uavcan: at rate = 1, emitting nodeinfo and others was suppressed
 - bug: the rc channels were assigned to incorrect TIM8 channels in hal
 - gui: bring perl array in line with the py array, including 'foc'
 - gui: oled added to flash tab
 - storm32.Statistics
 - yaw pan hysteresis removed
 - v2.31a flight tested on 2017-08-17, advance to v2.31b
 - add support for oled display,
   sadly not possible via i2c, so do via uart, advantage: also works for v1.x boards
 - uartb required complete update, didn't had tx isr, caused major troubles
 - SERIALRCCMD_GETDISPLAYDATA (#7) added
 - param Uart1TxConfiguration
 - exclusive mechanism for enabling/disabling configuration/hardware on RC0, RC1
 - encapsulate uavcan_set_statusmode_operational()
 - v2.4 HAL removed
 - SERIALRCCMD_WIFICONNECTEDPING, to detect wifi connected,
   STorM32App modified to support this, also oled
 - new parameters LipoCells,LipoVoltagePerCell, changes in -adc.h, --lipo.h
 - F9 lock removed, wasn't compatible with wifi F9 ping, did it ever make sense? see comments in serial.h
 - all uartX.h equalized
VERSION Released as version v2.31e on 1.Oct.2017

v2.30.1:
 - bug: xx restart didn't work for boards with usb (by walmis)
 - bug: key latch triggered after standby, if key was pressed until normal was reached (by walmis)
 - bug gui: state incorrectly displayed when in standby (by walmis)
 - bug gui: wlan crashed when no wifi present or disabled (by walmis)
 - bug: after standby, go to normal if no bat connected
 - canardSTM32EnableRxIsr() release fifos
 - getTransportStats
VERSION Re-released as version v2.30 on 3.Aug.2017
v2.30: (L229) (imu v0.33)(motor v0.33)(logger v0.33)(NTLoggerTool v0.39)(STorM32 WebApp v0.27b)
 - bug: MAV_CMD_TARGET_SPECIFIC length handling
 - bug gui: datadisplay imu2 cleared every time datadisplay is opened
 - gui: links renamed to interfaces
 - esp: v3.x board, qmodes to flash firmware and upload data files
 - uavcan: consistent uavcan parameter handling
 - esp: uart2 support on v3.x boards, esp hal, qmode adapted
 - webapp: adapted to new esp config parameters, links renamed to interfaces
 - gui: erase eeprom, ask before to double check
 - gui: esp config tool
 - gui: flash v3.x boards support
 - uavcan: support of equipment.uavcan.camera_gimbal.status, later removed, doesn't make sense
 - uavcan: support of uavcan.storm32.status, uavcan.storm32.control, uavcan.storm32.nodespecific, uavcan.storm32.nodespecificack
 - uavcan: improved speed
 - uavcan: functions renamed, libs significantly restructured, memory savings, some optimizations
 - uavcan: acceptance filters
VERSION Released as version v2.30 on 30.July.2017

v2.29: (L229) (imu v0.33)(motor v0.33)(logger v0.33)(NTLoggerTool v0.39)(STorM32 WebApp v0.27)
 - support of v3.x boards, usb = uart1, uart = uart5
 - gui: upgrade via USB for v3.x board, upgrade via SysBootLoader removed for older boards
 - bug gui: flash STMFlashLoaderOlliW for bootloader version 22 it can happen that flashsize is 65535k
            "resolved" by copying _256K.STmap to _65535K.STmap
 - support of ESP8266, new parameter Esp Uart Configuration
   com2 release handling to detect key phrase at startup (com.h)
   RC2-0 == RC3 pin emits a reset pulse at a hardware reset (inputs.h)
   reset source detection
VERSION Released as version v2.29b on 2.July.2017
 - ESP: the reset pulse not needed, consistency can be accomplished with reset source
 - UAVCAN support for v3.x boards
 - webapp: esp ap bridge support
 - gui: esp ap bridge support
 - motor poles minimum set to 8
 - gui: esp config, betacopter rearranged/renamed
VERSION Released as version v2.29e on 16.July.2017

v2.28: (L223) (imu v0.33)(motor v0.33)(logger v0.33)(NTLoggerTool v0.39)
v2.28a:
 - com hal, com<->serial split (qmode, mavlink not tested)
 - improvements in serial transmission (always full block since TX ISR is used anyhow)
 - spektrum hal, timing uses micros_32(), uart1 handling is not fully consistent
 - rc hal, cleanups, some significant simplifications, hal is not fully consistent
 - imu split into ahrs, imus
 - txAngle to txAngles, AHRSANGLE(), some ahrs_ wrapper functions, Q24RAD()
v2.28b:
 - inputs.h uart1 timeout stuff removed as it's not used anywhere, uart1_enable() streamlined
 - rcchannels much improved, consistent enable/disable handling
 - rc hal consistent, except of ISRs
v2.28c:
 - conversion to tAhrsAngle(s), a first test worked nicely
   affected: ahrs,pid,remote,script,mavlink,stormlink,gps,serial
   comparison functions not yet
 - Q24RAD() removed by using Q24() with converted numbers
 - bug in pid, PAN must be float, not tAhrsAngle
 - int64_t for tAhrsAngle, 0..1 = 0°..360° = 0..2^30, seems to work!
 - separate ahrs angle stuff into lib
v2.28d:
 - pid scales&timesteps converted to q30
 - pid pan converted to q24
 - pid_do() restructured
 - Kp,Kidt,Kpdt converted to q24, q16
 - motorfoc_setencoderdata() conversion of EncoderAngle to tAhrsAngle simplified
 - do_inputs() conversion of s32rc to tAhrsAngle a_inputs->a[axis] simplified
 - do_inputs() conversion of Remote.aAngle to s32 simplified
 - in spektrum, rcchannel, some voids in func() missing
 - optimization
   spektrum_update(), spektrum_handle_timeouts(),
   rc_update(), sumppm_update(), pwmout_update(), rc_handle_timeouts(), sumppm_handle_timeouts()
   input_readfunctionvalues(), input_debouncefunctionvalues(), input_getfunctionvalues()
   input_doaxis()
   helps a lot, cost ca. 4K
v2.28:
VERSION Released as version v2.28e on 6.June.2017

v2.27:
 - changes to qmode and uart1_XXX to allow for SPEKTRUM_NUMBEROFCHANNELS=0, needs check if working
 - option to use CC3D atom as main board
 - X-macros for Setup list
VERSION Released as version v2.27e on 13.Mai.2017

v2.26: (L223) (imu v0.33)(motor v0.33)(logger v0.33)(NTLoggerTool v0.39)
 - bug nt: NTLoggerTool handling of GUI data files
 - bug: setup functions, consistent differentiation between params, scripts, calibration, and other
 - bug: uartb,uartc clear isr flags at init
 - bug: ntbus_tx_waitforandclosedma() instead of ntbus_hal_tx_dma_waittrasnmitted()
 - nt: ntbus_logencoderdata()
 - nt: NTLogger handling of cmdencoder and setmotall added => nt logger firmware v0.33
 - nt: NTLoggerTool adapted to encoders => v0.39
 - nt: NtLoggerTool dT handling
 - gui: firmware flash list adapted
 - gui: foc handling in DataDisplay&ConfigTool improved
 - gui: share settings expanded to 3 columns
 - foc: don't bother with trying to find IMU3, we're not using it
 - Imu2 enabled, but only raw data is transmitted, not AHRS2, it's of no use but would take a toll of nearly 100us !
 - fyaw_relative() introduced, return encoder angle in encoder mode
 - nt: dma handling somewhat restructured, geterrorcnt() not inline
 - nt: ntbus_logparameterdata() and caller somewhat changed
 - foc: new default values for PID
VERSION Released as version v2.26a on 18.Mar.2017
 - bug: imu_setparamsfromsetup() changed all Imu2 fields, even though script_do() comes after (by fs008)
 - bug: TASKs were executed only if TASK_RESTART_IS_PENDING
 - better optimized setup_handle_parameters_change(), to make script set parameter less costly
VERSION Released as version v2.26b on 9.Mai.2017

v2.25:
 - adc hal (tested), inputs hal (keys tested, uart1 not tested), ir hal (not tested), leds, leds-hal (tested)
 - clocks implicit hal

v2.24:
 - BUG: new fwrap180(), the old could lead to serious time penalties
 - bug: avoid hang-up when EEPROM is old setup
 - bug: low voltage handling didn't zeroed values
 - gui bug: some options were OPTTYPE_SI but were u16
 - gui bug: show/hide of foc PID options was strangely overlayed with other fields
 - gui bug: Retrieve from EEprom & Default failed in read
 - bug nt: NTLoggerTool crashes when no wlan available (by fs008)
 - faster startup: calibrate time shortened by 1s, and fastlevel moves faster
 - remove full v1 2nd Imu support
 - startup initialization sequence rearranged, so that nt modules are checked later, to give them a bit more time to startup
 - log "foc enabled"
 - FocGyroLPF enabled, FocK enabled, Foc MotorDir & Foc ZeroPos enabled
 - SERIALRESPONSE_LEVELGIMBAL added
 - 'xp' serial command, in gui corresponding tool menu option added
 - acc_mag is taken now from AHRS Mahony
 - motors hal introduced, motors rearranged & cleaned-up significantly, tested on mobius test gimbal
 - motor foc safety protection mechanism added
 - imu1 error count safety protection mechanism added
 - nt: NT imu changed to better detect errors for MPU6000 (isr often doesn't startup correctly, no idea why)
 - nt: NT imu qmode added
 - nt-imu, ntbus, ntbus-hal, redone from v0.32 with extensive testing at each step to resolve a nasty nt-imu hang-up bug
 - have motorsaftey active only at startup, below NORMAL
 - nt: NT motor qmode extended to standard
 - nt: ntbus_hal_init(), _enable() moved to ntbus_init()
=> nt imu/nt motor fimrware v0.33

v2.23:  (L223)
 - bug: in fbuf_init()
 - gui: all i2c reminiscences removed
 - SYSTICK_DELAY_MS()
 - board_capability changed and used for foc flag
 - ntbus hal introduced
 - mag removed, some deprecated stuff removed
 - qmode extended and slightly rearranged
 - fast startup procedure improved, nearly twice as fast yet more precise smooth at the end
 - DLPF parameter removed
 - setup parameter handling changed substantially, merged with mavlink parameters
 - complete rearrangement of setup parameters, GUI adapted accordingly
 - setup parameters defaults adjusted
 - encoder flags added, handling to GUI added
 - gui: implicit size handling for options
 - gui: adapts to board configuration
 - set FocEnabled parameter by own GUI tool, like baudrate, not part of Setup anymore => require manual restart
 - NTBUS_MOTOR_CONFIG_TLE5012B added, NTBUS_MOTOR_CONFIG_FOC modified
 - gui: rename to encoder support tool
 - parameter FocElTimeConstant added
 - livedata new layout and flags, includes encoder data, gui adapted
 - Setup.FocGyroLPF added, and related many rearrangements done

v2.22: (L219) (imu v0.32)(motor v0.31)(logger v0.26)(NTLoggerTool v0.37)
 - tested some AVF filters, but they didn't do any good, in fact were worse
 - bug: virtual worked only if Virtual-1 used at startup, _input_syncfunctions() changed (by Rickyg32)
 - bug nt: ntbus_module_config_str() didn't handle NTBUS_IMU_CONFIG_GYROFILTER, NTBUS_IMU_CONFIG_ACCFILTER
 - nt: store calibration values in NT imu module => v0.32
       configuration field extended by NTBUS_IMU_CONFIG_CALIBRATIONCMDSUPPORTED
       new nt cmds NTBUS_CMD_STORECALIBRATION, NTBUS_CMD_READCALIBRATION
       ntbus_readcalibration_imumodule(), ntbus_storecalibration_imumodule()
 - lipo/adc stuff slightly restructured
VERSION Released as version v2.22e on 29.Jan.2017

v2.21:
 - support for STorM32 NT v2.4 board
 - D gain roll-yaw mixing (by McTage)
 - additional P gain roll-yaw mixing

v2.20: (L219) (imu v0.31)(motor v0.31)(logger v0.26)(NTLoggerTool v0.37)
 - bug: scriptnr could be larger than 3 in remote_set_scriptcase()
 - bug nt: NTLoggerTool y-AR-off did affect FFT window incorrectly => NTLoggerTool v0.37
 - nt: NTLoggerTool cRingBuffer, much improved live recording
 - nt: NTLoggerTool QNetworkConfigurationManager removed, replaced by subprocess netsh (by walmis) => NTLoggerTool v0.36
 - nt: NTLoggerTool finalize support for latest ENSYS Logger firmware version => NTLoggerTool v0.37
 - deactivate YawT when no battery is connected
 - nt: support for NT Imu v2.1 modules => v0.30
 - nt: support for NT Motor v2.3E modules => v0.30
 - gui: support for NT Imu v2.1 modules, firmware flash and config status flags
 - nt: NT imu and NT motor led blinks according to configuration as Imu1/2/3 or R/P/Y => v0.30
 - nt: NT imu now isr-driven=oversampled by default, for both mpu9250 and mpu6000 => v0.30
       log_ntmoduleconfigurationinfo() adapted
 - nt: NT imu acc +-16g plus filter for mpu9250 & mpu6000 => v0.31
 - nt: NT camera call camera_initpins() early to enforce defined pin states

v2.19: (L219) (imu v0.29)(motor v0.22)(logger v0.26)(NTLoggerTool v0.35)
 - bug: clocks not initialized
 - nt bug: _ntcameradata pwm output triggered two times at startup
 - nt bug: NTLoggerTool multiple log handling was broken
 - nt bug: NTLoggerTool Imu2rx instead of Imu2done
 - nt bug: NTLoggerTool converts GUI DataDisplay logs correctly
 - nt: NTLoggerTool support of ENSYS NT Logger ESP8266
 - nt: NTLoggerTool screen shot, tool tips, FFT improved, cleanup => NTLoggerTool v0.35
 - STORM32NT finally removed
 - nt: 3rd NT Imu support, involved interlacing of getimu2 and logging of accgyroraw
 - nt: full Imu3Configuration support, required changes also in ntbus lib
   => ntimu firmware v0.29, NTLoggerTool v0.31
 - qmode flash id 12
 - support for STorM32 NT v2.1 board (not yet fully tested, AUX, POT, SUMPPM, PWMOUT, SPEKTRUM, uart1)
 - gui: support for STorM32 NT v2.1 board uart1 flash

v2.18:
 - gui bug: remove 0xFE checkbox from RC Command Tool (by lvale)
 - gui bug: in Gimbal Configuration Tool set startup mode to normal in step II
 - nt bug: in log_ntmoduleconfigurationinfo() first one parameter str was killed because of flush()
 - bug: voltage low shall wait for beep for all steps of shutdown
 - nt: NTBUS_IMU_CONFIG_MPU6050 un-deprecated
 - nt: IMU_CONFIG_MODEL can go from 1...7 (not a bit field anymore), ntbus_module_config_str(), log_ntmoduleconfigurationinfo()
 - waking up from standby goes to fastlevel if allowed (by zyawooo) (was tested extensively and concluded to be preferred)
 - uartb_rx_enableisr()
 - BOARD_CAPABILITY set to 0, was never used
 - DEBUG_LED removed
 - bypass to fastlevel in STATE_STARTUP_RELEVEL

v2.17: (L214) (imu v0.28)(motor v0.22)(logger v0.26)(NTLoggerTool v0.30)
 - faststart didn't consider rc offset, leading to strange behavior (by RocketMouse)
 - emit alert beeps upon level error and voltagelow (by lvale)
 - nt: NTSCANID removed, NTTUNNEL added
 - SERIALSTATE_DIGEST_RECEIVED_MSG to always digest serial one cycle later,
   solves also write overtime, time safeguard works very nicely
 - Q mode UART1TUNNEL to open a tunnel to uart1, allows to quit
 - Q mode BT, allows to quit
 - remote wrappers changed, affects also script module
 - STARTUP_MOTORS_BLINK changed to blink
 - startup calibrate cleaned up a bit
 - using small mavlink SetupParam field saves 7kb
 - uart1/gps in serial handler removed
 - gps @ uart1 is 57600bps per default
 - gps valid requires hdop<1.5 and sat>=8
VERSION Released as version v2.17e on 24.Sep.2016

v2.16:
 - bug betacopter: taskmanager did too many steps, corrected, but NEEDS TEST of STORM32LINK PIDS!!!
 - channel/configuration change handling totally revised (looks very good so far, but NEEDS EXTENSIVE TESTS!!!)
 - RXBUF for UARTB and SPEKTRUM_BUFSIZE increased to 128, to accommodate uart1-gps
 - uart1 gps target stuff
 - tracking module
 - SERIALRCCMD_SETHOMELOCATION, SERIALRCCMD_SETTARGETLOCATION

v2.15: (L214) (imu v0.28)(motor v0.22)(logger v0.26)(NTLoggerTool v0.30)
 - bug: override inputs in startup wrong (by zyawooo)
 - StartupDelayTime
 - startup motors & startup settled changed slightly
VERSION Released as version v2.15e on 15.Sep.2016

v2.14: (L214) (imu v0.28)(motor v0.22)(logger v0.26)(NTLoggerTool v0.30)
 - bug: fastlevel didn't caught some failure conditions in startup
 - bug: IRCAMERA active from startup, like PASSTHROUGH  (by noradtux) (could need more extensive testing)
 - some checks moved from LEVEL to end of CALIBRATE
 - new state wait for link

v2.13:
 - gui: bluetooth configure adapted to handle hc08 (by zyawooo)
 - link test version with comparison of methods, settled for "cheap" method

v2.12:
 - gui bug: BT configure may not stop upon error (by RocketMouse)
 - bug: MAVLINK_MSG_ID_MESSAGE_INTERVAL extracrc not handled (by lvale)
 - bug: imus need be reset after calibrate
 - gui: bluetooth configure adapted to handle "new" hc06 (by RocketMouse)
 - gui: vibes removed from DataDisplay save
 - gui: clear status fields upon disconnect
 - nt: NTSCANID removed, NTTUNNEL added
 - nt: nt imu CAMremote support changed => ntimu firmware v0.28 (by noradtux)
 - MAVLINK_MSG_ID_MESSAGE_INTERVAL arbitrary interval rates enabled
 - MAV_CMD_SET_MESSAGE_INTERVAL added
 - MAV_CMD_DO_SET_PARAMETER, param7 special handling removed
 - further clean-ups in mavlink library
 - startup_fastlevel_isallowed(), calibration cleaned, some useless state flags removed
 - clean-ups in imu library, fYawAngleTargetPrediction not needed and removed
 - ahrs acc compensation restructured, and prepared for quaternion guiding
 - improved YawT handling for Imu1, reduces drift in deadband zone (does it lead to other issues? needs extensive tests!)
 - yaw pan lpf set to 1.5 as default, as I like it :)

v2.11: (L208) (imu v0.27)(motor v0.22)(logger v0.26)(NTLoggerTool v0.30)
 - gui: Mavlink Configuration extended to h.b.+ mountstatus
 - extend FA storm32link with yawratecmd
 - mavlink "rejection" opened to components, all broadcasting, as well as all sorts of nonsense
 - MAVLINK_MSG_ID_DIGICAM_CONTROL, MAVLINK_MSG_ID_MOUNT_CONFIGURE, MAVLINK_MSG_ID_MOUNT_CONTROL removed, since deprecated by APM
 - MAVLINK_MSG_ID_COMMAND_TARGET_SPECIFIC, MAVLINK_MSG_ID_PARAM_...2 removed
 - MAV_CMD_DO_MOUNT_CONTROL, MAV_CMD_DO_MOUNT_CONTROL_QUAT support restricted to only unlimited angle (was used only anyhow)
 - MAV_CMD_DO_DIGICAM_CONTROL restricted to 0/1 for shot
 - MAV_CMD_DO_DIGICAM_CONFIGURE added, to return MAV_RESULT_ACCEPTED, but doesn't do anything
 - MAV_CMD_DO_MOUNT_CONFIGURE support of MAV_MOUNT_MODE_RETRACT added, recenters camera
 - MAVLINK_MSG_ID_MOUNT_STATUS added, Mavlink Configuration = 3 emits it with 2 Hz
 - MAVLINK_MSG_ID_MESSAGE_INTERVAL added, allows to stream attitude and mountstatus in time multiples of 0.1sec
VERSION Released as version v2.11e on 8.Aug.2016

v2.10: (L208) (imu v0.27)(motor v0.22)(logger v0.26)(NTLoggerTool v0.30)
 - bug: mavlink_systemlist_add() is needed for TASK_MAV_SENDATTITUDE etc to be send out
 - bug: mavlink heartbeat state didn't consider fast level
 - gui: few parameter fields rearranged, betacopter tab introduced
VERSION Released as version v2.10e on 6.Aug. 2016

v2.09:
 - bug: response to SERIALRCCMD_GETVERSIONSTR had wrong cmd byte
 - rccmd startsign 0xF9, which suppresses ack responses, and other commands
 - SERIALRCCMD_SETINPUTS added
 - STorM32-Link reception and detection handler
 - LIVEDATA_MAVLINKATTITUDE & generate_attitude_storm32() consider STATUS_BAT_ISCONNECTED
 - changed livedata LIVEDATA_MAVLINKATTITUDE to LIVEDATA_ATTITUDE_RELATIVE, complying to STorM32 standards
 - tentatively allow for "all" supposed-to-be valid Mavlink messages (just to make the point)
VERSION Released as version v2.09e on 1.Aug. 2016

v2.08: (L208) (imu v0.27)(motor v0.22)(logger v0.26)(NTLoggerTool v0.30)
 - gui bug: UpdateShow() uninitialized for July
 - gui: screenshot of share settings can be saved to file
 - gui: some rccmdread clean ups
 - nt: pwm pulse of 500ms for Git2RC  => ntimu firmware v0.27
 - several cleanup work:
   some codes restructured
   standby code restructured (NEEDS TESTING!!)
   startup_level_do() changed
   imu_getimuXdata(), imu_set_params_from_setup(), AccCompensationActive
 - FASTLEVEL startup mode, new parameter Startup Mode
 - startup_motors_do() 33% over voltage
VERSION Released as version v2.08e on 19.July.2016

v2.07:
 - gui: UIntToHexstrSwapped()
 - gui: target specific embeeding changed to new command long
 - gui: DataDisplay can be shifted
 - gui: flash reworked to support new upgrade
 - mavlink COMMAND_LONG command MAV_CMD_TARGET_SPECIFIC=1235 added
 - CMD_GETDATAFIELDS flag LIVEDATA_MAVLINKATTITUDE added (needs testing!)
VERSION Released as version v2.07e on 14.July.2016

v2.06:
 - bug gui: NT flash firmware threw no usb error if port list was not called before
 - bug?: NT camera CAMremote only did 1.0, 1.5, 2.0 ms and not continuous pwm
 - bug: RcAccLimit changes produced hickups (by digaus)
 - gui: DataDisplay can be resized, Save stores all data in the buffer
 - gcc arm 5.3 2016q1, comment static in static inline to avoid warning
 - fp stuff separated into library
 - don't accumulate pansetpoints for yaw when in absolute mode (by Noircogi)
 - qmode, command processor prepared for flashing storm32, not yet supported by gui

v2.05: (L095) (imu v0.26)(motor v0.22)(logger v0.26)(NTLoggerTool v0.30)
 - bug: changing IrCameraModel back didn't switch on IR led
 - nt: NT camera module supports CAMremote, as well as PWM out => ntimu,ntlogger firmware v0.26

v2.04: (L095) (imu v0.25)(motor v0.22)(logger v0.25)(NTLoggerTool v0.30)
 - nt: NT camera module added  => ntimu,ntlogger firmware v0.25, NTLoggerTool v0.30

v2.03: (L095) (imu v0.23)(motor v0.22)(logger v0.24)(NTLoggerTool v0.29)
 - logging time scheduling only for accgyro1&2
 - ntbus_module_config_info(), kill any dma transfer
 - logging Imu2received removed, Loggingdone added

v2.02: (L095) (imu v0.23)(motor v0.22)(logger v0.23)(NTLoggerTool v0.28)
 - bug: mavlink param name PAN_PITCH_EXPO
 - gui: 0.5° resolution added to DataDisplay (by buckker)
 - nt logger: header line added to log to identify log file
 - nt: setloggerdata v3, resolution of angles increased to 0.001° => ntlogger firmware v0.23, NTLoggerTool v0.28
 - nt: imu status reporting improved, adds clipped status, always >0

v2.01:
 - bug: crc left-over
 - bug: x? commands could fail (by Noircogi, Eagle1980)
VERSION Released as version v2.01 on 30.Mar.2016

v2.00:
 - serial command Ns, xQT completed
 - nt modules all support std cmd bytes (firmware -> v0.22)
   in-situ flashing seems to work
 - gui: warning for com port>99 added (by gekoch) 
VERSION Released as version v2.00 on 28.Mar.2016

v0.96:
 - bug nt: CC3D didn't work with spi_setclockspeed(SPI_281p25KHZ) (->nt firmware v0.21)
 - bug nt: command flash module didn't work for id != 0 (->nt firmware v0.21)
 - bug: speedlimit in relative can be too fast
 - setup conversions acc-calib-values correction improved
 - nt logger logs calibration values
 - nt qmode, nt command processor prepared, flashing of nt modules, not yet supported by gui
VERSION RELEASED as version v0.96 on 19.Mar.2016

v0.95: (L095)
 - bug: setup update further improved
 - bug: imu3 detection & handling changed
 - bug: plane pan limited to 15° (by maciek252)
 - bug: roll pan mechanism improved, "cheats" a bit and is still not perfect, but should work "mostly"
 - mpu lib restructured a bit to better accommodate 9250
 - nt logging of imu module configuration info added
 - PanExpo method changed a bit, gui Pan Limiter renamed to Pan Expo, others too
 - Remote inhibit on-board script command added (by JanJoh)
VERSION distributed as version v0.95e on 5.Mar.2016

v0.94: (L094)
 - bug: setup update fails for erased eeprom
 - bug: serial transmit could stays too long in loop, do_serial() could hang in receive_payload, serial reworked a bit
 - gui: acc calibration reading display improved
 - gui: px4 .bin data saving removed, data can be read with NTLoggerTool
 - default setup NtLogging off for non-nt firmware
 - acc range changed to +-4g, associated changes also in NT imu firmware and gui
 - mavlink COMMAND_LONG command MAV_CMD_GET_ATTITUDE=1234 added (by digaus)

v0.93: (L093)
 - bug nt: tNTBusGetImuData Temp must be int16_t
 - bug: pan works now for "all" angles
 - nt: NtLogger sd card writing much improved (->nt firmware v0.18)
 - nt: NtLogger __ntbus_retrievedata() (->nt firmware v0.18)
 - heart beat led frequency changed to 1 Hz
 - nt logging uses scheduled time for "big" logging options
 - nt logging change recording of accgyro data to Q24_TO_S16MUL2E14, Q24_TO_S16MUL2E11
 - live data change of acc&gyro data to Q24_TO_S16MUL2E14, Q24_TO_S16MUL2E11
 - roll&yaw mixer with q30
 - FeedForwardLPF corrected, set to 0 as default
 - Imu3 Orientation parameter
 - pitch&roll pan deadband behavior: <=15.0° old behavior, >15.0° new soft-limits like behavior
VERSION distributed as version v0.93e on 20.Feb.2016

v092:
 - some few cleanups with enums
 - nt imu data checks for a=0
 - nt dma putc handling slightly changed
 - nt: NTBUS_CMD_ACCGYRO?RAWDATA_V1, NTBUS_CMD_ACCGYRODATA_V1 deprecated
 - nt: NTBUS_CMD_ACCGYRO?RAWDATA_V2, NTBUS_CMD_ACCGYRO?DATA_V2 added instead
 - nt: new commands added to NtLogger (->nt firmware v0.17)
 - Imu3 options improved
 - nt one new logging options added
 - pan deadband behavior for pitch,roll fundamentally changed, works now like soft limits
 - pan deadband hysteresis relevant only for yaw
 - new pan mode hold-pan-pan added

v0.91:
 - gui bug: Board, Name fields shall not be editable (by pawelsky)
 - bug: nt bus & imu mapping corrected
 - bug: bug in mavlink parameter removed
 - mavlink parameter type accounted for ("new" apm method)
   __mavlink_setparambyindex() - MSG_ID_PARAM_SET, MAV_CMD_DO_SET_PARAMETER, MSG_ID_PARAM_SET2
   generate_paramvalue() - MSG_ID_PARAM_REQUEST_READ, MSG_ID_PARAM_REQUEST_LIST, MSG_ID_PARAM_SET
   generate_paramvalue2()
 - nt: NTBUS_CMD_AHRS1DATA, NTBUS_CMD_AHRS2DATA, NTBUS_CMD_ACCGYRO3RAWDATA added to NtLogger (->v0.16)
 - nt: NtLoggerTool new frame error detection mechanism
 - nt: NtLoggerTool extended to export to Cleanflight's Blackbox Explorer, Blackbox Explorer extended to support STorM32
 - nt: NtLoggerTool extended to load STorM32 GUI log files
 - gui: NTLoggerTool no longer integrated
 - SET LOG moved to before other CMD LOG logs
 - Imu3 option added, available for nt
 - script panorama, SETPANOWAITS, SETPANORANGE, DOPANO commands
 - script set angle with speed and wait, SETANGLEPITCH_W, SETANGLEROLL_W, SETANGLEYAW_W

v0.90:  (L089)
 - nt bug: NtLoggerTool handled Voltage incorrectly (by GekoCH)
 - nt bug: NtLoggerTool cancel of load didn't cancel
 - bug: several bugs in mavlink parameters removed
 - bug: LOGGING_ACCGYRORAW didn't work
 - bug: hold-pan switching didn't work for pitch&roll (by schnupperm)
 - nt: NtLoggerTool significantly enhanced&improved
 - __ntbus_senddata() improved a tiny bit
 - nt logger logs versions and parameter values
 - nt logger with 7.5s sync periods, minimizes gaps
VERSION RELEASED as version v0.90 on 10.Jan.2016


-----------------------------
old releases in normal order

v0.33:
 - suggestion: GUI: rc pitch range extended to +-120° (hexakopter/Dario)
 - input_getfunctionvalues(), input_changevirtualconfiguration() simplified
 - Setup parameters deleted: RcMidMode, RcRate, RcExpo, Setup parameters rearranged, mavlink cmds rearranged
 - extend calibration time to 2secs to allow AHRS to settle, shortened AHRS T to 0.1f and 10.0f
 - do overall acc normalization at calibration, this doesn't do much however
 - AUX2 handling for v1.3 boards added, AUX01_PUSH, AUX012_PUSH added
VERSION RELEASED as version v0.33 on 19.June.2014
v0.34:
 - amplitude in auto motor direction detection increased
 - level detection improved, uses filtered angle
 - suggestion: GUI: write+store in IMU and motor configuration tabs (yang/wdaehn/Werner)
v0.35:
 - suggestion: GUI: disable/enable handling for some functions (yang/wdaehn/Werner)
 - suggestion: renamed and "press","push" to "switch","latched" (LoneStriker/irun4fundotca)
 - meaning of IMU2 Configuration changed
 - gyro filter added, Setup.GyroLPF
 - Setup.GimbalConfiguration changed to Setup.SafteyConfiguration
 - handling of some Setup settings via IS_ macros
v0.36:
 - bug: error in orientation_from_angles() for yaw<>0 corrected, didn't affect previous firmware versions
 - bug: angle overturn calculation was incorrect
 - GUI: yaw offset range changed to +-30°, offset step 0.5°, angle plot +-200°, debug info in read/write removed
 - input debounce range for +250 state changed to +223...+277
 - use of ALLAXES macro in live data, safes a lot
 - do angle overturn calculation for pitch&yaw
 - 2nd IMU support
v0.37:
 - bugs: 2:yaw pan by 180° yields pan steps, 4:yaw1,2 run crazy after long while (hexakopter/Dario) -> handle +-180° thing in imu_Mahony for YawAngleTarget and _YawAngle
 - bug: motorusage != normal -> set also pid Cntrl to zero
 - bug: i2c_enforcerecover() also for 2nd IMU
 - SETUP_OffsetXXX not needed
 - reset imu then orientation is changed (not very important, with USB only LEVEL is reached and then time constant is fast)
 - rename MAVLINK_CMD_SETAUXKEYS to MAVLINK_CMD_ACTIVEPANMODESETTING
 - motor usage = disabled as default
v0.38:
 - removed using _StartupOscillationDetectionThreshold
 - YawT for yaw2 set to 400, YaT for yaw1 re-enabled
 - level pitch&roll max set to 120°,75°
VERSION RELEASED as version v0.38e on 10.Aug.2014
v0.39:
 - bug: in _imu_do_lpf4imusensor()
 - bug: CntrlI rollover by 360° (or maybe 180°), not fpoleangle
 - bug: MotorPos limit to +-30000 removed
 - GUI: pitch and roll offset limited to +-5°, 0.05° steps (yaw offset range should remain large)
 - motor poles = 14 as default
 - feedforward: smooth handling of changes in feedforward gain and/or imu2 configuration
 - Imu2Params handling modified
 - signs in PID control loop changed
 - calibration commands and functions implemented
 - serial cmd stores calib data in Setup&EEPROM, but gzero is not activated (keep startup values)
 - startup calibration data in separate structure, acc startup calib not used
 - GUI: Calibrate Acc tab
VERSION RELEASED as version v0.39e on 18.Aug.2014
v0.40:
 - bug: in feedforward (hexakopter/Dario)
 - oscillation detection
VERSION RELEASED as version v0.40e on 24.Aug.2014
v0.41:
 - bug: end of relevel detection corrected
 - PanExpo for soft limiting pan
 - RcHysteresis
 - RcOffset, replaces Offset and in fact does it better, Offset now only for level adjustment, works with relevel
VERSION RELEASED as version v0.41e on 26.Aug.2014
v0.42:
 - fixed point q (see also http://www.olliw.eu/2014/fast-functions/)(110us instead of 250 us)
 - fixed point AHRs params
 - fixed point A,R,G (70us)
 - YawT scale changed, fixed point YawT, renaming to f
 - fixed point tIMUSensor,
 - fixed point _imu_confidence, further little improvements in imu code
 - setup_handle_calibration_change() without intermediate float
 - better code for (s16)(10000.0f*q24_to_float(f))
v0.43:
 - pid control structure: new axis mixing algorithm, pan mechanism, motor predictor, yaw2 predictor; solves also these bugs:
 - bug: 90°yaw then phh and pitch, yields pitch pan errors (hexakopter/Dario)
 - bug: yaw pan, and the "pitch" along stick yields roll error (careyer/Thomas)
 - oscillation detection moved to later
 - acc method advanced as default
 - UART3 remapped changed to UART4
 - green led debug mode
VERSION RELEASED as version v0.43e on 20.Sep.2014
v0.44:
 - bug: standby, s32
 - bug: RcOffset were not set
 - bug: Imu2 offset correction at startup was only for pitch,
 - bug: do Imu2 startup offset correction only for pitch&roll, yaw doesn't work
 - bug gui: COM range extended to 999 (GekoCH/Andy)
 - R2 lpf filter (doesn't seem to do much, though), set to 1 as default
 - fwrap180() for YawT
 - serial moved
 - Imu2 offset startup correction handling improved
 - GyroLPF = 1 as default
 - handling cases then a motor is off, fall back to default
 - handling of IMU2 NOT present in the PID aftermath
v0.45:
 - bug gui: allow up to com999  (GekoCH/Andy)
 - ppm with 12 channels added (GekoCH/Andy)
 - dead-band in pan mode for yaw
 - bug: Gyro2Zero was set to g1zero in serial (as it wasn't used so far, didn't had any impact)
 - bug gui: in 6 point calibration zeros were too large by a factor of 2
 - pid parameters handling faster
 - deadband in panmode for all three axes
v0.46:
 - gui: align yaw axis tool
VERSION RELEASED as version v0.46 on 1.Oct.2014
v0.47:
 - bug: mavlink_crc_accumulate_buffer() used uint_8 length
 - tMotorDirDetect
 - PRODUKTIONRELEASE in setup restructured
 - script programming introduced
v0.48:
 - bug: ReCenter cleared for all axes if one was in absolute (ransalp/Klaus)
 - bug: input_getfunctionvalues() rcmid (didn't had any consequences)
 - bug claim: "There will also no connection to the GUI if the IMU is not connected or the IMU connection is broken." NO, is OK for both USB & UART
 - irled: Panasonic, gives one 50ms pulse (nicodh)
 - script processor redesigned
v0.49:
 - bug: neither on-board nor extra IMU2 is present, removed hardstop, removed motor off (Ernst)
 - bug gui: allow up to com999 also for flashing (GekoCH/Andy)
 - gui: edit board name tool added (GekoCH/Andy)
 - virtual extended up to 12 (GekoCH/Andy)
v0.50:
 - acc 8000 tweak (GekoCH/Andy,KingDaKa/Andre)
 - 'xz' command only does pitch&roll
v0.51:
 - 'xy' command added, Align Yaw Tool adapted
VERSION RELEASED as version v0.51 on 10.Oct.2014

v0.512e:
 - bug gui: Load and Save settings were broken(Greg Covey)
 - bug gui: RESTORE wasn't handled
 - bug: restore script cmd should change all parameters, except 'Script Control'
 - gui: Update Tool, Configure Gimbal Tool added, and tabs restructured
v0.52:
 - gui: Motor Configuration parameter deprecated, i.e. moved to hidden expert tab
 - mavlink MAVLINK_CMD_SETSCRIPTCONTROL added
v0.53:
 - bug: _imu_do_lpf4imusensor(), not really important
 - bug: pan deadband was linked to Setup.PanDeadBand.Yaw
 - beeps: beeps with motors, at Normal, Store, SetCalibration (suggested by GekoCH/Andi)
 - lander below yaw motor: correct startup now with PID=0 (suggested by nicodh)
 - TASK_CALIBRATE_RCTRIM instead of STATE_CALIBRATE_RCTRIM
 - RcAdcLPF: lpf for POT
 - PanDeadbandHysteresis: hysteresis for pan deadband edge, use with care!
 - script: restore changed to restoreall, restore param added
 - script: active from the beginning
 - script: WAIT command
 - setup_init(): carries over values from v0.51 layout
 - beeps: no Vmax scaling, on/off better
v0.54:
 - script: extension to 4 scripts in parallel
 - script: script control for scripts 2,3,4 can be changed from script1
v0.55:
 - baudrate adjustable, 'xu' command added, stores in EEPROM (suggested by flyingbison)
 - beeps: several modes, beep on pan change & all (suggested by GekoCH/Andi)
 - beeps: rctrim @ basic, recenter @ all
 - behavior of 'xn' command changed, stores now in EEPROM
 - uart_transmit(), usb only once
v0.56:
 - gui: bt auto configure adapted to uart baudrate changes
 - PanDeadbandHysteresis put to the front, got tested and found to be good by GekoCH, is identical for all three axes
VERSION RELEASED as version v0.56 on 28.Nov.2014

v0.57
 - bug: pid_init() corrected
 - bug gui: yaw alignment allows +-45° (wdaehn/Werner)
 - #define SECONDIMU removed, oscillation detection removed
 - Set_System() renamed to USB_Set_System(), moved USB_Interrupts_Config() in init
 - usb_init() first, uart_do_serial() with return, 'xx' changed to 'xX' for hard reset,
 - MAININIT scheduler, 'xx' to restart, 'xW'
 - gui: Calibration Tool significantly extended
VERSION distributed as version v0.57e on 13.Dez.2014
v0.58:
 - bug gui: com write params corrected, solves hang up when wrong com port is selected
 - gui: $ExecuteCmdBTAddedTimeOut added to ini
 - RcHysteresis set to 5 as default
 - rcchannels-lib: rc_status: failsafe flag reset on disable/enable; in rc_init & rc_disable: PPM_DEFAULT; no _disable()
 - spektrum support
VERSION distributed as version v0.58e on 25.Jan.2015
 - bug gui: com write params corrected, solves hang up when wrong com port is selected
 - gui: $ExecuteCmdBTAddedTimeOut added to ini
 - RcHysteresis set to 5 as default
 - rcchannels-lib: rc_status: failsafe flag reset on disable/enable; in rc_init & rc_disable: PPM_DEFAULT; no _disable()
 - spektrum support
VERSION distributed as version v0.58e on 25.Jan.2015
v0.59:
 - bug: spektrum two-frame case wasn't handled correctly??
 - ir: use IR_RCC_APBxPeriphClockCmd()
 - uart2_init_off()
 - sbus support, tested by nicodh, seems to work
 - gui: 'gimbal support' renamed to 'full'
 - 16 virtual channels (confirmed by nicodh to work)
 - spektrum sbus struct simplified
v0.60:
 - gui: simplified pid tuning
 - eeprom version adaption
VERSION distributed as version v0.60e on 29.Jan.2015
v0.61:
 - bug gui: Configure Gimbal Tool broke after reset with UART, but not with USB, solved
 - gui: simplified PID tuning, handling improved
 - gui: init tool windows at first call
 - gui: Share Settings redone
 - gui: help
 - Setup.MotorConfigfuration renamed to MotorMapping, and similarly in o323bgc-motor.h
 - ImuMapping
 - eeprom carried over from L056, L060
 - Offsets shift zero of imu1 acc sensor data
VERSION distributed as version v0.61e on 3.Feb.2015
v0.62:
 - bug: usb OUT_DATA_SIZE  (VIRTUAL_COM_PORT_DATA_SIZE-4)
 - DEBUG_STARTUPSENSORMESSAGES
 - old mavlink: is called now mavlinkrc, startbyte changed to 0xFD
 - real mavlink:
   *tested:   heartbeat, param_value, param_request_list, param_set,
   *prepared: command_ack, param_request_read, command_long
   *setup parameters: MavSystemId, MavComponentId, MavConfiguration,
 - first attempt towards Remote.Angle
v0.63:
 - bug gui: Acc16PCalibrationCalc1PointCalibration() limits to narrow (kurtrdoc)
 - bug gui: ShareSettings could get outside of desktop window (irun4fundotca)
 - real mavlink: all parameters, some are NU
 - real mavlink: set of parameters with change flag //untested //could be improved
 - Remote.Angle should work exactly as Remote.Input //not thoroughly
 - eeprom carried over from L056, L060, L061
VERSION distributed as version v0.63e on 11.Feb.2015
 - bug gui: mavlink rc GetData() failed, too short length (lvale)
 - bug gui: Configuer Gimbal Tool store to eeprom failed
 - gui: acc calibration and configure gimbal tool streamlined with connect stuff
VERSION distributed as version v0.63ec on 13.Feb.2015
v0.64:
 - bug gui: fixed status bar font & font size (lvale)
 - bug gui: Execute_IsRunning used for main buttons
 - bug: BT configure tool 'a'...'h' in names, changed to use '@' (lvale)
 - bug: RcSpeedLimit=0 didn't work in relative mode
 - bug: RcOffset, now limited separately to avoid strange looking situations
 - speed limiter and min-max limiter swapped, works equally fine
 - Remote.Angle outside of min-max limiter, infinite Remote.Angle control, use is controlled by Remote.AngleFlags
 - recenter clears also Remote.Angle in both rel and abs mode
VERSION distributed as version v0.64e on 25.Feb.2015
v0.65:
 - bug: Remote.AngleFlags worked only for pitch, not roll, yaw
 - gui: simple motion control support
VERSION distributed as version v0.65e on 27.Feb.2015
v0.66:  (L066)
 - bug gui: packed values were displayed wrongly
 - bug gui: $MaxConnectionLost was zero
 - bug: #define SETUP_ScriptControlx were wrong
 - bug: input_reset(0xFFFF), and not 0xFF;
 - gui: Execute_IsRunning systematically for all buttons and clicks, Execute_IsRunning in main timer, FlushPort in timer
 - gui: Motion Control SetParameter() command
 - some optimizations in rcchannels.h, spektrum.h
 - mavlink buf usage changed
 - doserial 4 times per loop
 - pwmout, speed, minmax, active from start on
   Setup adapted, Remote adapted, gui adapted, MavlinkSetup adapted, Mavlink RC cmds adapted, Mavlink RC Tool adapted
   Motion Control adapted
 - MAVLINKRC_CMD_SETPITCHROLLYAW
 - 180 MAV_CMD_DO_SET_PARAMETER, (nu) 220 MAV_CMD_DO_MOUNT_CONTROL_QUAT in NED
 - STorM32 specific Mavlink commands, see mavlink_storm32.xml
   236 MAVLINK_MSG_ID_PARAM_READ2, 237 MAVLINK_MSG_ID_PARAM_SET2, 238 MAVLINK_MSG_ID_PARAM_VALUE2
   234 MAVLINK_MSG_ID_COMMAND_TARGET_SPECIFIC, 235 MAVLINK_MSG_ID_COMMAND_TARGET_SPECIFIC_ACK
 - eeprom update things changed a bit
 - eeprom update from L056, L062 (=v0.65e)
VERSION distributed as version v0.66e on 6.Mar.2015
v0.67:  (L066)
 - bug: eeprom update, INPUTFUNCTIONUNDEFINED_L056, INPUTFUNCTIONUNDEFINED_L062
 - bug: msg_id, target sys/comp wrong in COMMAND_TARGET_SPECIFIC_ACK_CRC
 - mavlink_message_t is never allocated, so use payload64[64]
 - eeprom update from L056, L062, L066: v0.56,v0.65e,v0.66e
VERSION distributed as version v0.67e on 10.Mar.2015
v0.68:
 - bug: MAV_CMD_DO_MOUNT_CONTROL memcpy instead of type cast for param6
 - bug gui: displayed bytes when getcommand
 - gui: Configure Gimbal Tool checks for presence of imu(s)
 - mavlink-wrapper crc simplified
 - maximum serial chars per cycle, but only one command
VERSION RELEASED as version v0.68 on 28.Mar.2015
v0.69:
 - bug gui: negative values in scripts (chsw)
 - bug gui: simple PID clicks, now only one step
 - bug gui: Clear GUI -> sets always defaults
 - bug: maximum serial chars per cycle, but only one command, done hopefully correctly now
v0.70:
 - bug: ff quaternion filter wasn't active
VERSION RELEASED as version v0.70 on 5.Apr.2015

v0.71:
 - first attempt to implement HoTT SUMD, no crc check yet, limited to 16 channels => doesn't work (by joebarteam/Menno)
VERSION distributed as version v0.71e on 6.Apr.2015
v0.72:
 - bug: filled empty channels at wrong place in spektrum_update()
 - gui: ExecuteCmdTimeOutFirst=8 instead of 3 as default to work with 3DR radio (by RYBAT)
VERSION distributed as version v0.72a to joebarteam/Menno
v0.73x:
 for STorM32-Link: continuation of v0.69-bc, heartbeat is off, UART is solely for STorM32-Link
 - gui: LINK fields added
 - fYawAngleTargetPrediction to remove a dirty trick
 - STorM32 Link: seems to work :D:D:D
VERSION distributed as version v0.73x on 22.Apr.2015
v0.74:
 - bug: MAV_CMD_DO_MOUNT_CONTROL_QUAT quat converted along the lines found for the STorM32 link, untested
 - bug: HoTT, 2*len+5, works, tested&confirmed (by fpvberlin/Jörg)
 - gui: Configure Gimbal Tool detects i2c errors and $STATUS_LEVEL_FAILED in StepII
 - MAV_CMD_DO_SET_SERVO added, untested
VERSION distributed as version v0.74a on 25.Apr.2015 to fpvberlin/Jörg
VERSION distributed as version v0.74e on 26.Apr.2015
v0.75:
 - bug: current_time - loop_time_micros doesn't work
 - gui: mavlink embedding for Motion Control
 - TASK_MAV_SENDHEARTBEAT instead of doHeartBeat
 - added mavLink message STATUSTEXT #234
 - added mavLink command MAV_CMD_DO_DIGICAM_CONTROL #76#203
 - MAV_CMD_DO_MOUNT_CONTROL:
     type 0x01 added to choose pwm input
     flags changed such that unlimited is default (0x00)
     pwm input made to mimic RCMavlink
 - MAVLINKRC_CMD_SETPITCHROLLYAW: changed such that 700>=in<=2300 is required, 0 = recenter, otherwise it is ignored
VERSION distributed as version v0.75a on 9.Mai.2015
v0.76:
 - bug: script stateness wrong for no>0
 - gui: script compiler adapted (SETPITCH, SETROLL, SETYAW, SETPITCHROLLYAW, not supported)
 - consistent treatment of PWMPASSTHROUGH in script, mavlinkrc, mavlink
 - online scripts: added motion control commands
     SETANGLEPITCH, SETANGLEROLL, SETANGLEYAW, SETANGLE,
     SETPITCH, SETROLL, SETYAW, SETPITCHROLLYAW,
     SETSTANDBY, DOCAMERA, DORECENTER, SETPWM
VERSION distributed as version v0.76a on 12.Mai.2015
v0.77:
 - gui: script editor window sizeable, quick buttons
 - gui: motion control script editor window sizeable, quick buttons
 - added mavlink messages MAVLINK_MSG_ID_DIGICAM_CONTROL, MAVLINK_MSG_ID_MOUNT_CONFIGURE, MAVLINK_MSG_ID_MOUNT_CONTROL
 - added mavlink command COMMAND_LONG - MAV_CMD_DO_MOUNT_CONFIGURE
 - Multiplex SRXL support added (untested so far)
VERSION distributed as version v0.77e on 16.Mai.2015
v0.78: (L078)
 - bug: do time check in serial only after at least one char was processed, prevents disconnect on I2C blocking (by Noircogi)
 - bug gui: Read Calibration failed sometimes, bug in ExecuteCommandFull, len not correctly considered (by lakeroe/Bernhard)
 - bug gui: Share Settings window adaptive
 - gui: do a Read after a Motion Control Run
 - gui: added motion control commands RestoreParameter(), RestoreAllParameter()
 - gui: changed to RcCmd
 - L078 is identical to L066, but commands have changed, hence the layout change
 - serial_transmit, remove numberofcharspercall
 - live data handling changed to use flags
 - remote stuff moved to h
 - serial handler massively revised (!)
 - MAVLINKRC commands dropped and implemented as RCCMD commands instead
 - simple serial commands also embedded in MAVLINK_MSG_ID_COMMAND_TARGET_SPECIFIC
 - rc command CMD_GETDATAFIELDS changed to use live data flags
 - MAVLINK_MSG_ID_COMMAND_LONG-MAV_CMD_DO_SET_PARAMETER with param7==83 it does a restore parameter
 - MAVLINK_MSG_ID_COMMAND_LONG-MAV_CMD_DO_MOUNT_CONTROL param6 handling changed to typeflags = param6 (not memcpy)
   => this needs also change in betacopter!
 - added mavlink message MAVLINK_MSG_ID_PARAM_SET, write+stores parameter change (ATTENTION: only because of APM!)
 - added mavlink command MAVLINK_MSG_ID_COMMAND_LONG-MAV_CMD_PREFLIGHT_STORAGE
 - added mavlink message MAVLINK_MSG_ID_ATTITUDE
 - Setup MavConfiguration, new option 2, emits heartbeat at 1Hz and attitude at 2Hz
 - mavlink crc check enabled
 - when mavlink enabled, accept only mavlink messages from UARTA (mavlink from USB allowed, but there is no heartbeat on USB)
 - emit mavlink attitude only when other system was detected
 - mavlink heartbeat sets also base_mode for armed/disarmed
 - RCCMD commands RESTOREPARAMETER, RESTOREALLPARAMETER added
VERSION distributed as version v0.78e on 26.Mai.2015
v0.79:
 - gui: links in .ini
 - gui: wiki link when StepII error
 - clocks moved to h
 - use millis in livedata timestamp
 - mavlink message MAVLINK_MSG_ID_PARAM_SET, remove store, in MissionPlanner use Ctrl-Y to store
VERSION RELEASED as version v0.79 on 6.June.2015

v0.80:
 - bug: parameters are not properly updated from L066 when flashing (by irun4fundotca)
 - gui bug: errors in stepII wrong (by twang)
 - gui bug: starting Configure Gimbal Tool or Acc Calibration with invalid com port failed fatally
 - gui: better message when firmware version mismatch
 - 5S and 6S lipo handling added (by djberna)
 - ntbus: ntbus mpu support
 - ntbus: i2c is not possible, when run simultaneously on imu2
 - ntbus: priority of ntbus uart set to 1, higher than usb
 - ntbus: changes in motor.h to record states to support ntbus motor drivers
 - motor.h further modified
 - s16tempraw after raw a,g
VERSION RELEASED as version v0.80 on 13.June.2015


v0.81:
 - uart,uartc faster rx isr method
 - ntbus: noise errors removed, xor crc
v0.82:
 - bug: i2c_reseterrorcnt() in find and init
 - bug gui: OK in Configure Gimbal Tool sometimes not enabled
 - motor mapping all six combinations
 - uart tx isr, faster rx isr
 - ntbus protocol changed in some parts
 - ntbus find module faster, uses shorter timeout
v0.83:
 - bug: avoid too short first loop
 - bug ntbus: ntbus_module_config_str() broken get configuration
 - gui: better GUI message for firmware flashing
 - default yaw pan deadband, hysteresis changed
 - clocks.h largely replaced by looptime
 - ntbus tx isr, interlaced (gains 100us), setmotorall() no rx flush
 - ntbus NT Logger data added
 - ntbus make compatible with I2C1 for on-board 2nd IMU
 - i2c.h,mpu6050.h changed to not rely on CPAL_USE_I2Cx
v0.84:
 - bug: voltage correction produced buzz every ca 49s (by bikemikem)
 - direction detection in startup_level_do() only if MOTORDIRAUTO (by wdaehn)
 - gui: allow larger Rc Hysteresis (by wdaehn)
 - ntbus tx per dma
 - log imu raw data
v0.85: (L085)
 - ntbus log, add pid data (adds 80us!)
 - ntbus log, selectable data
 - ntbus modules support setting into bootloader mode
 - gui: flash firmware adapted, sets nt module into bootloader mode
 - TASK_MAV checks time
v0.86:
 - gui: hidden checkbox in acc calibration to override value checks (by GekoCH)
 - ntbus modules, set ports to zero on flash
v0.87: (L087)
 - bug: ts16Imu6Vector s32filtered needs s32
 - bug gui: Silabs adapters didn't work (by hexakopter)
 - bug gui: sanity check of Dialog&DataDisplay init positions
 - update to gcc-arm-none-eabi-4_9-2015q3-20150921
 - gui: add option to remove flash protections to flash tab
 - gui: gimbal config tool i2c check in stepI
 - gui: live recording of DataDisplay data into file
 - gui: data in DataDisplay and NT Tool can be saved in CSV format
 - gui: data in DataDisplay and NT Tool can be saved in PX4 .bin format, for reading with MissianPlanner
 - gui: VIBE along the lines of APM added to stored data files
 - gui&ntbus: new NTDataLoggerTool written in PyQT
 - new rc input absolute modes: old 'absolute' becomes 'absolute centered', 'absolute' is now simple fashioned
 - mavlink message MAVLINK_MSG_ID_ATTITUDE, yaw angle with respect to copter direction (by ljalves)
 - defaults for yaw pan changed
v0.88a:
 - gui bug: halt acc calibration upon disconnect
 - gui nt logger bug: some bugs with loading
 - ee_getpagebaseaddress() instead of EE_PAGE0_BASE_ADDRESS
 - q30_asin_normalized() changed a bit
 - enum IMU2CONFIGURATIONTYPE changed a bit
 - multi-click keys: 4step for but, aux0, aux1, aux2 (by andreas.brett), _input_keyispressed(),_input_keypress() modularized
 - futaba sbus2 support (by gmamo)
 - nikon IR led protocol (by gmamo)
 - fullv2 2nd IMU support
 - bug: pitch for fullv2 corrected for effective setpoint
 - bug; sbus2 end byte wrong order
 - gui bug: PanModeControl, IRCameraControl grayed out for step option (by pawelsky)
 - bug: sbus2 doesn't work => canceled
 - bug: uart had a left-in uncomment, made BT to fail (by Stevie69)
 - bug: change to SCRIPTSIZE_L088, tSetup_L088
 - bug: also track VERSIONSTR and BOARDSTR changes
 - only one pan-hold transition time variable
 - fdT removed
 - yaw pan new mechanism with Yaw Pan LPF
v0.89:  (L089)
 - bug: mavlink parameters out of order
 - gui: dashboard added, some parameters moved
 - gui: simplified pids as default
 - gui: show notes dialog at startup
 - gui&ntbus: NTDataLoggerTool v005 with Graph
 - for hold->pan make transition time a bit faster
 - motor active status added to status2
 - recenter also resets an accumulated yaw pan set point, a bit rough but works
 - space for one more parameter in setup_ptr
 - mavlink SetupParam adapted
 - no EEPROM setup correction, reset all
 - IMU2CONFIGURATIONTYPE renamed and rearranged !
 - gui bug: Configure Tool aborted due to missing GetState() (by MatixYo)
 - gui: auto write upon PID changes (by wdaehn)
 - gui: info center slightly changed
