2018-11-25 20:07:34 +00:00
|
|
|
; 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]
|
2021-02-23 16:00:33 +00:00
|
|
|
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
|
2021-11-26 07:16:45 +00:00
|
|
|
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
|
2021-06-10 23:40:26 +00:00
|
|
|
SparkFun u-blox Arduino Library
|
|
|
|
bblanchon/ArduinoJson
|
2021-06-10 22:52:49 +00:00
|
|
|
build_flags =
|
2021-04-21 18:32:49 +00:00
|
|
|
-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
|
2021-09-23 17:39:28 +00:00
|
|
|
-D 'APRS_SYMBOL_TABLE="/"' ; can be set from www interface
|
|
|
|
-D 'APRS_SYMBOL="["' ; can be set from www interface
|
2021-09-12 02:46:51 +00:00
|
|
|
-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
|
2021-09-12 02:46:51 +00:00
|
|
|
-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
|
2021-12-19 13:31:36 +00:00
|
|
|
;-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
|
2021-09-12 02:46:51 +00:00
|
|
|
-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)
|
2021-12-19 13:31:36 +00:00
|
|
|
-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
|
2021-04-21 18:32:49 +00:00
|
|
|
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
|
2021-04-21 18:32:49 +00:00
|
|
|
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
|
2021-04-21 18:32:49 +00:00
|
|
|
build_flags =
|
|
|
|
${env.build_flags}
|
|
|
|
-D LORA32_21
|
2022-03-20 23:50:27 +00:00
|
|
|
-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
|
2021-04-21 18:32:49 +00:00
|
|
|
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
|
2021-04-21 18:32:49 +00:00
|
|
|
build_flags =
|
|
|
|
${env.build_flags}
|
|
|
|
-D ENABLE_WIFI
|
|
|
|
-D LORA32_1
|
2021-03-21 16:18:14 +00:00
|
|
|
|
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
|
2021-03-21 16:18:14 +00:00
|
|
|
board = heltec_wifi_kit_32
|
2021-04-21 18:32:49 +00:00
|
|
|
build_flags =
|
|
|
|
${env.build_flags}
|
|
|
|
-D ENABLE_WIFI
|
|
|
|
-D HELTEC_V1
|
2021-03-21 16:18:14 +00:00
|
|
|
|
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
|
2021-03-21 16:18:14 +00:00
|
|
|
board = heltec_wifi_kit_32_v2
|
2021-04-21 18:32:49 +00:00
|
|
|
build_flags =
|
|
|
|
${env.build_flags}
|
|
|
|
-D ENABLE_WIFI
|
|
|
|
-D HELTEC_V2
|
|
|
|
|
2021-04-25 14:29:07 +00:00
|
|
|
[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
|
2021-04-25 14:29:07 +00:00
|
|
|
lib_deps =
|
|
|
|
${env.lib_deps}
|
|
|
|
arcao/Syslog
|