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

158 wiersze
4.6 KiB
INI

; 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
2021-04-13 13:52:07 +00:00
https://github.com/SQ9MDD/AXP202X_Library.git
SparkFun u-blox Arduino Library
bblanchon/ArduinoJson
arcao/Syslog
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
Major changes. Hard work on this new releae. Improvements - Even more intelligent behavior in "Allow failback Mode AP" - Webserver: Current GPS location can be stored as current lat/lon; And fixed a not-so-nice down-rounding from i.e. 53.2100N to 53.2099N - Webserver: better input handling for ap password, remoteAP ssid and password, syslog and ntp server - Webserver: fixed typos in tooltip texts, and improved documentation, especially for the new features - Position ambiguity and higher precision You can choose now between - compressed position (also when fixed position). - uncompressed aprs position - uncompressed aprs position with higher precision (DAO W and w) Improvement for unknown position: encode it according to aprs spec - OLED: more variants to display lat/lon positions. Displayed lat/lon resolution depends on setting and if you move, and current gps hdop. You can also configure if maidenhead grid locator is shown (always, never, in intervals). Locator could be shown as RR99XX, RR99XX99 or RR99XX99xx - you can choose which variant you like. - Oled Lines: one-liners now cut at end of display-length; except for line2 (if line3-5 are empty). Oled display.display() is called only if display is on. Improvement for fillDisplayLines3to5 (may be forced) - Serial output on boot: Warn for unser preference variables only once, and set them accordingly - Digipeating / Gate handling. Don't send 3rd-party packets back to aprsis. Digipeat telemetry only do secondary qrg. - aprs-is: - 3rd-party traffic: it's not seldom that igates use lowercase calls. Don't tread this as (minor) error anymore. - aprs-is: improved filters according to aprsis spec - digipeating: - if we are a WIDE1 (= fill-in) digi and if a packet is in lora_TXBUF_for_digipeating and we hear a repeated one with same source-address and content, we clear it from queue. Improved viscous-delay. For development (compile time): different debug-verbose levels Fixes - aprsLatPreset (etc..) variables are now changed from their temporary variable names at once. Reading from preferences, a separate variable is filled. This mitigates a smp problem between webserver and main threads - aprsis login messages missed word "vers " placed before the version string - Small fix for aprsis 3rd party traffic encoding according to the spec. - Some numbers with decimals are now shown complete (instead of cut'ed to two decimals (default of String(floatVariable)). - fixes for some buffer dimensions; detected two buffer overflow conditions - Telemetry: assurance that values > 255 are ceiled and not start from 0 again (An analoge value must not exceet 255) This dedicated to the three-country-edge SysOp meeting in Engen 2023-02-11 ;) LoRa was one topic.. Signed-off-by: DL3EL <dl3el@darc.de> Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2023-02-19 19:36:05 +00:00
-D 'LONGITUDE_PRESET="00000.00W"' ; can be set from www interface
-D 'APRS_SYMBOL_TABLE="/"' ; can be set from www interface. Hint: if you need Symbol "&", you need to escape: "\&"
-D 'APRS_SYMBOL="["' ; can be set from www interface. Hint: if you need Symbol "&", you need to escape: "\&"
2023-06-15 18:42:49 +00:00
-D 'APRS_OBJECT_NAME=""' ; can be set from www interface
-D 'MY_COMMENT="Lora Tracker/iGate"' ; 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
Many fixes, improvements and new features - new web option - Otion Send Course/Speed along with Altitude. Removed option "Show Altitude in compressed position" removed. - Added hint for min/max values in tooltip - Tips for reducing power - platformio.ini: - enabled ENABLE_TNC_SELF_TELEMETRY. Reason: imho, no really need for telemetry. But code is not much. Tried to configure it in web-iface for debug purpose and it had no effect: because it was not compiled in. - always_send_cseSpd_AND_altitude feature (see also webconfig) - sendpacket() now gets information (flags) why / for what it is called This is for deciding if you send altitude with each transmission (then course/speed is always sent in compressed format, and /A=...... is added to the message text). [Vice versa is not allowed due to spec] If disabled, one transmission has course/speed and the next one altitude (depending on altitude ratio). Pretty cewl ;) - improvements on display output - improvements for handling gps state change valid/invalid. Lesser (better) cpu-consuming storage of last position. It's now handled in one routine at start of the main loop. - mheard list: json list was cuted. -> - DynamicJsonDocument doc(MAX_RECEIVED_LIST_SIZE * 500); + DynamicJsonDocument doc(MAX_RECEIVED_LIST_SIZE * 1000); But we still face the problem of empty mheard lists in the webinterface. -> STILL NEED FOR FIX - webserver - wifi client / AP: Fix. If you loose connection to the AP, we now go to the algorithm again for reconnect, or start own AP. And if no client is associated in AP mode, we also try to re-determine. -> moved to new function restart_AP_or_STA() Reconnect also if we are STA and got no IP address by dhcp (there are some known compatibility issues with some dhcp-serrvers, where on dhcp refresh we lost the gateway): if (WiFi.getMode() == 1 && (WiFi.status() != WL_CONNECTED || WiFi.localIP() == IP_NULL || WiFi.subnetMask() == IP_SUBNET_NULL || WiFi.gatewayIP() == IP_GATEWAY_NULL)) - wifi status now with one status variable, i.E.: wifi_connection_status = WIFI_RUNNING_AS_AP; Used in the main program for display routine. === dl3el's commit messages (newest on top) - update time and sec of next beacon per second, even if rxshow is >0 - show gps time in OLED show gps time in OLED - smoothen speed in OLED. display current Position, Uptime & Satt Info on Website - bug fix in WebServer: Enable Wifi menu did not show the currently selected value - Features: - Change gps reception in main loop - do not accept gps data when hdop is > 10 - when gps data is invalid, show gps.location.age - when beacon is send manually and reset the timer for fixed beacon - when oled is constantly on, refresh screen every second - "." blinks in the upper left corner to show system is working - show wifi mode on screen (CLI or AP, run or stopped) - show SSID & IP on screen when manual tx (button, web) and as boot message - Bugfixes: - manual send works now, when oled is constantly o - fix output to Oled Display - reenable GPS: show alt in Display delay first AUT TX if fixed beacon is on - show Discharge mA in OLED for optimization === And finally, from the old changelog with changes since the last release: Changelog of 2022-08-09: Fix - logical error for setting lora chip to sleep after tx; affected users with digipeating mode switched off. -> They did not receive any RF packets. Improvements: - hack for re-enabling webserver if it was switched off_ moved from the short-pressed beacon button to the long-pressed GPS button. Thanks to Thomas Beiderwieden <dl3el> for the patch. Feature - If you press the GPS button, on your OLED display now your AP name and IP address are displayed. Thanks to Thomas Beiderwieden <dl3el> for the patch. - Known issues The first Menu in the webinterface, "Enable WIFI", stores the chosen value. You can see it in the json config, and how boot-up behaves (-> correctly stored in the preferences). But: the chooser always displays Menu item 1 as active. Signed-off-by: Thomas Osterried <dl9sau@darc.de> Changelog of 2022-08-07: Major improvements and smaller bugfixes - feature: option to disable wifi. Saves abt 80mA current 3 options: 2 alaways on; 1 off if no bluetooth client is connected in between 60s after boot (watch red oled button; goes off as soon as a bt client connects in the boot phase). 0 disable (re-enabl by pressing beacon button) - pseudo csma/cd. ppersist / slottime as we know it from standard packet-radio / -APRS In loaSend. TODO: better concept with a tx-queue. But this is rather complex, because the queue must not grow too large, else we re-send old packts.. - feature to encode altitude in compressed position instead of /A=... compressed position can encode course/speed, altitude (and others). Option to send course/speed to 0%, 100% or something in between. altitude check button is obsolete. Switch off by setting alt ratio to 0. - cross-digipeating: just for sure, clear rx queue after going back to main freq. - if we are not a digipeater and we have no serial-bt-client, we may let the loraChip sleep (axp.setPowerOutPut(AXP192_LDO2, AXP202_OFF)) -> saves current (a bit) - adjust_cpu_freq_to: change CPU frequency. May reduce cpu power consumption up to 20 %. Suggesting (and tested with) 80 MHz. USE WITH CARE! I.e. 40 MHz or 20 MHz did not work with my device (boot phase never ended) - options to start tncServer and gpsServer (if you don't need them, you may not like to expose these tcp ports to your LAN or HAMNET) - changed preferences.getString(PREFxxxxx) to preferences.getString(PREFxxxxx, ""), because if variable is not set, the preferences library returns "the variable name itself" - wtf!. In the case of PREF_NTP_SERVER, we saw log messages that ntp server with fqdn "ntp_server" could not be resolved; it had no impact, because it did a failback to the compiled-in default. Changed call for PREF_WIFI_PASSWORD, PREF_AP_PASSWORD, etc.. too. - wifi-AP: is set to esp_wifi_set_max_tx_power(8) (for lesser power consumption of the devie). 8 dBm are too less fore some cases. -> New web config for setting max_tx_power in AP- and STA- modes. - Fix: In mode wifi-client, it did not reconnect if association was lost. - small improvement for comment-text ratelimiting BG_RF95.cpp: BG_RF95::SignalDetected feature (needed for pseudo csma/cd) Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-08-20 06:34:28 +00:00
-D 'ENABLE_TNC_SELF_TELEMETRY' ; can be set from www interface. if not defined, telemetry code will not compiled in
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 '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
2023-06-15 18:42:49 +00:00
[env:ttgo-t-beam-v1_0]
platform = espressif32 @ 3.5.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_SYSLOG
-D ENABLE_BLUETOOTH
2021-02-23 22:04:09 +00:00
[env:ttgo-t-beam-v1_2]
platform = espressif32 @ 3.5.0
board = ttgo-t-beam
build_flags =
${env.build_flags}
-D T_BEAM_V1_2
-D ENABLE_WIFI
-D ENABLE_SYSLOG
-D ENABLE_BLUETOOTH
lib_deps =
${env.lib_deps}
https://github.com/lewisxhe/XPowersLib
2023-06-15 18:42:49 +00:00
[env:ttgo-t-beam-v0_7]
platform = espressif32 @ 3.5.0
2021-02-23 22:04:09 +00:00
board = ttgo-t-beam
build_flags =
${env.build_flags}
-D ENABLE_WIFI
-D ENABLE_SYSLOG
-D T_BEAM_V0_7
2021-02-17 19:26:10 +00:00
2023-06-15 18:42:49 +00:00
[env:ttgo-lora32-v2_1]
platform = espressif32 @ 3.5.0
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_SYSLOG
-D ENABLE_BLUETOOTH
2021-02-17 19:26:10 +00:00
2021-02-17 19:31:01 +00:00
[env:ttgo-lora32-v2]
platform = espressif32 @ 3.5.0
2021-03-14 19:57:23 +00:00
board = ttgo-lora32-v2
build_flags =
${env.build_flags}
-D ENABLE_WIFI
-D ENABLE_SYSLOG
-D LORA32_2
2021-02-17 19:26:10 +00:00
2021-02-17 19:31:01 +00:00
[env:ttgo-lora32-v1]
platform = espressif32 @ 3.5.0
2021-03-14 21:21:30 +00:00
board = ttgo-lora32-v1
build_flags =
${env.build_flags}
-D ENABLE_WIFI
-D ENABLE_SYSLOG
-D LORA32_1
2021-03-21 18:30:04 +00:00
[env:Heltec-WiFi-v1]
platform = espressif32 @ 3.5.0
board = heltec_wifi_kit_32
build_flags =
${env.build_flags}
-D ENABLE_WIFI
-D ENABLE_SYSLOG
-D HELTEC_V1
2021-03-21 18:30:04 +00:00
[env:Heltec-WiFi-v2]
platform = espressif32 @ 3.5.0
board = heltec_wifi_kit_32_v2
build_flags =
${env.build_flags}
-D ENABLE_WIFI
-D ENABLE_SYSLOG
-D HELTEC_V2
2023-06-15 18:42:49 +00:00
[env:ttgo-t-beam-v1_0-development]
platform = espressif32 @ 3.5.0
board = ttgo-t-beam
build_flags =
${env.build_flags}
-D T_BEAM_V1_0
-D ENABLE_WIFI
-D ENABLE_BLUETOOTH
-D ENABLE_SYSLOG
-D 'SYSLOG_IP="255.255.255.255"'
2021-08-22 07:16:20 +00:00
-D DEVELOPMENT_DEBUG
#lib_deps =
#${env.lib_deps}