2024-02-24 14:08:42 +01:00
<!DOCTYPE html>
< html lang = "en" data-bs-theme = "auto" >
< head >
< meta charset = "utf-8" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
2024-03-07 17:46:38 +01:00
< title > LoRa iGate & Digi software − Ricardo Guzman CA2RXU< / title >
2024-02-24 14:08:42 +01:00
< link rel = "stylesheet" href = "/bootstrap.css" / >
< link rel = "stylesheet" href = "/style.css" / >
< / head >
< body class = "bg-body-tertiary" >
< input type = "file" accept = "text/json,.json" style = "display: none" / >
< form autocomplete = "off" action = "/configuration.json" method = "POST" >
< nav
2024-03-17 17:45:59 +01:00
class="navbar bg-body-secondary shadow-sm border-bottom sticky-top navbar-expand-lg"
2024-02-24 14:08:42 +01:00
>
< div class = "container" >
< a class = "navbar-brand"
2024-03-17 17:45:59 +01:00
>CA2RXU's LoRa< /a
2024-02-24 14:08:42 +01:00
>
2024-03-17 17:45:59 +01:00
< button class = "navbar-toggler" type = "button" data-bs-toggle = "collapse" data-bs-target = "#navbarColor01" aria-controls = "navbarColor01" aria-expanded = "false" aria-label = "Toggle navigation" >
< span class = "navbar-toggler-icon" > < / span >
< / button >
< div class = "collapse navbar-collapse" id = "navbarColor01" >
< ul class = "navbar-nav me-auto" >
< li class = "nav-item" >
< a class = "nav-link" href = "/update" >
Update < small > OTA< / small >
< / a >
< / li >
< li class = "nav-item dropdown" >
< a class = "nav-link dropdown-toggle" data-bs-toggle = "dropdown" href = "#" role = "button" aria-haspopup = "true" aria-expanded = "false" > Backup< / a >
< div class = "dropdown-menu" >
< a class = "dropdown-item" href = "#" id = "backup" > Download< / a >
< a class = "dropdown-item" href = "#" id = "restore" > Restore< / a >
< / div >
< / li >
2024-03-19 17:02:42 +01:00
< li class = "nav-item dropdown" >
2024-03-17 17:45:59 +01:00
< a class = "nav-link dropdown-toggle" data-bs-toggle = "dropdown" href = "#" role = "button" aria-haspopup = "true" aria-expanded = "false" > Device< / a >
< div class = "dropdown-menu" >
< a class = "dropdown-item" href = "#" id = "reboot" > Reboot< / a >
< / div >
< / li >
2024-03-19 17:02:42 +01:00
<!-- <li class="nav - item">
2024-03-17 17:45:59 +01:00
< a class = "nav-link" href = "#" id = "received-packets" >
Received packets
< / a >
< / li > -->
< / ul >
< div class = "d-flex" >
< button class = "btn btn-success my-2 my-sm-0" type = "submit" > Save< / button >
< / div >
2024-02-24 14:08:42 +01:00
< / div >
< / div >
< / nav >
< div class = "container" >
< main >
< div class = "col-10 my-5 mx-auto" >
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-person-circle"
viewBox="0 0 16 16"
>
< path
d="M11 6a3 3 0 1 1-6 0 3 3 0 0 1 6 0"
/>
< path
fill-rule="evenodd"
d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8m8-7a7 7 0 0 0-5.468 11.37C3.242 11.226 4.805 10 8 10s4.757 1.225 5.468 2.37A7 7 0 0 0 8 1"
/>
< / svg >
2024-03-07 17:46:38 +01:00
Station
2024-02-24 14:08:42 +01:00
< / h5 >
< small
>Add your ham callsign and SSID. Optionally,
you can leave a comment describing your
station.< /small
>
< / div >
< div class = "col-lg-9 col-sm-12" >
2024-03-07 17:46:38 +01:00
< div class = "row" >
< div class = "col-12" >
< label for = "callsign" class = "form-label"
>Callsign and SSID< /label
>
< input
type="text"
name="callsign"
id="callsign"
class="form-control"
placeholder="N0CALL-10"
required=""
/>
< / div >
< div class = "col-12 mt-3" >
< label
for="beacon.comment"
class="form-label"
>Beacon Comment< /label
>
< input
type="text"
name="beacon.comment"
id="beacon.comment"
class="form-control"
placeholder="LoRa APRS"
2024-03-08 17:58:47 +01:00
required=""
2024-03-07 17:46:38 +01:00
/>
< / div >
< div class = "col-12 mt-3" >
< label
for="beacon.path"
class="form-label"
>Beacon path< /label
>
< input
type="text"
name="beacon.path"
id="beacon.path"
class="form-control"
2024-03-22 15:03:54 +01:00
placeholder="We prefer WIDE1-1"
2024-03-07 17:46:38 +01:00
/>
< / div >
< div class = "col-8 mt-3" >
< input
type="hidden"
name="beacon.overlay"
id="beacon.overlay"
class="form-control"
size="1"
required=""
/>
< input
type="hidden"
name="beacon.symbol"
id="beacon.symbol"
class="form-control"
size="1"
required=""
/>
< label
for="action.symbol"
class="form-label"
>Symbol< /label
>
< select
class="form-select form-select"
name="action.symbol"
id="action.symbol"
>
< option value = "L#" >
Green star with L
< / option >
< option value = "L_" >
Blue circle with L
< / option >
< option value = "L&" >
Black diamond with L
< / option >
< option value = "La" >
Red diamond with L
< / option >
< / select >
< / div >
< div
class="col-4 mt-3"
style="text-align: center"
2024-02-24 14:08:42 +01:00
>
2024-03-07 17:46:38 +01:00
< img
src=""
width="60"
height="60"
class="me-2"
/>
< / div >
< div class = "col-6 mt-3" >
< label
for="beacon.latitude"
class="form-label"
>Latitude< /label
>
< input
type="text"
name="beacon.latitude"
id="beacon.latitude"
placeholder="-33.440"
class="form-control"
/>
< / div >
< div class = "col-6 mt-3" >
< label
for="beacon.longitude"
class="form-label"
>Longitude< /label
>
< input
type="text"
name="beacon.longitude"
id="beacon.longitude"
placeholder="-70.613"
class="form-control"
/>
< / div >
2024-02-24 14:08:42 +01:00
< / div >
< / div >
< / div >
< hr / >
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-router-fill"
viewBox="0 0 16 16"
>
< path
d="M5.525 3.025a3.5 3.5 0 0 1 4.95 0 .5.5 0 1 0 .707-.707 4.5 4.5 0 0 0-6.364 0 .5.5 0 0 0 .707.707"
/>
< path
d="M6.94 4.44a1.5 1.5 0 0 1 2.12 0 .5.5 0 0 0 .708-.708 2.5 2.5 0 0 0-3.536 0 .5.5 0 0 0 .707.707Z"
/>
< path
d="M2.974 2.342a.5.5 0 1 0-.948.316L3.806 8H1.5A1.5 1.5 0 0 0 0 9.5v2A1.5 1.5 0 0 0 1.5 13H2a.5.5 0 0 0 .5.5h2A.5.5 0 0 0 5 13h6a.5.5 0 0 0 .5.5h2a.5.5 0 0 0 .5-.5h.5a1.5 1.5 0 0 0 1.5-1.5v-2A1.5 1.5 0 0 0 14.5 8h-2.306l1.78-5.342a.5.5 0 1 0-.948-.316L11.14 8H4.86zM2.5 11a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1m4.5-.5a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0m2.5.5a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1m1.5-.5a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0m2 0a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0"
/>
< path
d="M8.5 5.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0"
/>
< / svg >
Auto AP
< / h5 >
< small
>Add your password and power off timeout to
auto access point. Auto AP will start if
there is no WiFi connection. Timeout will
count from startup or last client
disconnected.< /small
>
< / div >
< div class = "col-lg-9 col-sm-12" >
< div class = "col-12" >
< label
for="wifi.autoAP.password"
class="form-label"
>Password< /label
>
< input
2024-03-07 17:46:38 +01:00
type="password"
2024-02-24 14:08:42 +01:00
name="wifi.autoAP.password"
id="wifi.autoAP.password"
class="form-control"
placeholder="1234567890"
required=""
/>
< / div >
< div class = "col-12 mt-3" >
< label
for="wifi.autoAP.powerOff"
class="form-label"
>Power off timeout
< small > (in minutes)< / small > < /label
>
< input
2024-03-08 17:58:47 +01:00
type="number"
2024-02-24 14:08:42 +01:00
name="wifi.autoAP.powerOff"
id="wifi.autoAP.powerOff"
class="form-control"
placeholder="15"
2024-03-08 17:58:47 +01:00
required=""
step="1"
min="0"
2024-02-24 14:08:42 +01:00
/>
< div class = "form-text" >
Set to < strong > 0< / strong > if you don't
want this option.
< / div >
< / div >
< / div >
< / div >
< hr / >
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-router-fill"
viewBox="0 0 16 16"
>
< path
d="M5.525 3.025a3.5 3.5 0 0 1 4.95 0 .5.5 0 1 0 .707-.707 4.5 4.5 0 0 0-6.364 0 .5.5 0 0 0 .707.707"
/>
< path
d="M6.94 4.44a1.5 1.5 0 0 1 2.12 0 .5.5 0 0 0 .708-.708 2.5 2.5 0 0 0-3.536 0 .5.5 0 0 0 .707.707Z"
/>
< path
d="M2.974 2.342a.5.5 0 1 0-.948.316L3.806 8H1.5A1.5 1.5 0 0 0 0 9.5v2A1.5 1.5 0 0 0 1.5 13H2a.5.5 0 0 0 .5.5h2A.5.5 0 0 0 5 13h6a.5.5 0 0 0 .5.5h2a.5.5 0 0 0 .5-.5h.5a1.5 1.5 0 0 0 1.5-1.5v-2A1.5 1.5 0 0 0 14.5 8h-2.306l1.78-5.342a.5.5 0 1 0-.948-.316L11.14 8H4.86zM2.5 11a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1m4.5-.5a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0m2.5.5a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1m1.5-.5a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0m2 0a.5.5 0 1 1 1 0 .5.5 0 0 1-1 0"
/>
< path
d="M8.5 5.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0"
/>
< / svg >
WiFi Access
< / h5 >
< small
>Add all Wi-Fi Networks intended to be used,
and their respective coordinates to
georeference the iGate location.< /small
>
< / div >
< div class = "col-lg-9 col-sm-12" >
< input
type="hidden"
name="wifi.APs"
id="wifi.APs"
/>
< div class = "list-networks" > < / div >
< div class = "row new" >
< div class = "d-grid gap-2" >
< button
type="button"
class="btn btn-outline-primary"
data-toggle="collapse"
data-target="#add-ap"
aria-expanded="false"
aria-controls="add-ap"
>
Add network
< / button >
< / div >
< / div >
< / div >
< / div >
< hr / >
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-database-fill"
viewBox="0 0 16 16"
>
< path
d="M3.904 1.777C4.978 1.289 6.427 1 8 1s3.022.289 4.096.777C13.125 2.245 14 2.993 14 4s-.875 1.755-1.904 2.223C11.022 6.711 9.573 7 8 7s-3.022-.289-4.096-.777C2.875 5.755 2 5.007 2 4s.875-1.755 1.904-2.223"
/>
< path
d="M2 6.161V7c0 1.007.875 1.755 1.904 2.223C4.978 9.71 6.427 10 8 10s3.022-.289 4.096-.777C13.125 8.755 14 8.007 14 7v-.839c-.457.432-1.004.751-1.49.972C11.278 7.693 9.682 8 8 8s-3.278-.307-4.51-.867c-.486-.22-1.033-.54-1.49-.972"
/>
< path
d="M2 9.161V10c0 1.007.875 1.755 1.904 2.223C4.978 12.711 6.427 13 8 13s3.022-.289 4.096-.777C13.125 11.755 14 11.007 14 10v-.839c-.457.432-1.004.751-1.49.972-1.232.56-2.828.867-4.51.867s-3.278-.307-4.51-.867c-.486-.22-1.033-.54-1.49-.972"
/>
< path
d="M2 12.161V13c0 1.007.875 1.755 1.904 2.223C4.978 15.711 6.427 16 8 16s3.022-.289 4.096-.777C13.125 14.755 14 14.007 14 13v-.839c-.457.432-1.004.751-1.49.972-1.232.56-2.828.867-4.51.867s-3.278-.307-4.51-.867c-.486-.22-1.033-.54-1.49-.972"
/>
< / svg >
APRS-IS
< / h5 >
< small
>Enter you APRS-IS server and
credentials.< /small
>
< / div >
< div class = "col-lg-9 col-sm-12" >
< div class = "row" >
2024-03-07 17:46:38 +01:00
< div class = "col-12" >
< div class = "form-check form-switch" >
< input
type="checkbox"
name="aprs_is.active"
id="aprs_is.active"
class="form-check-input"
/>
< label
for="aprs_is.active"
class="form-label"
>Enable APRS-IS
connection< /label
>
< / div >
< / div >
< div class = "col-6" >
< div class = "form-check form-switch" >
< input
type="checkbox"
name="aprs_is.toRF"
id="aprs_is.toRF"
class="form-check-input"
/>
< label
for="aprs_is.toRF"
class="form-label"
>Gate APRS-IS traffic to
RF< /label
>
< / div >
< / div >
< div class = "col-6" >
< div class = "form-check form-switch" >
< input
type="checkbox"
name="beacon.sendViaAPRSIS"
id="beacon.sendViaAPRSIS"
class="form-check-input"
/>
< label
for="beacon.sendViaAPRSIS"
class="form-label"
>Send our beacon to
APRS-IS< /label
>
< / div >
< / div >
2024-02-24 14:08:42 +01:00
< div class = "col-8" >
< label
for="aprs_is.server"
class="form-label"
>Server< /label
>
< input
type="text"
name="aprs_is.server"
id="aprs_is.server"
placeholder="soam.aprs2.net"
class="form-control"
/>
< / div >
< div class = "col-4" >
< label
for="aprs_is.port"
class="form-label"
>Port< /label
>
< input
type="text"
name="aprs_is.port"
id="aprs_is.port"
placeholder="14580"
class="form-control"
/>
< / div >
< / div >
< div class = "row mt-3" >
< div class = "col-8" >
< label
for="aprs_is.passcode"
class="form-label"
>Passcode< /label
>
< input
type="text"
name="aprs_is.passcode"
id="aprs_is.passcode"
class="form-control"
/>
< / div >
2024-03-07 17:46:38 +01:00
< div class = "col-4" >
< label
for="aprs_is.filter"
class="form-label"
>Filter< /label
2024-02-24 14:08:42 +01:00
>
2024-03-07 17:46:38 +01:00
< input
type="text"
class="form-control"
name="aprs_is.filter"
id="aprs_is.filter"
/>
2024-02-24 14:08:42 +01:00
< / div >
< / div >
2024-03-17 12:21:11 +01:00
< / div >
< / div >
< hr / >
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-database-fill"
viewBox="0 0 16 16"
>
< path
d="M3.904 1.777C4.978 1.289 6.427 1 8 1s3.022.289 4.096.777C13.125 2.245 14 2.993 14 4s-.875 1.755-1.904 2.223C11.022 6.711 9.573 7 8 7s-3.022-.289-4.096-.777C2.875 5.755 2 5.007 2 4s.875-1.755 1.904-2.223"
/>
< path
d="M2 6.161V7c0 1.007.875 1.755 1.904 2.223C4.978 9.71 6.427 10 8 10s3.022-.289 4.096-.777C13.125 8.755 14 8.007 14 7v-.839c-.457.432-1.004.751-1.49.972C11.278 7.693 9.682 8 8 8s-3.278-.307-4.51-.867c-.486-.22-1.033-.54-1.49-.972"
/>
< path
d="M2 9.161V10c0 1.007.875 1.755 1.904 2.223C4.978 12.711 6.427 13 8 13s3.022-.289 4.096-.777C13.125 11.755 14 11.007 14 10v-.839c-.457.432-1.004.751-1.49.972-1.232.56-2.828.867-4.51.867s-3.278-.307-4.51-.867c-.486-.22-1.033-.54-1.49-.972"
/>
< path
d="M2 12.161V13c0 1.007.875 1.755 1.904 2.223C4.978 15.711 6.427 16 8 16s3.022-.289 4.096-.777C13.125 14.755 14 14.007 14 13v-.839c-.457.432-1.004.751-1.49.972-1.232.56-2.828.867-4.51.867s-3.278-.307-4.51-.867c-.486-.22-1.033-.54-1.49-.972"
/>
< / svg >
TNC
< / h5 >
< small
>TNC and KISS configuration< /small
>
< / div >
< div class = "col-lg-9 col-sm-12" >
< div class = "row" >
< div class = "col-12" >
< div class = "form-check form-switch" >
< div class = "form-text" >
Server will be available at port < strong > 8001< / strong >
< / div >
< input
type="checkbox"
name="tnc.enableServer"
id="tnc.enableServer"
class="form-check-input"
/>
< label
for="tnc.enableServer"
class="form-label"
>Enable TNC server< /label
>
< / div >
< / div >
< div class = "col-12" >
< div class = "form-check form-switch" >
< input
type="checkbox"
name="tnc.enableSerial"
id="tnc.enableSerial"
class="form-check-input"
/>
< label
for="tnc.enableSerial"
class="form-label"
>Enable Serial KISS< /label
>
< / div >
< / div >
< div class = "col-12" >
< div class = "form-check form-switch" >
< input
type="checkbox"
name="tnc.acceptOwn"
id="tnc.acceptOwn"
class="form-check-input"
/>
< label
for="tnc.acceptOwn"
class="form-label"
>Accept own frames via KISS< /label
>
< / div >
< / div >
< / div >
2024-02-24 14:08:42 +01:00
< / div >
< / div >
< hr / >
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-tv-fill"
viewBox="0 0 16 16"
>
< path
d="M2.5 13.5A.5.5 0 0 1 3 13h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5M2 2h12s2 0 2 2v6s0 2-2 2H2s-2 0-2-2V4s0-2 2-2"
/>
< / svg >
Display
< / h5 >
< small > OLED screen configuration.< / small >
< / div >
< div class = "col-lg-9 col-sm-12" >
< div class = "row" >
< div class = "col-6" >
< div class = "form-check form-switch" >
< input
type="checkbox"
name="display.alwaysOn"
id="display.alwaysOn"
class="form-check-input"
/>
< label
for="display.alwaysOn"
class="form-label"
>Always On< /label
>
< / div >
2024-03-07 17:46:38 +01:00
< / div >
< div class = "col-6" >
2024-02-24 14:08:42 +01:00
< div
class="form-check form-switch mt-1"
>
< input
type="checkbox"
name="display.turn180"
id="display.turn180"
class="form-check-input"
/>
< label
for="display.turn180"
class="form-label"
>Turn 180º< /label
>
< / div >
< / div >
2024-03-07 17:46:38 +01:00
< / div >
< div class = "row mt-2" >
< div class = "col-6" >
2024-02-24 14:08:42 +01:00
< label
for="display.timeout"
class="form-label"
>Display Timeout< /label
>
2024-03-07 17:46:38 +01:00
< div class = "input-group" >
< input
type="text"
name="display.timeout"
id="display.timeout"
value="4"
class="form-control"
/>
< span class = "input-group-text"
>seconds< /span
>
< / div >
< / div >
< div class = "col-6" >
< label
for="other.rememberStationTime"
class="form-label"
>Remember Station Time< /label
>
< div class = "input-group" >
< input
2024-03-08 17:58:47 +01:00
type="number"
2024-03-07 17:46:38 +01:00
name="other.rememberStationTime"
id="other.rememberStationTime"
placeholder="30"
class="form-control"
2024-03-08 17:58:47 +01:00
required=""
step="1"
min="1"
2024-03-07 17:46:38 +01:00
/>
< span class = "input-group-text"
>minutes< /span
>
< / div >
2024-02-24 14:08:42 +01:00
< / div >
< / div >
< / div >
< / div >
< hr / >
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-broadcast-pin"
viewBox="0 0 16 16"
>
< path
d="M3.05 3.05a7 7 0 0 0 0 9.9.5.5 0 0 1-.707.707 8 8 0 0 1 0-11.314.5.5 0 0 1 .707.707m2.122 2.122a4 4 0 0 0 0 5.656.5.5 0 1 1-.708.708 5 5 0 0 1 0-7.072.5.5 0 0 1 .708.708m5.656-.708a.5.5 0 0 1 .708 0 5 5 0 0 1 0 7.072.5.5 0 1 1-.708-.708 4 4 0 0 0 0-5.656.5.5 0 0 1 0-.708m2.122-2.12a.5.5 0 0 1 .707 0 8 8 0 0 1 0 11.313.5.5 0 0 1-.707-.707 7 7 0 0 0 0-9.9.5.5 0 0 1 0-.707zM6 8a2 2 0 1 1 2.5 1.937V15.5a.5.5 0 0 1-1 0V9.937A2 2 0 0 1 6 8"
/>
< / svg >
Digipeating
< / h5 >
2024-03-07 17:46:38 +01:00
< small > Define the Digipeater mode< / small >
2024-02-24 14:08:42 +01:00
< / div >
< div class = "col-9 mt-2" >
< div class = "row" >
2024-03-07 17:46:38 +01:00
< div class = "col-12" >
2024-02-24 14:08:42 +01:00
< label
2024-03-07 17:46:38 +01:00
for="digi.mode"
2024-02-24 14:08:42 +01:00
class="form-label"
2024-03-07 17:46:38 +01:00
>Repeater Mode< /label
2024-02-24 14:08:42 +01:00
>
2024-03-07 17:46:38 +01:00
< select
class="form-select form-select"
name="digi.mode"
2024-03-08 09:33:22 +01:00
id="digi.mode"
2024-02-24 14:08:42 +01:00
>
2024-03-07 18:48:14 +01:00
< option value = "0" > off< / option >
2024-03-07 17:46:38 +01:00
< option value = "2" >
WIDE1 (fill-in) Digi
< / option >
< / select >
2024-02-24 14:08:42 +01:00
< / div >
< / div >
< / div >
< / div >
< hr / >
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-cloud-upload-fill"
viewBox="0 0 16 16"
>
< path
fill-rule="evenodd"
d="M8 0a5.53 5.53 0 0 0-3.594 1.342c-.766.66-1.321 1.52-1.464 2.383C1.266 4.095 0 5.555 0 7.318 0 9.366 1.708 11 3.781 11H7.5V5.707L5.354 7.854a.5.5 0 1 1-.708-.708l3-3a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L8.5 5.707V11h4.188C14.502 11 16 9.57 16 7.773c0-1.636-1.242-2.969-2.834-3.194C12.923 1.999 10.69 0 8 0m-.5 14.5V11h1v3.5a.5.5 0 0 1-1 0"
/>
< / svg >
OTA
< / h5 >
< small
>Set your username and password to allow
firmware updating over-the-air.< /small
>
< / div >
< div class = "col-lg-9 col-sm-12" >
< div class = "col-12" >
< label for = "ota.username" class = "form-label"
>Username< /label
>
< input
type="text"
name="ota.username"
id="ota.username"
class="form-control"
/>
< / div >
< div class = "col-12 mt-3" >
< label for = "ota.password" class = "form-label"
>Password< /label
>
< input
2024-03-07 17:46:38 +01:00
type="password"
2024-02-24 14:08:42 +01:00
name="ota.password"
id="ota.password"
class="form-control"
/>
< / div >
< / div >
< / div >
< hr / >
2024-03-07 17:46:38 +01:00
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-broadcast-pin"
viewBox="0 0 16 16"
>
< path
d="M3.05 3.05a7 7 0 0 0 0 9.9.5.5 0 0 1-.707.707 8 8 0 0 1 0-11.314.5.5 0 0 1 .707.707m2.122 2.122a4 4 0 0 0 0 5.656.5.5 0 1 1-.708.708 5 5 0 0 1 0-7.072.5.5 0 0 1 .708.708m5.656-.708a.5.5 0 0 1 .708 0 5 5 0 0 1 0 7.072.5.5 0 1 1-.708-.708 4 4 0 0 0 0-5.656.5.5 0 0 1 0-.708m2.122-2.12a.5.5 0 0 1 .707 0 8 8 0 0 1 0 11.313.5.5 0 0 1-.707-.707 7 7 0 0 0 0-9.9.5.5 0 0 1 0-.707zM6 8a2 2 0 1 1 2.5 1.937V15.5a.5.5 0 0 1-1 0V9.937A2 2 0 0 1 6 8"
/>
< / svg >
Telemetry
< / h5 >
< small > Define the telemetry< / small >
< / div >
< div class = "col-9 mt-2" >
< div class = "row" >
< div class = "col-12" >
< div class = "form-check form-switch" >
< input
type="checkbox"
name="bme.active"
id="bme.active"
class="form-check-input"
/>
< label
for="bme.active"
class="form-label"
>< b > Activate Wx Telemetry< / b >
< small
>Requires a BME/BMP280 or
BME680 sensor
installed< /small
>< /label
>
< / div >
< / div >
< / div >
< / div >
< / div >
< hr / >
2024-02-24 14:08:42 +01:00
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-heart-pulse-fill"
viewBox="0 0 16 16"
>
< path
d="M1.475 9C2.702 10.84 4.779 12.871 8 15c3.221-2.129 5.298-4.16 6.525-6H12a.5.5 0 0 1-.464-.314l-1.457-3.642-1.598 5.593a.5.5 0 0 1-.945.049L5.889 6.568l-1.473 2.21A.5.5 0 0 1 4 9z"
/>
< path
d="M.88 8C-2.427 1.68 4.41-2 7.823 1.143q.09.083.176.171a3 3 0 0 1 .176-.17C11.59-2 18.426 1.68 15.12 8h-2.783l-1.874-4.686a.5.5 0 0 0-.945.049L7.921 8.956 6.464 5.314a.5.5 0 0 0-.88-.091L3.732 8z"
/>
< / svg >
Beaconing
< / h5 >
< small > Set APRS beacon attributes.< / small >
< / div >
< div class = "col-lg-9 col-sm-12" >
< div class = "row" >
2024-03-19 17:02:42 +01:00
< div class = "col-6" >
2024-03-07 17:46:38 +01:00
< div class = "form-check form-switch" >
2024-02-24 14:08:42 +01:00
< input
2024-03-07 17:46:38 +01:00
type="checkbox"
name="beacon.sendViaRF"
id="beacon.sendViaRF"
class="form-check-input"
2024-02-24 14:08:42 +01:00
/>
2024-03-07 17:46:38 +01:00
< label
for="beacon.sendViaRF"
class="form-label"
>Send beacon via RF< /label
2024-02-24 14:08:42 +01:00
>
< / div >
< / div >
2024-03-19 17:02:42 +01:00
< div class = "col-6 d-grid gap-2" >
< button class = "btn btn-primary" id = "send-beacon" > Send beacon now< / button >
< / div >
2024-03-07 17:46:38 +01:00
< / div >
< div class = "row mt-3" >
< div class = "col-12" >
2024-02-24 14:08:42 +01:00
< label
2024-03-07 17:46:38 +01:00
for="beacon.interval"
2024-02-24 14:08:42 +01:00
class="form-label"
2024-03-07 17:46:38 +01:00
>Interval< /label
2024-02-24 14:08:42 +01:00
>
< div class = "input-group" >
< input
2024-03-08 17:58:47 +01:00
type="number"
2024-03-07 17:46:38 +01:00
name="beacon.interval"
id="beacon.interval"
placeholder="15"
2024-02-24 14:08:42 +01:00
class="form-control"
2024-03-08 17:58:47 +01:00
required=""
step="1"
min="1"
2024-02-24 14:08:42 +01:00
/>
< span class = "input-group-text"
>minutes< /span
>
< / div >
< / div >
< / div >
< div class = "row mt-3" >
< div class = "col-6" >
< div class = "form-check form-switch" >
< input
type="checkbox"
name="other.sendBatteryVoltage"
id="other.sendBatteryVoltage"
class="form-check-input"
/>
< label
for="other.sendBatteryVoltage"
class="form-label"
>Send Battery Telemetry< /label
>
< / div >
< div
class="form-check form-switch mt-1"
>
< input
type="checkbox"
name="other.externalVoltageMeasurement"
id="other.externalVoltageMeasurement"
class="form-check-input"
/>
< label
for="other.externalVoltageMeasurement"
class="form-label"
>Measure External Voltage< /label
>
< / div >
< / div >
< div class = "form-floating col-6 p-1" >
< input
type="text"
name="other.externalVoltagePin"
id="other.externalVoltagePin"
value="34"
class="form-control"
/>
< label
for="other.externalVoltagePin"
class="form-label"
>External Voltage Pin< /label
>
< / div >
< / div >
< / div >
< / div >
< hr / >
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-file-earmark-text-fill"
viewBox="0 0 16 16"
>
< path
d="M9.293 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.707A1 1 0 0 0 13.707 4L10 .293A1 1 0 0 0 9.293 0M9.5 3.5v-2l3 3h-2a1 1 0 0 1-1-1M4.5 9a.5.5 0 0 1 0-1h7a.5.5 0 0 1 0 1zM4 10.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5m.5 2.5a.5.5 0 0 1 0-1h4a.5.5 0 0 1 0 1z"
/>
< / svg >
Syslog
< / h5 >
< small
>Broadcast the system log over the
network.< /small
>
< / div >
< div class = "col-lg-9 col-sm-12" >
< div class = "form-check form-switch" >
< input
type="checkbox"
name="syslog.active"
id="syslog.active"
class="form-check-input"
/>
< label
for="syslog.active"
class="form-label"
2024-03-07 17:46:38 +01:00
>Enable syslog< /label
2024-02-24 14:08:42 +01:00
>
< / div >
< div class = "row mt-3" >
< div class = "col-6" >
< label
for="syslog.server"
class="form-label"
>Server< /label
>
< input
type="text"
name="syslog.server"
id="syslog.server"
placeholder="192.168.0.100"
class="form-control"
disabled
/>
< / div >
< div class = "col-6" >
< label
for="syslog.port"
class="form-label"
>Port< /label
>
< input
type="text"
name="syslog.port"
id="syslog.port"
placeholder="514"
class="form-control"
disabled
/>
< / div >
< / div >
< / div >
< / div >
< hr / >
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-broadcast"
viewBox="0 0 16 16"
>
< path
d="M3.05 3.05a7 7 0 0 0 0 9.9.5.5 0 0 1-.707.707 8 8 0 0 1 0-11.314.5.5 0 0 1 .707.707m2.122 2.122a4 4 0 0 0 0 5.656.5.5 0 1 1-.708.708 5 5 0 0 1 0-7.072.5.5 0 0 1 .708.708m5.656-.708a.5.5 0 0 1 .708 0 5 5 0 0 1 0 7.072.5.5 0 1 1-.708-.708 4 4 0 0 0 0-5.656.5.5 0 0 1 0-.708m2.122-2.12a.5.5 0 0 1 .707 0 8 8 0 0 1 0 11.313.5.5 0 0 1-.707-.707 7 7 0 0 0 0-9.9.5.5 0 0 1 0-.707zM10 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0"
/>
< / svg >
LoRa
< / h5 >
< small
>Config LoRa APRS Xmitting settings.< /small
>
< / div >
< div class = "col-lg-9 col-sm-12" >
< div class = "row" >
2024-03-07 17:46:38 +01:00
< div class = "col-6" >
< div class = "form-check form-switch" >
< input
type="checkbox"
name="lora.txActive"
id="lora.txActive"
class="form-check-input"
/>
< label
for="lora.txActive"
class="form-label"
>Enable LoRa TX< /label
>
< / div >
< / div >
< div class = "col-6" >
< div class = "form-check form-switch" >
< input
type="checkbox"
name="lora.rxActive"
id="lora.rxActive"
class="form-check-input"
/>
< label
for="lora.rxActive"
class="form-label"
>Enable LoRa RX< /label
>
< / div >
< / div >
2024-02-24 14:08:42 +01:00
< div class = "col-6" >
< label
2024-03-07 17:46:38 +01:00
for="lora.txFreq"
2024-02-24 14:08:42 +01:00
class="form-label"
>Tx Frequency< /label
>
< div class = "input-group" >
< input
type="text"
2024-03-07 17:46:38 +01:00
name="lora.txFreq"
id="lora.txFreq"
2024-02-24 14:08:42 +01:00
placeholder="433775000"
class="form-control"
2024-03-08 17:58:47 +01:00
required=""
2024-02-24 14:08:42 +01:00
/>
< input
type="hidden"
name="lora.iGateFreq"
id="lora.iGateFreq"
placeholder="433775000"
class="form-control"
2024-03-08 17:58:47 +01:00
required=""
2024-02-24 14:08:42 +01:00
/>
< span class = "input-group-text"
>Hz< /span
>
< / div >
< / div >
< div class = "col-6" >
< label
2024-03-07 17:46:38 +01:00
for="lora.rxFreq"
2024-02-24 14:08:42 +01:00
class="form-label"
>Rx Frequency< /label
>
< div class = "input-group" >
< input
type="text"
2024-03-07 17:46:38 +01:00
name="lora.rxFreq"
id="lora.rxFreq"
2024-02-24 14:08:42 +01:00
placeholder="433775000"
class="form-control"
/>
< span class = "input-group-text"
>Hz< /span
>
< / div >
< / div >
< / div >
2024-03-07 17:46:38 +01:00
< div class = "row mt-4" >
< div class = "col-12 mb-4" >
< label
for="action.speed"
class="form-label"
>Predefined speeds< /label
>
< select
class="form-select form-select"
name="action.speed"
id="action.speed"
>
< option value = "300" >
BW 125khz CR 4:5 SF 12 (Slow
Standard, 300bps)
< / option >
< option value = "244" >
BW 125khz CR 4:6 SF 12 (244bps)
< / option >
< option value = "209" >
BW 125khz CR 4:7 SF 12 (209bps)
< / option >
< option value = "183" >
BW 125khz CR 4:8 SF 12 (183bps)
< / option >
< option value = "610" >
BW 125khz CR 4:8 SF 10 (610bps)
< / option >
< option value = "1200" >
BW 125khz CR 4:7 SF 9 (Fast
Standard, 1200bps)
< / option >
< option value = "" >
User defined
< / option >
< / select >
< / div >
2024-02-24 14:08:42 +01:00
< div class = "col-5" >
< label
for="lora.signalBandwidth"
class="form-label"
>Bandwidth< /label
>
< div class = "input-group" >
< select
class="form-select form-select"
name="lora.signalBandwidth"
id="lora.signalBandwidth"
required=""
>
< option value = "125000" selected >
125 kHz
< / option >
< option value = "250000" >
250 kHz
< / option >
< option value = "500000" >
500 kHz
< / option >
< / select >
< / div >
< / div >
< div class = "col-7" >
< label
for="lora.spreadingFactor"
class="form-label"
>Spreading Factor< /label
>
< select
class="form-select form-select"
name="lora.spreadingFactor"
id="lora.spreadingFactor"
required=""
>
< option value = "7" >
SF7 - Lowest battery usage
< / option >
< option value = "8" > SF8< / option >
< option value = "9" > SF9< / option >
< option value = "10" > SF10< / option >
< option value = "11" > SF11< / option >
< option value = "12" selected >
SF12 - Highest sensitivity
< / option >
< / select >
< / div >
< / div >
< div class = "row mt-3" >
< div class = "col-6" >
< label
for="lora.codingRate4"
class="form-label"
>Coding Rate< /label
>
< select
class="form-select form-select"
name="lora.codingRate4"
id="lora.codingRate4"
required=""
>
< option value = "4" > 4< / option >
2024-03-07 17:46:38 +01:00
< option value = "5" > 5< / option >
< option value = "6" > 6< / option >
< option value = "7" > 7< / option >
< option value = "8" > 8< / option >
2024-02-24 14:08:42 +01:00
< / select >
< / div >
< div class = "col-6" >
< label
for="lora.power"
class="form-label"
>Power< /label
>
< div class = "input-group" >
< input
2024-03-07 17:46:38 +01:00
type="number"
2024-02-24 14:08:42 +01:00
name="lora.power"
id="lora.power"
placeholder="20"
2024-03-07 17:46:38 +01:00
min="0"
max="23"
step="1"
2024-02-24 14:08:42 +01:00
class="form-control"
required=""
/>
< span class = "input-group-text"
>dBm< /span
>
< / div >
< / div >
< / div >
< / div >
< / div >
2024-03-28 18:00:46 +01:00
< hr / >
< div class = "row my-5 d-flex align-items-top" >
< div class = "col-lg-3 col-sm-12" >
< h5 >
< svg
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
fill="currentColor"
class="bi bi-heart-pulse-fill"
viewBox="0 0 16 16"
>
< path
d="M1.475 9C2.702 10.84 4.779 12.871 8 15c3.221-2.129 5.298-4.16 6.525-6H12a.5.5 0 0 1-.464-.314l-1.457-3.642-1.598 5.593a.5.5 0 0 1-.945.049L5.889 6.568l-1.473 2.21A.5.5 0 0 1 4 9z"
/>
< path
d="M.88 8C-2.427 1.68 4.41-2 7.823 1.143q.09.083.176.171a3 3 0 0 1 .176-.17C11.59-2 18.426 1.68 15.12 8h-2.783l-1.874-4.686a.5.5 0 0 0-.945.049L7.921 8.956 6.464 5.314a.5.5 0 0 0-.88-.091L3.732 8z"
/>
< / svg >
Experimental
< / h5 >
< small > You can test new features. < u > Use at your own risk!< / u > < / small >
< / div >
< div class = "col-lg-9 col-sm-12" >
< div class = "row" >
< div class = "col-12" >
< div class = "form-check form-switch" >
< div class = "form-text" >
WiFi disabled. Sleep mode. Best for solar Digi with SX126X.
< / div >
< input
type="checkbox"
name="other.lowPowerMode"
id="other.lowPowerMode"
class="form-check-input"
/>
< label
for="other.lowPowerMode"
class="form-label"
>Low power mode< /label
>
< / div >
< / div >
2024-03-28 18:28:31 +01:00
< div class = "col-12 mt-3" >
< label
for="other.lowVoltageCutOff"
class="form-label"
>Low voltage cut off < small > (Deep sleep below specific voltage)< / small > < /label
>
< input
type="text"
name="other.lowVoltageCutOff"
id="other.lowVoltageCutOff"
placeholder="0"
min="0"
step="0.01"
class="form-control"
/>
< div class = "form-text" >
MCU will deep sleep when below provided battery voltage to save power. Set to < strong > 0< / strong > if you don't want this option. < u > Please calibrate your voltage reading first!< / u >
< / div >
< / div >
2024-03-28 18:00:46 +01:00
< / div >
< / div >
< / div >
2024-02-24 14:08:42 +01:00
< / div >
< / main >
< footer
class="my-5 py-5 text-body-secondary text-center text-small"
>
< p class = "mb-1 small" >
< svg
xmlns="http://www.w3.org/2000/svg"
width="16"
height="16"
fill="currentColor"
class="bi bi-cc-circle-fill"
viewBox="0 0 16 16"
>
< path
d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M5.408 5.89c.681 0 1.138.47 1.187 1.107h1.147v-.11c-.053-1.187-1.024-2-2.343-2-1.604 0-2.518 1.05-2.518 2.751v.747c0 1.7.906 2.73 2.518 2.73 1.314 0 2.285-.792 2.343-1.939v-.114H6.595c-.049.615-.497 1.05-1.187 1.05-.84 0-1.318-.62-1.318-1.727v-.742c0-1.112.488-1.754 1.318-1.754Zm5.404 0c.68 0 1.138.47 1.186 1.107h1.147v-.11c-.053-1.187-1.024-2-2.342-2-1.604 0-2.518 1.05-2.518 2.751v.747c0 1.7.905 2.73 2.518 2.73 1.314 0 2.285-.792 2.342-1.939v-.114h-1.147c-.048.615-.496 1.05-1.186 1.05-.84 0-1.319-.62-1.319-1.727v-.742c0-1.112.488-1.754 1.319-1.754Z"
/>
< / svg >
2023-24
< b
>< a href = "https://github.com/richonguzman"
>CA2RXU< /a
>< /b
>:
< a
href="https://github.com/richonguzman/LoRa_APRS_iGate"
>LoRa APRS iGate Firmware< /a
>.
< / p >
< p class = "mb-1 small" >
< svg
xmlns="http://www.w3.org/2000/svg"
width="16"
height="16"
fill="currentColor"
class="bi bi-cc-circle-fill"
viewBox="0 0 16 16"
>
< path
d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0M5.408 5.89c.681 0 1.138.47 1.187 1.107h1.147v-.11c-.053-1.187-1.024-2-2.343-2-1.604 0-2.518 1.05-2.518 2.751v.747c0 1.7.906 2.73 2.518 2.73 1.314 0 2.285-.792 2.343-1.939v-.114H6.595c-.049.615-.497 1.05-1.187 1.05-.84 0-1.318-.62-1.318-1.727v-.742c0-1.112.488-1.754 1.318-1.754Zm5.404 0c.68 0 1.138.47 1.186 1.107h1.147v-.11c-.053-1.187-1.024-2-2.342-2-1.604 0-2.518 1.05-2.518 2.751v.747c0 1.7.905 2.73 2.518 2.73 1.314 0 2.285-.792 2.342-1.939v-.114h-1.147c-.048.615-.496 1.05-1.186 1.05-.84 0-1.319-.62-1.319-1.727v-.742c0-1.112.488-1.754 1.319-1.754Z"
/>
< / svg >
2024
< b
>< a
href="https://sq2cpa.pl/r/lora-footer"
target="_blank"
>SQ2CPA< /a
>
&
< a
href="https://cd3eap.aguayoki.cl/"
target="_blank"
>CD3EAP< /a
>< /b
>: Settings Page.
< / p >
2024-03-07 18:48:14 +01:00
< p class = "mt-4 small" >
Support this project< br / >
< a
href="https://github.com/sponsors/richonguzman"
target="_blank"
>< img
src="data:image/png;base64,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
>< a href = "http://paypal.me/richonguzman" target = "_blank"
>< img
src="data:image/png;base64,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
/>< / a >
< / p >
2024-02-24 14:08:42 +01:00
< / footer >
< / div >
< / form >
< div
class="modal fade"
id="saveModal"
tabindex="-1"
aria-labelledby="saveModal"
aria-hidden="true"
>
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< h5 class = "modal-title" > Saving settings< / h5 >
< / div >
< div class = "modal-body" >
Please wait... Settings will be saved and LoRa will
reboot
< / div >
< div class = "modal-footer" > Waiting for connection...< / div >
< / div >
< / div >
< / div >
< div
class="modal fade"
id="savedModal"
tabindex="-1"
aria-labelledby="saveModal"
aria-hidden="true"
>
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< h5 class = "modal-title" > Settings< / h5 >
< button
type="button"
class="btn-close"
data-bs-dismiss="modal"
aria-label="Close"
>< / button >
< / div >
< div class = "modal-body" > Settings saved!< / div >
< div class = "modal-footer" >
< button
type="button"
class="btn btn-secondary"
data-bs-dismiss="modal"
>
Close
< / button >
< / div >
< / div >
< / div >
< / div >
2024-03-19 17:02:42 +01:00
< div class = "position-fixed bottom-0 end-0 p-3" style = "z-index: 11" >
< div id = "toast" class = "toast hide" role = "alert" aria-live = "assertive" aria-atomic = "true" >
< div class = "toast-header" >
< strong class = "me-auto" > System Message< / strong >
< button type = "button" class = "btn-close" data-bs-dismiss = "toast" aria-label = "Close" > < / button >
< / div >
< div class = "toast-body text-center" > < / div >
< / div >
< / div >
2024-02-24 14:08:42 +01:00
< / body >
< script src = "/bootstrap.js" > < / script >
< script src = "/script.js" > < / script >
< / html >