diff --git a/Boards.h b/Boards.h
index 0a871de..649495e 100644
--- a/Boards.h
+++ b/Boards.h
@@ -101,12 +101,12 @@
   #define BOARD_RAK4631       0x51
   #define MODEL_11            0x11 // RAK4631, 433 MHz
   #define MODEL_12            0x12 // RAK4631, 868 MHz
-  #define MODEL_13            0x13 // RAK4631, 433MHz with WisBlock SX1280 module (LIBSYS002)
-  #define MODEL_14            0x14 // RAK4631, 868/915 MHz with WisBlock SX1280 module (LIBSYS002)
+  #define MODEL_13            0x13 // RAK4631, 433MHz with WisBlock SX1280 module (LIBSYS002 rev 1.3)
+  #define MODEL_14            0x14 // RAK4631, 868/915 MHz with WisBlock SX1280 module (LIBSYS002 rev 1.3)
 
   #define PRODUCT_OPENCOM_XL  0x20 // openCom XL - sold by Liberated Embedded Systems
   #define BOARD_OPENCOM_XL    0x52
-  #define MODEL_21            0x21 // openCom XL, 868/915 MHz
+  #define MODEL_21            0x21 // openCom XL v1, 868/915 MHz
 
   #define BOARD_E22_ESP32     0x45 // Custom Ebyte E22 board design for meshtastic, source:
                                    // https://github.com/NanoVHF/Meshtastic-DIY/blob/main/Schematics/E-Byte_E22/Mesh_Ebyte_E22-XXXM30S.pdf
diff --git a/Radio.cpp b/Radio.cpp
index 46100f9..52364dd 100644
--- a/Radio.cpp
+++ b/Radio.cpp
@@ -2147,102 +2147,100 @@ void sx128x::disableTCXO() {
 
 void sx128x::setTxPower(int level, int outputPin) {
     uint8_t tx_buf[2];
-    #if BOARD_VARIANT == MODEL_13 || BOARD_VARIANT == MODEL_21
-    // RAK4631 with WisBlock SX1280 module (LIBSYS002)
-    if (level > 27) { level = 27; } 
-    else if (level < 0) { level = 0; }
+    #if BOARD_VARIANT == MODEL_13 || BOARD_VARIANT == MODEL_14 || BOARD_VARIANT == MODEL_21
+    // RAK4631 with WisBlock SX1280 module (LIBSYS002 rev 1.3)
+    // Power range on this model is roughly -6 dBm to 20 dBm
+    if (level > 20) { level = 20; } 
+    else if (level < -6) { level = -6; }
 
     _txp = level;
 
     int reg_value;
 
     switch (level) {
+        case -6:
+            reg_value = -18; // -6.3 dBm
+            break;
+        case -5:
+            reg_value = -17; // -5.4 dBm
+            break;
+        case -4:
+            reg_value = -16; // -3.9 dBm
+            break;
+        case -3:
+            reg_value = -15; // -2.9 dBm
+            break;
+        case -2:
+            reg_value = -14; // -2 dBm
+            break;
+        case -1:
+            reg_value = -13; // CANNOT SET, BUG??
+            break;
         case 0:
-            reg_value = -18;
+            reg_value = -12; // -0.4 dBm
             break;
         case 1:
-            reg_value = -16;
+            reg_value = -10; // 1.1 dBm
             break;
         case 2:
-            reg_value = -15;
+            reg_value = -9; // 2.4 dBm
             break;
         case 3:
-            reg_value = -14;
+            reg_value = -8; // 3 dBm
             break;
         case 4:
-            reg_value = -13;
+            reg_value = -7; // 4.1 dBm
             break;
         case 5:
-            reg_value = -12;
+            reg_value = -6; // 5.1 dBm
             break;
         case 6:
-            reg_value = -11;
+            reg_value = -5; // 6 dBm
             break;
         case 7:
-            reg_value = -9;
+            reg_value = -4; // 7.3 dBm
             break;
         case 8:
-            reg_value = -8;
+            reg_value = -3; // 8.3 dBm
             break;
         case 9:
-            reg_value = -7;
+            reg_value = -2; // 9.2 dBm
             break;
         case 10:
-            reg_value = -6;
+            reg_value = -1; // 10.3 dBm
             break;
         case 11:
-            reg_value = -5;
+            reg_value = 0; // 11.4 dBm
             break;
         case 12:
-            reg_value = -4;
+            reg_value = 1; // 12.4 dBm
             break;
         case 13:
-            reg_value = -3;
+            reg_value = 2; // 13.5 dBm
             break;
         case 14:
-            reg_value = -2;
+            reg_value = 2; // 13.5 dBm
             break;
         case 15:
-            reg_value = -1;
+            reg_value = 3; // 14.3 dBm
             break;
         case 16:
-            reg_value = 0;
+            reg_value = 5; // 16.4 dBm
             break;
         case 17:
-            reg_value = 1;
+            reg_value = 6; // 17.1 dBm
             break;
         case 18:
-            reg_value = 2;
+            reg_value = 8; // 18.5 dBm
             break;
         case 19:
-            reg_value = 3;
+            reg_value = 10; // 19.2 dBm
             break;
         case 20:
-            reg_value = 4;
-            break;
-        case 21:
-            reg_value = 5;
-            break;
-        case 22:
-            reg_value = 6;
-            break;
-        case 23:
-            reg_value = 7;
-            break;
-        case 24:
-            reg_value = 8;
-            break;
-        case 25:
-            reg_value = 9;
-            break;
-        case 26:
-            reg_value = 12;
-            break;
-        case 27:
-            reg_value = 13;
+            reg_value = 13; // 20.1 dBm
             break;
         default:
-            reg_value = 0;
+            reg_value = -18;
             break;
     }