diff --git a/BLACKLIST.txt b/BLACKLIST.txt
deleted file mode 100644
index 59aa3651b..000000000
--- a/BLACKLIST.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-3D Robotics
-They sell the Iris+ with a modified version of OpenTX which doesn't fullfil the GPL requirements.
-No donations, no thanks, we are just free staff for them...
diff --git a/DONATIONS.txt b/DONATIONS.txt
index cb0674da2..724bc123f 100644
--- a/DONATIONS.txt
+++ b/DONATIONS.txt
@@ -8,6 +8,7 @@
LitePilots
David Ankers (OpenPilot)
3D Robotics
+RC Studio (monthly)
Mario Sette
Felice Baratto
@@ -401,7 +402,6 @@ Colin Rycroft
Emanuel Stassar
Michael Gregory
Robert Russell
-Gordon Stahl
Felix Kaiser
Joshua Bardwell
Davd Goodall
@@ -599,7 +599,6 @@ Julien Gérard
Alexandre d'Alton
Peter Mergaerts
Jan Houwers
-Gordon Stahl
Christian Grandjean
Roger Bergevin
NorthSide
@@ -802,4 +801,12 @@ Roger Keatley
Sherman Lovell
Hugh Caldwell
JB Fisher Company
-
+Michels Bernhard
+Pietro Rossin
+Carsten Wache
+Brock White
+Steven Poretz
+David Huelster
+Gordon Stahl (monthly)
+John Mathison
+Richard Duczmal
diff --git a/README.md b/README.md
index 94e728aca..3b9107a98 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
##OpenTX 2.1 Branch
-The ongoing development is not done in this branch. It is performed in the branch called next.
+The ongoing development on 2.1.x is done in this branch.
Refer to the opentx.wiki for information about setting up the tool chains for building OpenTX and OpenTX Companion as well as other development related issues.
diff --git a/companion/releasenotes.txt b/companion/releasenotes.txt
index 604fb1c12..36765d48b 100644
--- a/companion/releasenotes.txt
+++ b/companion/releasenotes.txt
@@ -1,4 +1,5 @@
Version 2.1.2 /
+
- Fixed: Lua model scripts outputs not working in a simulator (#2684)
- Fixed a problem of Companion 2.1 trying to install into 2.0 path.
@@ -6,6 +7,10 @@
(#2645)
- Added missing SDL libraries to MAC package (#2678)
- Added used channels check/warning in Wizard (#2091)
+- Model Print and Model Compare improvements and fixes (#2734, #2737, #2576)
+- Negative telemetry offset value was reset when writing back to radio (#2738)
+- Telemetry sensor names were not displayed (#2807)
+- Mixes multiplex representation now the same as on the radio (#2808)
diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt
index 679b69ee4..e1d586e89 100644
--- a/companion/src/CMakeLists.txt
+++ b/companion/src/CMakeLists.txt
@@ -6,7 +6,7 @@ SET(C9X_VERSION_REVISION "2")
SET(C9X_VERSION_SUFFIX $ENV{OPENTX_VERSION_SUFFIX})
SET(C9X_VERSION ${C9X_VERSION_MAJOR}.${C9X_VERSION_MINOR}.${C9X_VERSION_REVISION}${C9X_VERSION_SUFFIX})
-MESSAGE(STATUS OpenTX Companion ${C9X_VERSION})
+MESSAGE(STATUS "OpenTX Companion ${C9X_VERSION}")
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
diff --git a/companion/src/appdata.cpp b/companion/src/appdata.cpp
index 187bd6cb8..e6e45029d 100644
--- a/companion/src/appdata.cpp
+++ b/companion/src/appdata.cpp
@@ -312,10 +312,10 @@ QString Profile::speaker() const { return _speaker; }
QString Profile::stickPotCalib() const { return _stickPotCalib; }
QString Profile::timeStamp() const { return _timeStamp; }
QString Profile::trainerCalib() const { return _trainerCalib; }
-int Profile::currentCalib() const { return _currentCalib; }
+int Profile::txCurrentCalibration() const { return _txCurrentCalibration; }
int Profile::gsStickMode() const { return _gsStickMode; }
int Profile::ppmMultiplier() const { return _ppmMultiplier; }
-int Profile::vBatCalib() const { return _vBatCalib; }
+int Profile::txVoltageCalibration() const { return _txVoltageCalibration; }
int Profile::vBatWarn() const { return _vBatWarn; }
int Profile::vBatMin() const { return _vBatMin; }
int Profile::vBatMax() const { return _vBatMax; }
@@ -342,10 +342,10 @@ void Profile::speaker (const QString x) { store(x, _speaker, "Speake
void Profile::stickPotCalib (const QString x) { store(x, _stickPotCalib, "StickPotCalib" ,"Profiles", QString("profile%1").arg(index));}
void Profile::timeStamp (const QString x) { store(x, _timeStamp, "TimeStamp" ,"Profiles", QString("profile%1").arg(index));}
void Profile::trainerCalib (const QString x) { store(x, _trainerCalib, "TrainerCalib" ,"Profiles", QString("profile%1").arg(index));}
-void Profile::currentCalib (const int x) { store(x, _currentCalib, "currentCalib" ,"Profiles", QString("profile%1").arg(index));}
+void Profile::txCurrentCalibration (const int x) { store(x, _txCurrentCalibration, "currentCalib","Profiles", QString("profile%1").arg(index));}
void Profile::gsStickMode (const int x) { store(x, _gsStickMode, "GSStickMode" ,"Profiles", QString("profile%1").arg(index));}
void Profile::ppmMultiplier (const int x) { store(x, _ppmMultiplier, "PPM_Multiplier" ,"Profiles", QString("profile%1").arg(index));}
-void Profile::vBatCalib (const int x) { store(x, _vBatCalib, "VbatCalib" ,"Profiles", QString("profile%1").arg(index));}
+void Profile::txVoltageCalibration (const int x) { store(x, _txVoltageCalibration, "VbatCalib","Profiles", QString("profile%1").arg(index));}
void Profile::vBatWarn (const int x) { store(x, _vBatWarn, "vBatWarn" ,"Profiles", QString("profile%1").arg(index));}
void Profile::vBatMin (const int x) { store(x, _vBatMin, "VbatMin" ,"Profiles", QString("profile%1").arg(index));}
void Profile::vBatMax (const int x) { store(x, _vBatMax, "VbatMax" ,"Profiles", QString("profile%1").arg(index));}
@@ -378,10 +378,10 @@ Profile& Profile::operator=(const Profile& rhs)
speaker ( rhs.speaker() );
stickPotCalib( rhs.stickPotCalib() );
trainerCalib ( rhs.trainerCalib() );
- currentCalib ( rhs.currentCalib() );
+ txCurrentCalibration ( rhs.txCurrentCalibration() );
gsStickMode ( rhs.gsStickMode() );
ppmMultiplier( rhs.ppmMultiplier() );
- vBatCalib ( rhs.vBatCalib() );
+ txVoltageCalibration ( rhs.txVoltageCalibration() );
vBatWarn ( rhs.vBatWarn() );
vBatMin ( rhs.vBatMin() );
vBatMax ( rhs.vBatMax() );
@@ -424,10 +424,10 @@ void Profile::initFwVariables()
_timeStamp = "";
_trainerCalib = "";
- _currentCalib = 0;
+ _txCurrentCalibration = 0;
_gsStickMode = 0;
_ppmMultiplier = 0;
- _vBatCalib = 0;
+ _txVoltageCalibration = 0;
_vBatWarn = 0;
_vBatMin = 0;
_vBatMax = 0;
@@ -483,10 +483,10 @@ void Profile::flush()
getset( _stickPotCalib, "StickPotCalib" ,"" ,"Profiles", QString("profile%1").arg(index));
getset( _timeStamp, "TimeStamp" ,"" ,"Profiles", QString("profile%1").arg(index));
getset( _trainerCalib, "TrainerCalib" ,"" ,"Profiles", QString("profile%1").arg(index));
- getset( _currentCalib, "currentCalib" ,0 ,"Profiles", QString("profile%1").arg(index));
+ getset( _txCurrentCalibration, "currentCalib" ,0 ,"Profiles", QString("profile%1").arg(index));
getset( _gsStickMode, "GSStickMode" ,0 ,"Profiles", QString("profile%1").arg(index));
getset( _ppmMultiplier, "PPM_Multiplier" ,0 ,"Profiles", QString("profile%1").arg(index));
- getset( _vBatCalib, "VbatCalib" ,0 ,"Profiles", QString("profile%1").arg(index));
+ getset( _txVoltageCalibration, "VbatCalib" ,0 ,"Profiles", QString("profile%1").arg(index));
getset( _vBatWarn, "vBatWarn" ,0 ,"Profiles", QString("profile%1").arg(index));
getset( _vBatMin, "VbatMin" ,0 ,"Profiles", QString("profile%1").arg(index));
getset( _vBatMax, "VbatMax" ,0 ,"Profiles", QString("profile%1").arg(index));
diff --git a/companion/src/appdata.h b/companion/src/appdata.h
index abb2b7eab..d80dd115d 100644
--- a/companion/src/appdata.h
+++ b/companion/src/appdata.h
@@ -125,10 +125,10 @@ class Profile: protected CompStoreObj
QString _stickPotCalib;
QString _timeStamp;
QString _trainerCalib;
- int _currentCalib;
+ int _txCurrentCalibration;
int _gsStickMode;
int _ppmMultiplier;
- int _vBatCalib;
+ int _txVoltageCalibration;
int _vBatWarn;
int _vBatMin;
int _vBatMax;
@@ -156,10 +156,10 @@ class Profile: protected CompStoreObj
QString stickPotCalib() const;
QString timeStamp() const;
QString trainerCalib() const;
- int currentCalib() const;
+ int txCurrentCalibration() const;
int gsStickMode() const;
int ppmMultiplier() const;
- int vBatCalib() const;
+ int txVoltageCalibration() const;
int vBatWarn() const;
int vBatMin() const;
int vBatMax() const;
@@ -186,10 +186,10 @@ class Profile: protected CompStoreObj
void stickPotCalib (const QString);
void timeStamp (const QString);
void trainerCalib (const QString);
- void currentCalib (const int);
+ void txCurrentCalibration (const int);
void gsStickMode (const int);
void ppmMultiplier (const int);
- void vBatCalib (const int);
+ void txVoltageCalibration (const int);
void vBatWarn (const int);
void vBatMin (const int);
void vBatMax (const int);
diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc
index c31939f85..907154c77 100644
--- a/companion/src/companion.qrc
+++ b/companion/src/companion.qrc
@@ -4,7 +4,6 @@
icon.png
../../CREDITS.txt
../../DONATIONS.txt
- ../../BLACKLIST.txt
../releasenotes.txt
images/9xdb.png
images/9xdl.png
diff --git a/companion/src/contributorsdialog.cpp b/companion/src/contributorsdialog.cpp
index 9d7e45fac..66c798817 100644
--- a/companion/src/contributorsdialog.cpp
+++ b/companion/src/contributorsdialog.cpp
@@ -63,12 +63,15 @@ ContributorsDialog::ContributorsDialog(QWidget * parent):
" " + tr("Honors go to Rafal Tomczak (RadioClone), Thomas Husterer (th9x) and Erez Raviv (er9x and eePe)") + "
|
" \
"");
+#if 0
QFile blacklist(":/BLACKLIST.txt");
if (blacklist.open(QIODevice::ReadOnly | QIODevice::Text)) {
QStringList names;
names << blacklist.readAll();
str.append(formatTable(tr("OpenTX Blacklist"), names, 1));
}
+#endif
+
str.append("