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" >
< 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 >
< div >
2021-09-15 18:25:19 +00:00
< label for = "wifi_ssid" > WiFi SSID< / label >
2021-09-16 17:54:14 +00:00
< 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 >
2021-09-16 17:54:14 +00:00
< input class = "u-full-width" type = "password" name = "wifi_password" id = "wifi_password" placeholder = "Your WiFi Password" title = "Your WiFi Password" >
2021-02-18 16:59:18 +00:00
< / div >
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 >
2021-09-16 17:54:14 +00:00
< input class = "u-full-width" type = "password" name = "ap_password" id = "ap_password" placeholder = "AUTO AP Password" title = "AUTO AP Password" >
2021-02-18 16:59:18 +00:00
< / div >
< / div >
2021-03-08 21:47:00 +00:00
< div class = "grid-container full" >
< input class = "button-primary" type = "submit" value = "Save" >
< / div >
2021-02-18 16:59:18 +00:00
< / form >
< / article >
< / section >
< section >
< div class = "grid-container full" >
< h2 class = "u-full-width" > APRS Settings< / h2 >
< / div >
< article >
< form action = "/save_aprs_cfg" method = "post" >
2021-08-03 16:11:18 +00:00
< div class = "grid-container full" >
< h5 class = "u-full-width" > Transmission Settings< / h5 >
< / div >
< div class = "grid-container halves" >
< div >
< label for = "lora_freq" > Frequency [MHz]< / label >
2021-09-03 14:59:58 +00:00
< input name = "lora_freq" id = "lora_freq" type = "number" min = "433.000" max = "928.000" step = "0.001" title = "LoRa center frequency between 433.001 and 928.000" >
2021-08-03 16:11:18 +00:00
< / div >
< div >
< label for = "lora_speed" > Speed [baud]< / label >
< select id = "lora_speed" name = "lora_speed" >
< option value = "300" > 300 baud< / option >
< option value = "1200" > 1200 baud< / option >
< / select >
< / 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 >
2021-03-08 18:51:01 +00:00
< input class = "u-full-width" type = "text" minlength = "3" 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 >
2021-03-08 18:51:01 +00:00
< 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 or WIDE1-1" >
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 >
2021-03-09 09:45:15 +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 >
< label for = "aprs_alt" > Show Altitude< / label >
2021-03-08 18:51:01 +00:00
< input name = "aprs_alt" id = "aprs_alt" type = "checkbox" value = "1" title = " show altitude as frame part" >
2021-03-08 22:59:33 +00:00
< / div >
< div >
< label for = "show_cmt" > Show Comment< / label >
< input name = "show_cmt" id = "show_cmt" type = "checkbox" value = "1" title = " show comment text" >
< / div >
2021-02-18 16:59:18 +00:00
< div >
< label for = "aprs_comment" > Comment< / label >
2021-03-08 18:51:01 +00:00
< input class = "u-full-width" type = "text" minlength = "0" maxlength = "64" name = "aprs_comment" id = "aprs_comment" title = " personal comment" >
2021-02-18 16:59:18 +00:00
< / div >
< 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 >
2021-09-18 21:51:51 +00:00
< / div >
< div class = "grid-container full" >
< h5 class = "u-full-width" > Telemetry Settings< / h5 >
< / div >
< div class = "grid-container quarters" >
2021-09-12 02:46:51 +00:00
< div >
2021-09-12 03:58:56 +00:00
< label for = "tnc_tel" > Enable Self Telemetry< / label >
2021-09-18 21:51:51 +00:00
< 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 = "10" title = "time between sending telemetry if Enable Self Telemetry option is selected " >
2021-09-12 02:46:51 +00:00
< / div >
2021-09-18 21:51:51 +00:00
< 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-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" >
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 >
2021-03-08 18:51:01 +00:00
< 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 " >
2021-02-18 16:59:18 +00:00
< / div >
< div >
< label for = "aprs_lat_p" > Latitude Preset< / label >
2021-03-09 07:04:17 +00:00
< input class = "u-full-width" type = "text" minlength = "0" name = "aprs_lat_p" id = "aprs_lat_p" title = "latitude for fixed bicon, APRS format for example: 5215.0N" >
2021-02-18 16:59:18 +00:00
< / div >
< div >
< label for = "aprs_lon_p" > Longitude Preset< / label >
2021-03-09 07:04:17 +00:00
< input class = "u-full-width" type = "text" minlength = "0" name = "aprs_lon_p" id = "aprs_lon_p" title = "longtitude for fixed bicon, APRS format for example 02050.59E" >
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 >
2021-08-10 17:04:18 +00:00
< input name = "sb_min_interv" id = "sb_min_interv" type = "number" min = "10" title = "Minimal time for Smart Beaconing" >
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" >
< / div >
< div >
< label for = "sb_min_speed" > Min speed [km/h]< / label >
< input name = "sb_min_speed" id = "sb_min_speed" type = "number" min = "0" title = "Minimal speed for Smart Beaconing" >
< / div >
< div >
< label for = "sb_max_speed" > Max speed [km/h]< / label >
< input name = "sb_max_speed" id = "sb_max_speed" type = "number" min = "1" title = "Maximal speed for Smart Beaconing" >
< / div >
2021-08-10 17:04:18 +00:00
< div >
< label for = "sb_angle" > Course change [degrees]< / label >
< input name = "sb_angle" id = "sb_angle" type = "number" min = "1" max = "360" title = "Angle of course change to speed up beacon transmission" >
< / 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" >
2021-03-08 17:55:52 +00:00
< / div >
< / 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 >
2021-09-15 17:03:44 +00:00
< input name = "oled_enabled" id = "oled_enabled" type = "checkbox" value = "1" title = "Enables or disables OLED" >
2021-03-09 09:45:15 +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" >
< / div >
< div >
< label for = "led_enable" > LED signaling< / label >
< input name = "led_enable" id = "led_enable" type = "checkbox" value = "1" title = "enable or disable LED" DISABLED >
2021-03-13 12:50:04 +00:00
< / div >
< 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)" >
2021-03-13 12:50:04 +00:00
< / div >
2021-03-09 09:45:15 +00:00
< / div >
< div class = "grid-container quarters" >
< div >
2021-09-15 17:03:44 +00:00
< 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" >
2021-03-13 12:50:04 +00:00
< / div >
< div >
2021-09-15 17:03:44 +00:00
< 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 >
< div >
< / div >
< div >
2021-09-15 17:03:44 +00:00
< label for = "shutdown_dt" > Auto power off delay [s]< / label >
2021-03-17 20:18:57 +00:00
< input name = "shutdown_dt" id = "shutdown_dt" type = "number" min = "3" max = "3600" title = "auto shutdown delay in seconds" >
2021-03-13 12:50:04 +00:00
< / div >
2021-03-09 09:45:15 +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 >
< / form >
< / article >
< / section >
2021-04-26 11:41:12 +00:00
< 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 >
2021-04-26 11:41:12 +00:00
< 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 >
< / article >
< / section >
2021-02-18 16:59:18 +00:00
< / div >
< footer >
2021-09-15 05:30:16 +00:00
< center > < b > Contributors in order of appearance:< / b > < br > OE1ACM, OE3CJB, SQ9MDD, SQ5RWU, DJ1AN, M0IGA, SQ5WPR, DO2JMG, SP6VWX, SQ2WB, IU2FRL, DO3BOX< / center >
2021-02-27 21:42:50 +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 >