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 >
< label for = "wifi_ssid" > SSID< / label >
2021-03-08 18:51:01 +00:00
< input class = "u-full-width" type = "text" name = "wifi_ssid" placeholder = "Your Wifi SSID" id = "wifi_ssid" >
2021-02-18 16:59:18 +00:00
< / div >
< div >
< label for = "wifi_password" > Password< / label >
< input class = "u-full-width" type = "password" name = "wifi_password" id = "wifi_password" >
< / 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-12 02:46:51 +00:00
< div >
< label for = "aprs_self_tel" > Enable Self Telemetry< / label >
< input name = "aprs_self_tel" id = "aprs_self_tel" type = "checkbox" value = "1" title = " send self telemetry data" >
< / 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 >
< label for = "oled_enabled" > Display dimmer enabled< / label >
< input name = "oled_enabled" id = "oled_enabled" type = "checkbox" value = "1" title = "enable or disable oled dimmer" >
< / 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-03-13 12:50:04 +00:00
< input name = "shutdown_act" id = "shutdown_act" type = "checkbox" value = "1" title = "activate auto shutdown after usb plug off" >
< / div >
2021-03-09 09:45:15 +00:00
< / div >
< 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" >
2021-03-13 12:50:04 +00:00
< / div >
< div >
< / div >
< div >
< / div >
< div >
2021-03-13 13:56:38 +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 >
< / 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-07-18 07:55:48 +00:00
< center > < b > Contributors in order of appearance:< / b > < br > OE1ACM, OE3CJB, SQ9MDD, SQ5RWU, DJ1AN, M0IGA, SQ5WPR, DO2JMG, SP6VWX, SQ2WB< / 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 >