diff --git a/src/modules/SX128x/SX128x.cpp b/src/modules/SX128x/SX128x.cpp
index 5f5ac79e..3bc66b89 100644
--- a/src/modules/SX128x/SX128x.cpp
+++ b/src/modules/SX128x/SX128x.cpp
@@ -1112,7 +1112,7 @@ float SX128x::getSNR() {
   }
 }
 
-double SX128x::getFrequencyError() {
+float SX128x::getFrequencyError() {
     // check active modem
     uint8_t modem = getPacketType();
     if (!((modem == RADIOLIB_SX128X_PACKET_TYPE_LORA) || (modem == RADIOLIB_SX128X_PACKET_TYPE_RANGING))) {
@@ -1130,16 +1130,16 @@ double SX128x::getFrequencyError() {
     uint32_t efe = ((uint32_t) efeRaw[0] << 16) | ((uint32_t) efeRaw[1] << 8) | efeRaw[2];
     efe &= 0x0FFFFF;
 
-    double error;
+    float error;
 
     // check the first bit
     if (efe & 0x80000) {
         // frequency error is negative
         efe |= (uint32_t) 0xFFF00000;
         efe = ~efe + 1;
-        error = 1.55 * (double) efe / (1600.0 / (double) _bwKhz) * -1.0;
+        error = 1.55 * (float) efe / (1600.0 / (float) _bwKhz) * -1.0;
     } else {
-        error = 1.55 * (double) efe / (1600.0 / (double) _bwKhz);
+        error = 1.55 * (float) efe / (1600.0 / (float) _bwKhz);
     }
 
     return (error);
diff --git a/src/modules/SX128x/SX128x.h b/src/modules/SX128x/SX128x.h
index b86c3984..18f12f72 100644
--- a/src/modules/SX128x/SX128x.h
+++ b/src/modules/SX128x/SX128x.h
@@ -750,7 +750,7 @@ class SX128x: public PhysicalLayer {
 
       \returns Frequency error in Hz.
     */
-    double getFrequencyError();
+    float getFrequencyError();
 
     /*!
       \brief Query modem for the packet length of received payload.