diff --git a/src/shared/radio/SX1278/SX1278.cpp b/src/shared/radio/SX1278/SX1278.cpp
index bed1ae549d6daf57f3b77e8f6f0787c3efa9b5d9..00036c0302822c642a02b76c981a90b575801bed 100644
--- a/src/shared/radio/SX1278/SX1278.cpp
+++ b/src/shared/radio/SX1278/SX1278.cpp
@@ -156,15 +156,16 @@ SX1278::SX1278(SPIBusInterface &bus, miosix::GpioPin cs) : bus_mgr(bus, cs) {}
 
 SX1278::Error SX1278::init(Config config)
 {
-    // Lock the bus
-    bus_mgr.lock(Mode::MODE_STDBY);
-    bus_mgr.waitForIrq(RegIrqFlags::MODE_READY);
-
+    // Check if the device is sane before locking the bus
     if (getVersion() != 0x12)
     {
         return Error::BAD_VERSION;
     }
 
+    // Lock the bus
+    bus_mgr.lock(Mode::MODE_STDBY);
+    bus_mgr.waitForIrq(RegIrqFlags::MODE_READY);
+
     setBitrate(config.bitrate);
     setFreqDev(config.freq_dev);
     setFreqRF(config.freq_rf);