Wykres commitów

97 Commity (a0a00d267df8aa1dbec0399001ec6b34c8920375)

Autor SHA1 Wiadomość Data
Thomas Osterried a0a00d267d - Fix for third-party traffic encoding.
- webserver docu in web for "Accept own positions via KISS" was wrong

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-10-02 10:06:09 +02:00
Thomas Osterried bc808f533c There's a instability issue: Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.
Perhaps a String concatenation fuckup. Like the problem described here:
  https://forum.arduino.cc/t/guru-meditation-error-core-1-paniced-loadprohibited-exception-was-unhandled/876182/14

Perhaps, this patch solves the issue.
The modification in taskWebserer was quite new.
The other "+ int()" operation was in main .ino.
-> changed them both for this test.

..and fixed a typo

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-10-01 17:30:32 +02:00
Thomas Osterried 01a909b7e3 Webinterface: better description of the hardware buttons of the TTGO T-Beam
Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-09-29 09:13:00 +02:00
Thomas Osterried f4d5d4496c New feature: usb-serial TNC-mode
usb-serial: 4 options: KISS, logging, tnc-format-trace, logging AND tnc-format-trace,
                       almost no logging

Test: platform.ini: enabled syslog for all devides

Moved spiffs config reading to the place before starting the webserver

Serial.println() uses obviously CRLF. Some Serial.printf() functions only \n;
changed them to \r\n.

Moved do_send_status_message_to_aprsis to connect_to_aprsis; displayed
fixes tries counter.

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-09-25 09:02:08 +02:00
Thomas Osterried e574248503 Next fixes after the larger redesign
Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-09-20 20:42:09 +02:00
Thomas Osterried 4b497ca2d2 Many Fixes. Still need testing.
Better docu in webinterface.

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-09-19 16:57:29 +02:00
Thomas Osterried bb1a5b6196 Many changes again. Cave: needs testing!
- internet connction logging (reboot, wifi- or internet-loss, ..)
  as aprsis-status-message
- better logging logging
  - serial: try to don't corrupt serial kiss
  - syslog
  - both: wise choice of prefix for the log messages
- failback AP if you misconfigured your device.
  Edit data/wifi.cfg to your needs and upload it via pio ... -t uploadfs
  This file is on the device and survives the reset of preferences.
  Thanks to Thomaas dl3el

serial log and syslog are now configurable via web.
In the future, syslog compiled in by default for all devices in preferences.ini

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-09-17 23:35:44 +02:00
Thomas Osterried d89190864a Next try to fix locking issue.
And Thomas beautified webinterface

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-09-11 11:04:44 +02:00
Thomas Osterried 00e9c0db3e Changed reference aprsdirect.com to aprsdirect.de
Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-09-11 10:16:37 +02:00
Thomas Osterried 71d0a9021e Fix for sema locking
Was not reliable (and I had a found). Changed it to a volatile variable.

Made Webserver nicer.

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-09-11 09:29:20 +02:00
Thomas Osterried c02f35f153 Still testing
Mode AP / Mode STA

And fix for mheard list

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-08-31 15:08:32 +02:00
DL3EL 622dd5ac93 Text updates in index.html
Signed-off-by: DL3EL <dl3el@darc.de>
2022-08-21 20:43:05 +02:00
Thomas Osterried 41e5b27ecd Many fixes, improvements and new features
- new web option
  - Otion Send Course/Speed along with Altitude.
    Removed option "Show Altitude in compressed position" removed.
- Added hint for min/max values in tooltip
- Tips for reducing power

- platformio.ini:
  - enabled ENABLE_TNC_SELF_TELEMETRY.
    Reason: imho, no really need for telemetry. But code is not much.
    Tried to configure it in web-iface for debug purpose and it had no effect:
    because it was not compiled in.

- always_send_cseSpd_AND_altitude feature (see also webconfig)
- sendpacket() now gets information (flags) why / for what it is called
  This is for deciding if you send altitude with each transmission
  (then course/speed is always sent in compressed format, and /A=......
  is added to the message text). [Vice versa is not allowed due to spec]
  If disabled, one transmission has course/speed and the next one
  altitude (depending on altitude ratio). Pretty cewl ;)

- improvements on display output

- improvements for handling gps state change valid/invalid.
  Lesser (better) cpu-consuming storage of last position.
  It's now handled in one routine at start of the main loop.

- mheard list: json list was cuted.
  -> -  DynamicJsonDocument doc(MAX_RECEIVED_LIST_SIZE * 500);
     +  DynamicJsonDocument doc(MAX_RECEIVED_LIST_SIZE * 1000);
  But we still face the problem of empty mheard lists in the webinterface.
  -> STILL NEED FOR FIX

- webserver
  - wifi client / AP:
    Fix. If you loose connection to the AP, we now go to the
    algorithm again for reconnect, or start own AP. And if no client
    is associated in AP mode, we also try to re-determine.
    -> moved to new function restart_AP_or_STA()

    Reconnect also if we are STA and got no IP address by dhcp
    (there are some known compatibility issues with some dhcp-serrvers,
    where on dhcp refresh we lost the gateway):
    if (WiFi.getMode() == 1 && (WiFi.status() != WL_CONNECTED || WiFi.localIP() == IP_NULL || WiFi.subnetMask() == IP_SUBNET_NULL || WiFi.gatewayIP() == IP_GATEWAY_NULL))
  - wifi status now with one status variable, i.E.:
      wifi_connection_status = WIFI_RUNNING_AS_AP;
    Used in the main program for display routine.

===
dl3el's commit messages (newest on top)

- update time and sec of next beacon per second, even if rxshow is >0
- show gps time in OLED  show gps time in OLED
- smoothen speed in OLED. display current Position, Uptime & Satt Info on
  Website
- bug fix in WebServer: Enable Wifi menu did not show the currently selected
  value

- Features:
  - Change gps reception in main loop
  - do not accept gps data when hdop is > 10
  - when gps data is invalid, show gps.location.age
  - when beacon is send manually and reset the timer for fixed beacon
  - when oled is constantly on, refresh screen every second
  - "." blinks in the upper left corner to show system is working
  - show wifi mode on screen (CLI or AP, run or stopped)
  - show SSID & IP on screen when manual tx (button, web) and as boot message

  - Bugfixes:
  - manual send works now, when oled is constantly o

- fix output to Oled Display
- reenable GPS: show alt in Display delay first AUT TX if fixed beacon is on
- show Discharge mA in OLED for optimization
===

And finally, from the old changelog with changes since the last release:

Changelog of 2022-08-09:

Fix
- logical error for setting lora chip to sleep after tx;
  affected users with digipeating mode switched off. -> They did not receive
  any RF packets.

Improvements:
- hack for re-enabling webserver if it was switched off_
  moved from the short-pressed beacon button to the long-pressed GPS button.
  Thanks to Thomas Beiderwieden <dl3el> for the patch.

Feature
- If you press the GPS button, on your OLED display now your AP name and
  IP address are displayed.
  Thanks to Thomas Beiderwieden <dl3el> for the patch.

- Known issues
  The first Menu in the webinterface, "Enable WIFI", stores the chosen
  value. You can see it in the json config, and how boot-up behaves
  (-> correctly stored in the preferences).
  But: the chooser always displays Menu item 1 as active.

Signed-off-by: Thomas Osterried <dl9sau@darc.de>

Changelog of 2022-08-07:

 Major improvements and smaller bugfixes

- feature: option to disable wifi. Saves abt 80mA current
  3 options: 2 alaways on; 1 off if no bluetooth client is connected in between
  60s after boot (watch red oled button; goes off as soon as a
  bt client connects in the boot phase). 0 disable (re-enabl by pressing
  beacon button)
- pseudo csma/cd. ppersist / slottime as we know it from standard
  packet-radio / -APRS
  In loaSend. TODO: better concept with a tx-queue. But this is rather complex,
  because the queue must not grow too large, else we re-send old packts..
- feature to encode altitude in compressed position instead of /A=...
  compressed position can encode course/speed, altitude (and others). Option to
  send course/speed to 0%, 100% or something in between.
  altitude check button is obsolete. Switch off by setting alt ratio to 0.
- cross-digipeating: just for sure, clear rx queue after going back to main
  freq.
- if we are not a digipeater and we have no serial-bt-client, we may let the
  loraChip sleep (axp.setPowerOutPut(AXP192_LDO2, AXP202_OFF)) -> saves current
  (a bit)
- adjust_cpu_freq_to: change CPU frequency. May reduce cpu power consumption
  up to 20 %. Suggesting (and tested with) 80 MHz. USE WITH CARE! I.e.
  40 MHz or 20 MHz did not work with my device (boot phase never ended)
- options to start tncServer and gpsServer (if you don't need them, you
  may not like to expose these tcp ports to your LAN or HAMNET)
- changed preferences.getString(PREFxxxxx) to
  preferences.getString(PREFxxxxx, ""), because if variable is not set,
  the preferences library returns "the variable name itself" - wtf!.
  In the case of PREF_NTP_SERVER, we saw log messages that ntp server
  with fqdn "ntp_server" could not be resolved; it had no impact, because
  it did a failback to the compiled-in default.  Changed call for
  PREF_WIFI_PASSWORD, PREF_AP_PASSWORD, etc.. too.
- wifi-AP: is set to esp_wifi_set_max_tx_power(8) (for lesser power
  consumption of the devie). 8 dBm are too less fore some cases.
  -> New web config for setting max_tx_power in AP- and STA- modes.
- Fix: In mode wifi-client, it did not reconnect if association was lost.
- small improvement for comment-text ratelimiting

BG_RF95.cpp: BG_RF95::SignalDetected feature (needed for pseudo csma/cd)

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-08-20 08:34:28 +02:00
Thomas Osterried d772388d5b Fix/Improvements/Features/Issues for commit from 2022-08-07
Fix
- logical error for setting lora chip to sleep after tx;
  affected users with digipeating mode switched off. -> They did not receive
  any RF packets.

Improvements:
- hack for re-enabling webserver if it was switched off_
  moved from the short-pressed beacon button to the long-pressed GPS button.
  Thanks to Thomas Beiderwieden <dl3el> for the patch.

Feature
- If you press the GPS button, on your OLED display now your AP name and
  IP address are displayed.
  Thanks to Thomas Beiderwieden <dl3el> for the patch.

- Known issues_
  The first Menu in the webinterface, "Enable WIFI", stores the chosen
  value. You can see it in the json config, and how boot-up behaves
  (-> correctly stored in the preferences).
  But: the chooser always displays Menu item 1 as active.

Signed-off-by: Thomas Osterried <dl9sau@darc.de>

Changelog of 2022-08-07:

 Major improvements and smaller bugfixes

- feature: option to disable wifi. Saves abt 80mA current
  3 options: 2 alaways on; 1 off if no bluetooth client is connected in between
  60s after boot (watch red oled button; goes off as soon as a
  bt client connects in the boot phase). 0 disable (re-enabl by pressing
  beacon button)
- pseudo csma/cd. ppersist / slottime as we know it from standard
  packet-radio / -APRS
  In loaSend. TODO: better concept with a tx-queue. But this is rather complex,
  because the queue must not grow too large, else we re-send old packts..
- feature to encode altitude in compressed position instead of /A=...
  compressed position can encode course/speed, altitude (and others). Option to
  send course/speed to 0%, 100% or something in between.
  altitude check button is obsolete. Switch off by setting alt ratio to 0.
- cross-digipeating: just for sure, clear rx queue after going back to main
  freq.
- if we are not a digipeater and we have no serial-bt-client, we may let the
  loraChip sleep (axp.setPowerOutPut(AXP192_LDO2, AXP202_OFF)) -> saves current
  (a bit)
- adjust_cpu_freq_to: change CPU frequency. May reduce cpu power consumption
  up to 20 %. Suggesting (and tested with) 80 MHz. USE WITH CARE! I.e.
  40 MHz or 20 MHz did not work with my device (boot phase never ended)
- options to start tncServer and gpsServer (if you don't need them, you
  may not like to expose these tcp ports to your LAN or HAMNET)
- changed preferences.getString(PREFxxxxx) to
  preferences.getString(PREFxxxxx, ""), because if variable is not set,
  the preferences library returns "the variable name itself" - wtf!.
  In the case of PREF_NTP_SERVER, we saw log messages that ntp server
  with fqdn "ntp_server" could not be resolved; it had no impact, because
  it did a failback to the compiled-in default.  Changed call for
  PREF_WIFI_PASSWORD, PREF_AP_PASSWORD, etc.. too.
- wifi-AP: is set to esp_wifi_set_max_tx_power(8) (for lesser power
  consumption of the devie). 8 dBm are too less fore some cases.
  -> New web config for setting max_tx_power in AP- and STA- modes.
- Fix: In mode wifi-client, it did not reconnect if association was lost.
- small improvement for comment-text ratelimiting

BG_RF95.cpp: BG_RF95::SignalDetected feature (needed for pseudo csma/cd)
2022-08-09 02:13:47 +02:00
Thomas Osterried e489b57205 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 20:01:24 +02:00
DL3EL 1e82c6a2aa it should read reboot, not reset
Signed-off-by: DL3EL <dl3el@darc.de>
2022-06-14 15:53:22 +02:00
DL3EL 73acf60884 reflect info on the latest changes in tooltip of website
Signed-off-by: DL3EL <dl3el@darc.de>
2022-06-14 11:39:11 +02:00
Thomas Osterried fbb0ecf374 New features and bugfixes
Bugffix
  - apris-is filter argument was ignored

New features
  - We make use of hardware watchdog for esp32.
    -> Measurement against bugs or mis-behaviour
  - automatic reboot affter n hours (i.e. if the wifi client does not reconnect)
  - In Wen handle_Cfg we now show System Uptime (in resolution of a minute)

Documentation:
  - improved description for apris-filter

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-03-24 23:56:22 +01:00
Thomas Osterried 8e50d09562 New feature: fine-tune aprs-is -> rf
You can now specify, if aprs-is third-party traffic goes
to main freq, secondary freq, both frequencies, or blocked-

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-03-23 22:54:41 +01:00
Thomas Osterried d87e41f659 Small docu fix
Signed-off-by: Thomas Osterried <dl9sau@github>
2022-03-23 13:24:15 +01:00
Thomas Osterried 8e37d15119 Some fixes. Upgrade recoommended
Bugfixes
  - Path short elements (len < 3) like Q or QQ are configured, they were omittied due to a bug
  - fixed location: did function only if gps was disabled. -> bug fixed.
      -    if (millis() >= next_fixed_beacon && !gps_state) {
      +    if (millis() >= next_fixed_beacon && (!gps_state || !gps.location.isValid())) {
  - maidenhead grid locator setting: JO30AA did work, JO33AA11 did not, JO33AA11BB did. -> fixed

Web:
  - added recommendation for path 'Q' when fyling in higher altitude, like i.e. a balloon
  - added example for an APRS-IS filter
  - deleted word "Preset" at Lat/Lon

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-03-23 10:44:30 +01:00
Thomas Osterried 894a941956 Fix for WiFi / BT on TTGO LoRa32 V2.1 (aka T3 V1.6.1)
TTGO LoRa32 V2.1 (aka T3 V1.6.1) has a bug if you use wifi and bt at the
same time. Then web-server will not function anymore.

My hack waits up to 60s during boot if a BT client connects. Else
the web server is started-

Another fix is: compiles again without KISS feature enabled (but not
tested).

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-03-21 00:50:27 +01:00
Thomas Osterried 4f26f3fb55 fixed tyop
fixed typo and added recommended values

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-03-14 06:36:49 +01:00
Thomas Osterried bcdf86d296 bugfix on beacon transmission
New MY_APRS_DEST_IDENTIFYER variable did not appear in outstring -> defect packet.
=> beacons prepared by prepareAPRSFrame() were affcted:

  -  outString + MY_APRS_DEST_IDENTIFYER;
  +  outString += MY_APRS_DEST_IDENTIFYER;

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-03-14 06:22:17 +01:00
Thomas Osterried 5164857e4b Added config option ntp server
You can now configure an ntp server.

If left empty: Auto-choice between pool.ntp.org and ntp.hc.r1.ampr.org according your IP address.

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-03-10 00:54:12 +01:00
Thomas Osterried b741836646 Small fixes and features (around beacons to aprs-is and to RF)
Fix:
if lora tx is disabled, and you are connected to aprs-is, you like to see your beacons there (useful if you are a rx-only igate)

New feature:
- option "TX our beacon to APRS-IS":
  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 togehther your mobile, but like others
than you yourself gate your own packets to APRS-IS -> you'll see at APRS-IS who heard you.
- option "TX our beacon from this device or from-kiss to frequencies":
  Don't send our beacon on RF (but only to kiss and to APRS-IS)

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-03-09 23:38:49 +01:00
Thomas Osterried bc7a9d8eb3 Minor changes
- bugfix
  - config rx on secondary freq did not work anymore (lost this functionality
    one or two versions before and did not recognize)
  - cross-digi: Now only on receiption on main freq. Had overseen this demand
    in designing phase
- web-interface: new documentation section. currently used for
  - how hardware buttons work
  - about SNR/RSSI path encoding concept

And I revert the hack for github compiled version download: I tried to rename
firmware.bin to fimware.raw, but filename.bin is not the cause of githubs
web 404 error message.

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-03-07 21:06:05 +01:00
Thomas Osterried b02e41714b A hand full features and improvements
Major upgrade

- SNR/RSSI encoding (Q...) feature:
  - changed default preference for SNR/RSSI encoding (Q...) to
    lora_add_snr_rssi_to_path = (FLAG_ADD_SNR_RSSI_FOR_KISS |
                 _FLAG_ADD_SNR_RSSI_FOR_APRSIS__ONLY_IF_HEARD_DIRECT)
    ..HEARD_DIRECT is a new feature
  - user may request SNR/RSSI trace by adding to path 'Q' (digis who hear
    him direct add SNR/RSSI), or 'QQ' (every digi adds - useful for
         local RF network trace)
  - more config options in Web-Interface
- Relay-Path: check for invalid input. More tips how to configure.
  Auto-suggest "WIDE1-1" if unexperienced user enters "WIDE1"
- Fixed location setting of Latitude / Longitude:
  Previously, a user had to know the correct notation of APRS spec.
  Now, we are pretty smart and can handle different notations,
  inclusive MAIDENHEAD GRID ;)
- blacklist filter for src-calls and calls in digi path
  - if you have a digipeater or user which behaves bad
  - against mis-use of our infrastructure
- config option for switching of lora RX
- MY_APRS_DEST_IDENTIFYER = ... as one global string instead of multible
  occourences in the code
- improved packet validation
- web-interface input validation (trim() to strip leading/trailing spaces),
  i.e. att callsign, relay path, aprs-is-server-name, -call and -password, ..
- third-partytraffic: changed dstcall from "APRS" to MY_APRS_DEST_IDENTIFYER

..and a test to circumvent github firmware download bug that came in end 2021

Signed-off-by: Thomas Osterried <dl9sau@github>
2022-03-03 16:10:23 +01:00
Thomas Osterried 8c86db1305 Changes to the web interface
Web index.html:
- Input field "APRS-IS status" and "Current RX Frequency" are now "readonly".
- These fields are not intended for input. They show status. User now sees that he cannot enter anything.
- Upon request, frequency resolution is now 100 Hz. This was the only point for implementing this feature.
  But have in mind that this equpment is not such frequency stable at all.

Web index.html and taskWebserver.cpp:
- New function jsonLineFromDouble now displays lora_freq_rx_curr with decimal point (instead of my previous hack int(*= 1000))

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-01-25 10:13:33 +01:00
Thomas Osterried a2db80ab04 Many new features: rx on both frequencies. APRS-IS igate.
New features:
- rx on main qrg, secondary qrg or both. (If we are not configured as WIDE1 or WIDE2 digi). QSY time depends on amount of other users heard, in  10min qindow.
- tx_qrg for beacon (if we ae configured as WIDE1 or WIDE2 digi)
- tx_power configurable on second frequency
- long waited aprs-is igtate feature. We provide a bid-direcional gateway.
- snr-in-path-encoding compatible for aprs-is (optional)

- added new parameter lora_SPEED to function loraSend()

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2022-01-19 10:37:07 +01:00
Thomas Osterried 84644e0579 New features: configuarable txpower, and disable lora tx, and Link for downloading configuration
New features:
  - txpower configurable (previously only compile time option in platform.ini)
    If not configured in platform.ini (previously necessary), it now defaults to 23.0
  - New Enable LoRa TX variable. If disabled, it's assured that TX will never happen
    (i.e. in order to protect rx amplifier)
    This option is also definable in platformio.ini, if you comment out:
      ;-D 'TXDISABLE'
    If set, it also enforces txpower 0.

    =>

    #ifdef TXDISABLE               // define TXDISABLE if you like to ensure that we never
TX (i.e. if we are behind an rx-amplifier)
    boolean lora_tx_enabled = false;
    uint8_t txPower = 0;
    #else
    boolean lora_tx_enabled = true;
    #ifdef TXdbmW
     uint8_t txPower = TXdbmW;
    #else
     uint8_t txPower = 23;
    #endif
    endif

    ;))

  - Web-Interface: Link to /cfg (-> make it easier for users to show the json and
    store the current configuration). This is better than making screenshots of
    the website ;)
    If could be done better (download link, ..). And possibility to upload
    the configuration from backup. Who likes to implement this?

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2021-12-19 14:31:36 +01:00
Thomas Osterried c728ff73e4 Q-encoding: Corrected example
Signed-off-by: Thomas Osterried <dl9sau@github>
2021-12-01 15:16:35 +01:00
Thomas Osterried 073cef610e Small redesign of RSSI/SNR Q-path-encoding
Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2021-12-01 14:32:13 +01:00
Thomas Osterried 570b24685c Web-interface works now. Found the bugs, fixed them, and testet inensively.
In TTGO_T-Beam_LoRa_APRS.ino I removed unused variable
lora_old_speed
which was still there after removing my debug code which showed previous / current value ;)

Signed-off-by: Thomas Osterried <dl9sau@darc.de>
2021-11-25 08:44:34 +01:00
Thomas Osterried 30f9b4a94e 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 13:34:04 +01:00
MiGri d6060a4b90 Merged from SQ9MDD 2021-10-16 21:36:14 +02:00
Rysiek Labus 4b4c17e0c2 Update index.html 2021-10-16 07:48:17 +02:00
MiGri 9ca6e66880
Update index.html 2021-10-02 19:39:34 +02:00
MiGri ffba4f2ac6
Added more modes
Added more modes, compatible to the old '300bps' mode but with different correction rates. Renamed all modes
2021-10-02 19:36:04 +02:00
MiGri 577055c56d Added more modes, compatible to the old '300bps' mode but with different correction rates. Renamed all modes 2021-09-29 00:57:27 +02:00
MiGri a604adb115 Merge remote-tracking branch 'upstream/master' 2021-09-20 18:51:46 +02:00
MiGri d9fa455ecb Merge remote-tracking branch 'upstream/master' 2021-09-19 20:58:44 +02:00
Matt 58cef88e9d Stub out changes without testing. 2021-09-19 09:57:43 -05:00
Matt eb25ea2cbf Add www option for MIC telemetry sequence. 2021-09-18 16:51:51 -05:00
MiGri 8588ee618c resolve merge conflict 2021-09-16 21:38:38 +02:00
mattbk eb43b0baf1
Merge branch 'master' into telemetry-www 2021-09-16 14:29:55 -05:00
Sottosistema W10 16aae406b2 Added configurable AP password as in #51. Improved battery reading on T-Beam 0.7 as in #65. Fixed AP detection in serial printing. Updated readme.md 2021-09-16 19:54:14 +02:00
Sottosistema W10 4c233c0b9a Working on AUTO AP Password as in #51 2021-09-15 20:25:19 +02:00
Sottosistema W10 8e89aad46c Working on AUTO AP Password as in #51 2021-09-15 20:24:41 +02:00
Sottosistema W10 fdd634eadc FIX OLED Timeout at startup. Begin OLED Timeout settings in html 2021-09-15 19:03:44 +02:00