DL9SAU-TTGO-T-Beam-LoRa-APRS/platformio.ini

136 wiersze
4.0 KiB
INI
Czysty Zwykły widok Historia

; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
2021-02-17 19:26:10 +00:00
[env]
framework = arduino
2020-02-19 12:12:02 +00:00
monitor_speed = 115200
2021-03-01 13:47:34 +00:00
board_build.partitions = partitions.csv
2021-04-13 13:52:07 +00:00
board_build.embed_files =
2021-02-18 16:59:18 +00:00
data_embed/index.html.out
data_embed/style.css.out
data_embed/js.js.out
2021-04-13 13:52:07 +00:00
extra_scripts =
2021-02-18 16:59:18 +00:00
pre:tools/buildscript_versioning.py
pre:tools/compress_assets.py
2021-04-13 13:52:07 +00:00
lib_deps =
2020-12-13 09:35:40 +00:00
RadioHead
TinyGPSPlus
Adafruit SSD1306
Adafruit GFX Library
Adafruit Unified Sensor
Adafruit BusIO @ !=1.9.7 # due to https://github.com/adafruit/Adafruit_BusIO/pull/70
2021-04-13 13:52:07 +00:00
https://github.com/SQ9MDD/AXP202X_Library.git
SparkFun u-blox Arduino Library
bblanchon/ArduinoJson
2021-06-10 22:52:49 +00:00
build_flags =
-Wl,--gc-sections,--relax
This commit brings many enhancements (like digipeating), fixes, and cosmetic changes. (c) 2021 Thomas Osterried dl9sau, License GPL CAVE: webconfig does not work properly. This needs to be fixed before the changes could go upstream! Until then, you can hardcode values in TTGO_T-Beam_LoRa_APRS.ino after the "// enforce valid transmissions even on wrong configurations" section. For examples, see appendix 1. New features Changes - improved automatic CodeRate adaption - Concept for adding SNR+RSSI in packet path. Q23073* means, 23 dB SNR, -73 dB RSSI. - full smart-beaconing implementation, with default parameters from kenwood / yaesu devices Changed files: 1. data_embed/index.html ------------------------ - cosmetic changes - added configuration options for new features described above - description how to configure DST-call-path-addressing - make configurable - automatic coderate adaption - rate limiting comment text - My recent "Accept own positions via KISS" feature - My recent "Allow GPS sleep while own positions received via KISS" feature - LoRa Digipeating - LoRa cross-digipeating (Mode, frequency, speed) 2. preference_storage.h ----------------------- definitions for the new configuration variables 3. platformio.ini ------------------k Variable MAX_TIME_TO_NEXT_TXT commented out. Was not implemented, and needs not be configured anymore. Default enabling of ENABLE_TNC_SELF_TELEMETRY switched off because most people do not need this DIGI_PATH="1": suggestion to make this default "FIXED_BEACON_EN": switched off, because if you have a tracker with GPS, you do smart-beaconing. Or if you have no GPS, you need to configure LAT/LONG before enabling fixed beaconing. "SHOW_BATT": if you really need this, enable it. "SPEED_1200": most regions use 300. Typo: LATIDUDE_PRESET -> changed to LATITUDE_PRESET (also in TTGO_T-Beam_LoRa_APRS.ino) 4. TTGO_T-Beam_LoRa_APRS.ino ---------------------------- global variables: - -D SPEED_1200 had not effekt. Added appropriete #ifdef. Perhaps, "LORA_SPEED_LOW" or "LORA_SPEED_FAST" (like mentioned in the web interface) would be a better approach - gps state: set default on only at devices with GPS-RX - New smartbeaconing: - values like sb_turn_slope and sb_turn_time - if -D SB_ALGO_KENWOOD, use those defaults. Scales better at low speed. - my new featerus: - lora_speed_cross_digi - lora_freq_cross_digi - lora_automatic_cr_adaption - lora_digipeating_mode - lora_add_snr_rssi_to_path - lora_cross_digipeating_mode - acceptOwnLocationReportsViaKiss - allow_gps_sleep_while_kiss - acceptOwnPositionReportsViaKiss - gps_allow_sleep_while_kiss - added code for new preferences values - in prepareAPRSFrame() - beautified DST-path addition on outString - better comment-ratelimiting computation - loraSend(): small change. - If lora freq was changed for sending one packet on another frequency (cross digi mode): + // cross-digipeating may have altered our RX-frequency. Revert frequency change needed for this transmission. + if (lora_FREQ != lora_freq) + rf95.setFrequency(lora_freq); - FEATURE request: // Feauture request: add param lora_speed. Currently, we need a variable for storing the old speed, and affer loraSend(), we have to revert :( I did not change the function parametes without asking - new sanity check: +// enforce valid transmissions even on wrong configurations +if (aprsSymbolTable.length() != 1) + aprsSymbolTable = String("/"); +if (aprsSymbol.length() != 1) + aprsSymbol = String("["); +if (aprsLatPreset.length() != 8 || !(aprsLatPreset.endsWith("N") || aprsLatPreset.endsWith("S")) || aprsLatPreset.c_str()[4] != '.') + aprsLatPreset = String("0000.00N"); +if (aprsLonPreset.length() != 9 || !(aprsLonPreset.endsWith("E") || aprsLonPreset.endsWith("W")) || aprsLonPreset.c_str()[5] != '.') + aprsLonPreset = String("00000.00E"); -> Without this, and if unconfigured, invalid packets without position in the position-part of the AX.25 packets could occur. Saw this happens, at findu.com ;) - encode_snr_rssi_in_path(): My idea of coding SNR and RSSI in packet path. Instead of modifying user's comment text (which some digi software does, and is a really bad idea) - add_element_to_path(): a quick, string based option to add a digi element to the AX.25 header - tnc_format_to_ax25_frame(): header parser, needed for handle_lora_frame_for_lora_digipeating - handle_lora_frame_for_lora_digipeating: does header rewrite for digipeating - implemented digipeating and cross-digipeating - redesignt automatic cr-adatpion - improved smart-beaconing decisions 5. taskWebServer.cpp: --------------------- - added code for new preferences values Appendix 1 ---------- I.e. my enforced test settings in TTGO_T-Beam_LoRa_APRS.ino behind the block "// enforce valid transmissions even on wrong configurations" were: lora_speed = 180; lora_digipeating_mode = 2; lora_cross_digipeating_mode = 0; sb_min_interval = 90000L; sb_max_interval = 1800000L; lora_automatic_cr_adaption = true; lora_speed_cross_digi = 1200; lora_freq_cross_digi = 433.900; sb_max_speed = 20; sb_turn_slope = 11; rate_limit_message_text = true; acceptOwnPositionReportsViaKiss = true; lora_add_snr_rssi_to_path = true; And in platformio.ini: -D 'KISS_PROTOCOL' ; leave enabled -D 'CALLSIGN="DL9SAU-12"' ; can be set from www interface -D 'DIGI_PATH="1"' ; can be set from www interface ; -D 'FIXED_BEACON_EN' ; can be set from www interface -D 'SB_ALGO_KENWOOD' ; Kenwood skales better on lower speed. -D 'LATITUDE_PRESET="0000.00N"' ; can be set from www interface -D 'LONGITUDE_PRESET="00000.00E"' ; can be set from www interface -D 'APRS_SYMBOL_TABLE="/"' ; can be set from www interface -D 'APRS_SYMBOL="["' ; can be set from www interface -D 'MY_COMMENT="/145.500MHz d023/Thomas D23. TTGO-T-Beam LoRa 70cm; KISS-Test"' ; can be set from www interface -D 'SHOW_ALT' ; can be set from www interface ; -D 'SHOW_BATT' ; can be set from www interface -D 'SHOW_RX_PACKET' ; can be set from www interface -D 'SHOW_RX_TIME=10000' ; can be set from www interface -D 'TXFREQ=433.775' ; set operating frequency ; -D 'LORA_SPEED_1200' ; comment out to set 300baud -D 'TXdbmW=23' ; set power ; -D 'ENABLE_OLED' ; can be set from www interface -D 'ENABLE_LED_SIGNALING' ; can be set from www interface -D 'NETWORK_TNC_PORT=8001' ; default KISS TCP port ; -D 'MAX_TIME_TO_NEXT_TX=120000L' ; can be set from www interface -- not implemented -D 'FIX_BEACON_INTERVAL=1800000L' ; can be set from www interface -D 'NETWORK_GPS_PORT=10110' ; GPS NMEA Port ; -D 'ENABLE_TNC_SELF_TELEMETRY' ; can be set from www interface -D 'TNC_SELF_TELEMETRY_INTERVAL=3600L' ; can be set from www interface (seconds) -D 'SHOW_OLED_TIME=15000' ; an be set from www interface (OLED Timeout) Signed-off-by: Thomas Osterried <dl9sau@github>
2021-11-24 12:34:04 +00:00
-D 'KISS_PROTOCOL' ; leave enabled
-D 'CALLSIGN="N0CALL"' ; can be set from www interface
; -D 'DIGI_PATH="WIDE1-1"' ; can be set from www interface
-D 'DIGI_PATH="1"' ; can be set from www interface
; -D 'FIXED_BEACON_EN' ; can be set from www interface
-D 'SB_ALGO_KENWOOD' ; Kenwood skales better on lower speed.
-D 'LATITUDE_PRESET="0000.00N"' ; can be set from www interface
-D 'LONGITUDE_PRESET="00000.00E"' ; can be set from www interface
-D 'APRS_SYMBOL_TABLE="/"' ; can be set from www interface
-D 'APRS_SYMBOL="["' ; can be set from www interface
-D 'MY_COMMENT="Lora Tracker"' ; can be set from www interface
This commit brings many enhancements (like digipeating), fixes, and cosmetic changes. (c) 2021 Thomas Osterried dl9sau, License GPL CAVE: webconfig does not work properly. This needs to be fixed before the changes could go upstream! Until then, you can hardcode values in TTGO_T-Beam_LoRa_APRS.ino after the "// enforce valid transmissions even on wrong configurations" section. For examples, see appendix 1. New features Changes - improved automatic CodeRate adaption - Concept for adding SNR+RSSI in packet path. Q23073* means, 23 dB SNR, -73 dB RSSI. - full smart-beaconing implementation, with default parameters from kenwood / yaesu devices Changed files: 1. data_embed/index.html ------------------------ - cosmetic changes - added configuration options for new features described above - description how to configure DST-call-path-addressing - make configurable - automatic coderate adaption - rate limiting comment text - My recent "Accept own positions via KISS" feature - My recent "Allow GPS sleep while own positions received via KISS" feature - LoRa Digipeating - LoRa cross-digipeating (Mode, frequency, speed) 2. preference_storage.h ----------------------- definitions for the new configuration variables 3. platformio.ini ------------------k Variable MAX_TIME_TO_NEXT_TXT commented out. Was not implemented, and needs not be configured anymore. Default enabling of ENABLE_TNC_SELF_TELEMETRY switched off because most people do not need this DIGI_PATH="1": suggestion to make this default "FIXED_BEACON_EN": switched off, because if you have a tracker with GPS, you do smart-beaconing. Or if you have no GPS, you need to configure LAT/LONG before enabling fixed beaconing. "SHOW_BATT": if you really need this, enable it. "SPEED_1200": most regions use 300. Typo: LATIDUDE_PRESET -> changed to LATITUDE_PRESET (also in TTGO_T-Beam_LoRa_APRS.ino) 4. TTGO_T-Beam_LoRa_APRS.ino ---------------------------- global variables: - -D SPEED_1200 had not effekt. Added appropriete #ifdef. Perhaps, "LORA_SPEED_LOW" or "LORA_SPEED_FAST" (like mentioned in the web interface) would be a better approach - gps state: set default on only at devices with GPS-RX - New smartbeaconing: - values like sb_turn_slope and sb_turn_time - if -D SB_ALGO_KENWOOD, use those defaults. Scales better at low speed. - my new featerus: - lora_speed_cross_digi - lora_freq_cross_digi - lora_automatic_cr_adaption - lora_digipeating_mode - lora_add_snr_rssi_to_path - lora_cross_digipeating_mode - acceptOwnLocationReportsViaKiss - allow_gps_sleep_while_kiss - acceptOwnPositionReportsViaKiss - gps_allow_sleep_while_kiss - added code for new preferences values - in prepareAPRSFrame() - beautified DST-path addition on outString - better comment-ratelimiting computation - loraSend(): small change. - If lora freq was changed for sending one packet on another frequency (cross digi mode): + // cross-digipeating may have altered our RX-frequency. Revert frequency change needed for this transmission. + if (lora_FREQ != lora_freq) + rf95.setFrequency(lora_freq); - FEATURE request: // Feauture request: add param lora_speed. Currently, we need a variable for storing the old speed, and affer loraSend(), we have to revert :( I did not change the function parametes without asking - new sanity check: +// enforce valid transmissions even on wrong configurations +if (aprsSymbolTable.length() != 1) + aprsSymbolTable = String("/"); +if (aprsSymbol.length() != 1) + aprsSymbol = String("["); +if (aprsLatPreset.length() != 8 || !(aprsLatPreset.endsWith("N") || aprsLatPreset.endsWith("S")) || aprsLatPreset.c_str()[4] != '.') + aprsLatPreset = String("0000.00N"); +if (aprsLonPreset.length() != 9 || !(aprsLonPreset.endsWith("E") || aprsLonPreset.endsWith("W")) || aprsLonPreset.c_str()[5] != '.') + aprsLonPreset = String("00000.00E"); -> Without this, and if unconfigured, invalid packets without position in the position-part of the AX.25 packets could occur. Saw this happens, at findu.com ;) - encode_snr_rssi_in_path(): My idea of coding SNR and RSSI in packet path. Instead of modifying user's comment text (which some digi software does, and is a really bad idea) - add_element_to_path(): a quick, string based option to add a digi element to the AX.25 header - tnc_format_to_ax25_frame(): header parser, needed for handle_lora_frame_for_lora_digipeating - handle_lora_frame_for_lora_digipeating: does header rewrite for digipeating - implemented digipeating and cross-digipeating - redesignt automatic cr-adatpion - improved smart-beaconing decisions 5. taskWebServer.cpp: --------------------- - added code for new preferences values Appendix 1 ---------- I.e. my enforced test settings in TTGO_T-Beam_LoRa_APRS.ino behind the block "// enforce valid transmissions even on wrong configurations" were: lora_speed = 180; lora_digipeating_mode = 2; lora_cross_digipeating_mode = 0; sb_min_interval = 90000L; sb_max_interval = 1800000L; lora_automatic_cr_adaption = true; lora_speed_cross_digi = 1200; lora_freq_cross_digi = 433.900; sb_max_speed = 20; sb_turn_slope = 11; rate_limit_message_text = true; acceptOwnPositionReportsViaKiss = true; lora_add_snr_rssi_to_path = true; And in platformio.ini: -D 'KISS_PROTOCOL' ; leave enabled -D 'CALLSIGN="DL9SAU-12"' ; can be set from www interface -D 'DIGI_PATH="1"' ; can be set from www interface ; -D 'FIXED_BEACON_EN' ; can be set from www interface -D 'SB_ALGO_KENWOOD' ; Kenwood skales better on lower speed. -D 'LATITUDE_PRESET="0000.00N"' ; can be set from www interface -D 'LONGITUDE_PRESET="00000.00E"' ; can be set from www interface -D 'APRS_SYMBOL_TABLE="/"' ; can be set from www interface -D 'APRS_SYMBOL="["' ; can be set from www interface -D 'MY_COMMENT="/145.500MHz d023/Thomas D23. TTGO-T-Beam LoRa 70cm; KISS-Test"' ; can be set from www interface -D 'SHOW_ALT' ; can be set from www interface ; -D 'SHOW_BATT' ; can be set from www interface -D 'SHOW_RX_PACKET' ; can be set from www interface -D 'SHOW_RX_TIME=10000' ; can be set from www interface -D 'TXFREQ=433.775' ; set operating frequency ; -D 'LORA_SPEED_1200' ; comment out to set 300baud -D 'TXdbmW=23' ; set power ; -D 'ENABLE_OLED' ; can be set from www interface -D 'ENABLE_LED_SIGNALING' ; can be set from www interface -D 'NETWORK_TNC_PORT=8001' ; default KISS TCP port ; -D 'MAX_TIME_TO_NEXT_TX=120000L' ; can be set from www interface -- not implemented -D 'FIX_BEACON_INTERVAL=1800000L' ; can be set from www interface -D 'NETWORK_GPS_PORT=10110' ; GPS NMEA Port ; -D 'ENABLE_TNC_SELF_TELEMETRY' ; can be set from www interface -D 'TNC_SELF_TELEMETRY_INTERVAL=3600L' ; can be set from www interface (seconds) -D 'SHOW_OLED_TIME=15000' ; an be set from www interface (OLED Timeout) Signed-off-by: Thomas Osterried <dl9sau@github>
2021-11-24 12:34:04 +00:00
-D 'SHOW_ALT' ; can be set from www interface
; -D 'SHOW_BATT' ; can be set from www interface
-D 'SHOW_RX_PACKET' ; can be set from www interface
-D 'SHOW_RX_TIME=10000' ; can be set from www interface
This commit brings many enhancements (like digipeating), fixes, and cosmetic changes. (c) 2021 Thomas Osterried dl9sau, License GPL CAVE: webconfig does not work properly. This needs to be fixed before the changes could go upstream! Until then, you can hardcode values in TTGO_T-Beam_LoRa_APRS.ino after the "// enforce valid transmissions even on wrong configurations" section. For examples, see appendix 1. New features Changes - improved automatic CodeRate adaption - Concept for adding SNR+RSSI in packet path. Q23073* means, 23 dB SNR, -73 dB RSSI. - full smart-beaconing implementation, with default parameters from kenwood / yaesu devices Changed files: 1. data_embed/index.html ------------------------ - cosmetic changes - added configuration options for new features described above - description how to configure DST-call-path-addressing - make configurable - automatic coderate adaption - rate limiting comment text - My recent "Accept own positions via KISS" feature - My recent "Allow GPS sleep while own positions received via KISS" feature - LoRa Digipeating - LoRa cross-digipeating (Mode, frequency, speed) 2. preference_storage.h ----------------------- definitions for the new configuration variables 3. platformio.ini ------------------k Variable MAX_TIME_TO_NEXT_TXT commented out. Was not implemented, and needs not be configured anymore. Default enabling of ENABLE_TNC_SELF_TELEMETRY switched off because most people do not need this DIGI_PATH="1": suggestion to make this default "FIXED_BEACON_EN": switched off, because if you have a tracker with GPS, you do smart-beaconing. Or if you have no GPS, you need to configure LAT/LONG before enabling fixed beaconing. "SHOW_BATT": if you really need this, enable it. "SPEED_1200": most regions use 300. Typo: LATIDUDE_PRESET -> changed to LATITUDE_PRESET (also in TTGO_T-Beam_LoRa_APRS.ino) 4. TTGO_T-Beam_LoRa_APRS.ino ---------------------------- global variables: - -D SPEED_1200 had not effekt. Added appropriete #ifdef. Perhaps, "LORA_SPEED_LOW" or "LORA_SPEED_FAST" (like mentioned in the web interface) would be a better approach - gps state: set default on only at devices with GPS-RX - New smartbeaconing: - values like sb_turn_slope and sb_turn_time - if -D SB_ALGO_KENWOOD, use those defaults. Scales better at low speed. - my new featerus: - lora_speed_cross_digi - lora_freq_cross_digi - lora_automatic_cr_adaption - lora_digipeating_mode - lora_add_snr_rssi_to_path - lora_cross_digipeating_mode - acceptOwnLocationReportsViaKiss - allow_gps_sleep_while_kiss - acceptOwnPositionReportsViaKiss - gps_allow_sleep_while_kiss - added code for new preferences values - in prepareAPRSFrame() - beautified DST-path addition on outString - better comment-ratelimiting computation - loraSend(): small change. - If lora freq was changed for sending one packet on another frequency (cross digi mode): + // cross-digipeating may have altered our RX-frequency. Revert frequency change needed for this transmission. + if (lora_FREQ != lora_freq) + rf95.setFrequency(lora_freq); - FEATURE request: // Feauture request: add param lora_speed. Currently, we need a variable for storing the old speed, and affer loraSend(), we have to revert :( I did not change the function parametes without asking - new sanity check: +// enforce valid transmissions even on wrong configurations +if (aprsSymbolTable.length() != 1) + aprsSymbolTable = String("/"); +if (aprsSymbol.length() != 1) + aprsSymbol = String("["); +if (aprsLatPreset.length() != 8 || !(aprsLatPreset.endsWith("N") || aprsLatPreset.endsWith("S")) || aprsLatPreset.c_str()[4] != '.') + aprsLatPreset = String("0000.00N"); +if (aprsLonPreset.length() != 9 || !(aprsLonPreset.endsWith("E") || aprsLonPreset.endsWith("W")) || aprsLonPreset.c_str()[5] != '.') + aprsLonPreset = String("00000.00E"); -> Without this, and if unconfigured, invalid packets without position in the position-part of the AX.25 packets could occur. Saw this happens, at findu.com ;) - encode_snr_rssi_in_path(): My idea of coding SNR and RSSI in packet path. Instead of modifying user's comment text (which some digi software does, and is a really bad idea) - add_element_to_path(): a quick, string based option to add a digi element to the AX.25 header - tnc_format_to_ax25_frame(): header parser, needed for handle_lora_frame_for_lora_digipeating - handle_lora_frame_for_lora_digipeating: does header rewrite for digipeating - implemented digipeating and cross-digipeating - redesignt automatic cr-adatpion - improved smart-beaconing decisions 5. taskWebServer.cpp: --------------------- - added code for new preferences values Appendix 1 ---------- I.e. my enforced test settings in TTGO_T-Beam_LoRa_APRS.ino behind the block "// enforce valid transmissions even on wrong configurations" were: lora_speed = 180; lora_digipeating_mode = 2; lora_cross_digipeating_mode = 0; sb_min_interval = 90000L; sb_max_interval = 1800000L; lora_automatic_cr_adaption = true; lora_speed_cross_digi = 1200; lora_freq_cross_digi = 433.900; sb_max_speed = 20; sb_turn_slope = 11; rate_limit_message_text = true; acceptOwnPositionReportsViaKiss = true; lora_add_snr_rssi_to_path = true; And in platformio.ini: -D 'KISS_PROTOCOL' ; leave enabled -D 'CALLSIGN="DL9SAU-12"' ; can be set from www interface -D 'DIGI_PATH="1"' ; can be set from www interface ; -D 'FIXED_BEACON_EN' ; can be set from www interface -D 'SB_ALGO_KENWOOD' ; Kenwood skales better on lower speed. -D 'LATITUDE_PRESET="0000.00N"' ; can be set from www interface -D 'LONGITUDE_PRESET="00000.00E"' ; can be set from www interface -D 'APRS_SYMBOL_TABLE="/"' ; can be set from www interface -D 'APRS_SYMBOL="["' ; can be set from www interface -D 'MY_COMMENT="/145.500MHz d023/Thomas D23. TTGO-T-Beam LoRa 70cm; KISS-Test"' ; can be set from www interface -D 'SHOW_ALT' ; can be set from www interface ; -D 'SHOW_BATT' ; can be set from www interface -D 'SHOW_RX_PACKET' ; can be set from www interface -D 'SHOW_RX_TIME=10000' ; can be set from www interface -D 'TXFREQ=433.775' ; set operating frequency ; -D 'LORA_SPEED_1200' ; comment out to set 300baud -D 'TXdbmW=23' ; set power ; -D 'ENABLE_OLED' ; can be set from www interface -D 'ENABLE_LED_SIGNALING' ; can be set from www interface -D 'NETWORK_TNC_PORT=8001' ; default KISS TCP port ; -D 'MAX_TIME_TO_NEXT_TX=120000L' ; can be set from www interface -- not implemented -D 'FIX_BEACON_INTERVAL=1800000L' ; can be set from www interface -D 'NETWORK_GPS_PORT=10110' ; GPS NMEA Port ; -D 'ENABLE_TNC_SELF_TELEMETRY' ; can be set from www interface -D 'TNC_SELF_TELEMETRY_INTERVAL=3600L' ; can be set from www interface (seconds) -D 'SHOW_OLED_TIME=15000' ; an be set from www interface (OLED Timeout) Signed-off-by: Thomas Osterried <dl9sau@github>
2021-11-24 12:34:04 +00:00
-D 'TXFREQ=433.775' ; set operating frequency
; -D 'LORA_SPEED_1200' ; comment out to set 300baud
;-D 'TXDISABLE' ; can be set from www interface
2022-03-03 15:10:23 +00:00
;-D 'RXDISABLE' ; can be set from www interface
This commit brings many enhancements (like digipeating), fixes, and cosmetic changes. (c) 2021 Thomas Osterried dl9sau, License GPL CAVE: webconfig does not work properly. This needs to be fixed before the changes could go upstream! Until then, you can hardcode values in TTGO_T-Beam_LoRa_APRS.ino after the "// enforce valid transmissions even on wrong configurations" section. For examples, see appendix 1. New features Changes - improved automatic CodeRate adaption - Concept for adding SNR+RSSI in packet path. Q23073* means, 23 dB SNR, -73 dB RSSI. - full smart-beaconing implementation, with default parameters from kenwood / yaesu devices Changed files: 1. data_embed/index.html ------------------------ - cosmetic changes - added configuration options for new features described above - description how to configure DST-call-path-addressing - make configurable - automatic coderate adaption - rate limiting comment text - My recent "Accept own positions via KISS" feature - My recent "Allow GPS sleep while own positions received via KISS" feature - LoRa Digipeating - LoRa cross-digipeating (Mode, frequency, speed) 2. preference_storage.h ----------------------- definitions for the new configuration variables 3. platformio.ini ------------------k Variable MAX_TIME_TO_NEXT_TXT commented out. Was not implemented, and needs not be configured anymore. Default enabling of ENABLE_TNC_SELF_TELEMETRY switched off because most people do not need this DIGI_PATH="1": suggestion to make this default "FIXED_BEACON_EN": switched off, because if you have a tracker with GPS, you do smart-beaconing. Or if you have no GPS, you need to configure LAT/LONG before enabling fixed beaconing. "SHOW_BATT": if you really need this, enable it. "SPEED_1200": most regions use 300. Typo: LATIDUDE_PRESET -> changed to LATITUDE_PRESET (also in TTGO_T-Beam_LoRa_APRS.ino) 4. TTGO_T-Beam_LoRa_APRS.ino ---------------------------- global variables: - -D SPEED_1200 had not effekt. Added appropriete #ifdef. Perhaps, "LORA_SPEED_LOW" or "LORA_SPEED_FAST" (like mentioned in the web interface) would be a better approach - gps state: set default on only at devices with GPS-RX - New smartbeaconing: - values like sb_turn_slope and sb_turn_time - if -D SB_ALGO_KENWOOD, use those defaults. Scales better at low speed. - my new featerus: - lora_speed_cross_digi - lora_freq_cross_digi - lora_automatic_cr_adaption - lora_digipeating_mode - lora_add_snr_rssi_to_path - lora_cross_digipeating_mode - acceptOwnLocationReportsViaKiss - allow_gps_sleep_while_kiss - acceptOwnPositionReportsViaKiss - gps_allow_sleep_while_kiss - added code for new preferences values - in prepareAPRSFrame() - beautified DST-path addition on outString - better comment-ratelimiting computation - loraSend(): small change. - If lora freq was changed for sending one packet on another frequency (cross digi mode): + // cross-digipeating may have altered our RX-frequency. Revert frequency change needed for this transmission. + if (lora_FREQ != lora_freq) + rf95.setFrequency(lora_freq); - FEATURE request: // Feauture request: add param lora_speed. Currently, we need a variable for storing the old speed, and affer loraSend(), we have to revert :( I did not change the function parametes without asking - new sanity check: +// enforce valid transmissions even on wrong configurations +if (aprsSymbolTable.length() != 1) + aprsSymbolTable = String("/"); +if (aprsSymbol.length() != 1) + aprsSymbol = String("["); +if (aprsLatPreset.length() != 8 || !(aprsLatPreset.endsWith("N") || aprsLatPreset.endsWith("S")) || aprsLatPreset.c_str()[4] != '.') + aprsLatPreset = String("0000.00N"); +if (aprsLonPreset.length() != 9 || !(aprsLonPreset.endsWith("E") || aprsLonPreset.endsWith("W")) || aprsLonPreset.c_str()[5] != '.') + aprsLonPreset = String("00000.00E"); -> Without this, and if unconfigured, invalid packets without position in the position-part of the AX.25 packets could occur. Saw this happens, at findu.com ;) - encode_snr_rssi_in_path(): My idea of coding SNR and RSSI in packet path. Instead of modifying user's comment text (which some digi software does, and is a really bad idea) - add_element_to_path(): a quick, string based option to add a digi element to the AX.25 header - tnc_format_to_ax25_frame(): header parser, needed for handle_lora_frame_for_lora_digipeating - handle_lora_frame_for_lora_digipeating: does header rewrite for digipeating - implemented digipeating and cross-digipeating - redesignt automatic cr-adatpion - improved smart-beaconing decisions 5. taskWebServer.cpp: --------------------- - added code for new preferences values Appendix 1 ---------- I.e. my enforced test settings in TTGO_T-Beam_LoRa_APRS.ino behind the block "// enforce valid transmissions even on wrong configurations" were: lora_speed = 180; lora_digipeating_mode = 2; lora_cross_digipeating_mode = 0; sb_min_interval = 90000L; sb_max_interval = 1800000L; lora_automatic_cr_adaption = true; lora_speed_cross_digi = 1200; lora_freq_cross_digi = 433.900; sb_max_speed = 20; sb_turn_slope = 11; rate_limit_message_text = true; acceptOwnPositionReportsViaKiss = true; lora_add_snr_rssi_to_path = true; And in platformio.ini: -D 'KISS_PROTOCOL' ; leave enabled -D 'CALLSIGN="DL9SAU-12"' ; can be set from www interface -D 'DIGI_PATH="1"' ; can be set from www interface ; -D 'FIXED_BEACON_EN' ; can be set from www interface -D 'SB_ALGO_KENWOOD' ; Kenwood skales better on lower speed. -D 'LATITUDE_PRESET="0000.00N"' ; can be set from www interface -D 'LONGITUDE_PRESET="00000.00E"' ; can be set from www interface -D 'APRS_SYMBOL_TABLE="/"' ; can be set from www interface -D 'APRS_SYMBOL="["' ; can be set from www interface -D 'MY_COMMENT="/145.500MHz d023/Thomas D23. TTGO-T-Beam LoRa 70cm; KISS-Test"' ; can be set from www interface -D 'SHOW_ALT' ; can be set from www interface ; -D 'SHOW_BATT' ; can be set from www interface -D 'SHOW_RX_PACKET' ; can be set from www interface -D 'SHOW_RX_TIME=10000' ; can be set from www interface -D 'TXFREQ=433.775' ; set operating frequency ; -D 'LORA_SPEED_1200' ; comment out to set 300baud -D 'TXdbmW=23' ; set power ; -D 'ENABLE_OLED' ; can be set from www interface -D 'ENABLE_LED_SIGNALING' ; can be set from www interface -D 'NETWORK_TNC_PORT=8001' ; default KISS TCP port ; -D 'MAX_TIME_TO_NEXT_TX=120000L' ; can be set from www interface -- not implemented -D 'FIX_BEACON_INTERVAL=1800000L' ; can be set from www interface -D 'NETWORK_GPS_PORT=10110' ; GPS NMEA Port ; -D 'ENABLE_TNC_SELF_TELEMETRY' ; can be set from www interface -D 'TNC_SELF_TELEMETRY_INTERVAL=3600L' ; can be set from www interface (seconds) -D 'SHOW_OLED_TIME=15000' ; an be set from www interface (OLED Timeout) Signed-off-by: Thomas Osterried <dl9sau@github>
2021-11-24 12:34:04 +00:00
-D 'TXdbmW=23' ; set power
-D 'ENABLE_OLED' ; can be set from www interface
-D 'ENABLE_LED_SIGNALING' ; can be set from www interface
This commit brings many enhancements (like digipeating), fixes, and cosmetic changes. (c) 2021 Thomas Osterried dl9sau, License GPL CAVE: webconfig does not work properly. This needs to be fixed before the changes could go upstream! Until then, you can hardcode values in TTGO_T-Beam_LoRa_APRS.ino after the "// enforce valid transmissions even on wrong configurations" section. For examples, see appendix 1. New features Changes - improved automatic CodeRate adaption - Concept for adding SNR+RSSI in packet path. Q23073* means, 23 dB SNR, -73 dB RSSI. - full smart-beaconing implementation, with default parameters from kenwood / yaesu devices Changed files: 1. data_embed/index.html ------------------------ - cosmetic changes - added configuration options for new features described above - description how to configure DST-call-path-addressing - make configurable - automatic coderate adaption - rate limiting comment text - My recent "Accept own positions via KISS" feature - My recent "Allow GPS sleep while own positions received via KISS" feature - LoRa Digipeating - LoRa cross-digipeating (Mode, frequency, speed) 2. preference_storage.h ----------------------- definitions for the new configuration variables 3. platformio.ini ------------------k Variable MAX_TIME_TO_NEXT_TXT commented out. Was not implemented, and needs not be configured anymore. Default enabling of ENABLE_TNC_SELF_TELEMETRY switched off because most people do not need this DIGI_PATH="1": suggestion to make this default "FIXED_BEACON_EN": switched off, because if you have a tracker with GPS, you do smart-beaconing. Or if you have no GPS, you need to configure LAT/LONG before enabling fixed beaconing. "SHOW_BATT": if you really need this, enable it. "SPEED_1200": most regions use 300. Typo: LATIDUDE_PRESET -> changed to LATITUDE_PRESET (also in TTGO_T-Beam_LoRa_APRS.ino) 4. TTGO_T-Beam_LoRa_APRS.ino ---------------------------- global variables: - -D SPEED_1200 had not effekt. Added appropriete #ifdef. Perhaps, "LORA_SPEED_LOW" or "LORA_SPEED_FAST" (like mentioned in the web interface) would be a better approach - gps state: set default on only at devices with GPS-RX - New smartbeaconing: - values like sb_turn_slope and sb_turn_time - if -D SB_ALGO_KENWOOD, use those defaults. Scales better at low speed. - my new featerus: - lora_speed_cross_digi - lora_freq_cross_digi - lora_automatic_cr_adaption - lora_digipeating_mode - lora_add_snr_rssi_to_path - lora_cross_digipeating_mode - acceptOwnLocationReportsViaKiss - allow_gps_sleep_while_kiss - acceptOwnPositionReportsViaKiss - gps_allow_sleep_while_kiss - added code for new preferences values - in prepareAPRSFrame() - beautified DST-path addition on outString - better comment-ratelimiting computation - loraSend(): small change. - If lora freq was changed for sending one packet on another frequency (cross digi mode): + // cross-digipeating may have altered our RX-frequency. Revert frequency change needed for this transmission. + if (lora_FREQ != lora_freq) + rf95.setFrequency(lora_freq); - FEATURE request: // Feauture request: add param lora_speed. Currently, we need a variable for storing the old speed, and affer loraSend(), we have to revert :( I did not change the function parametes without asking - new sanity check: +// enforce valid transmissions even on wrong configurations +if (aprsSymbolTable.length() != 1) + aprsSymbolTable = String("/"); +if (aprsSymbol.length() != 1) + aprsSymbol = String("["); +if (aprsLatPreset.length() != 8 || !(aprsLatPreset.endsWith("N") || aprsLatPreset.endsWith("S")) || aprsLatPreset.c_str()[4] != '.') + aprsLatPreset = String("0000.00N"); +if (aprsLonPreset.length() != 9 || !(aprsLonPreset.endsWith("E") || aprsLonPreset.endsWith("W")) || aprsLonPreset.c_str()[5] != '.') + aprsLonPreset = String("00000.00E"); -> Without this, and if unconfigured, invalid packets without position in the position-part of the AX.25 packets could occur. Saw this happens, at findu.com ;) - encode_snr_rssi_in_path(): My idea of coding SNR and RSSI in packet path. Instead of modifying user's comment text (which some digi software does, and is a really bad idea) - add_element_to_path(): a quick, string based option to add a digi element to the AX.25 header - tnc_format_to_ax25_frame(): header parser, needed for handle_lora_frame_for_lora_digipeating - handle_lora_frame_for_lora_digipeating: does header rewrite for digipeating - implemented digipeating and cross-digipeating - redesignt automatic cr-adatpion - improved smart-beaconing decisions 5. taskWebServer.cpp: --------------------- - added code for new preferences values Appendix 1 ---------- I.e. my enforced test settings in TTGO_T-Beam_LoRa_APRS.ino behind the block "// enforce valid transmissions even on wrong configurations" were: lora_speed = 180; lora_digipeating_mode = 2; lora_cross_digipeating_mode = 0; sb_min_interval = 90000L; sb_max_interval = 1800000L; lora_automatic_cr_adaption = true; lora_speed_cross_digi = 1200; lora_freq_cross_digi = 433.900; sb_max_speed = 20; sb_turn_slope = 11; rate_limit_message_text = true; acceptOwnPositionReportsViaKiss = true; lora_add_snr_rssi_to_path = true; And in platformio.ini: -D 'KISS_PROTOCOL' ; leave enabled -D 'CALLSIGN="DL9SAU-12"' ; can be set from www interface -D 'DIGI_PATH="1"' ; can be set from www interface ; -D 'FIXED_BEACON_EN' ; can be set from www interface -D 'SB_ALGO_KENWOOD' ; Kenwood skales better on lower speed. -D 'LATITUDE_PRESET="0000.00N"' ; can be set from www interface -D 'LONGITUDE_PRESET="00000.00E"' ; can be set from www interface -D 'APRS_SYMBOL_TABLE="/"' ; can be set from www interface -D 'APRS_SYMBOL="["' ; can be set from www interface -D 'MY_COMMENT="/145.500MHz d023/Thomas D23. TTGO-T-Beam LoRa 70cm; KISS-Test"' ; can be set from www interface -D 'SHOW_ALT' ; can be set from www interface ; -D 'SHOW_BATT' ; can be set from www interface -D 'SHOW_RX_PACKET' ; can be set from www interface -D 'SHOW_RX_TIME=10000' ; can be set from www interface -D 'TXFREQ=433.775' ; set operating frequency ; -D 'LORA_SPEED_1200' ; comment out to set 300baud -D 'TXdbmW=23' ; set power ; -D 'ENABLE_OLED' ; can be set from www interface -D 'ENABLE_LED_SIGNALING' ; can be set from www interface -D 'NETWORK_TNC_PORT=8001' ; default KISS TCP port ; -D 'MAX_TIME_TO_NEXT_TX=120000L' ; can be set from www interface -- not implemented -D 'FIX_BEACON_INTERVAL=1800000L' ; can be set from www interface -D 'NETWORK_GPS_PORT=10110' ; GPS NMEA Port ; -D 'ENABLE_TNC_SELF_TELEMETRY' ; can be set from www interface -D 'TNC_SELF_TELEMETRY_INTERVAL=3600L' ; can be set from www interface (seconds) -D 'SHOW_OLED_TIME=15000' ; an be set from www interface (OLED Timeout) Signed-off-by: Thomas Osterried <dl9sau@github>
2021-11-24 12:34:04 +00:00
-D 'NETWORK_TNC_PORT=8001' ; default KISS TCP port
; -D 'MAX_TIME_TO_NEXT_TX=120000L' ; can be set from www interface -- not implemented
-D 'FIX_BEACON_INTERVAL=1800000L' ; can be set from www interface
-D 'NETWORK_GPS_PORT=10110' ; GPS NMEA Port
; -D 'ENABLE_TNC_SELF_TELEMETRY' ; can be set from www interface
-D 'TNC_SELF_TELEMETRY_INTERVAL=3600L' ; can be set from www interface (seconds)
-D 'SHOW_OLED_TIME=15000' ; can be set from www interface (OLED Timeout)
2021-02-17 19:26:10 +00:00
2021-02-23 22:04:09 +00:00
[env:ttgo-t-beam-v1.0]
2021-04-21 18:39:56 +00:00
platform = espressif32 @ 3.0.0
2021-02-17 19:26:10 +00:00
board = ttgo-t-beam
build_flags =
${env.build_flags}
-D T_BEAM_V1_0
-D ENABLE_WIFI
-D ENABLE_BLUETOOTH
2021-02-23 22:04:09 +00:00
2021-02-24 20:40:43 +00:00
[env:ttgo-t-beam-v0.7]
2021-03-24 23:54:07 +00:00
platform = espressif32 @ 3.0.0
2021-02-23 22:04:09 +00:00
board = ttgo-t-beam
build_flags =
${env.build_flags}
-D ENABLE_WIFI
-D T_BEAM_V0_7
2021-02-17 19:26:10 +00:00
2021-03-14 19:57:23 +00:00
[env:ttgo-lora32-v2.1]
2021-03-24 23:54:07 +00:00
platform = espressif32 @ 3.1.1
2021-03-14 19:57:23 +00:00
board = ttgo-lora32-v21
build_flags =
${env.build_flags}
-D LORA32_21
-D ENABLE_WIFI
-D ENABLE_BLUETOOTH
2021-02-17 19:26:10 +00:00
2021-02-17 19:31:01 +00:00
[env:ttgo-lora32-v2]
2021-03-24 23:54:07 +00:00
platform = espressif32 @ 3.1.1
2021-03-14 19:57:23 +00:00
board = ttgo-lora32-v2
build_flags =
${env.build_flags}
-D ENABLE_WIFI
-D LORA32_2
2021-02-17 19:26:10 +00:00
2021-02-17 19:31:01 +00:00
[env:ttgo-lora32-v1]
2021-03-24 23:54:07 +00:00
platform = espressif32 @ 3.1.1
2021-03-14 21:21:30 +00:00
board = ttgo-lora32-v1
build_flags =
${env.build_flags}
-D ENABLE_WIFI
-D LORA32_1
2021-03-21 18:30:04 +00:00
[env:Heltec-WiFi-v1]
2021-03-24 23:54:07 +00:00
platform = espressif32 @ 3.1.1
board = heltec_wifi_kit_32
build_flags =
${env.build_flags}
-D ENABLE_WIFI
-D HELTEC_V1
2021-03-21 18:30:04 +00:00
[env:Heltec-WiFi-v2]
2021-03-24 23:54:07 +00:00
platform = espressif32 @ 3.1.1
board = heltec_wifi_kit_32_v2
build_flags =
${env.build_flags}
-D ENABLE_WIFI
-D HELTEC_V2
[env:ttgo-t-beam-v1.0-development]
platform = espressif32 @ 3.0.0
board = ttgo-t-beam
build_flags =
${env.build_flags}
-D T_BEAM_V1_0
-D ENABLE_WIFI
-D ENABLE_BLUETOOTH
-D ENABLE_SYSLOG
2021-08-22 07:16:20 +00:00
-D 'SYSLOG_IP="192.168.0.102"'
-D DEVELOPMENT_DEBUG
lib_deps =
${env.lib_deps}
arcao/Syslog