From 7afc33c9b0ca3ee46da237b9b1d6a7c6e503b7c4 Mon Sep 17 00:00:00 2001 From: Jon Bright Date: Sat, 11 Apr 2020 10:25:19 +0200 Subject: [PATCH] Make frequency selection work as designed, by initializing the frequency table in the header file. Without this, #define-ing a frequency in the sketch has no effect, because that same #define is not present when the library is compiled. --- TinyLoRa.cpp | 60 +-------------------------------------------------- TinyLoRa.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 59 deletions(-) diff --git a/TinyLoRa.cpp b/TinyLoRa.cpp index 0d2ae52..bf95e9d 100644 --- a/TinyLoRa.cpp +++ b/TinyLoRa.cpp @@ -45,6 +45,7 @@ * LGPL license, all text here must be included in any redistribution. * */ +#define NOFREQ #include "TinyLoRa.h" #include @@ -54,65 +55,6 @@ extern uint8_t DevAddr[4]; ///< Device Address static SPISettings RFM_spisettings = SPISettings(4000000, MSBFIRST, SPI_MODE0); -/* -***************************************************************************************** -* Description: TTN regional frequency plans -***************************************************************************************** -*/ - -#ifdef AU915 -const unsigned char PROGMEM TinyLoRa::LoRa_Frequency[8][3] = { - { 0xE5, 0x33, 0x5A }, //Channel 0 916.800 MHz / 61.035 Hz = 15020890 = 0xE5335A - { 0xE5, 0x40, 0x26 }, //Channel 2 917.000 MHz / 61.035 Hz = 15024166 = 0xE54026 - { 0xE5, 0x4C, 0xF3 }, //Channel 3 917.200 MHz / 61.035 Hz = 15027443 = 0xE54CF3 - { 0xE5, 0x59, 0xC0 }, //Channel 4 917.400 MHz / 61.035 Hz = 15030720 = 0xE559C0 - { 0xE5, 0x66, 0x8D }, //Channel 5 917.600 MHz / 61.035 Hz = 15033997 = 0xE5668D - { 0xE5, 0x73, 0x5A }, //Channel 6 917.800 MHz / 61.035 Hz = 15037274 = 0xE5735A - { 0xE5, 0x80, 0x27 }, //Channel 7 918.000 MHz / 61.035 Hz = 15040551 = 0xE58027 - { 0xE5, 0x8C, 0xF3 } //Channel 8 918.200 MHz / 61.035 Hz = 15043827 = 0xE58CF3 -}; -#endif - -#ifdef EU863 -const unsigned char PROGMEM TinyLoRa::LoRa_Frequency[8][3] = { - { 0xD9, 0x06, 0x8B }, //Channel 0 868.100 MHz / 61.035 Hz = 14222987 = 0xD9068B - { 0xD9, 0x13, 0x58 }, //Channel 1 868.300 MHz / 61.035 Hz = 14226264 = 0xD91358 - { 0xD9, 0x20, 0x24 }, //Channel 2 868.500 MHz / 61.035 Hz = 14229540 = 0xD92024 - { 0xD8, 0xC6, 0x8B }, //Channel 3 867.100 MHz / 61.035 Hz = 14206603 = 0xD8C68B - { 0xD8, 0xD3, 0x58 }, //Channel 4 867.300 MHz / 61.035 Hz = 14209880 = 0xD8D358 - { 0xD8, 0xE0, 0x24 }, //Channel 5 867.500 MHz / 61.035 Hz = 14213156 = 0xD8E024 - { 0xD8, 0xEC, 0xF1 }, //Channel 6 867.700 MHz / 61.035 Hz = 14216433 = 0xD8ECF1 - { 0xD8, 0xF9, 0xBE } //Channel 7 867.900 MHz / 61.035 Hz = 14219710 = 0xD8F9BE - -}; -#endif - -#ifdef US902 -const unsigned char PROGMEM TinyLoRa::LoRa_Frequency[8][3] = { - { 0xE1, 0xF9, 0xC0 }, //Channel 0 903.900 MHz / 61.035 Hz = 14809536 = 0xE1F9C0 - { 0xE2, 0x06, 0x8C }, //Channel 1 904.100 MHz / 61.035 Hz = 14812812 = 0xE2068C - { 0xE2, 0x13, 0x59 }, //Channel 2 904.300 MHz / 61.035 Hz = 14816089 = 0xE21359 - { 0xE2, 0x20, 0x26 }, //Channel 3 904.500 MHz / 61.035 Hz = 14819366 = 0xE22026 - { 0xE2, 0x2C, 0xF3 }, //Channel 4 904.700 MHz / 61.035 Hz = 14822643 = 0xE22CF3 - { 0xE2, 0x39, 0xC0 }, //Channel 5 904.900 MHz / 61.035 Hz = 14825920 = 0xE239C0 - { 0xE2, 0x46, 0x8C }, //Channel 6 905.100 MHz / 61.035 Hz = 14829196 = 0xE2468C - { 0xE2, 0x53, 0x59 } //Channel 7 905.300 MHz / 61.035 Hz = 14832473 = 0xE25359 -}; -#endif - -#ifdef AS920 -const unsigned char PROGMEM TinyLoRa::LoRa_Frequency[8][3] = { - { 0xE6, 0xCC, 0xF4 }, //Channel 0 868.100 MHz / 61.035 Hz = 15125748 = 0xE6CCF4 - { 0xE6, 0xD9, 0xC0 }, //Channel 1 868.300 MHz / 61.035 Hz = 15129024 = 0xE6D9C0 - { 0xE6, 0x8C, 0xF3 }, //Channel 2 868.500 MHz / 61.035 Hz = 15109363 = 0xE68CF3 - { 0xE6, 0x99, 0xC0 }, //Channel 3 867.100 MHz / 61.035 Hz = 15112640 = 0xE699C0 - { 0xE6, 0xA6, 0x8D }, //Channel 4 867.300 MHz / 61.035 Hz = 15115917 = 0xE6A68D - { 0xE6, 0xB3, 0x5A }, //Channel 5 867.500 MHz / 61.035 Hz = 15119194 = 0xE6B35A - { 0xE6, 0xC0, 0x27 }, //Channel 6 867.700 MHz / 61.035 Hz = 15122471 = 0xE6C027 - { 0xE6, 0x80, 0x27 } //Channel 7 867.900 MHz / 61.035 Hz = 15106087 = 0xE68027 -}; -#endif - /* ***************************************************************************************** diff --git a/TinyLoRa.h b/TinyLoRa.h index 280e48d..08ccbf8 100644 --- a/TinyLoRa.h +++ b/TinyLoRa.h @@ -142,4 +142,65 @@ class TinyLoRa }; +/* +***************************************************************************************** +* Description: TTN regional frequency plans +***************************************************************************************** +*/ + +#if defined(NOFREQ) +// We're being included from TinyLora.cpp - don't define frequencies, to allow the sketch to define them +#elif defined(AU915) +#pragma message "Using AU915 frequencies" +const unsigned char PROGMEM TinyLoRa::LoRa_Frequency[8][3] = { + { 0xE5, 0x33, 0x5A }, //Channel 0 916.800 MHz / 61.035 Hz = 15020890 = 0xE5335A + { 0xE5, 0x40, 0x26 }, //Channel 2 917.000 MHz / 61.035 Hz = 15024166 = 0xE54026 + { 0xE5, 0x4C, 0xF3 }, //Channel 3 917.200 MHz / 61.035 Hz = 15027443 = 0xE54CF3 + { 0xE5, 0x59, 0xC0 }, //Channel 4 917.400 MHz / 61.035 Hz = 15030720 = 0xE559C0 + { 0xE5, 0x66, 0x8D }, //Channel 5 917.600 MHz / 61.035 Hz = 15033997 = 0xE5668D + { 0xE5, 0x73, 0x5A }, //Channel 6 917.800 MHz / 61.035 Hz = 15037274 = 0xE5735A + { 0xE5, 0x80, 0x27 }, //Channel 7 918.000 MHz / 61.035 Hz = 15040551 = 0xE58027 + { 0xE5, 0x8C, 0xF3 } //Channel 8 918.200 MHz / 61.035 Hz = 15043827 = 0xE58CF3 +}; +#elif defined(EU863) +#pragma message "Using EU863 frequencies" +const unsigned char PROGMEM TinyLoRa::LoRa_Frequency[8][3] = { + { 0xD9, 0x06, 0x8B }, //Channel 0 868.100 MHz / 61.035 Hz = 14222987 = 0xD9068B + { 0xD9, 0x13, 0x58 }, //Channel 1 868.300 MHz / 61.035 Hz = 14226264 = 0xD91358 + { 0xD9, 0x20, 0x24 }, //Channel 2 868.500 MHz / 61.035 Hz = 14229540 = 0xD92024 + { 0xD8, 0xC6, 0x8B }, //Channel 3 867.100 MHz / 61.035 Hz = 14206603 = 0xD8C68B + { 0xD8, 0xD3, 0x58 }, //Channel 4 867.300 MHz / 61.035 Hz = 14209880 = 0xD8D358 + { 0xD8, 0xE0, 0x24 }, //Channel 5 867.500 MHz / 61.035 Hz = 14213156 = 0xD8E024 + { 0xD8, 0xEC, 0xF1 }, //Channel 6 867.700 MHz / 61.035 Hz = 14216433 = 0xD8ECF1 + { 0xD8, 0xF9, 0xBE } //Channel 7 867.900 MHz / 61.035 Hz = 14219710 = 0xD8F9BE + +}; +#elif defined(US902) +#pragma message "Using US902 frequencies" +const unsigned char PROGMEM TinyLoRa::LoRa_Frequency[8][3] = { + { 0xE1, 0xF9, 0xC0 }, //Channel 0 903.900 MHz / 61.035 Hz = 14809536 = 0xE1F9C0 + { 0xE2, 0x06, 0x8C }, //Channel 1 904.100 MHz / 61.035 Hz = 14812812 = 0xE2068C + { 0xE2, 0x13, 0x59 }, //Channel 2 904.300 MHz / 61.035 Hz = 14816089 = 0xE21359 + { 0xE2, 0x20, 0x26 }, //Channel 3 904.500 MHz / 61.035 Hz = 14819366 = 0xE22026 + { 0xE2, 0x2C, 0xF3 }, //Channel 4 904.700 MHz / 61.035 Hz = 14822643 = 0xE22CF3 + { 0xE2, 0x39, 0xC0 }, //Channel 5 904.900 MHz / 61.035 Hz = 14825920 = 0xE239C0 + { 0xE2, 0x46, 0x8C }, //Channel 6 905.100 MHz / 61.035 Hz = 14829196 = 0xE2468C + { 0xE2, 0x53, 0x59 } //Channel 7 905.300 MHz / 61.035 Hz = 14832473 = 0xE25359 +}; +#elif defined(AS920) +#pragma message "Using AS920 frequencies" +const unsigned char PROGMEM TinyLoRa::LoRa_Frequency[8][3] = { + { 0xE6, 0xCC, 0xF4 }, //Channel 0 868.100 MHz / 61.035 Hz = 15125748 = 0xE6CCF4 + { 0xE6, 0xD9, 0xC0 }, //Channel 1 868.300 MHz / 61.035 Hz = 15129024 = 0xE6D9C0 + { 0xE6, 0x8C, 0xF3 }, //Channel 2 868.500 MHz / 61.035 Hz = 15109363 = 0xE68CF3 + { 0xE6, 0x99, 0xC0 }, //Channel 3 867.100 MHz / 61.035 Hz = 15112640 = 0xE699C0 + { 0xE6, 0xA6, 0x8D }, //Channel 4 867.300 MHz / 61.035 Hz = 15115917 = 0xE6A68D + { 0xE6, 0xB3, 0x5A }, //Channel 5 867.500 MHz / 61.035 Hz = 15119194 = 0xE6B35A + { 0xE6, 0xC0, 0x27 }, //Channel 6 867.700 MHz / 61.035 Hz = 15122471 = 0xE6C027 + { 0xE6, 0x80, 0x27 } //Channel 7 867.900 MHz / 61.035 Hz = 15106087 = 0xE68027 +}; +#else +#error No Frequencies defined! +#endif + #endif