Browse Source

echo, m1: correct display scalling; all nrf52 boards jsons: added debug.openocd_target

recrof 1 năm trước cách đây
mục cha
commit
5780b50a48

+ 2 - 1
boards/heltec_t114.json

@@ -34,7 +34,8 @@
   ],
   "debug": {
     "jlink_device": "nRF52840_xxAA",
-    "svd_path": "nrf52840.svd"
+    "svd_path": "nrf52840.svd",
+    "openocd_target": "nrf52.cfg"
   },
   "frameworks": [
     "arduino"

+ 3 - 2
boards/promicro_nrf52840.json

@@ -8,7 +8,7 @@
       "extra_flags": "-DARDUINO_NRF52840_FEATHER -DNRF52840_XXAA",
       "f_cpu": "64000000L",
       "hwids": [
-        [ 
+        [
           "0x239A",
           "0x00B3"
         ],
@@ -51,7 +51,8 @@
     ],
     "debug": {
       "jlink_device": "nRF52840_xxAA",
-      "svd_path": "nrf52840.svd"
+      "svd_path": "nrf52840.svd",
+      "openocd_target": "nrf52.cfg"
     },
     "frameworks": [
       "arduino",

+ 2 - 1
boards/t-echo.json

@@ -37,7 +37,8 @@
     "onboard_tools": [
       "jlink"
     ],
-    "svd_path": "nrf52840.svd"
+    "svd_path": "nrf52840.svd",
+    "openocd_target": "nrf52.cfg"
   },
   "frameworks": [
     "arduino"

+ 2 - 1
boards/thinknode_m1.json

@@ -45,7 +45,8 @@
     "onboard_tools": [
       "jlink"
     ],
-    "svd_path": "nrf52840.svd"
+    "svd_path": "nrf52840.svd",
+    "openocd_target": "nrf52.cfg"
   },
   "frameworks": [
     "arduino"

+ 2 - 1
boards/tracker-t1000-e.json

@@ -32,7 +32,8 @@
   "connectivity": ["bluetooth"],
   "debug": {
     "jlink_device": "nRF52840_xxAA",
-    "svd_path": "nrf52840.svd"
+    "svd_path": "nrf52840.svd",
+    "openocd_target": "nrf52.cfg"
   },
   "frameworks": ["arduino"],
   "name": "Seeed T1000-E",

+ 17 - 0
src/helpers/CustomLR1121.h

@@ -0,0 +1,17 @@
+#pragma once
+
+#include <RadioLib.h>
+
+#define LR1121_IRQ_HAS_PREAMBLE                     0b0000000100  //  4     4     valid LoRa header received
+#define LR1121_IRQ_HEADER_VALID                     0b0000010000  //  4     4     valid LoRa header received
+
+class CustomLR1121 : public LR1121 {
+  public:
+    CustomLR1121(Module *mod) : LR1121(mod) { }
+
+    bool isReceiving() {
+      uint16_t irq = getIrqStatus();
+      bool hasPreamble = ((irq & LR1121_IRQ_HEADER_VALID) && (irq & LR1121_IRQ_HAS_PREAMBLE));
+      return hasPreamble;
+    }
+};

+ 30 - 0
src/helpers/CustomLR1121Wrapper.h

@@ -0,0 +1,30 @@
+#pragma once
+
+#include "CustomLR1121.h"
+#include "RadioLibWrappers.h"
+
+class CustomLR1121Wrapper : public RadioLibWrapper {
+public:
+  CustomLR1121Wrapper(CustomLR1121& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { }
+  bool isReceiving() override {
+    if (((CustomLR1121 *)_radio)->isReceiving()) return true;
+
+    idle();  // put lr1121 into standby
+    // do some basic CAD (blocks for ~12780 micros (on SF 10)!)
+    bool activity = (((CustomLR1121 *)_radio)->scanChannel() == RADIOLIB_LORA_DETECTED);
+    if (activity) {
+      startRecv();
+    } else {
+      idle();
+    }
+    return activity;
+  }
+
+  void onSendFinished() override {
+    RadioLibWrapper::onSendFinished();
+    _radio->setPreambleLength(8); // overcomes weird issues with small and big pkts
+  }
+
+  float getLastRSSI() const override { return ((CustomLR1121 *)_radio)->getRSSI(); }
+  float getLastSNR() const override { return ((CustomLR1121 *)_radio)->getSNR(); }
+};

+ 2 - 2
src/helpers/ui/GxEPDDisplay.cpp

@@ -7,10 +7,10 @@
 
 #ifdef TECHO_ZOOM
   #define SCALE_X   (1.5625f * 1.5f)   //  200 / 128  (with 1.5 scale)
-  #define SCALE_Y   (2.9687f * 1.5f)   //  190 / 64   (with 1.5 scale)
+  #define SCALE_Y   (1.5625f * 1.5f)   //  200 / 128  (with 1.5 scale)
 #else
   #define SCALE_X   1.5625f   //  200 / 128
-  #define SCALE_Y   2.9687f   //  190 / 64
+  #define SCALE_Y   1.5625f   //  200 / 128
 #endif
 
 bool GxEPDDisplay::begin() {

+ 4 - 4
src/helpers/ui/GxEPDDisplay.h

@@ -14,11 +14,11 @@
 #define GxEPD2_DISPLAY_CLASS GxEPD2_BW
 #define GxEPD2_DRIVER_CLASS GxEPD2_150_BN  // DEPG0150BN 200x200, SSD1681, (FPC8101), TTGO T5 V2.4.1
 
-#include <epd/GxEPD2_150_BN.h>  // 1.54" b/w 
+#include <epd/GxEPD2_150_BN.h>  // 1.54" b/w
 
 #include "DisplayDriver.h"
 
-//GxEPD2_BW<GxEPD2_150_BN, 200> display(GxEPD2_150_BN(DISP_CS, DISP_DC, DISP_RST, DISP_BUSY)); // DEPG0150BN 200x200, SSD1681, TTGO T5 V2.4.1                 
+//GxEPD2_BW<GxEPD2_150_BN, 200> display(GxEPD2_150_BN(DISP_CS, DISP_DC, DISP_RST, DISP_BUSY)); // DEPG0150BN 200x200, SSD1681, TTGO T5 V2.4.1
 
 
 class GxEPDDisplay : public DisplayDriver {
@@ -29,12 +29,12 @@ class GxEPDDisplay : public DisplayDriver {
 
 public:
   // there is a margin in y...
-  GxEPDDisplay() : DisplayDriver(128, 64), display(GxEPD2_150_BN(DISP_CS, DISP_DC, DISP_RST, DISP_BUSY)) { 
+  GxEPDDisplay() : DisplayDriver(128, 128), display(GxEPD2_150_BN(DISP_CS, DISP_DC, DISP_RST, DISP_BUSY)) {
   }
 
   bool begin();
 
-  bool isOn() override {return _isOn;}; 
+  bool isOn() override {return _isOn;};
   void turnOn() override;
   void turnOff() override;
   void clear() override;