]> git.tnoah.ca Git - lora-radio.git/commitdiff
Added board configuration
authorMark Qvist <mark@unsigned.io>
Thu, 8 Feb 2024 16:53:23 +0000 (17:53 +0100)
committerMark Qvist <mark@unsigned.io>
Thu, 8 Feb 2024 16:53:23 +0000 (17:53 +0100)
Config.h
Device.h
Display.h
LoRa.cpp
Release/console_image.bin
Utilities.h

index 43cb29b004061fd36eb5ffacd2a3f930dc2c613a..17bcccd367e5056264d81cc8cb46692ec281dde0 100644 (file)
--- a/Config.h
+++ b/Config.h
@@ -42,6 +42,7 @@
        #define BOARD_HELTEC32_V2   0x38
        #define BOARD_RNODE_NG_20   0x40
        #define BOARD_RNODE_NG_21   0x41
+       #define BOARD_RNODE_NG_22   0x42
        #define BOARD_GENERIC_NRF52 0x50
        #define BOARD_RAK4630       0x51
 
                                        const int pin_led_tx = 25;
                                #endif
                        #endif
+        #elif BOARD_MODEL == BOARD_RNODE_NG_22
+            #define HAS_DISPLAY true
+            #define HAS_BLUETOOTH false // TODO: Implement
+                       #define HAS_CONSOLE false   // TODO: Implement
+            #define HAS_PMU true
+                       #define HAS_NP true
+                       #define HAS_SD false
+            #define HAS_EEPROM true
+                       #define MODEM_MISO 3
+                       #define MODEM_MOSI 6
+                       #define MODEM_CLK 5
+                       const int pin_cs = 7;
+                       const int pin_reset = 8;
+                       const int pin_dio = 33;
+                       const int pin_np = 38;
+                       const int pin_dac = 25;
+                       const int pin_adc = 1;
+                       const int SD_MISO = 2;
+                       const int SD_MOSI = 11;
+                       const int SD_CLK = 14;
+                       const int SD_CS = 13;
+                       #if HAS_NP == false
+                               #if defined(EXTERNAL_LEDS)
+                                       const int pin_led_rx = 37;
+                                       const int pin_led_tx = 37;
+                               #else
+                                       const int pin_led_rx = 37;
+                                       const int pin_led_tx = 37;
+                               #endif
+                       #endif
         #endif
     #elif PLATFORM == PLATFORM_NRF52
         #if BOARD_MODEL == BOARD_RAK4630
         const int pin_busy = -1;
     #endif
 
-    #if MODEM == SX1262
+    #if MODEM == SX1262 && defined(NRF52840_XXAA)
         SPIClass spiModem(NRF_SPIM2, pin_miso, pin_sclk, pin_mosi);
     #endif
 
index 5f5cbb4fbcf4e3b9f779a551ec111fe50b2e7421..5b77055145948587b191ce88ad83742146384776 100644 (file)
--- a/Device.h
+++ b/Device.h
@@ -151,7 +151,12 @@ bool device_init() {
     mbedtls_md_init(&ctx);
     mbedtls_md_setup(&ctx, mbedtls_md_info_from_type(md_type), 0);
     mbedtls_md_starts(&ctx);
-    mbedtls_md_update(&ctx, dev_bt_mac, BT_DEV_ADDR_LEN);
+    #if HAS_BLUETOOTH == true
+      mbedtls_md_update(&ctx, dev_bt_mac, BT_DEV_ADDR_LEN);
+    #else
+      // TODO: Get from BLE stack instead
+      // mbedtls_md_update(&ctx, dev_bt_mac, BT_DEV_ADDR_LEN);
+    #endif
     mbedtls_md_update(&ctx, dev_eeprom_signature, EEPROM_SIG_LEN);
     mbedtls_md_finish(&ctx, dev_hash);
     mbedtls_md_free(&ctx);
index 47723b6a7377b5ffab9f3242ed46f6eee00bd0f9..5dd2a1776c87982117fd63ca81bc50d166922cca 100644 (file)
--- a/Display.h
+++ b/Display.h
 #elif BOARD_MODEL == BOARD_RNODE_NG_21
   #define DISP_RST -1
   #define DISP_ADDR 0x3C
+#elif BOARD_MODEL == BOARD_RNODE_NG_22
+  #define DISP_RST 21
+  #define DISP_ADDR 0x3C
+  #define SCL_OLED 17
+  #define SDA_OLED 18
 #else
   #define DISP_RST -1
   #define DISP_ADDR 0x3C
@@ -99,6 +104,8 @@ bool display_init() {
       digitalWrite(pin_display_en, LOW);
       delay(50);
       digitalWrite(pin_display_en, HIGH);
+    #elif BOARD_MODEL == BOARD_RNODE_NG_22
+      Wire.begin(SDA_OLED, SCL_OLED);
     #elif BOARD_MODEL == BOARD_HELTEC32_V2
       Wire.begin(SDA_OLED, SCL_OLED);
     #elif BOARD_MODEL == BOARD_LORA32_V1_0
index efe7bc4d4fbe552abfc2e8b0057463b239339d43..71e1ab4a54f9e6f67ebf17034c1c00d010b5efc7 100644 (file)
--- a/LoRa.cpp
+++ b/LoRa.cpp
@@ -30,7 +30,9 @@
 #endif
 
 #if MCU_VARIANT == MCU_ESP32
-  #include "soc/rtc_wdt.h"
+  #if BOARD_MODEL != BOARD_RNODE_NG_22
+    #include "soc/rtc_wdt.h"
+  #endif
   #define ISR_VECT IRAM_ATTR
 #else
   #define ISR_VECT
     int fifo_tx_addr_ptr = 0;
     int fifo_rx_addr_ptr = 0;
     uint8_t packet[256] = {0};
-    extern SPIClass spiModem;
-    #define SPI spiModem
 
+    #if defined(NRF52840_XXAA)
+      extern SPIClass spiModem;
+      #define SPI spiModem
+    #endif
 
 #elif MODEM == SX1276 || MODEM == SX1278
     // Registers
@@ -182,7 +186,11 @@ bool LoRaClass::preInit() {
   // set SS high
   digitalWrite(_ss, HIGH);
   
-  SPI.begin();
+  #if BOARD_MODEL == BOARD_RNODE_NG_22
+    SPI.begin(MODEM_CLK, MODEM_MISO, MODEM_MOSI);
+  #else
+    SPI.begin();
+  #endif
 
   // check version (retry for up to 2 seconds)
   #if MODEM == SX1276 || MODEM == SX1278
@@ -201,6 +209,7 @@ bool LoRaClass::preInit() {
   
     lora_preinit_done = true;
     return true;
+
   #elif MODEM == SX1262
     long start = millis();
     uint8_t syncmsb;
@@ -213,12 +222,14 @@ bool LoRaClass::preInit() {
       }
       delay(100);
     }
+
     if ( uint16_t(syncmsb << 8 | synclsb) != 0x1424 && uint16_t(syncmsb << 8 | synclsb) != 0x4434) {
         return false;
     }
 
     lora_preinit_done = true;
     return true;
+
   #else
     return false;
   #endif
index ade1c2972e825f0db2610e1ec4bfee12b99ed117..89ef52d5bb7865bea5ad448c45ee1a3e75bc5cef 100644 (file)
Binary files a/Release/console_image.bin and b/Release/console_image.bin differ
index fe61b7c9c5118d86f5c449bac7b6e976712c3cf0..5b71b277b2ea1a4a4fd577b966b23a836098cf2c 100644 (file)
@@ -44,7 +44,9 @@
        #include "Device.h"
 #endif
 #if MCU_VARIANT == MCU_ESP32
-  #include "soc/rtc_wdt.h"
+       #if BOARD_MODEL != BOARD_RNODE_NG_22
+         #include "soc/rtc_wdt.h"
+       #endif
   #define ISR_VECT IRAM_ATTR
 #else
   #define ISR_VECT