From 3abbf96bdd470e70f5d79277c2f36fee31dbdc5c Mon Sep 17 00:00:00 2001
From: Davide Mor <davide.mor@skywarder.eu>
Date: Thu, 21 Jul 2022 22:18:13 +0200
Subject: [PATCH] [sx1278] Fixed minor issues

---
 src/shared/radio/SX1278/SX1278.cpp   | 9 +++++----
 src/shared/radio/SX1278/SX1278Defs.h | 2 +-
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/shared/radio/SX1278/SX1278.cpp b/src/shared/radio/SX1278/SX1278.cpp
index bed1ae549..9accf7961 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);
-
+    // Do an early version check to avoid stalling on non-working device
     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);
diff --git a/src/shared/radio/SX1278/SX1278Defs.h b/src/shared/radio/SX1278/SX1278Defs.h
index 069540996..e573f1bff 100644
--- a/src/shared/radio/SX1278/SX1278Defs.h
+++ b/src/shared/radio/SX1278/SX1278Defs.h
@@ -60,7 +60,7 @@ inline SPIBusConfig spiConfig()
 
     // FIXME(davide.mor): This depends on the device
     config.clockDivider = SPI::ClockDivider::DIV_64;
-    config.mode         = SPI::Mode::MODE_1;
+    config.mode         = SPI::Mode::MODE_0;
     config.bitOrder     = SPI::BitOrder::MSB_FIRST;
     // config.cs_setup_time_us = 30;
     // config.cs_hold_time_us  = 100;
-- 
GitLab