DL9SAU-TTGO-T-Beam-LoRa-APRS/data_embed/index.html

643 wiersze
43 KiB
HTML
Czysty Zwykły widok Historia

2021-02-18 16:59:18 +00:00
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>TTGO-T-Beam-LoRa-APRS <!--VERSION--></title>
2021-03-01 13:47:34 +00:00
<link rel="stylesheet" href="style.css" type="text/css">
<script src="js.js" type="text/javascript"></script>
2021-02-18 16:59:18 +00:00
<link rel="icon" href="data:,">
</head>
<body>
<div class="container">
2021-03-01 12:01:33 +00:00
<header>
<div id="logo"></div>
</header>
2021-02-18 16:59:18 +00:00
<section>
<div class="grid-container full">
<h2 class="u-full-width">WiFi Settings</h2>
</div>
<article>
<form action="/save_wifi_cfg" method="post">
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-07 18:01:24 +00:00
<div class="grid-container quarters">
<div id="wifi_en">
<label for="wifi_en">Enable Wifi</label>
<select id="wifi_en" name="wifi_en">
<option value="1">1: Wifi may off if bluetooth client is connected in between 60s on boot (recommended for portables, and for LORA32_21 devices)</option>
<option value="2">2: Wifi on (during hardware limitaion, bluetooth will be disabled on LORA32_21 devices)</option>
<option value="0">0: Wifi off (ideal for battery powered trackers - honored only if aprs-is disabled). Hack: Pressing beacon button sets value to 1</option>
</select>
</div>
</div>
2021-02-18 16:59:18 +00:00
<div class="grid-container quarters">
2021-03-08 21:47:00 +00:00
<div id="wifi_list">
<label for="wifi_ssid">Network</label>
2021-02-18 16:59:18 +00:00
<input type="button" value="Scan WiFi" id="scan_wifi_btn" onclick="scanWifi();">
</div>
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-07 18:01:24 +00:00
</div>
<div class="grid-container quarters">
2021-02-18 16:59:18 +00:00
<div>
2021-09-15 18:25:19 +00:00
<label for="wifi_ssid">WiFi SSID</label>
<input class="u-full-width" type="text" name="wifi_ssid" placeholder="Your Wifi SSID" title="Your Wifi SSID" id="wifi_ssid">
2021-02-18 16:59:18 +00:00
</div>
<div>
2021-09-15 18:25:19 +00:00
<label for="wifi_password">WiFi Password</label>
<input class="u-full-width" type="password" name="wifi_password" id="wifi_password" placeholder="Your WiFi Password" title="Your WiFi Password, 8 characters minimum">
2021-02-18 16:59:18 +00:00
</div>
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-07 18:01:24 +00:00
</div>
<div class="grid-container quarters">
<div>
<label for="wifi_pwrSTA">TXPWR as STA</label>
<select id="wifi_pwrSTA" name="wifi_pwrSTA">
<option value="80">Max (20dBm, 100mW, suggested)</option>
<option value="8">Min (2dBm, 2mW)</option>
<option value="44">Low (11dBm, 12mW)</option>
<option value="60">Mid (15dBm, 32mW)</option>
<option value="72">High (18dBm, 63mW)</option>
</select>
</div>
</div>
<div class="grid-container quarters">
2021-09-15 18:24:41 +00:00
<div>
2021-09-15 18:25:19 +00:00
<label for="ap_password">AUTO AP Password</label>
<input class="u-full-width" type="password" name="ap_password" id="ap_password" placeholder="AUTO AP Password" title="AUTO AP Password, 8 characters minimum">
2021-02-18 16:59:18 +00:00
</div>
</div>
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-07 18:01:24 +00:00
<div class="grid-container quarters">
<div>
<label for="wifi_pwrAP">TXPWR as AP</label>
<select id="wifi_pwrAP" name="wifi_pwrAP">
<option value="8">Min (2dBm, 2mW, suggested)</option>
<option value="44">Low (11dBm, 12mW)</option>
<option value="60">Mid (15dBm, 32mW)</option>
<option value="72">High (18dBm, 63mW)</option>
<option value="80">Max (20dBm, 100mW)</option>
</select>
</div>
</div>
<div class="grid-container quarters">
<div>
<label for="ntp_server">NTP Server</label>
<input type="text" name="ntp_server" id="ntp_server" placeholder="pool.ntp.org" title="NTP Server or IP Address. I.e. pool.ntp.org. If your igate is in the HAMNET, use ntp.hc.r1.ampr.org">
</div>
</div>
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-07 18:01:24 +00:00
<div class="grid-container quarters">
<div>
<label for="tncsrvr_en">Enable TNC-Server</label>
<input name="tncsrvr_en" id="tncsrvr_en" type="checkbox" value="1" title="Enable TNC-Server (KISS over TCP) on port tcp 8001. If your device in open networks like HAMNET, enable it only when needed and consider firewalling.">
</div>
<div>
<label for="gpssrv_en">Enable GPS-Server</label>
<input name="gpssrv_en" id="gpssrv_en" type="checkbox" value="1" title="Enable GPS-Server (NMEA on port tcp 10110. If your device in open networks like HAMNET, enable it only when needed and consider firewalling.">
</div>
</div>
2021-03-08 21:47:00 +00:00
<div class="grid-container full">
<input class="button-primary" type="submit" value="Save">
2022-03-03 15:10:23 +00:00
</div>
2021-02-18 16:59:18 +00:00
</form>
</article>
</section>
<section>
<article>
<div class="grid-container full">
<h2 class="u-full-width">APRS Settings</h2>
</div>
2021-02-18 16:59:18 +00:00
<form action="/save_aprs_cfg" method="post">
<div class="grid-container full">
<h5 class="u-full-width">Transmission Settings</h5>
</div>
<div class="grid-container halves">
<div>
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
<label for="lora_freq">Main Frequency [MHz]</label>
<input name="lora_freq" id="lora_freq" type="number" min="433.0000" max="928.0000" step="0.0001" title="LoRa center frequency between 433.0001 and 928.0000. I.e. 433.775">
</div>
<div>
<label for="lora_speed">Speed</label>
<select id="lora_speed" name="lora_speed">
2021-10-16 05:48:17 +00:00
<option value="300">BW 125khz CR 4:5 SF 12 (Slow Standard, 300bps)</option>
<option value="240">BW 125khz CR 4:6 SF 12 (244bps)</option>
<option value="210">BW 125khz CR 4:7 SF 12 (209bps)</option>
<option value="180">BW 125khz CR 4:8 SF 12 (183bps)</option>
<option value="610">BW 125khz CR 4:8 SF 10 (610bps)</option>
2021-10-16 05:48:17 +00:00
<option value="1200">BW 125khz CR 4:7 SF 9 (Fast Standard, 1200bps)</option>
</select>
</div>
2022-03-03 15:10:23 +00:00
<div>
<label for="lora_tx_en">Enable LoRa transmitter</label>
<input name="lora_tx_en" id="lora_tx_en" type="checkbox" value="1" title="Allow TX on LoRa. Disable this if you like to prevent TX under all circumstances (i.e. if your tracker is behind an rx-amplifier)">
2022-03-03 15:10:23 +00:00
</div>
<div>
<label for="lora_rx_en">Enable LoRa receiver</label>
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-07 18:01:24 +00:00
<input name="lora_rx_en" id="lora_rx_en" type="checkbox" value="1" title="Allow RX on LoRa. Disable this if you need to save power consumption; LoRa chip will be only powered on during TX. Only honored if lora_digipeating_mode == 0 and no bluetooth client is connected on boot">
2022-03-03 15:10:23 +00:00
</div>
<div>
<label for="txPower">TX power [dBm]</label>
<input name="txPower" id="txPower" type="number" min="0" max="23" title="LoRa TX Power. Range 0 to 23dBm">
</div>
2022-03-03 15:10:23 +00:00
<div>
<label for="lora_cradapt">Automatic CodeRate adaption on TX</label>
<input name="lora_cradapt" id="lora_cradapt" type="checkbox" value="1" title="Enable automatic CR adaption. Has only influence on TX (RX can decode every CR). Use this only if you are not a WIDE1 or WIDE2 digi (here you like to send always with higher speed). Still testing, if it behaves good to our network. Currently works only for SF12 modes, because for SF 10 and lower the code for programming CR+SF+BW-combination has not been written yet">
</div>
<div>
<label for="aprs_blist">Filter src-calls or calls in digipath on receiption</label>
<input type="text" name="aprs_blist" id="aprs_blist" title="Filter out specified source calls or calls in digipath on receiption -> no repeating, no igate, not visible via kiss. They don't exist ;). List calls separated by ',': DL1AAA,DL1BBB'. This filters out DL1AAA without SSID AND with SSID. If you specify DL1AAA-1, only DL1AAA-1 is filtered out. If you specify DL1AAA-0 (special case), then only packets from DL1AAA are filtered out.">
2022-03-03 15:10:23 +00:00
</div>
</div>
<div class="grid-container halves">
<div>
<label for="lora_rssi2p">Add SNR and RSSI to path. '*': only if heard direct (recommended for many usecases). '~': not recommended; better let user decide with Q-addressing</label>
<select id="lora_rssi2p" name="lora_rssi2p">
<option value="0">off</option>
<option value="1">To RF duing digipeating (~)</option>
<option value="2">To KISS</option>
<option value="4">To APRSIS (~)</option>
<option value="3">To RF and KISS (~)</option>
<option value="5">To RF and APRSIS (~)</option>
<option value="6">To KISS and APRSIS (~)</option>
<option value="7">To RF and KISS and APRSIS (~)</option>
2022-03-03 15:10:23 +00:00
<option value="8">To RF*</option>
<option value="16">To KISS*</option>
<option value="32">To APRSIS*</option>
<option value="34">To APRSIS* and KISS (recommended with aprsdroid for or digis)</option>
<option value="48">To APRSIS* and KISS* (recommended for digis)</option>
<option value="42">To APRSIS* and RF* and KISS (recommended digis while testing)</option>
<option value="56">To APRSIS* and RF* and KISS* (also a good setting!)</option>
<option value="35">To APRSIS* and RF and KISS (~)</option>
<option value="49">To APRSIS* and RF and KISS* (~)</option>
<option value="57">!Too much options. GUI needs redisign!</option>
<option value="9">!I.e. To RF* and RF would not make any sense!<option>
</select>
</div>
</div>
<div class="grid-container halves">
More info for SNR/RSSI path encoding see documentation section below
2022-03-03 15:10:23 +00:00
<div>
<label for="snraprsis">SNR/RSSI-encoding on kiss: compatible to APRS-IS?</label>
<input name="snraprsis" id="snraprsis" type="checkbox" value=1 title="Add snr+rssi at last digipeater, without digipeated flag. Use this for APRS-IS connections. If you have connected a digipeater software to kiss, this option has to be switched off">
2022-03-03 15:10:23 +00:00
</div>
</div>
2021-07-11 09:54:11 +00:00
<div class="grid-container full">
<h5 class="u-full-width">Station Settings</h5>
</div>
2021-02-18 16:59:18 +00:00
<div class="grid-container quarters">
<div>
<label for="aprs_callsign">Callsign and SSID</label>
<input class="u-full-width" type="text" minlength="3" maxlength="9" name="aprs_callsign" placeholder="NOCALL-1" id="aprs_callsign" title="your callsign with SSID">
2021-02-18 16:59:18 +00:00
</div>
<div>
<label for="aprs_relay_path">Relay Path</label>
<input class="u-full-width" type="text" minlength="0" name="aprs_relay_path" id="aprs_relay_path" title="APRS path, use the shortest as possible, ECHO, WIDE1-1 or WIDE2-1. If you really need a fill-in-digi, choose WIDE1-1,WIDE2-1. RFONLY or NOGATE must not be set in front of WIDEn-m. WIDE2-1,WIDE1-1 is not valid. The path with value '1' enables dest-path-digi-notation (like DL9SAU>APRS-1:..) instead of Path ..,WIDE1-1:... If you are a transmitting igate, please leave empty (or set it to Q. See below). About the SNR/RSSI-Path feature: You may request to add SNR/RSSI by adding 'Q' to your path (i.e. 'WIDE1-1,Q'; for transmitting igates (and balloons, aircrafts, ..), only 'Q' is recommended). Then only the first digi (or igate) adds SNR/RSSI to the path. If you add 'QQ' instead of 'Q' to your path (i.e. 'WIDE1-1,QQ'). Then every digi and igate adds SNR/RSSI to the path (useful for analyzing RF net quality). Use with care; resulting longer path consumes a bit more airtime.">
2021-02-18 16:59:18 +00:00
</div>
<div>
<label for="aprs_s_table">Symbol Table</label>
2021-03-08 18:51:01 +00:00
<input class="u-full-width" type="text" minlength="1" maxlength="1" name="aprs_s_table" id="aprs_s_table" title="use primary / or secondary table \ ">
2021-02-18 16:59:18 +00:00
</div>
<div>
<label for="aprs_symbol">Symbol</label>
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
<input class="u-full-width" type="text" minlength="1" maxlength="1" name="aprs_symbol" id="aprs_symbol" title="select an icon, for example: [ - jogger, Y - jacht, > - car, b - bike">
2021-02-18 16:59:18 +00:00
</div>
2021-03-08 17:55:52 +00:00
<div>
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-07 18:01:24 +00:00
<label for="aprs_alt_r">Altitude ratio [%]</label>
<input name="aprs_alt_r" id="aprs_alt_r" type="number" min="0" max="100" title="Altitude ratio every n'th packet.. Use 100 for every packet, 0 for no altitude, or any number in between. Recommended: 10 (altitude every tenth's frame). If you use compression for saving airtime, you may choose 50 for ballons, where speed/dir and altitude are of equal interrest; if you choose 10, then 90 % of your transmissions encode speed/direction." placeholder="10">
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
</div>
2021-03-08 22:59:33 +00:00
<div>
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-07 18:01:24 +00:00
<label for="aprs_ALTinC">Show Altitude in compressed position</label>
<input name="aprs_ALTinC" id="aprs_ALTinC" type="checkbox" value="1" title="Show altitude in compressed position format - safes airtime instead: of /A=...... in comment field. Speed/Course and Altiude are exclusive. If you need speed/course AND altitude on every transmission, set this off and configure altitude ratio to 100).">
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
</div>
2021-02-18 16:59:18 +00:00
<div>
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-07 18:01:24 +00:00
<label for="show_cmt">Show Comment</label>
<input name="show_cmt" id="show_cmt" type="checkbox" value="1" title=" show comment text">
2021-02-18 16:59:18 +00:00
</div>
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
<div>
<label for="aprs_comm_rt">Ratelimit adding comment text</label>
<input name="aprs_comm_rt" id="aprs_comm_rt" type="checkbox" value="1" title="If enabled, comment text is sent only every tenth's transmission. Saves airtime.">
</div>
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-07 18:01:24 +00:00
<div>
<label for="aprs_comment">Comment</label>
<input class="u-full-width" type="text" minlength="0" maxlength="64" name="aprs_comment" id="aprs_comment" title=" personal comment">
</div>
2021-02-18 16:59:18 +00:00
<div>
<label for="aprs_batt">Show Battery</label>
2021-03-08 18:51:01 +00:00
<input name="aprs_batt" id="aprs_batt" type="checkbox" value="1" title=" show battery voltage after personal comment">
2021-02-18 16:59:18 +00:00
</div>
</div>
<div class="grid-container full">
<h5 class="u-full-width">Telemetry Settings</h5>
</div>
<div class="grid-container quarters">
<div>
2021-09-12 03:58:56 +00:00
<label for="tnc_tel">Enable Self Telemetry</label>
<input name="tnc_tel" id="tnc_tel" type="checkbox" value="1" title="send self telemetry data">
2021-09-12 03:58:56 +00:00
</div>
<div>
<label for="tnc_tel_int">Self Telemetry Interval [s]</label>
<input name="tnc_tel_int" id="tnc_tel_int" type="number" min="600" title="time between sending telemetry if Enable Self Telemetry option is selected. 3600 is recommended.">
</div>
<div>
<label for="tnc_tel_mic">Self Telemetry Sequence</label>
<select id="tnc_tel_mic" name="tnc_tel_mic" title="self telemetry sequence type (numeric supported by aprs.fi and aprsdirect.com)">
<option value="0">Numeric</option>
<option value="1">MIC</option>
</select>
</div>
2021-09-19 14:57:43 +00:00
<div>
<label for="tnc_tel_path">Self Telemetry Relay Path</label>
<input class="u-full-width" type="text" minlength="0" name="tnc_tel_path" id="tnc_tel_path" title="APRS path for self telemetry, use the shortest as possible (émpty path ith recommended. Or ECHO or WIDE2-1 or WIDE1-1). ">
2021-09-19 14:57:43 +00:00
</div>
2021-02-18 16:59:18 +00:00
</div>
2021-07-11 09:54:11 +00:00
<div class="grid-container full">
<h5 class="u-full-width">Fixed Beaconing Settings</h5>
</div>
2021-02-18 16:59:18 +00:00
<div class="grid-container quarters">
<div>
2021-03-08 18:51:01 +00:00
<label for="aprs_fixed_beac">Fixed Beacon</label>
<input name="aprs_fixed_beac" id="aprs_fixed_beac" type="checkbox" value="1" title="enable fixed beacon when GPS is disabled or no fix, disables Smart Beaconing">
2021-02-18 16:59:18 +00:00
</div>
<div>
2021-07-11 09:54:11 +00:00
<label for="aprs_fb_interv">Fixed Beacon Interval [s]</label>
<input name="aprs_fb_interv" id="aprs_fb_interv" type="number" min="120" title="time between sending a beacon if Fixed Beacon option is selected. 1800 or 3600 is recommended for users; 900 or 1800 for digis.">
2021-02-18 16:59:18 +00:00
</div>
<div>
<label for="aprs_lat_p">Latitude</label>
<input class="u-full-width" type="text" minlength="0" name="aprs_lat_p" id="aprs_lat_p" title="latitude for fixed beacon, APRS format for example: 5215.00N. 'dd.nnnnS', '-dd.nnnn', 'dd mm[.nnn]' and 'dd mm ss' and 'dd mm' ss&quot;' and 'dd-mm[.nn]N' are also supported. If position is south, you can prefix '-' instead of writing 'S' behind the coordinate. '-nnS' does not make sense. If you like to add a locator, add it here and leave longitude field blank. If GPS is enabled and a valid position has been received, that one will be used instead of the configured one, until the next system reboot">
2021-02-18 16:59:18 +00:00
</div>
<div>
<label for="aprs_lon_p">Longitude</label>
<input class="u-full-width" type="text" minlength="0" name="aprs_lon_p" id="aprs_lon_p" title="longtitude for fixed beacon, APRS format for example 02050.59E. 'ddd.nnnnS', '-ddd.nnnn', 'ddd mm[.nnn]' and 'ddd mm ss' and 'ddd mm' ss&quot;' and 'ddd-mm[.nn]E' are also supported. If position is west, you can prefix '-' instead of writing 'W' behind the coordinate. '-nnW' does not make sense.. If you like to add a locator, add it to the latitude field and leave this field blank.">
2021-02-18 16:59:18 +00:00
</div>
</div>
2021-07-11 09:54:11 +00:00
<div class="grid-container full">
<h5 class="u-full-width">Smart Beaconing Settings</h5>
</div>
<div class="grid-container quarters">
<div>
<label for="sb_min_interv">Min interval [s]</label>
<input name="sb_min_interv" id="sb_min_interv" type="number" min="10" title="Minimal time for Smart Beaconing. 60 is recommended">
2021-07-11 09:54:11 +00:00
</div>
<div>
<label for="sb_max_interv">Max interval [s]</label>
<input name="sb_max_interv" id="sb_max_interv" type="number" min="120" title="Maximal time for Smart Beaconing. 1800 is recommended">
2021-07-11 09:54:11 +00:00
</div>
</div>
<div class="grid-container quarters">
2021-07-11 09:54:11 +00:00
<div>
<label for="sb_min_speed">Min speed [km/h]</label>
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
<input name="sb_min_speed" id="sb_min_speed" type="number" min="0" title="Minimal speed for Smart Beaconing">
2021-07-11 09:54:11 +00:00
</div>
<div>
<label for="sb_max_speed">Max speed [km/h]</label>
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
<input name="sb_max_speed" id="sb_max_speed" type="number" min="1" title="Maximal speed for Smart Beaconing">
2021-07-11 09:54:11 +00:00
</div>
</div>
<div class="grid-container quarters">
<div>
<label for="sb_angle">Course change [degrees]</label>
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
<input name="sb_angle" id="sb_angle" type="number" min="5" max="360" title="Angle of course change to speed up beacon transmission. Recommended value: 28">
</div>
<div>
<label for="sb_turn_slope">Turn Slope [degrees]</label>
<input name="sb_turn_slope" id="sb_turn_slope" type="number" min="5" max="255" title="Smart beaconing turn slope. Use 7 for pedestrian, 11 for low/mid speed and 26 for high speed. Recommended value: 26">
</div>
<div>
<label for="sb_turn_time">Turn Time [seconds]</label>
<input name="sb_turn_time" id="sb_turn_time" type="number" min="5", title="Smart beaconing turn time. Wait at least this amount of seconds for next beacon. Recommended value: 30">
</div>
2021-07-11 09:54:11 +00:00
</div>
2021-03-08 17:55:52 +00:00
<div class="grid-container quarters">
<div>
<label for="gps_enabled">GPS enabled</label>
2021-03-08 18:51:01 +00:00
<input name="gps_enabled" id="gps_enabled" type="checkbox" value="1" title="enable or disable GPS">
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
</div>
<div>
<label for="kiss_myloc_ok">Accept own positions via KISS</label>
<input name="kiss_myloc_ok" id="kiss_myloc_ok" type="checkbox" value="1" title="If set to true, we'll stop sending own position beacons if we heard a position from our call via kiss. Uncheck this, if you like to filter out those positions and keep sending it by this device.">
</div>
<div>
<label for="gps_sleep_ok">Allow GPS sleep while own positions received via KISS</label>
<input name="gps_sleep_ok" id="gps_sleep_ok" type="checkbox" value="1" title="If we have a kiss client like aprsdroid, or a digipeater software, which sends own positions (with same call as ours), we pause sending own positions (neither fixed nor smart beaconing). Uncheck, if you have a display attached and still like to see your current GPS position. This option is only honored if configuration 'Accept own positions via KISS' enabled. Why? If your filter out own positions from and this device sends on it's own, it needs gps running ;)">
</div>
</div>
<div class="grid-container full">
<h6 class="u-full-width">Additional settings for secondary frequency:<br/>EXPERIMANTAL - USE WITH CARE!</h6>
</div>
<div class="grid-container halves">
<div>
<label for="lora_freq_x">Secondary Frequency [MHz]</label>
2022-03-03 15:10:23 +00:00
(for cross-repeating or listening transmissions from igates)</label>
<input name="lora_freq_x" id="lora_freq_x" type="number" min="0.0000" max="928.0000" step="0.0001" title="LoRa center frequency - must be different from main frequency and between 433.0001 and 928.0000 or 0 if not needed. I.e. 433.900">
</div>
<div>
<label for="txPower_x">TX power on secondary frequency [dBm]</label>
<input name="txPower_x" id="txPower_x" type="number" min="0" max="23" title="LoRa TX Power on secondary frequency. Range 0 to 23dBm">
</div>
</div>
<div class="grid-container halves">
<div>
<label for="lora_speed_x">Speed on secondary frequency</label>
<select id="lora_speed_x" name="lora_speed_x">
<option value="1200">BW 125khz CR 4:7 SF 9 (Fast Standard. default; use high speeds on the secondary frequency)</option>
<option value="610">BW 125khz CR 4:8 SF 10 (610bps)</option>
<option value="300">BW 125khz CR 4:5 SF 12 (300bps)</option>
<option value="240">BW 125khz CR 4:6 SF 12 (244bps)</option>
<option value="210">BW 125khz CR 4:7 SF 12 (209bps)</option>
<option value="180">BW 125khz CR 4:8 SF 12 (183bps)</option>
</select>
</div>
</div>
<div class="grid-container halves">
<div>
<label for="rx_qrg">RX on frequencies</label>
2022-03-03 15:10:23 +00:00
(Only honored, if we are NOT configured as WIDE1 or WIDE2 digi. If set to both frequencies: Ratio depends on how many packets are received on each qrg in a 10min window; we stay 20s on one qrg.)
<select id="rx_qrg" name="rx_qrg">
<option value="1">RX on main frequency</option>
<option value="2">RX on secondary frequency</option>
<option value="3">RX on both frequencies</option>
</select>
</div>
<div>
2022-03-03 15:10:23 +00:00
<label for="lora_freq_rx_curr">Current RX Frequency:</label>
<input name="lora_freq_rx_curr" id="lora_freq_rx_curr" type="number" readonly title="Nothing to enter here">
</div>
</div>
<div class="grid-container full">
<h6 class="u-full-width">Additional settings for mode repater:<br/>EXPERIMANTAL - USE WITH CARE!</h6>
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
</div>
<div class="grid-container halves">
<div>
<label for="lora_dig_mode">LoRa Repater Mode</label>
<select id="lora_dig_mode" name="lora_dig_mode">
<option value="0">off. This device does not do any repeating decision.</option>
<option value="1">Repeat if own call is addressed (recommended for normal users). default.</option>
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
<option value="2">Act as WIDE1 (fill-in) digi</option>
<option value="3">Act as a simple WIDE2 digi (consider to instead attach a real aprs-digipeater software via KISS)</option>
</select>
</div>
</div>
<div class="grid-container halves">
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
<div>
<label for="lora_dig_x_m">Digipeat heard stations from MAIN frequency to which frequencies</label>
2022-03-03 15:10:23 +00:00
(If LoRa Repeater Mode has not been set to off)
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
<select id="lora_dig_x_m" name="lora_dig_x_m">
<option value="0">Repeat only to main frequency (default)</option>
<option value="1">Repeat to both frequencies</option>
<option value="2">Repeat only to cross-digi frequency</option>
</select>
</div>
</div>
<div class="grid-container halves">
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
<div>
<label for="tx_qrg_bc">TX our beacon from this device or from-kiss to frequencies</label>
2022-03-03 15:10:23 +00:00
(Only honored, if we are configured as WIDE1 or WIDE2 digi)
<select id="tx_qrg_bc" name="tx_qrg_bc">
<option value="1">TX on main frequency</option>
<option value="2">TX on secondary frequency</option>
<option value="3">TX on both frequencies</option>
<option value="0">Don't send our beacon on RF (but only to kiss and to APRS-IS)</option>
2022-03-03 15:10:23 +00:00
</select>
</div>
</div>
<div class="grid-container full">
<h5 class="u-full-width">APRS-IS settings</h5>
2021-03-08 17:55:52 +00:00
</div>
<div class="grid-container halves">
2022-03-03 15:10:23 +00:00
<div>
<label for="aprsis_en">Enable APRS-IS connection</label>
<input name="aprsis_en" id="aprsis_en" type="checkbox" value="1" title="If we are configured as WIFI client, connet to the APRS-IS net">
</div>
2022-03-03 15:10:23 +00:00
<div>
<label for="aprsis_srv_h">Server Name</label>
<input type="text" name="aprsis_srv_h" id="aprsis_srv_h" placeholder="euro.aprs2.net" title="Server name or IP Address. I.e. euro.aprs2.net. If your igate is in the HAMNET, use aprs.hc.r1.ampr.org">
</div>
2022-03-03 15:10:23 +00:00
<div>
<label for="aprsis_srv_p">TCP Port</label>
<input type="number" name="aprsis_srv_p" id="aprsis_srv_p" placeholder="14580" min="1" max="65535" title="TCP Port, i.e. 14580">
</div>
2022-03-03 15:10:23 +00:00
<div>
<label for="aprsis_call">Callsign (optional)</label>
<input type="text" name="aprsis_call" id="aprsis_call" minlength="3" maxlength="9" title="Use this callsign for the APRS-IS connection. If not configured, your default callsign is used." placeholder="may be left blank">
</div>
2022-03-03 15:10:23 +00:00
<div>
<label for="aprsis_pw">Password (required)</label>
<input type="password" name="aprsis_pw" id="aprsis_pw" title="Your password for the APRS-IS connection.">
</div>
<div>
<label for="aprsis_fltr">Filter (optional)</label>
<input type="text" name="aprsis_fltr" id="aprsis_fltr" title="Request server-site filter (may be left empty). See http://www.aprs-is.net/javAPRSFilter.aspx ; Example: 't/mqs/YOURCALL/50' -> Gate only messages, query and status messages to RF, from a circle of 50km around your last known position. w, o and i may be of interest, but some people on 2m APRS or APRS-IS may send those packets much too frequently. Please trace the effect! Perhaps in combination with '-e/DB0FRI-10'. In our case, the digi positioning beacon from DB0FRI-10 (which is also an igate nearby, APRS-IS path qAI,DB0FRI-10) came from APRS-IS to us and we gated his beacon, encoded as third-party-trafffic, back to RF (which makes no sense: 1. His direct RF beacon is much better heard than ours -> all RF users heard it. 2. We needless consumed airtime). -> Using -e/IGATE1/IGATE2/.. , everything heard (and sent to APRS-IS) by our neighbor igates like DB0FRI-10 will not be re-gated by us. Please also check, if '-d/..' instead of (or additional to) '-e/..' is more suitiable in your environment; you may also consider -/b/.. ." placeholder="may be left blank">
</div>
<div>
<label for="tx_aprsis_bc">TX our beacon to APRS-IS</label>
<input name="tx_aprsis_bc" id="tx_aprsis_bc" type="checkbox" value="1" title="TX our beacon from this device or from KISS to APRS-IS. You may like to disable this i.e. if you are a portable hotspot together with your tracker, but others already gate your own packets to APRS-IS -> you'll see at APRS-IS who heard you.">
</div>
<div>
<label for="aprsis_2rf">Gate APRS-IS traffic to frequencies</label>
(Will be '3rd-party encoded'. Be careful - do not flood our slow main frequency! Use filters..)
<select id="aprsis_2rf" name="aprsis_2rf">
<option value="0">Don't gate APRS-IS to RF (default)</option>
<option value="1">Gate to main frequency</option>
<option value="2">Gate to secondary frequency</option>
<option value="3">Gate to both frequencies</option>
</select>
</div>
<div>
2022-03-03 15:10:23 +00:00
<label for"aprsis_status">Connection status</label>
<input type="text" name="aprsis_status" id="aprsis_status" readonly title="Connection status. Nothing to enter here">
</div>
2022-03-03 15:10:23 +00:00
</div>
2021-02-18 16:59:18 +00:00
<div class="grid-container full">
<div>
2021-03-08 18:51:01 +00:00
<input class="button-primary u-full-width" type="submit" value="Save" title="save settings, remember reboot tracker after save">
2021-02-18 16:59:18 +00:00
</div>
</div>
</form>
</article>
</section>
2021-03-08 21:47:00 +00:00
<section>
<article>
<form action="/save_device_cfg" method="post">
<div class="grid-container full">
<h2 class="u-full-width">Device Settings</h2>
</div>
<div class="grid-container quarters">
2021-03-09 09:45:15 +00:00
<div>
2021-09-14 17:58:35 +00:00
<label for="oled_enabled">OLED Display enabled</label>
<input name="oled_enabled" id="oled_enabled" type="checkbox" value="1" title="Enables or disables OLED">
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
</div>
2021-03-08 21:47:00 +00:00
<div>
<label for="bt_enabled">Bluetooth enabled</label>
<input name="bt_enabled" id="bt_enabled" type="checkbox" value="1" title="enable or disable bluetooth">
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
</div>
2021-03-08 21:47:00 +00:00
<div>
<label for="led_enable">LED signaling</label>
<input name="led_enable" id="led_enable" type="checkbox" value="1" title="enable or disable LED (not implemented)" DISABLED>
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
</div>
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-07 18:01:24 +00:00
</div>
<div class="grid-container quarters">
<div>
<label for="cpufreq">Adjust CPU frequency (MHz)</label>
<input name="cpufreq" id="cpufreq" type="number" min="0" max="250" title="Reduce CPU freq for power consumption (up to 20 % less). Use with extreme care! Tested with value 80. 0 means: no change to power-on-state." placeholder="0">
</div>
<div>
<label for="reboot_intrvl">Reboot every n hours</label>
<input name="reboot_intrvl" id="reboot_intrvl" type="number" min="0" max="1193" title="Do a periodical reboot every n hous. 0 = disable. Max 1193" placeholder="0">
</div>
2021-03-13 12:50:04 +00:00
<div>
2021-03-13 13:56:38 +00:00
<label for="shutdown_act">Auto power off</label>
2021-09-14 17:58:35 +00:00
<input name="shutdown_act" id="shutdown_act" type="checkbox" value="1" title="activate auto shutdown after usb plug off (not for T-BEAM 0.7)">
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
</div>
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-07 18:01:24 +00:00
<div>
<label for="shutdown_dt">Auto power off delay [s]</label>
<input name="shutdown_dt" id="shutdown_dt" type="number" min="3" max="3600" title="auto shutdown delay in seconds">
</div>
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
</div>
2021-03-09 09:45:15 +00:00
<div class="grid-container quarters">
<div>
<label for="sh_rxtime">Display show RX time [s]</label>
2021-06-24 13:34:56 +00:00
<input name="sh_rxtime" id="sh_rxtime" type="number" min="0" max="45" title="show RX packet for seconds">
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
</div>
2021-03-13 12:50:04 +00:00
<div>
<label for="sh_oledtime">Display timeout [s]</label>
<input name="sh_oledtime" id="sh_oledtime" type="number" min="0" max="60" title="Turn OFF OLED after X seconds. Set 0 to disable">
2021-03-13 12:50:04 +00:00
</div>
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
</div>
2021-03-08 21:47:00 +00:00
<div class="grid-container full">
<div>
<input class="button-primary u-full-width" type="submit" value="Save" title="save settings, remember reboot tracker after save">
</div>
</div>
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
</form>
2021-03-08 21:47:00 +00:00
</article>
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
</section>
<section>
<div class="grid-container full">
<h2 class="u-full-width">Received</h2>
</div>
<article>
<table class="u-full-width">
<thead>
<tr>
2021-04-26 12:45:29 +00:00
<th>Time (UTC)</th>
<th>Frame</th>
<th>RSSI</th>
<th>SNR</th>
</tr>
</thead>
<tbody id="receivedFrames">
</tbody>
</table>
</article>
</section>
2021-02-18 16:59:18 +00:00
<section>
<div class="grid-container full">
<h2 class="u-full-width">Actions</h2>
</div>
<article>
<div class="grid-container quarters">
2021-06-14 15:34:34 +00:00
<form action="/shutdown" method="post" onsubmit="return confirmAction('shutdown');">
<div>
<input class="button-primary" type="submit" value="Shutdown">
</div>
</form>
<form action="/reboot" method="post" onsubmit="return confirmAction('reboot');">
2021-02-18 16:59:18 +00:00
<div>
<input class="button-primary" type="submit" value="Reboot">
</div>
</form>
2021-06-14 15:34:34 +00:00
<form action="/restore" method="post" onsubmit="return confirmAction('do factory reset');">
2021-02-18 16:59:18 +00:00
<div>
<input class="button-primary" type="submit" value="Factory reset">
</div>
</form>
2021-09-14 18:47:32 +00:00
<form action="/beacon" method="post" onsubmit="return confirmAction('send beacon');">
<div>
<input class="button-primary" type="submit" value="Send Beacon">
</div>
</form>
2021-02-18 16:59:18 +00:00
</div>
</article>
</section>
2021-03-01 13:47:34 +00:00
<section>
<div class="grid-container full">
<h2 class="u-full-width">Update</h2>
</div>
<article>
<div class="grid-container full">
<form action="/update" method="post" enctype="multipart/form-data" id="upload_form" onsubmit="updateFileUpload(event)">
<div>
<label id="file-input" for="file">Choose file...</label>
<div><progress id="file-progress" max="100"></progress></div>
<input type="file" name="update" id="file" onchange="onFileChange(this)">
<input class="button-primary" type="submit" value="Update">
</div>
</form>
</div>
<div class="grid-container full">
2022-03-03 15:10:23 +00:00
Click <a href="/cfg">here</a> to view your configuration.
</div>
2021-03-01 13:47:34 +00:00
</article>
</section>
<section>
<div class="grid-container full">
<h2 class="u-full-width">Documentation</h2>
</div>
<article>
<div class="grid-container full">
<h5 class="u-full-width">Tooltip</h5>
</div>
<div>If you navigate your mouse over an input field / button, you see a detailed description what it does / which values are expected.</div>
<div class="grid-container full">
<h5 class="u-full-width">Info for SNR/RSSI path encoding</h5>
</div>
<div>If enabled, add SNR and RSSI in path on receiption, prefixed with 'Q'. Examples:<br/>
SNR 23 RSSI -73 -> Q2373<br/>
SNR -03 RSSI -104 -> QA3K4<br/>
SNR -13 RSSI -114 -> QB3L4<br/>
Still testing, if it behaves good to our network.<br/>
Use with care; resulting longer path consumes a bit more airtime.
</div>
<div class="grid-container full">
<h5 class="u-full-width">User key functions (hardware buttons):</h5>
</div>
<div>
<h6 class="u-full-width">short press</h6>
If OLED is enabled and OLED is OFF:<br/>
<ul>
<li>a short press will wake it up and show current data (as "Display Timeout" seconds</li>
</ul>
If OLED is disabled or OLED is ON:<br>
<ul>
<li>with GPS-FIX immediate sending of a frame with the position from the GPS</li>
<li>without GPS-FIX, immediate sending of the frame with the position saved in the configuration</li>
</ul>
<h6 class="u-full-width">long press</h6>
<ul>
<li>toggle on or off GPS power supply</li>
<li>if the "FIXED_BEACON_EN" option is enabled in the configuration, a beacon will be sent every set time interval</li>
<li>while booting: reset to factory default</li>
</ul>
</div>
</article>
<article>
<div class="grid-container full">
<h5 class="u-full-width">Hardware notices</h5>
</div>
<div>
<h6 class="u-full-width">TTGO LoRa32 V2.1 (aka T3 V1.6.1)</h6>
Hardware limitation: if bluetooth is enabled and BT-client is connected, WIFI (-> Web-Server) does not work anymore.<br/>
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-07 18:01:24 +00:00
You'll see the red LED while booting turned on for 60s as indicatior for waiting for BT-clients.
Hack: firmware compiled with -e ttgo-lora32-v2.1 and bluetooth configuration variable is set to enabled, now listens on boot up to one minute for your bluetooth device to connect.<br/>
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-07 18:01:24 +00:00
If a bluetooth device connects, it does not start the Web-Server. Else, it closes SerialBT port and starts the Web-Server on LORA32_21 devices.<br>
See also: new feature for switching WIFI off (i.e. if you use the device as portable tracker), if you don't need it: Webserver eats abt 80mA..<br>
</div>
</article>
</section>
2021-02-18 16:59:18 +00:00
</div>
<footer>
<center><b>Contributors in order of appearance:</b><br> OE1ACM, OE3CJB, SQ9MDD, SQ5RWU, DJ1AN, M0IGA, SQ5WPR, DO2JMG, SP6VWX, SQ2WB, IU2FRL, DO3BOX, DL9SAU, DL3EL</center>
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
<center><b>Latest stable version:</b> <a href=https://github.com/SQ9MDD/TTGO-T-Beam-LoRa-APRS>https://github.com/SQ9MDD/TTGO-T-Beam-LoRa-APRS</a></center>
2021-02-27 21:38:39 +00:00
<center><b>Licensed under:</b> CC BY-NC-SA</center>
2021-02-27 21:42:50 +00:00
<center><!--VERSION--></center>
2021-02-18 16:59:18 +00:00
</footer>
</body>
</html>