Index: Configuration.cpp
===================================================================
--- Configuration.cpp	(revision 5394)
+++ Configuration.cpp	(working copy)
@@ -543,6 +543,8 @@
   bool udpWindowToFront_;
   bool udpWindowRestore_;
   DataMode data_mode_;
+  float interceptA_;
+  float slopeB_;
 
   QAudioDeviceInfo audio_input_device_;
   bool default_audio_input_device_selected_;
@@ -609,7 +611,10 @@
 bool Configuration::TX_messages () const {return m_->TX_messages_;}
 bool Configuration::enable_VHF_features () const {return m_->enable_VHF_features_;}
 bool Configuration::decode_at_52s () const {return m_->decode_at_52s_;}
+float Configuration::interceptA () const {return m_->interceptA_;}
+float Configuration::slopeB () const {return m_->slopeB_;}
 bool Configuration::split_mode () const
+
 {
   return !m_->rig_is_dummy_ and
       (m_->rig_params_.split_mode != TransceiverFactory::split_mode_none);
@@ -1022,6 +1027,8 @@
   ui_->accept_udp_requests_check_box->setChecked (accept_udp_requests_);
   ui_->udpWindowToFront->setChecked(udpWindowToFront_);
   ui_->udpWindowRestore->setChecked(udpWindowRestore_);
+  ui_->interceptA->setText(QString::number(interceptA_));
+  ui_->slopeB->setText(QString::number(slopeB_));
 
   if (rig_params_.ptt_port.isEmpty ())
     {
@@ -1205,6 +1212,8 @@
   accept_udp_requests_ = settings_->value ("AcceptUDPRequests", false).toBool ();
   udpWindowToFront_ = settings_->value ("udpWindowToFront",false).toBool ();
   udpWindowRestore_ = settings_->value ("udpWindowRestore",false).toBool ();
+  interceptA_ = settings_->value ("interceptA",0).toFloat ();
+  slopeB_ = settings_->value ("slopeB",0).toFloat ();
 }
 
 void Configuration::impl::write_settings ()
@@ -1289,6 +1298,8 @@
   settings_->setValue ("AcceptUDPRequests", accept_udp_requests_);
   settings_->setValue ("udpWindowToFront", udpWindowToFront_);
   settings_->setValue ("udpWindowRestore", udpWindowRestore_);
+  settings_->setValue ("interceptA", interceptA_);
+  settings_->setValue ("slopeB", slopeB_);
 }
 
 void Configuration::impl::set_rig_invariants ()
@@ -1639,6 +1650,8 @@
   save_directory_ = ui_->save_path_display_label->text ();
   enable_VHF_features_ = ui_->enable_VHF_features_check_box->isChecked ();
   decode_at_52s_ = ui_->decode_at_52s_check_box->isChecked ();
+  interceptA_ = ui_->interceptA->text ().toFloat ();
+  slopeB_ = ui_->slopeB->text ().toFloat ();
 
   auto new_server = ui_->udp_server_line_edit->text ();
   if (new_server != udp_server_name_)
@@ -2095,7 +2108,7 @@
       cached_rig_state_.mode (mode);
 
       // lookup offset
-      transceiver_offset_ = stations_.offset (f);
+      transceiver_offset_ = stations_.offset (f) + interceptA_ + slopeB_* f;
       Q_EMIT frequency (f + transceiver_offset_, mode);
     }
 }
@@ -2411,7 +2424,6 @@
   cb->setEditText (current_text);
 }
 
-
 #if !defined (QT_NO_DEBUG_STREAM)
 ENUM_QDEBUG_OPS_IMPL (Configuration, DataMode);
 ENUM_QDEBUG_OPS_IMPL (Configuration, Type2MsgGen);
Index: Configuration.hpp
===================================================================
--- Configuration.hpp	(revision 5394)
+++ Configuration.hpp	(working copy)
@@ -130,6 +130,8 @@
   QColor color_TxMsg () const;
   QColor color_DXCC () const;
   QColor color_NewCall () const;
+  float interceptA () const;
+  float slopeB () const;
 
   // This method queries if a CAT and PTT connection is operational,
   //
Index: Configuration.ui
===================================================================
--- Configuration.ui	(revision 5394)
+++ Configuration.ui	(working copy)
@@ -44,7 +44,7 @@
       <string>Select tab to change configuration parameters.</string>
      </property>
      <property name="currentIndex">
-      <number>0</number>
+      <number>5</number>
      </property>
      <widget class="QWidget" name="general_tab">
       <attribute name="title">
@@ -1837,6 +1837,78 @@
            </widget>
           </item>
           <item>
+           <widget class="QGroupBox" name="groupBox_3">
+            <property name="title">
+             <string>Frequency Calibration Factors</string>
+            </property>
+            <widget class="QLineEdit" name="slopeB">
+             <property name="geometry">
+              <rect>
+               <x>72</x>
+               <y>80</y>
+               <width>71</width>
+               <height>20</height>
+              </rect>
+             </property>
+             <property name="text">
+              <string>0</string>
+             </property>
+            </widget>
+            <widget class="QLineEdit" name="interceptA">
+             <property name="geometry">
+              <rect>
+               <x>72</x>
+               <y>50</y>
+               <width>71</width>
+               <height>20</height>
+              </rect>
+             </property>
+             <property name="text">
+              <string>0</string>
+             </property>
+            </widget>
+            <widget class="QLabel" name="label_7">
+             <property name="geometry">
+              <rect>
+               <x>10</x>
+               <y>50</y>
+               <width>61</width>
+               <height>16</height>
+              </rect>
+             </property>
+             <property name="text">
+              <string>Intercept A</string>
+             </property>
+            </widget>
+            <widget class="QLabel" name="label_8">
+             <property name="geometry">
+              <rect>
+               <x>10</x>
+               <y>80</y>
+               <width>46</width>
+               <height>13</height>
+              </rect>
+             </property>
+             <property name="text">
+              <string>Slope B</string>
+             </property>
+            </widget>
+            <widget class="QLabel" name="label_9">
+             <property name="geometry">
+              <rect>
+               <x>10</x>
+               <y>20</y>
+               <width>141</width>
+               <height>16</height>
+              </rect>
+             </property>
+             <property name="text">
+              <string>See WSPR docs Appendix C</string>
+             </property>
+            </widget>
+           </widget>
+          </item>
+          <item>
            <spacer name="horizontalSpacer_6">
             <property name="orientation">
              <enum>Qt::Horizontal</enum>
@@ -2251,12 +2323,12 @@
   </connection>
  </connections>
  <buttongroups>
-  <buttongroup name="PTT_method_button_group"/>
   <buttongroup name="TX_audio_source_button_group"/>
+  <buttongroup name="CAT_stop_bits_button_group"/>
   <buttongroup name="CAT_data_bits_button_group"/>
   <buttongroup name="CAT_handshake_button_group"/>
-  <buttongroup name="CAT_stop_bits_button_group"/>
+  <buttongroup name="TX_mode_button_group"/>
   <buttongroup name="split_mode_button_group"/>
-  <buttongroup name="TX_mode_button_group"/>
+  <buttongroup name="PTT_method_button_group"/>
  </buttongroups>
 </ui>
Index: mainwindow.cpp
===================================================================
--- mainwindow.cpp	(revision 5394)
+++ mainwindow.cpp	(working copy)
@@ -2535,7 +2535,7 @@
     t=t+" OOO";
     msgtype(t, ui->tx2);
     msgtype("RO", ui->tx3);
-    msgtype("RRR", ui->tx4);
+    msgtype("RR73", ui->tx4);
     msgtype("73", ui->tx5->lineEdit ());
   } else {
     t=t0 + rpt;
