Merge pull request #87 from mi-gri/patch-1

More Tx Modes by DO3BOX
pull/94/head refs/heads/master-2021-10-02T181421
Rysiek Labus (SQ9MDD) 2021-10-02 20:12:57 +02:00 zatwierdzone przez GitHub
commit 4366b3542c
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
4 zmienionych plików z 51 dodań i 15 usunięć

Wyświetl plik

@ -58,10 +58,14 @@
<input name="lora_freq" id="lora_freq" type="number" min="433.000" max="928.000" step="0.001" title="LoRa center frequency between 433.001 and 928.000">
</div>
<div>
<label for="lora_speed">Speed [baud]</label>
<label for="lora_speed">Speed</label>
<select id="lora_speed" name="lora_speed">
<option value="300">300 baud</option>
<option value="1200">1200 baud</option>
<option value="300">BW 125khz CR 4:5 SF 12 (default, 300bps)</option>
<option value="240">BW 125khz CR 4:6 SF 12 (244bps)</option>
<option value="210">BW 125khz CR 4:7 SF 12 (209bps)</option>
<option value="180">BW 125khz CR 4:8 SF 12 (183bps)</option>
<option value="610">BW 125khz CR 4:8 SF 10 (610bps)</option>
<option value="1200">BW 125khz CR 4:7 SF 9 (polish, 1200bps)</option>
</select>
</div>
</div>

Wyświetl plik

@ -21,10 +21,13 @@ PROGMEM static const BG_RF95::ModemConfig MODEM_CONFIG_TABLE[] =
{ 0x72, 0x74, 0x00}, // Bw125Cr45Sf128 (the chip default)
{ 0x92, 0x74, 0x00}, // Bw500Cr45Sf128
{ 0x48, 0x94, 0x00}, // Bw31_25Cr48Sf512
{ 0x78, 0xc4, 0x00}, // Bw125Cr48Sf4096
{ 0x72, 0xc7, 0x8}, // BG 125 cr45 sf12
{ 0x78, 0xc7, 0x08}, // Bw125Cr48Sf4096
{ 0x76, 0xc7, 0x08}, // Bw125Cr47Sf4096
{ 0x74, 0xc7, 0x08}, // Bw125Cr46Sf4096
{ 0x72, 0xc7, 0x08}, // Bw125Cr45Sf4096
{ 0x72, 0xb4, 0x00}, // Bw125Cr45Sf2048 <= M0IGA messup speed
{ 0x76, 0x94, 0x04}, // Bw125Cr47Sf512 <= corrected 1200baud
{ 0x78, 0xa4, 0x00}, // Bw125Cr48Sf1024
};
BG_RF95::BG_RF95(uint8_t slaveSelectPin, uint8_t interruptPin, RHGenericSPI& spi)

Wyświetl plik

@ -542,13 +542,16 @@ public:
/// you may need to change the RHReliableDatagram timeout for reliable operations.
typedef enum
{
Bw125Cr45Sf128 = 0, ///< Bw = 125 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on. Default medium range
Bw500Cr45Sf128, ///< Bw = 500 kHz, Cr = 4/5, Sf = 128chips/symbol, CRC on. Fast+short range
Bw31_25Cr48Sf512, ///< Bw = 31.25 kHz, Cr = 4/8, Sf = 512chips/symbol, CRC on. Slow+long range
Bw125Cr48Sf4096, ///< Bw = 125 kHz, Cr = 4/8, Sf = 4096chips/symbol, CRC on. Slow+long range
Bw125Cr45Sf4096, ///< APRS
Bw125Cr45Sf2048, ///< M0IGA Messup speed / 698baud (not 1200)
Bw125Cr47Sf512, ///< corrected 1200 baud
Bw125Cr45Sf128 = 0, ///< Bw = 125 kHz, Cr = 4:5, Sf = 128chips/symbol, CRC on. Default medium range
Bw500Cr45Sf128, ///< Bw = 500 kHz, Cr = 4:5, Sf = 128chips/symbol, CRC on. Fast+short range
Bw31_25Cr48Sf512, ///< Bw = 31.25 kHz, Cr = 4:8, Sf = 512chips/symbol, CRC on. Slow+long range
Bw125Cr48Sf4096, ///< Bw = 125 kHz, Cr = 4:8, Sf = 4096chips/symbol, CRC on. Slow+long range
Bw125Cr47Sf4096, ///< Bw = 125 kHz, Cr = 4:7, Sf = 4096chips/symbol, CRC on. Slow+long range
Bw125Cr46Sf4096, ///< Bw = 125 kHz, Cr = 4:6, Sf = 4096chips/symbol, CRC on. Slow+long range
Bw125Cr45Sf4096, ///< APRS (BW 125 khz, Cr = 4:5, Sf = 4096chips/symbol, CRC on. Slow+long range
Bw125Cr45Sf2048, ///< M0IGA Messup speed / 698baud (not 1200)
Bw125Cr47Sf512, ///< corrected 1200 baud
Bw125Cr48Sf1024, /// Bw 125, Cr = 4/8, Sf = 1024chips/symbol, CRC on
} ModemConfigChoice;
/// Constructor. You can have multiple instances, but each instance must have its own

Wyświetl plik

@ -384,7 +384,19 @@ void loraSend(byte lora_LTXPower, float lora_FREQ, const String &message) {
if(lora_speed==1200){
rf95.setModemConfig(BG_RF95::Bw125Cr47Sf512);
}
else{
else if(lora_speed==610){
rf95.setModemConfig(BG_RF95::Bw125Cr48Sf1024);
}
else if(lora_speed==180){
rf95.setModemConfig(BG_RF95::Bw125Cr48Sf4096);
}
else if(lora_speed==210){
rf95.setModemConfig(BG_RF95::Bw125Cr47Sf4096);
}
else if(lora_speed==240){
rf95.setModemConfig(BG_RF95::Bw125Cr46Sf4096);
}
else {
rf95.setModemConfig(BG_RF95::Bw125Cr45Sf4096);
}
rf95.setFrequency(lora_FREQ);
@ -927,10 +939,24 @@ void setup(){
batt_read();
writedisplaytext("LoRa-APRS","","Init:","ADC OK!","BAT: "+String(BattVolts,2),"");
if(lora_speed==1200)
if(lora_speed==1200){
rf95.setModemConfig(BG_RF95::Bw125Cr47Sf512);
else
}
else if(lora_speed==610){
rf95.setModemConfig(BG_RF95::Bw125Cr48Sf1024);
}
else if(lora_speed==180){
rf95.setModemConfig(BG_RF95::Bw125Cr48Sf4096);
}
else if(lora_speed==210){
rf95.setModemConfig(BG_RF95::Bw125Cr47Sf4096);
}
else if(lora_speed==240){
rf95.setModemConfig(BG_RF95::Bw125Cr46Sf4096);
}
else {
rf95.setModemConfig(BG_RF95::Bw125Cr45Sf4096);
}
Serial.printf("LoRa Speed:\t%d\n", lora_speed);