Compare commits

...

14 Commits

Author SHA1 Message Date
richonguzman afb6a60bfe readme update 2024-11-06 12:49:37 -03:00
richonguzman 06ef37e4dc eliminando espacios en blanco 2024-11-06 12:47:42 -03:00
richonguzman 9159362796 update 2024-11-06 10:07:44 -03:00
richonguzman 47c136fdd5 correcciones 2024-11-05 23:51:10 -03:00
richonguzman 970d743b80 refactor inis 2024-11-05 23:21:05 -03:00
richonguzman 7c5e58f3b2 ready for testing 2024-11-05 19:14:22 -03:00
richonguzman 210c7acb70 testing3 2024-11-05 18:20:44 -03:00
richonguzman 8d102a73c1 testing2 2024-11-05 18:15:39 -03:00
richonguzman 5030d2d645 casi casi1 2024-11-05 16:59:21 -03:00
richonguzman a95f55273f up1 2024-11-05 16:10:41 -03:00
richonguzman 4014db03c8 2 listas 2024-11-05 15:14:56 -03:00
richonguzman d96d5f1963 testing 2024-11-05 14:41:41 -03:00
richonguzman d1cb732ae1 33 folders 2024-11-05 14:12:56 -03:00
richonguzman 1504bf5a7f code cleaning 2024-10-29 18:57:23 -03:00
99 changed files with 1404 additions and 888 deletions
+11 -10
View File
@@ -1,4 +1,4 @@
# CA2RXU LoRa APRS iGate/Digirepeater # CA2RXU LoRa APRS iGate/Digipeater
This firmware is for using ESP32 based boards with LoRa Modules and GPS to live in the APRS world. This firmware is for using ESP32 based boards with LoRa Modules and GPS to live in the APRS world.
@@ -52,18 +52,19 @@ ____________________________________________________
## Timeline (Versions): ## Timeline (Versions):
- 2024.11.06 (Silent Update) Working now with Board "VARIANTS".
- 2024.10.29 Added LILYGO Lora32 T3S3 support. - 2024.10.29 Added LILYGO Lora32 T3S3 support.
- 2024.10.25 Added QRP Labs LightGateway 1.0 support. - 2024.10.25 Added QRP Labs LightGateway 1.0 support.
- 2024.10.21 Boards with GPS can now send Real-GPS Beacon (also posible: GPS ambiguity of ~ 1 km). - 2024.10.21 Boards with GPS can now send Real-GPS Beacon (also posible: GPS ambiguity of ~ 1 km).
- 2024.10.14 Received Packets in WebUI show real Local Time (NTP with GMT offset). - 2024.10.14 Received Packets in WebUI show real Local Time (NTP with GMT offset).
- 2024.10.08 New EcoMode for Remote Digirepeaters without WiFi/WiFiAP, Screen, Leds (Example: LILYGO LoRa32 uses only 24mA, with WifiAP and all was 150mA). APRS Message/Queries can start/stop this mode too. - 2024.10.08 New EcoMode for Remote Digipeaters without WiFi/WiFiAP, Screen, Leds (Example: LILYGO LoRa32 uses only 24mA, with WifiAP and all was 150mA). APRS Message/Queries can start/stop this mode too.
- 2024.10.06 Cross Frequency Digirepeater Rules added. - 2024.10.06 Cross Frequency Digipeater Rules added.
- 2024.09.23 Libraries Update for SDK3 - 2024.09.23 Libraries Update for SDK3
- 2024.09.23 Added Enconded Telemetry for Battery (+ External Voltage) in Station GPS Beacon Packet. - 2024.09.23 Added Enconded Telemetry for Battery (+ External Voltage) in Station GPS Beacon Packet.
- 2024.08.23 Wemos S2 Mini DIY LoRa added. - 2024.08.23 Wemos S2 Mini DIY LoRa added.
- 2024.08.19 HELTEC Wireless Paper working (still missing Epaper code). - 2024.08.19 HELTEC Wireless Paper working (still missing Epaper code).
- 2024.08.13 Web Authentication for WebUI. Thanks Mitja S57PNX. - 2024.08.13 Web Authentication for WebUI. Thanks Mitja S57PNX.
- 2024.08.05 WIDE2-n added to WIDE1-n in Digirepeater Modes. - 2024.08.05 WIDE2-n added to WIDE1-n in Digipeater Modes.
- 2024.06.27 External Voltage Divider Resistor configuration on WebUI. Thanks Tilen S54B. - 2024.06.27 External Voltage Divider Resistor configuration on WebUI. Thanks Tilen S54B.
- 2024.06.26 Personal Note information on WebUI for the Station. Thanks Tilen S54B. - 2024.06.26 Personal Note information on WebUI for the Station. Thanks Tilen S54B.
- 2024.06.24 Callsign Validation fix. Thanks Helge SA7SKY. - 2024.06.24 Callsign Validation fix. Thanks Helge SA7SKY.
@@ -74,7 +75,7 @@ ____________________________________________________
- 2024.06.08 Callsign Validation for all Station that iGate/Digi hears. - 2024.06.08 Callsign Validation for all Station that iGate/Digi hears.
- 2024.05.27 Battery Monitor for internal and External Voltages (to make board sleep and avoid low discharge of batterys) T-Beam boards now with Battery readings as well. - 2024.05.27 Battery Monitor for internal and External Voltages (to make board sleep and avoid low discharge of batterys) T-Beam boards now with Battery readings as well.
- 2024.05.23 Forced Reboot Mode added. - 2024.05.23 Forced Reboot Mode added.
- 2024.05.22 Experimental backup-Digirepeater-Mode when "only" iGate mode loses WiFi connection added. - 2024.05.22 Experimental backup-Digipeater-Mode when "only" iGate mode loses WiFi connection added.
- 2024.05.20 WebConfig update to control whether Messages and Objects should be Tx to RF. - 2024.05.20 WebConfig update to control whether Messages and Objects should be Tx to RF.
- 2024.05.17 HELTEC Wireless Stick Lite v3 support added. - 2024.05.17 HELTEC Wireless Stick Lite v3 support added.
- 2024.05.14 BME modules will be autodetected (I2C Address and if it is BME280/BMP280/BME680). - 2024.05.14 BME modules will be autodetected (I2C Address and if it is BME280/BMP280/BME680).
@@ -86,12 +87,12 @@ ____________________________________________________
- 2024.04.21 WEB INSTALLER (thanks Damian SQ2CPA). - 2024.04.21 WEB INSTALLER (thanks Damian SQ2CPA).
- 2024.04.20 New Output Buffer process: no more packets lost. - 2024.04.20 New Output Buffer process: no more packets lost.
- 2024.04.13 Received Packets added on WebUI. - 2024.04.13 Received Packets added on WebUI.
- 2024.04.09 iGate/Digirepeater own GPS beacon is encoded (Base91) now. - 2024.04.09 iGate/Digipeater own GPS beacon is encoded (Base91) now.
- 2024.03.18 OE5HWN MeshCom board support added. - 2024.03.18 OE5HWN MeshCom board support added.
- 2024.02.25 New Web Configuration UI with WiFi AP (thanks Damian SQ2CPA). - 2024.02.25 New Web Configuration UI with WiFi AP (thanks Damian SQ2CPA).
- 2023.01.28 Updated to ElegantOTA v.3 (AsyncElegantOTA was deprecated). - 2023.01.28 Updated to ElegantOTA v.3 (AsyncElegantOTA was deprecated).
- 2024.01.19 TextSerialOutputForApp added to get text from Serial-Output over USB into PC for PinPoint App (https://www.pinpointaprs.com) and APRSIS32 App (http://aprsisce.wikidot.com) - 2024.01.19 TextSerialOutputForApp added to get text from Serial-Output over USB into PC for PinPoint App (https://www.pinpointaprs.com) and APRSIS32 App (http://aprsisce.wikidot.com)
- 2024.01.12 Added iGate Mode to also repeat packets (like a iGate+DigiRepeater) in stationMode 2 and 5. - 2024.01.12 Added iGate Mode to also repeat packets (like a iGate+Digipeater) in stationMode 2 and 5.
- 2024.01.11 Added iGate Mode to enable APRS-IS and LoRa beacon report at the same time. - 2024.01.11 Added iGate Mode to enable APRS-IS and LoRa beacon report at the same time.
- 2024.01.05 Lilygo TTGO T-Beam V1, V1.2, V1 + SX1268, V1.2 + SX1262 support added. - 2024.01.05 Lilygo TTGO T-Beam V1, V1.2, V1 + SX1268, V1.2 + SX1262 support added.
- 2024.01.02 EByte 400M30S 1 Watt LoRa module for DIY ESP32 iGate support added. - 2024.01.02 EByte 400M30S 1 Watt LoRa module for DIY ESP32 iGate support added.
@@ -100,18 +101,18 @@ ____________________________________________________
- 2023.12.07 MIC-E process and Syslog added. - 2023.12.07 MIC-E process and Syslog added.
- 2023.12.06 HELTEC V2 board support added. - 2023.12.06 HELTEC V2 board support added.
- 2023.11.26 Small correction to enable Syslog in stationMode5. - 2023.11.26 Small correction to enable Syslog in stationMode5.
- 2023.10.09 Added "WIDE1-1" to Tx packets from iGate to be *repeated* by Digirepeaters. - 2023.10.09 Added "WIDE1-1" to Tx packets from iGate to be *repeated* by Digipeaters.
- 2023.10.09 BMP280 module support added. - 2023.10.09 BMP280 module support added.
- 2023.08.20 Added External Voltage Measurement (Max 15V!) - 2023.08.20 Added External Voltage Measurement (Max 15V!)
- 2023.08.05 Ground Height Correction for Pressure readings added. - 2023.08.05 Ground Height Correction for Pressure readings added.
- 2023.07.31 StationMode5 added: iGate when WiFi and APRS available, DigiRepeater when not. - 2023.07.31 StationMode5 added: iGate when WiFi and APRS available, Digipeater when not.
- 2023.07.16 Small OTA, BME module update. - 2023.07.16 Small OTA, BME module update.
- 2023.07.05 Adding monitor info of Battery connected. - 2023.07.05 Adding monitor info of Battery connected.
- 2023.06.18 Info on Oled Screen mayor update, added RSSI and Distance to Listened Station. - 2023.06.18 Info on Oled Screen mayor update, added RSSI and Distance to Listened Station.
- 2023.06.17 BME280 Module (Temperature, Humidity, Pressure) support added. - 2023.06.17 BME280 Module (Temperature, Humidity, Pressure) support added.
- 2023.06.12 Syslog added. - 2023.06.12 Syslog added.
- 2023.06.10 OTA update support for Firmware and Filesystem. - 2023.06.10 OTA update support for Firmware and Filesystem.
- 2023.06.08 Adding Digirepeater Functions. - 2023.06.08 Adding Digipeater Functions.
- 2023.06.06 Full repack of Code and adding _enableTx_ only for Ham Ops. - 2023.06.06 Full repack of Code and adding _enableTx_ only for Ham Ops.
- 2023.05.23 Processing Query's from RF/LoRa or APRS-IS (Send "Help" Message to test). - 2023.05.23 Processing Query's from RF/LoRa or APRS-IS (Send "Help" Message to test).
- 2023.05.19 Saving Last-Heard Stations for validating Tx Responses. - 2023.05.19 Saving Last-Heard Stations for validating Tx Responses.
+44
View File
@@ -0,0 +1,44 @@
[common]
build_flags =
-Werror -Wall
-DELEGANTOTA_USE_ASYNC_WEBSERVER=1
-DRADIOLIB_EXCLUDE_CC1101=1
-DRADIOLIB_EXCLUDE_NRF24=1
-DRADIOLIB_EXCLUDE_RF69=1
-DRADIOLIB_EXCLUDE_SX1231=1
-DRADIOLIB_EXCLUDE_SX1233=1
-DRADIOLIB_EXCLUDE_SI443X=1
-DRADIOLIB_EXCLUDE_RFM2X=1
-DRADIOLIB_EXCLUDE_AFSK=1
-DRADIOLIB_EXCLUDE_BELL=1
-DRADIOLIB_EXCLUDE_HELLSCHREIBER=1
-DRADIOLIB_EXCLUDE_MORSE=1
-DRADIOLIB_EXCLUDE_RTTY=1
-DRADIOLIB_EXCLUDE_SSTV=1
-DRADIOLIB_EXCLUDE_AX25=1
-DRADIOLIB_EXCLUDE_DIRECT_RECEIVE=1
-DRADIOLIB_EXCLUDE_BELL=1
-DRADIOLIB_EXCLUDE_PAGER=1
-DRADIOLIB_EXCLUDE_FSK4=1
-DRADIOLIB_EXCLUDE_APRS=1
-DRADIOLIB_EXCLUDE_LORAWAN=1
-I variants/${PIOENV}
lib_deps =
adafruit/Adafruit Unified Sensor @ 1.1.14
adafruit/Adafruit BME280 Library @ 2.2.4
adafruit/Adafruit BMP280 Library @ 2.6.8
adafruit/Adafruit BME680 Library @ 2.0.4
adafruit/Adafruit Si7021 Library @ 1.5.3
arduino-libraries/NTPClient @ 3.2.1
ayushsharma82/ElegantOTA @ 3.1.5
bblanchon/ArduinoJson @ 6.21.3
jgromes/RadioLib @ 6.6.0
mathieucarbou/AsyncTCP @ 3.2.5
mathieucarbou/ESPAsyncWebServer @ 3.2.3
mikalhart/TinyGPSPlus @ 1.0.3
display_libs =
adafruit/Adafruit GFX Library @ 1.11.9
adafruit/Adafruit SSD1306 @ 2.5.10
usb_flags=
-DARDUINO_USB_MODE=1
-DARDUINO_USB_CDC_ON_BOOT=1
+10 -11
View File
@@ -121,7 +121,7 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<label for="callsign" class="form-label" <label for="callsign" class="form-label"
>Callsign and SSID</label >Callsign - SSID</label
> >
<input <input
type="text" type="text"
@@ -152,7 +152,7 @@
<label <label
for="beacon.path" for="beacon.path"
class="form-label" class="form-label"
>Beacon path</label >Beacon Path</label
> >
<input <input
type="text" type="text"
@@ -492,8 +492,7 @@
<label <label
for="beacon.sendViaAPRSIS" for="beacon.sendViaAPRSIS"
class="form-label" class="form-label"
>Send beacon to >Send beacon via APRS-IS
APRS-IS
</label> </label>
</div> </div>
</div> </div>
@@ -516,12 +515,12 @@
<button class="btn btn-primary" id="send-beacon">Send beacon now</button> <button class="btn btn-primary" id="send-beacon">Send beacon now</button>
</div> </div>
</div> </div>
<div class="row mt-3"> <div class="row mt-4">
<div class="col-12"> <div class="col-12">
<label <label
for="beacon.interval" for="beacon.interval"
class="form-label" class="form-label"
>Interval >Beacon Interval
</label> </label>
<div class="input-group"> <div class="input-group">
<input <input
@@ -626,7 +625,7 @@
<label <label
for="digi.ecoMode" for="digi.ecoMode"
class="form-label" class="form-label"
>Eco Mode<small> This will disable WiFi, Display, Leds and lower CPU Speed for Low Power Digirepeater. (<strong>Caution:</strong> Active means No WebUI Configuration, so <strong>ONLY</strong> activate this for Remote Digirepeater)</small></label >Eco Mode<small> This will disable WiFi, Display, Leds and lower CPU Speed for Low Power Digipeater. (<strong>Caution:</strong> Active means No WebUI Configuration, so <strong>ONLY</strong> activate this for Remote Digipeater)</small></label
> >
</div> </div>
</div> </div>
@@ -1198,7 +1197,7 @@
class="form-label" class="form-label"
><b>Activate Wx Telemetry</b> ><b>Activate Wx Telemetry</b>
<small <small
>Requires a BME/BMP280, BME680 or Si7021 sensor installed</small >Requires a BME/BMP280, BME680 or Si7021 sensor.</small
></label ></label
> >
</div> </div>
@@ -1296,7 +1295,7 @@
type="text" type="text"
name="syslog.server" name="syslog.server"
id="syslog.server" id="syslog.server"
placeholder="192.168.0.100" placeholder="lora.link9.net"
class="form-control" class="form-control"
disabled disabled
/> />
@@ -1744,7 +1743,7 @@
<div class="col-12"> <div class="col-12">
<div class="form-check form-switch"> <div class="form-check form-switch">
<div class="form-text"> <div class="form-text">
When "only" iGate Mode loses WiFi, it will change into a Digirepeater Mode and after 15 min check if WiFi available and return to "only" iGate Mode. When "only" iGate Mode loses WiFi, it will change into a Digipeater Mode and after 15 min check if WiFi available and return to "only" iGate Mode.
</div> </div>
<input <input
type="checkbox" type="checkbox"
@@ -1755,7 +1754,7 @@
<label <label
for="other.backupDigiMode" for="other.backupDigiMode"
class="form-label" class="form-label"
>Backup Digirepeater Mode</label >Backup Digipeater Mode</label
> >
</div> </div>
</div> </div>
-2
View File
@@ -251,8 +251,6 @@ document.getElementById('reboot').addEventListener('click', function (e) {
const wxsensorCheckbox = document.querySelector("input[name='wxsensor.active']"); const wxsensorCheckbox = document.querySelector("input[name='wxsensor.active']");
const stationModeSelect = document.querySelector("select[name='stationMode']");
function updateImage() { function updateImage() {
const value = document.getElementById("beacon.overlay").value + document.getElementById("beacon.symbol").value; const value = document.getElementById("beacon.overlay").value + document.getElementById("beacon.symbol").value;
+5 -458
View File
@@ -11,6 +11,10 @@
[platformio] [platformio]
default_envs = ttgo-lora32-v21 default_envs = ttgo-lora32-v21
extra_configs =
common_settings.ini
variants/*/platformio.ini
[env] [env]
platform = espressif32 @ 6.7.0 platform = espressif32 @ 6.7.0
board_build.partitions = min_spiffs.csv board_build.partitions = min_spiffs.csv
@@ -25,461 +29,4 @@ board_build.embed_files =
data_embed/favicon.png.gz data_embed/favicon.png.gz
extra_scripts = extra_scripts =
pre:tools/compress.py pre:tools/compress.py
debug_tool = esp-prog debug_tool = esp-prog
[common]
build_flags =
-Werror -Wall
-DELEGANTOTA_USE_ASYNC_WEBSERVER=1
-DRADIOLIB_EXCLUDE_CC1101=1
-DRADIOLIB_EXCLUDE_NRF24=1
-DRADIOLIB_EXCLUDE_RF69=1
-DRADIOLIB_EXCLUDE_SX1231=1
-DRADIOLIB_EXCLUDE_SX1233=1
-DRADIOLIB_EXCLUDE_SI443X=1
-DRADIOLIB_EXCLUDE_RFM2X=1
-DRADIOLIB_EXCLUDE_AFSK=1
-DRADIOLIB_EXCLUDE_BELL=1
-DRADIOLIB_EXCLUDE_HELLSCHREIBER=1
-DRADIOLIB_EXCLUDE_MORSE=1
-DRADIOLIB_EXCLUDE_RTTY=1
-DRADIOLIB_EXCLUDE_SSTV=1
-DRADIOLIB_EXCLUDE_AX25=1
-DRADIOLIB_EXCLUDE_DIRECT_RECEIVE=1
-DRADIOLIB_EXCLUDE_BELL=1
-DRADIOLIB_EXCLUDE_PAGER=1
-DRADIOLIB_EXCLUDE_FSK4=1
-DRADIOLIB_EXCLUDE_APRS=1
-DRADIOLIB_EXCLUDE_LORAWAN=1
lib_deps =
jgromes/RadioLib @ 6.6.0
mikalhart/TinyGPSPlus @ 1.0.3
bblanchon/ArduinoJson @ 6.21.3
adafruit/Adafruit Unified Sensor @ 1.1.14
adafruit/Adafruit BME280 Library @ 2.2.4
adafruit/Adafruit BMP280 Library @ 2.6.8
adafruit/Adafruit BME680 Library @ 2.0.4
adafruit/Adafruit Si7021 Library @ 1.5.3
ayushsharma82/ElegantOTA @ 3.1.5
mathieucarbou/ESPAsyncWebServer @ 3.2.3
mathieucarbou/AsyncTCP @ 3.2.5
arduino-libraries/NTPClient @ 3.2.1
display_libs =
adafruit/Adafruit GFX Library @ 1.11.9
adafruit/Adafruit SSD1306 @ 2.5.10
[env:ttgo-lora32-v21]
board = ttgo-lora32-v21
build_flags =
${common.build_flags}
-DTTGO_LORA32_V2_1
-DHAS_SX1278
-DHAS_ADC_CALIBRATION
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:ttgo-lora32-v21_915]
board = ttgo-lora32-v21
build_flags =
${common.build_flags}
-DTTGO_LORA32_V2_1_915
-DHAS_SX1276
-DHAS_ADC_CALIBRATION
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:heltec-lora32-v2]
board = ttgo-lora32-v21
build_flags =
${common.build_flags}
-DHELTEC_V2
-DHAS_SX1278
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:heltec_wifi_lora_32_V3]
board = heltec_wifi_lora_32_V3
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
-DHELTEC_V3
-DHAS_SX1262
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:heltec_wireless_stick]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
-DHELTEC_WS
-DHAS_SX1262
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:heltec_wireless_stick_lite_v3]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
-DHELTEC_WSL_V3
-DHAS_SX1262
lib_deps =
${common.lib_deps}
[env:heltec_wireless_stick_lite_v3_display]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
-DHELTEC_WSL_V3_DISPLAY
-DHAS_SX1262
lib_deps =
${common.lib_deps}
[env:ESP32_DIY_LoRa]
board = esp32dev
build_flags =
${common.build_flags}
-DESP32_DIY_LoRa
-DHAS_SX1278
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:ESP32_DIY_LoRa_915]
board = esp32dev
build_flags =
${common.build_flags}
-DESP32_DIY_LoRa_915
-DHAS_SX1276
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:ESP32_DIY_1W_LoRa]
board = esp32dev
build_flags =
${common.build_flags}
-DESP32_DIY_1W_LoRa
-DHAS_SX1268
-DHAS_1W_LORA
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:ESP32_DIY_1W_LoRa_915]
board = esp32dev
build_flags =
${common.build_flags}
-DESP32_DIY_1W_LoRa_915
-DHAS_SX1262
-DHAS_1W_LORA
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:ESP32_DIY_1W_LoRa_LLCC68]
board = esp32dev
build_flags =
${common.build_flags}
-DESP32_DIY_1W_LoRa_LLCC68
-DHAS_LLCC68
-DHAS_1W_LORA
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:ESP32_DIY_1W_LoRa_Mesh_V1_2]
board = esp32dev
build_flags =
${common.build_flags}
-DESP32_DIY_1W_LoRa_Mesh_V1_2
-DHAS_SX1268
-DHAS_1W_LORA
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:ttgo-t-beam-v1_2]
board = ttgo-t-beam
build_flags =
${common.build_flags}
-DTTGO_T_BEAM_V1_2
-DHAS_SX1278
-DHAS_AXP2101
-DHAS_GPS
lib_deps =
${common.lib_deps}
${common.display_libs}
lewisxhe/XPowersLib @ 0.2.4
[env:ttgo-t-beam-v1_2_915]
board = ttgo-t-beam
build_flags =
${common.build_flags}
-DTTGO_T_BEAM_V1_2_915
-DHAS_SX1276
-DHAS_AXP2101
-DHAS_GPS
lib_deps =
${common.lib_deps}
${common.display_libs}
lewisxhe/XPowersLib @ 0.2.4
[env:ttgo-t-beam-v1]
board = ttgo-t-beam
build_flags =
${common.build_flags}
-DTTGO_T_BEAM_V1_0
-DHAS_SX1278
-DHAS_AXP192
-DHAS_GPS
lib_deps =
${common.lib_deps}
${common.display_libs}
lewisxhe/XPowersLib @ 0.2.4
[env:ttgo-t-beam-v1_915]
board = ttgo-t-beam
build_flags =
${common.build_flags}
-DTTGO_T_BEAM_V1_0_915
-DHAS_SX1276
-DHAS_AXP192
-DHAS_GPS
lib_deps =
${common.lib_deps}
${common.display_libs}
lewisxhe/XPowersLib @ 0.2.4
[env:ttgo-t-beam-v1_SX1268]
board = ttgo-t-beam
build_flags =
${common.build_flags}
-DTTGO_T_BEAM_V1_0_SX1268
-DHAS_SX1268
-DHAS_AXP192
-DHAS_GPS
lib_deps =
${common.lib_deps}
${common.display_libs}
lewisxhe/XPowersLib @ 0.2.4
[env:ttgo-t-beam-v1_2_SX1262]
board = ttgo-t-beam
build_flags =
${common.build_flags}
-DTTGO_T_BEAM_V1_2_SX1262
-DHAS_SX1262
-DHAS_AXP2101
-DHAS_GPS
lib_deps =
${common.lib_deps}
${common.display_libs}
lewisxhe/XPowersLib @ 0.2.4
[env:ESP32_DIY_LoRa_A7670]
board = esp32dev
build_flags =
${common.build_flags}
-DESP32_DIY_LoRa_A7670
-DHAS_SX1278
-DHAS_A7670
lib_deps =
${common.lib_deps}
${common.display_libs}
vshymanskyy/TinyGSM @ 0.12.0
vshymanskyy/StreamDebugger @ 1.0.1
[env:ESP32_DIY_LoRa_A7670_915]
board = esp32dev
build_flags =
${common.build_flags}
-DESP32_DIY_LoRa_A7670_915
-DHAS_SX1276
-DHAS_A7670
lib_deps =
${common.lib_deps}
${common.display_libs}
vshymanskyy/TinyGSM @ 0.12.0
vshymanskyy/StreamDebugger @ 1.0.1
[env:heltec_wireless_tracker]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
-DHELTEC_WIRELESS_TRACKER
-DHAS_SX1262
-DHAS_GPS
-DGPS_BAUDRATE=115200
-DHAS_TFT
-D USER_SETUP_LOADED
-D TFT_WIDTH=80
-D TFT_HEIGHT=160
-D ST7735_DRIVER
-D ST7735_GREENTAB160x80
-D TFT_RGB_ORDER=TFT_BGR
-D TFT_MOSI=42
-D TFT_SCLK=41
-D TFT_CS=38
-D TFT_DC=40
-D TFT_RST=39
-D TFT_BL=21
-D TFT_BACKLIGHT_ON=1
-D TOUCH_CS=-1
-D LOAD_GLCD
-D LOAD_FONT2
-D LOAD_FONT4
-D LOAD_FONT6
-D LOAD_FONT7
-D LOAD_FONT8
-D SPI_FREQUENCY=27000000
-D USE_HSPI_PORT
-DARDUINO_USB_MODE=1
-DARDUINO_USB_CDC_ON_BOOT=1
lib_deps =
${common.lib_deps}
bodmer/TFT_eSPI @ 2.5.43
[env:heltec_ht-ct62]
board = heltec_wireless_stick_lite
board_build.mcu = esp32c3
build_flags =
${common.build_flags}
-DHELTEC_HTCT62
-DHAS_SX1262
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:heltec_wireless_paper]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
-DHELTEC_WP
-DHAS_SX1262
-DHAS_EPAPER
lib_deps =
${common.lib_deps}
[env:OE5HWN_MeshCom]
board = esp32dev
build_flags =
${common.build_flags}
-DOE5HWN_MeshCom
-DHAS_SX1268
-DHAS_1W_LORA
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:WEMOS-LOLIN32-OLED-DIY]
board = lolin32
build_flags =
${common.build_flags}
-DWEMOS_LOLIN32_OLED_DIY_LoRa
-DHAS_SX1278
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:WEMOS-D1-R32-RA02]
board = wemos_d1_uno32
build_flags =
${common.build_flags}
-DWEMOS_D1_R32_RA02
-DHAS_SX1278
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:WEMOS_S2_MINI_DIY_LoRa]
board = lolin_s2_mini
build_flags =
${common.build_flags}
-DWEMOS_S2_MINI_DIY_LoRa
-DHAS_SX1278
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:esp32c3_DIY_1W_LoRa]
board = esp32-c3-devkitm-1
board_build.mcu = esp32c3
build_flags =
${common.build_flags}
-DESP32C3_DIY_1W_LoRa
-DHAS_SX1268
-DHAS_1W_LORA
-DARDUINO_USB_MODE=1
-DARDUINO_USB_CDC_ON_BOOT=1
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:esp32c3_DIY_1W_LoRa_915]
board = esp32-c3-devkitm-1
board_build.mcu = esp32c3
build_flags =
${common.build_flags}
-DESP32C3_DIY_1W_LoRa_915
-DHAS_SX1262
-DHAS_1W_LORA
-DARDUINO_USB_MODE=1
-DARDUINO_USB_CDC_ON_BOOT=1
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:ESP32_C3_OctopusLab_LoRa]
board = esp32-c3-devkitm-1
board_build.mcu = esp32c3
build_flags =
${common.build_flags}
-DESP32_C3_OctopusLab_LoRa
-DHAS_SX1268
-DRADIO_HAS_XTAL
-DARDUINO_USB_MODE=1
-DARDUINO_USB_CDC_ON_BOOT=1
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:QRPLabs_LightGateway_1_0]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
-DLIGHTGATEWAY_1_0
-DHAS_SX1268
-DARDUINO_USB_MODE=1
-DARDUINO_USB_CDC_ON_BOOT=1
lib_deps =
${common.lib_deps}
${common.display_libs}
[env:ttgo_lora32_t3s3_v1_2]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
board_upload.flash_size = 4MB
build_flags =
${common.build_flags}
-DTTGO_LORA32_T3S3_V1_2
-DHAS_SX1262
-DARDUINO_USB_MODE=1
-DARDUINO_USB_CDC_ON_BOOT=1
lib_deps =
${common.lib_deps}
${common.display_libs}
+2 -2
View File
@@ -1,6 +1,6 @@
#include "configuration.h" #include "configuration.h"
#include "aprs_is_utils.h" #include "aprs_is_utils.h"
#include "boards_pinout.h" #include "board_pinout.h"
#include "A7670_utils.h" #include "A7670_utils.h"
#include "lora_utils.h" #include "lora_utils.h"
#include "display.h" #include "display.h"
@@ -200,6 +200,6 @@
} }
} }
delay(1); delay(1);
} }
} }
#endif #endif
+1
View File
@@ -3,6 +3,7 @@
#include <Arduino.h> #include <Arduino.h>
namespace A7670_Utils { namespace A7670_Utils {
bool checkModemOn(); bool checkModemOn();
+22 -14
View File
@@ -1,16 +1,24 @@
/*______________________________________________________________________________________________________________ /*___________________________________________________________________
██╗ ██████╗ ██████╗ █████╗ █████╗ ██████╗ ██████╗ ███████╗ ██╗ ██████╗ █████╗ ████████╗███████╗ ██╗ ██████╗ ██████╗ █████╗ █████╗ ██████╗ ██████╗ ███████╗
██║ ██╔═══██╗██╔══██╗██╔══██╗ ██╔══██╗██╔══██╗██╔══██╗██╔════╝ ██║██╔════╝ ██╔══██╗╚══██╔══╝██╔════╝ ██║ ██╔═══██╗██╔══██╗██╔══██╗ ██╔══██╗██╔══██╗██╔══██╗██╔════╝
██║ ██║ ██║██████╔╝███████║ ███████║██████╔╝██████╔╝███████╗ ██║██║ ███╗███████║ ██║ █████╗ ██║ ██║ ██║██████╔╝███████║ ███████║██████╔╝██████╔╝███████╗
██║ ██║ ██║██╔══██╗██╔══██║ ██╔══██║██╔═══╝ ██╔══██╗╚════██║ ██║██║ ██║██╔══██║ ██║ ██╔══╝ ██║ ██║ ██║██╔══██╗██╔══██║ ██╔══██║██╔═══╝ ██╔══██╗╚════██║
███████╗╚██████╔╝██║ ██║██║ ██║ ██║ ██║██║ ██║ ██║███████║ ██║╚██████╔╝██║ ██║ ██║ ███████╗ ███████╗╚██████╔╝██║ ██║██║ ██║ ██║ ██║██║ ██║ ██║███████║
╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝╚══════╝
██╗ ██████╗ █████╗ ████████╗███████╗
██║██╔════╝ ██╔══██╗╚══██╔══╝██╔════╝
██║██║ ███╗███████║ ██║ █████╗
██║██║ ██║██╔══██║ ██║ ██╔══╝
██║╚██████╔╝██║ ██║ ██║ ███████╗
╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝
Ricardo Guzman - CA2RXU
https://github.com/richonguzman/LoRa_APRS_Tracker Ricardo Guzman - CA2RXU
(donations : http://paypal.me/richonguzman) https://github.com/richonguzman/LoRa_APRS_Tracker
______________________________________________________________________________________________________________*/ (donations : http://paypal.me/richonguzman)
___________________________________________________________________*/
#include <ElegantOTA.h> #include <ElegantOTA.h>
#include <TinyGPS++.h> #include <TinyGPS++.h>
@@ -21,8 +29,8 @@ ________________________________________________________________________________
#include "battery_utils.h" #include "battery_utils.h"
#include "aprs_is_utils.h" #include "aprs_is_utils.h"
#include "station_utils.h" #include "station_utils.h"
#include "boards_pinout.h"
#include "battery_utils.h" #include "battery_utils.h"
#include "board_pinout.h"
#include "syslog_utils.h" #include "syslog_utils.h"
#include "query_utils.h" #include "query_utils.h"
#include "power_utils.h" #include "power_utils.h"
@@ -40,7 +48,7 @@ ________________________________________________________________________________
#include "A7670_utils.h" #include "A7670_utils.h"
#endif #endif
String versionDate = "2024.10.29"; String versionDate = "2024.11.06";
Configuration Config; Configuration Config;
WiFiClient espClient; WiFiClient espClient;
#ifdef HAS_GPS #ifdef HAS_GPS
@@ -172,7 +180,7 @@ void loop() {
if (Config.loramodule.txActive && (Config.digi.mode == 2 || Config.digi.mode == 3 || backUpDigiMode)) { // If Digi enabled if (Config.loramodule.txActive && (Config.digi.mode == 2 || Config.digi.mode == 3 || backUpDigiMode)) { // If Digi enabled
STATION_Utils::clean25SegBuffer(); STATION_Utils::clean25SegBuffer();
DIGI_Utils::processLoRaPacket(packet); // Send received packet to Digi DIGI_Utils::processLoRaPacket(packet); // Send received packet to Digi
} }
if (Config.tnc.enableServer) { // If TNC server enabled if (Config.tnc.enableServer) { // If TNC server enabled
+4 -4
View File
@@ -101,7 +101,7 @@ namespace APRS_IS_Utils {
if(aprsisState == "--" && !Config.display.alwaysOn && Config.display.timeout != 0) { if(aprsisState == "--" && !Config.display.alwaysOn && Config.display.timeout != 0) {
displayToggle(true); displayToggle(true);
lastScreenOn = millis(); lastScreenOn = millis();
} }
} }
secondLine = "WiFi: "; secondLine = "WiFi: ";
secondLine += wifiState; secondLine += wifiState;
@@ -176,7 +176,7 @@ namespace APRS_IS_Utils {
void processLoRaPacket(const String& packet) { void processLoRaPacket(const String& packet) {
if (espClient.connected() || modemLoggedToAPRSIS) { if (espClient.connected() || modemLoggedToAPRSIS) {
if (packet != "") { if (packet != "") {
if ((packet.substring(0, 3) == "\x3c\xff\x01") && (packet.indexOf("NOGATE") == -1) && (packet.indexOf("RFONLY") == -1)) { if ((packet.substring(0, 3) == "\x3c\xff\x01") && (packet.indexOf("NOGATE") == -1) && (packet.indexOf("RFONLY") == -1)) {
int firstColonIndex = packet.indexOf(":"); int firstColonIndex = packet.indexOf(":");
if (firstColonIndex > 5 && firstColonIndex < (packet.length() - 1) && packet[firstColonIndex + 1] != '}' && packet.indexOf("TCPIP") == -1) { if (firstColonIndex > 5 && firstColonIndex < (packet.length() - 1) && packet[firstColonIndex + 1] != '}' && packet.indexOf("TCPIP") == -1) {
const String& Sender = packet.substring(3, packet.indexOf(">")); const String& Sender = packet.substring(3, packet.indexOf(">"));
@@ -207,7 +207,7 @@ namespace APRS_IS_Utils {
displayShow(firstLine, secondLine, thirdLine, fourthLine, fifthLine, sixthLine, seventhLine, 0); displayShow(firstLine, secondLine, thirdLine, fourthLine, fifthLine, sixthLine, seventhLine, 0);
} }
} }
} }
} }
} }
} }
@@ -285,7 +285,7 @@ namespace APRS_IS_Utils {
A7670_Utils::uploadToAPRSIS(ackPacket); A7670_Utils::uploadToAPRSIS(ackPacket);
#else #else
upload(ackPacket); upload(ackPacket);
#endif #endif
receivedMessage = AddresseeAndMessage.substring(AddresseeAndMessage.indexOf(":") + 1, AddresseeAndMessage.indexOf("{")); receivedMessage = AddresseeAndMessage.substring(AddresseeAndMessage.indexOf(":") + 1, AddresseeAndMessage.indexOf("{"));
} else { } else {
receivedMessage = AddresseeAndMessage.substring(AddresseeAndMessage.indexOf(":") + 1); receivedMessage = AddresseeAndMessage.substring(AddresseeAndMessage.indexOf(":") + 1);
+4 -4
View File
@@ -1,7 +1,7 @@
#include <Arduino.h> #include <Arduino.h>
#include "battery_utils.h" #include "battery_utils.h"
#include "configuration.h" #include "configuration.h"
#include "boards_pinout.h" #include "board_pinout.h"
#include "power_utils.h" #include "power_utils.h"
#include "utils.h" #include "utils.h"
@@ -126,7 +126,7 @@ namespace BATTERY_Utils {
sample = 0; sample = 0;
#endif #endif
#endif #endif
#endif #endif
sampleSum += sample; sampleSum += sample;
delayMicroseconds(50); delayMicroseconds(50);
} }
@@ -182,7 +182,7 @@ namespace BATTERY_Utils {
float extVoltage; float extVoltage;
#ifdef HAS_ADC_CALIBRATION #ifdef HAS_ADC_CALIBRATION
if (calibrationEnable){ if (calibrationEnable){
extVoltage = esp_adc_cal_raw_to_voltage(sampleSum / 100, &adc_chars) * voltageDividerTransformation; // in mV extVoltage = esp_adc_cal_raw_to_voltage(sampleSum / 100, &adc_chars) * voltageDividerTransformation; // in mV
extVoltage /= 1000; extVoltage /= 1000;
} else { } else {
@@ -240,7 +240,7 @@ namespace BATTERY_Utils {
tempValue = value; tempValue = value;
break; break;
} }
} }
int firstByte = tempValue / 91; int firstByte = tempValue / 91;
tempValue -= firstByte * 91; tempValue -= firstByte * 91;
-331
View File
@@ -1,331 +0,0 @@
#ifndef PINS_CONFIG_H_
#define PINS_CONFIG_H_
#include <Arduino.h>
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
// LORA MODULES
#if defined(TTGO_LORA32_V2_1) || defined(HELTEC_V2) || defined(ESP32_DIY_LoRa) || defined(TTGO_T_BEAM_V1_2) || defined(TTGO_T_BEAM_V1_0) || defined(TTGO_LORA32_V2_1_915) || defined(ESP32_DIY_LoRa_915) || defined(TTGO_T_BEAM_V1_2_915) || defined(TTGO_T_BEAM_V1_0_915)
#define RADIO_SCLK_PIN 5 // GPIO5 - SX1278 SCK
#define RADIO_MISO_PIN 19 // GPIO19 - SX1278 MISO
#define RADIO_MOSI_PIN 27 // GPIO27 - SX1278 MOSI
#define RADIO_CS_PIN 18 // GPIO18 - SX1278 CS ---> NSS
#define RADIO_RST_PIN 14 // GPIO14 - SX1278 RST
#define RADIO_BUSY_PIN 26 // GPIO26 - SX1278 IRQ ---->DIO0
#endif
#if defined(HELTEC_V3) || defined(HELTEC_WSL_V3) || defined(HELTEC_WSL_V3_DISPLAY) || defined(HELTEC_WIRELESS_TRACKER) || defined(HELTEC_WS) || defined(HELTEC_WP)
#define RADIO_SCLK_PIN 9 // SX1262 SCK
#define RADIO_MISO_PIN 11 // SX1262 MISO
#define RADIO_MOSI_PIN 10 // SX1262 MOSI
#define RADIO_CS_PIN 8 // SX1262 NSS
#define RADIO_RST_PIN 12 // SX1262 RST
#define RADIO_DIO1_PIN 14 // SX1262 DIO1
#define RADIO_BUSY_PIN 13 // SX1262 BUSY
#endif
#if defined(ESP32_DIY_1W_LoRa) || defined(ESP32_DIY_1W_LoRa_915) || defined(ESP32_DIY_1W_LoRa_LLCC68) // Ebyte E22 400M30S (SX1268) or E22 900M30S (SX1262) or E220 LLCC68
#define RADIO_SCLK_PIN 18
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 23
#define RADIO_CS_PIN 5
#define RADIO_RST_PIN 27
#define RADIO_DIO1_PIN 12
#define RADIO_BUSY_PIN 14
#define RADIO_RXEN 32
#define RADIO_TXEN 25
#endif
#if defined(ESP32_DIY_1W_LoRa_Mesh_V1_2) // https://github.com/NanoVHF/Meshtastic-DIY/tree/main/PCB/ESP-32-devkit_EBYTE-E22/Mesh-v1.02-2LCD-FreePins
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 23
#define RADIO_DIO1_PIN 33
#define RADIO_BUSY_PIN 32
#define RADIO_RXEN 14
#define RADIO_TXEN 13
#endif
#ifdef WEMOS_LOLIN32_OLED_DIY_LoRa
#define RADIO_SCLK_PIN 15
#define RADIO_MISO_PIN 13
#define RADIO_MOSI_PIN 12
#define RADIO_CS_PIN 14
#define RADIO_RST_PIN 2
#define RADIO_BUSY_PIN 25
#endif
#if defined(TTGO_T_BEAM_V1_0_SX1268) || defined(TTGO_T_BEAM_V1_2_SX1262)
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_DIO0_PIN 26
#define RADIO_RST_PIN 23
#define RADIO_DIO1_PIN 33
#define RADIO_BUSY_PIN 32
#endif
#if defined(OE5HWN_MeshCom)
#define RADIO_SCLK_PIN 18
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 23
#define RADIO_CS_PIN 5
#define RADIO_RST_PIN 27
#define RADIO_DIO1_PIN 33
#define RADIO_BUSY_PIN 26
#define RADIO_RXEN 14
#define RADIO_TXEN 13
#endif
#if defined(HELTEC_HTCT62)
#define RADIO_SCLK_PIN 10 // SX1262 SCK
#define RADIO_MISO_PIN 6 // SX1262 MISO
#define RADIO_MOSI_PIN 7 // SX1262 MOSI
#define RADIO_CS_PIN 8 // SX1262 NSS
#define RADIO_RST_PIN 5 // SX1262 RST
#define RADIO_DIO1_PIN 3 // SX1262 DIO1
#define RADIO_BUSY_PIN 4 // SX1262 BUSY
#endif
#if defined(ESP32_DIY_LoRa_A7670) || defined(ESP32_DIY_LoRa_A7670_915)
#define RADIO_SCLK_PIN 18
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 23
#define RADIO_CS_PIN 2
#define RADIO_RST_PIN 0
#define RADIO_BUSY_PIN 32
#define A7670_PWR_PIN 4
#define A7670_ResetPin 5
#define A7670_TX_PIN 26
#define A7670_RX_PIN 27
#endif
#ifdef WEMOS_D1_R32_RA02
#define RADIO_SCLK_PIN 18
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 23
#define RADIO_CS_PIN 5
#define RADIO_BUSY_PIN 12
#define RADIO_RST_PIN 13
#define RADIO_DIO1_PIN 14
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST 36
#endif
#if defined(ESP32C3_DIY_1W_LoRa) || defined(ESP32C3_DIY_1W_LoRa_915)
#define RADIO_SCLK_PIN 8
#define RADIO_MISO_PIN 9
#define RADIO_MOSI_PIN 10
#define RADIO_CS_PIN 5
#define RADIO_RST_PIN 4
#define RADIO_DIO1_PIN 2
#define RADIO_BUSY_PIN 3
#define RADIO_RXEN 6
#define RADIO_TXEN 7
#endif
#ifdef WEMOS_S2_MINI_DIY_LoRa
#define RADIO_SCLK_PIN 36
#define RADIO_MISO_PIN 37
#define RADIO_MOSI_PIN 35
#define RADIO_CS_PIN 34
#define RADIO_BUSY_PIN 38
#define RADIO_RST_PIN 33
#endif
#ifdef LIGHTGATEWAY_1_0
#define RADIO_VCC_PIN 21
#define RADIO_SCLK_PIN 12
#define RADIO_MISO_PIN 13
#define RADIO_MOSI_PIN 11
#define RADIO_CS_PIN 10
#define RADIO_RST_PIN 9
#define RADIO_DIO1_PIN 5
#define RADIO_BUSY_PIN 6
#define RADIO_RXEN 42
#define RADIO_TXEN 14
#endif
// OLED
#if defined(TTGO_LORA32_V2_1) || defined(ESP32_DIY_LoRa) || defined(ESP32_DIY_1W_LoRa) || defined(TTGO_T_BEAM_V1_0) || defined(TTGO_T_BEAM_V1_2) || defined(TTGO_T_BEAM_V1_0_SX1268) || defined(TTGO_T_BEAM_V1_2_SX1262) || defined(OE5HWN_MeshCom) || defined(ESP32_DIY_LoRa_A7670) || defined(TTGO_LORA32_V2_1_915) || defined(ESP32_DIY_LoRa_915) || defined(TTGO_T_BEAM_V1_0_915) || defined(TTGO_T_BEAM_V1_2_915) || defined(ESP32_DIY_LoRa_A7670_915) || defined(ESP32_DIY_1W_LoRa_915) || defined(ESP32_DIY_1W_LoRa_LLCC68) || defined(ESP32_DIY_1W_LoRa_Mesh_V1_2)
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#endif
#if defined(HELTEC_V2) || defined(HELTEC_WS)
#define OLED_SDA 4
#define OLED_SCL 15
#define OLED_RST 16
#endif
#if defined(HELTEC_V3)
#define OLED_SDA 17
#define OLED_SCL 18
#define OLED_RST 21
#endif
#ifdef WEMOS_LOLIN32_OLED_DIY_LoRa
#define OLED_SDA 5
#define OLED_SCL 4
#define OLED_RST -1
#endif
#ifdef LIGHTGATEWAY_1_0
#define OLED_SDA 3
#define OLED_SCL 4
#define OLED_RST -1
#endif
#if !defined(HELTEC_HTCT62) && !defined(HELTEC_WSL_V3) && !defined(ESP32C3_DIY_1W_LoRa) && !defined(ESP32C3_DIY_1W_LoRa_915) && !defined(WEMOS_S2_MINI_DIY_LoRa)
#define HAS_DISPLAY
#endif
// Leds and other stuff
#ifdef HELTEC_HTCT62
#define BATTERY_PIN 1
#endif
#ifdef WEMOS_S2_MINI_DIY_LoRa
#define INTERNAL_LED_PIN 15
#endif
#if defined(TTGO_LORA32_V2_1) || defined(TTGO_LORA32_V2_1_915)
#define INTERNAL_LED_PIN 25 // Green Led
#define BATTERY_PIN 35
#endif
#if defined(HELTEC_V2)
#define INTERNAL_LED_PIN 25
#define BATTERY_PIN 37
#define ADC_CTRL 21
#endif
#if defined(HELTEC_V3) || defined(HELTEC_WSL_V3) || defined(HELTEC_WSL_V3_DISPLAY) || defined(HELTEC_WS)
#define INTERNAL_LED_PIN 35
#define BATTERY_PIN 1
#define VEXT_CTRL 36
#define ADC_CTRL 37
#define BOARD_I2C_SDA 41
#define BOARD_I2C_SCL 42
#ifdef HELTEC_WSL_V3_DISPLAY
#define OLED_RST -1
#endif
#endif
#if defined(ESP32_DIY_LoRa) || defined(ESP32_DIY_LoRa_915) || defined(ESP32_DIY_1W_LoRa) || defined(ESP32_DIY_1W_LoRa_915)
#define INTERNAL_LED_PIN 2
#endif
#if defined(ESP32_DIY_LoRa_A7670) || defined(ESP32_DIY_LoRa_A7670_915)
#define INTERNAL_LED_PIN 13 // 13 for V1.1 and 12 for V1.0
#define BATTERY_PIN 35
#endif
#ifdef HELTEC_WIRELESS_TRACKER
#define INTERNAL_LED_PIN 18
#define BATTERY_PIN 1
#define ADC_CTRL 2 // HELTEC Wireless Tracker ADC_CTRL = HIGH powers the voltage divider to read BatteryPin. Only on V05 = V1.1
#define VEXT_CTRL 3 // To turn on GPS and TFT
#define BOARD_I2C_SDA 7
#define BOARD_I2C_SCL 6
#endif
#ifdef HELTEC_WP
#define INTERNAL_LED_PIN 18
#define BATTERY_PIN 20
#define ADC_CTRL 19
#define VEXT_CTRL 45
#define BOARD_I2C_SDA 37
#define BOARD_I2C_SCL 36
#define EPAPER_BUSY 7
#define EPAPER_RST 6
#define EPAPER_DC 5
#define EPAPER_CS 4
#define EPAPER_SCL 3
#define EPAPER_SDA 2
#endif
#ifdef ESP32_C3_DIY_LoRa // just testing!
#define OLED_SDA 8
#define OLED_SCL 9
#define OLED_RST 10
#define RADIO_SCLK_PIN 4
#define RADIO_MISO_PIN 5
#define RADIO_MOSI_PIN 6
#define RADIO_CS 7
#define RADIO_RST_PIN 3
#define RADIO_IRQ_PIN 2
#endif
#if defined(ESP32_C3_OctopusLab_LoRa)
#define OLED_SDA 0
#define OLED_SCL 1
#define OLED_RST -1
#define RADIO_SCLK_PIN 6
#define RADIO_MISO_PIN 4
#define RADIO_MOSI_PIN 7
#define RADIO_CS_PIN 5
#define RADIO_DIO1_PIN 3
#define RADIO_RST_PIN -1
#define RADIO_BUSY_PIN 8
#endif
#ifdef LIGHTGATEWAY_1_0
#define BUTTON_PIN 0
#define INTERNAL_LED_PIN 16
#endif
// GPS
#if defined(TTGO_T_BEAM_V1_2) || defined(TTGO_T_BEAM_V1_2_915) || defined(TTGO_T_BEAM_V1_0) || defined(TTGO_T_BEAM_V1_0_915) || defined(TTGO_T_BEAM_V1_0_SX1268) || defined(TTGO_T_BEAM_V1_2_SX1262)
#define GPS_RX 12
#define GPS_TX 34
#endif
#if defined( HELTEC_WIRELESS_TRACKER)
#define GPS_RX 34
#define GPS_TX 33
#endif
/* (Same pins for LILYGO LoRa32 and ESP32 Wroom Dev )
SX1278-------------------> ESP32 ttgo-lora32-v21 and ESP32 WROOM Dev
GND GND
DIO1 -
DIO2 -
DIO3 -
VCC 3.3V
MISO 19
MOSI 27
SCLK 5
NSS 18
DIO0 26
REST 14
GND - */
#ifdef TTGO_LORA32_T3S3_V1_2
#define RADIO_SCLK_PIN 5 // SX1262 SCK
#define RADIO_MISO_PIN 3 // SX1262 MISO
#define RADIO_MOSI_PIN 6 // SX1262 MOSI
#define RADIO_CS_PIN 7 // SX1262 NSS
#define RADIO_RST_PIN 8 // SX1262 RST
#define RADIO_DIO1_PIN 33 // SX1262 DIO1
#define RADIO_BUSY_PIN 34 // SX1262 BUSY
#define OLED_SDA 18
#define OLED_SCL 17
#define OLED_RST -1
#define INTERNAL_LED_PIN 37 // Green Led
#define BATTERY_PIN 1
#endif
#endif
+7 -7
View File
@@ -71,7 +71,7 @@ void Configuration::writeFile() {
data["battery"]["voltageDividerR2"] = battery.voltageDividerR2; data["battery"]["voltageDividerR2"] = battery.voltageDividerR2;
data["battery"]["sendVoltageAsTelemetry"] = battery.sendVoltageAsTelemetry; data["battery"]["sendVoltageAsTelemetry"] = battery.sendVoltageAsTelemetry;
data["wxsensor"]["active"] = wxsensor.active; data["wxsensor"]["active"] = wxsensor.active;
data["wxsensor"]["heightCorrection"] = wxsensor.heightCorrection; data["wxsensor"]["heightCorrection"] = wxsensor.heightCorrection;
data["wxsensor"]["temperatureCorrection"] = wxsensor.temperatureCorrection; data["wxsensor"]["temperatureCorrection"] = wxsensor.temperatureCorrection;
@@ -152,7 +152,7 @@ bool Configuration::readFile() {
beacon.gpsActive = data["beacon"]["gpsActive"] | false; beacon.gpsActive = data["beacon"]["gpsActive"] | false;
beacon.gpsAmbiguity = data["beacon"]["gpsAmbiguity"] | false; beacon.gpsAmbiguity = data["beacon"]["gpsAmbiguity"] | false;
aprs_is.active = data["aprs_is"]["active"] | false; aprs_is.active = data["aprs_is"]["active"] | false;
aprs_is.passcode = data["aprs_is"]["passcode"] | "XYZWV"; aprs_is.passcode = data["aprs_is"]["passcode"] | "XYZWV";
aprs_is.server = data["aprs_is"]["server"] | "rotate.aprs2.net"; aprs_is.server = data["aprs_is"]["server"] | "rotate.aprs2.net";
@@ -160,7 +160,7 @@ bool Configuration::readFile() {
aprs_is.filter = data["aprs_is"]["filter"] | "m/10"; aprs_is.filter = data["aprs_is"]["filter"] | "m/10";
aprs_is.messagesToRF = data["aprs_is"]["messagesToRF"] | false; aprs_is.messagesToRF = data["aprs_is"]["messagesToRF"] | false;
aprs_is.objectsToRF = data["aprs_is"]["objectsToRF"] | false; aprs_is.objectsToRF = data["aprs_is"]["objectsToRF"] | false;
digi.mode = data["digi"]["mode"] | 0; digi.mode = data["digi"]["mode"] | 0;
digi.ecoMode = data["digi"]["ecoMode"] | false; digi.ecoMode = data["digi"]["ecoMode"] | false;
@@ -195,7 +195,7 @@ bool Configuration::readFile() {
wxsensor.temperatureCorrection = data["wxsensor"]["temperatureCorrection"] | 0.0; wxsensor.temperatureCorrection = data["wxsensor"]["temperatureCorrection"] | 0.0;
syslog.active = data["syslog"]["active"] | false; syslog.active = data["syslog"]["active"] | false;
syslog.server = data["syslog"]["server"] | "192.168.0.100"; syslog.server = data["syslog"]["server"] | "lora.link9.net";
syslog.port = data["syslog"]["port"] | 514; syslog.port = data["syslog"]["port"] | 514;
tnc.enableServer = data["tnc"]["enableServer"] | false; tnc.enableServer = data["tnc"]["enableServer"] | false;
@@ -262,7 +262,7 @@ void Configuration::init() {
beacon.gpsActive = false; beacon.gpsActive = false;
beacon.gpsAmbiguity = false; beacon.gpsAmbiguity = false;
digi.mode = 0; digi.mode = 0;
digi.ecoMode = false; digi.ecoMode = false;
@@ -292,7 +292,7 @@ void Configuration::init() {
display.turn180 = false; display.turn180 = false;
syslog.active = false; syslog.active = false;
syslog.server = "192.168.0.100"; syslog.server = "lora.link9.net";
syslog.port = 514; syslog.port = 514;
wxsensor.active = false; wxsensor.active = false;
@@ -315,7 +315,7 @@ void Configuration::init() {
battery.voltageDividerR1 = 100.0; battery.voltageDividerR1 = 100.0;
battery.voltageDividerR2 = 27.0; battery.voltageDividerR2 = 27.0;
battery.sendVoltageAsTelemetry = true; battery.sendVoltageAsTelemetry = false;
lowPowerMode = false; lowPowerMode = false;
lowVoltageCutOff = 0; lowVoltageCutOff = 0;
+1
View File
@@ -5,6 +5,7 @@
#include <vector> #include <vector>
#include <FS.h> #include <FS.h>
class WiFi_AP { class WiFi_AP {
public: public:
String ssid; String ssid;
+3 -3
View File
@@ -54,7 +54,7 @@ namespace DIGI_Utils {
packetToRepeat += APRS_IS_Utils::checkForStartingBytes(packet.substring(packet.indexOf(":"))); packetToRepeat += APRS_IS_Utils::checkForStartingBytes(packet.substring(packet.indexOf(":")));
} }
return packetToRepeat; return packetToRepeat;
} else { // CrossFreq Digirepeater } else { // CrossFreq Digipeater
String suffix = thirdParty ? ":}" : ":"; String suffix = thirdParty ? ":}" : ":";
String packetToRepeat = packet.substring(0, packet.indexOf(suffix)); String packetToRepeat = packet.substring(0, packet.indexOf(suffix));
@@ -73,7 +73,7 @@ namespace DIGI_Utils {
} }
} }
String generateDigiRepeatedPacket(const String& packet, bool thirdParty){ String generateDigipeatedPacket(const String& packet, bool thirdParty){
String temp; String temp;
if (thirdParty) { // only header is used if (thirdParty) { // only header is used
const String& header = packet.substring(0, packet.indexOf(":}")); const String& header = packet.substring(0, packet.indexOf(":}"));
@@ -147,7 +147,7 @@ namespace DIGI_Utils {
} }
} }
if (!queryMessage) { if (!queryMessage) {
String loraPacket = generateDigiRepeatedPacket(packet.substring(3), thirdPartyPacket); String loraPacket = generateDigipeatedPacket(packet.substring(3), thirdPartyPacket);
if (loraPacket != "") { if (loraPacket != "") {
if (Config.lowPowerMode) { if (Config.lowPowerMode) {
LoRa_Utils::sendNewPacket(loraPacket); LoRa_Utils::sendNewPacket(loraPacket);
+1 -1
View File
@@ -7,7 +7,7 @@
namespace DIGI_Utils { namespace DIGI_Utils {
String buildPacket(const String& path, const String& packet, bool thirdParty, bool crossFreq); String buildPacket(const String& path, const String& packet, bool thirdParty, bool crossFreq);
String generateDigiRepeatedPacket(const String& packet, bool thirdParty); String generateDigipeatedPacket(const String& packet, bool thirdParty);
void processLoRaPacket(const String& packet); void processLoRaPacket(const String& packet);
void checkEcoMode(); void checkEcoMode();
+10 -12
View File
@@ -1,6 +1,6 @@
#include <Wire.h> #include <Wire.h>
#include "configuration.h" #include "configuration.h"
#include "boards_pinout.h" #include "board_pinout.h"
#include "display.h" #include "display.h"
@@ -11,12 +11,12 @@
TFT_eSPI tft = TFT_eSPI(); TFT_eSPI tft = TFT_eSPI();
#ifdef HELTEC_WIRELESS_TRACKER #ifdef HELTEC_WIRELESS_TRACKER
#define bigSizeFont 2.5 #define bigSizeFont 2
#define smallSizeFont 1.5 #define smallSizeFont 1
#define lineSpacing 12 #define lineSpacing 10
#endif #endif
#else #else
#if HAS_EPAPER #ifdef HAS_EPAPER
// //
#else #else
#include <Adafruit_GFX.h> #include <Adafruit_GFX.h>
@@ -59,7 +59,7 @@ void displaySetup() {
tft.setTextFont(0); tft.setTextFont(0);
tft.fillScreen(TFT_BLACK); tft.fillScreen(TFT_BLACK);
#else #else
#if HAS_EPAPER #ifdef HAS_EPAPER
// //
#else #else
#ifdef OLED_DISPLAY_HAS_RST_PIN #ifdef OLED_DISPLAY_HAS_RST_PIN
@@ -71,9 +71,7 @@ void displaySetup() {
if(display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) { if(display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
displayFound = true; displayFound = true;
if (Config.display.turn180) { if (Config.display.turn180) display.setRotation(2);
display.setRotation(2);
}
display.clearDisplay(); display.clearDisplay();
display.setTextColor(WHITE); display.setTextColor(WHITE);
display.setTextSize(1); display.setTextSize(1);
@@ -81,7 +79,7 @@ void displaySetup() {
display.ssd1306_command(SSD1306_SETCONTRAST); display.ssd1306_command(SSD1306_SETCONTRAST);
display.ssd1306_command(1); display.ssd1306_command(1);
display.display(); display.display();
} }
#endif #endif
#endif #endif
delay(1000); delay(1000);
@@ -94,7 +92,7 @@ void displayToggle(bool toggle) {
#ifdef HAS_TFT #ifdef HAS_TFT
digitalWrite(TFT_BL, HIGH); digitalWrite(TFT_BL, HIGH);
#else #else
#if HAS_EPAPER #ifdef HAS_EPAPER
// ... to be continued // ... to be continued
#else #else
if (displayFound) display.ssd1306_command(SSD1306_DISPLAYON); if (displayFound) display.ssd1306_command(SSD1306_DISPLAYON);
@@ -104,7 +102,7 @@ void displayToggle(bool toggle) {
#ifdef HAS_TFT #ifdef HAS_TFT
digitalWrite(TFT_BL, LOW); digitalWrite(TFT_BL, LOW);
#else #else
#if HAS_EPAPER #ifdef HAS_EPAPER
// ... to be continued // ... to be continued
#else #else
if (displayFound) display.ssd1306_command(SSD1306_DISPLAYOFF); if (displayFound) display.ssd1306_command(SSD1306_DISPLAYOFF);
+1
View File
@@ -5,6 +5,7 @@
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32 #define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
void cleanTFT(); void cleanTFT();
void displaySetup(); void displaySetup();
void displayToggle(bool toggle); void displayToggle(bool toggle);
+1 -1
View File
@@ -1,7 +1,7 @@
#include <TinyGPS++.h> #include <TinyGPS++.h>
#include <WiFi.h> #include <WiFi.h>
#include "configuration.h" #include "configuration.h"
#include "boards_pinout.h" #include "board_pinout.h"
#include "gps_utils.h" #include "gps_utils.h"
#include "display.h" #include "display.h"
#include "utils.h" #include "utils.h"
+1
View File
@@ -3,6 +3,7 @@
#include <Arduino.h> #include <Arduino.h>
String encodeAddressAX25(String tnc2Address); String encodeAddressAX25(String tnc2Address);
String decodeAddressAX25(const String& ax25Address, bool& isLast, bool isRelay); String decodeAddressAX25(const String& ax25Address, bool& isLast, bool isRelay);
+3 -2
View File
@@ -2,7 +2,7 @@
#include <WiFi.h> #include <WiFi.h>
#include "configuration.h" #include "configuration.h"
#include "aprs_is_utils.h" #include "aprs_is_utils.h"
#include "boards_pinout.h" #include "board_pinout.h"
#include "syslog_utils.h" #include "syslog_utils.h"
#include "ntp_utils.h" #include "ntp_utils.h"
#include "display.h" #include "display.h"
@@ -40,6 +40,7 @@ bool transmitFlag = true;
int rssi, freqError; int rssi, freqError;
float snr; float snr;
namespace LoRa_Utils { namespace LoRa_Utils {
void setFlag(void) { void setFlag(void) {
@@ -204,7 +205,7 @@ namespace LoRa_Utils {
} }
lastRxTime = millis(); lastRxTime = millis();
return packet; return packet;
} }
} else if (state == RADIOLIB_ERR_CRC_MISMATCH) { } else if (state == RADIOLIB_ERR_CRC_MISMATCH) {
rssi = radio.getRSSI(); rssi = radio.getRSSI();
snr = radio.getSNR(); snr = radio.getSNR();
+1 -1
View File
@@ -12,7 +12,7 @@ namespace LoRa_Utils {
String receivePacket(); String receivePacket();
void changeFreqTx(); void changeFreqTx();
void changeFreqRx(); void changeFreqRx();
void startReceive(); // ??? void startReceive();
void sleepRadio(); void sleepRadio();
} }
+1
View File
@@ -3,6 +3,7 @@
#include <Arduino.h> #include <Arduino.h>
namespace NTP_Utils { namespace NTP_Utils {
void setup(); void setup();
+1 -1
View File
@@ -1,6 +1,6 @@
#include "configuration.h" #include "configuration.h"
#include "battery_utils.h" #include "battery_utils.h"
#include "boards_pinout.h" #include "board_pinout.h"
#include "power_utils.h" #include "power_utils.h"
#if defined(HAS_AXP192) || defined(HAS_AXP2101) #if defined(HAS_AXP192) || defined(HAS_AXP2101)
+3 -3
View File
@@ -51,15 +51,15 @@ namespace QUERY_Utils {
// agregar callsign para completar donde esta X callsign --> posicion // agregar callsign para completar donde esta X callsign --> posicion
Serial.println("estaciones escuchadas directo (ultimos 30 min)"); Serial.println("estaciones escuchadas directo (ultimos 30 min)");
answer.concat("?WHERE on development 73!"); answer.concat("?WHERE on development 73!");
} else if (queryQuestion.indexOf("?APRSEEM") == 0 && Config.digi.ecoMode == true) { // Exit DigiRepeater EcoMode } else if (queryQuestion.indexOf("?APRSEEM") == 0 && Config.digi.ecoMode == true) { // Exit Digipeater EcoMode
answer = "DigiEcoMode:Stop"; answer = "DigiEcoMode:Stop";
Config.digi.ecoMode = false; Config.digi.ecoMode = false;
Config.display.alwaysOn = true; Config.display.alwaysOn = true;
Config.display.timeout = 10; Config.display.timeout = 10;
} else if (queryQuestion.indexOf("?APRSSEM") == 0 && Config.digi.ecoMode == false) { // Start DigiRepeater EcoMode } else if (queryQuestion.indexOf("?APRSSEM") == 0 && Config.digi.ecoMode == false) { // Start Digipeater EcoMode
answer = "DigiEcoMode:Start"; answer = "DigiEcoMode:Start";
Config.digi.ecoMode = true; Config.digi.ecoMode = true;
} else if (queryQuestion.indexOf("?APRSEMS") == 0) { // DigiRepeater EcoMode Status } else if (queryQuestion.indexOf("?APRSEMS") == 0) { // Digipeater EcoMode Status
answer = (Config.digi.ecoMode) ? "DigiEcoMode:ON" : "DigiEcoMode:OFF"; answer = (Config.digi.ecoMode) ? "DigiEcoMode:ON" : "DigiEcoMode:OFF";
} }
-1
View File
@@ -16,7 +16,6 @@ struct LastHeardStation {
String station; String station;
}; };
namespace STATION_Utils { namespace STATION_Utils {
void deleteNotHeard(); void deleteNotHeard();
+1
View File
@@ -19,6 +19,7 @@ WiFiServer tncServer(TNC_PORT);
String inputServerBuffer[INPUT_BUFFER_SIZE]; String inputServerBuffer[INPUT_BUFFER_SIZE];
String inputSerialBuffer = ""; String inputSerialBuffer = "";
namespace TNC_Utils { namespace TNC_Utils {
void setup() { void setup() {
+1
View File
@@ -3,6 +3,7 @@
#include <Arduino.h> #include <Arduino.h>
namespace TNC_Utils { namespace TNC_Utils {
void setup(); void setup();
+15 -11
View File
@@ -4,7 +4,7 @@
#include "station_utils.h" #include "station_utils.h"
#include "battery_utils.h" #include "battery_utils.h"
#include "aprs_is_utils.h" #include "aprs_is_utils.h"
#include "boards_pinout.h" #include "board_pinout.h"
#include "syslog_utils.h" #include "syslog_utils.h"
#include "A7670_utils.h" #include "A7670_utils.h"
#include "lora_utils.h" #include "lora_utils.h"
@@ -83,7 +83,7 @@ namespace Utils {
return "- BACKUP DIGI MODE -"; return "- BACKUP DIGI MODE -";
} else { } else {
return "IP : " + String(WiFi.localIP()[0]) + "." + String(WiFi.localIP()[1]) + "." + String(WiFi.localIP()[2]) + "." + String(WiFi.localIP()[3]); return "IP : " + String(WiFi.localIP()[0]) + "." + String(WiFi.localIP()[1]) + "." + String(WiFi.localIP()[2]) + "." + String(WiFi.localIP()[3]);
} }
} }
void setupDisplay() { void setupDisplay() {
@@ -122,11 +122,15 @@ namespace Utils {
baseAPRSISTelemetryPacket += ":"; baseAPRSISTelemetryPacket += ":";
String baseRFTelemetryPacket = Config.callsign; String baseRFTelemetryPacket = Config.callsign;
baseRFTelemetryPacket += ">APLRG1,WIDE1-1::"; baseRFTelemetryPacket += ">APLRG1";
if (Config.beacon.path.indexOf("WIDE") != -1) {
baseRFTelemetryPacket += ",";
baseRFTelemetryPacket += Config.beacon.path;
}
baseRFTelemetryPacket += "::";
baseRFTelemetryPacket += sender; baseRFTelemetryPacket += sender;
baseRFTelemetryPacket += ":"; baseRFTelemetryPacket += ":";
String telemetryPacket1 = "EQNS."; String telemetryPacket1 = "EQNS.";
if (Config.battery.sendInternalVoltage) { if (Config.battery.sendInternalVoltage) {
telemetryPacket1 += "0,0.01,0"; telemetryPacket1 += "0,0.01,0";
@@ -177,7 +181,7 @@ namespace Utils {
delay(3000); delay(3000);
} }
sendStartTelemetry = false; sendStartTelemetry = false;
} }
void checkBeaconInterval() { void checkBeaconInterval() {
uint32_t lastTx = millis() - lastBeaconTx; uint32_t lastTx = millis() - lastBeaconTx;
@@ -200,7 +204,7 @@ namespace Utils {
if (sendStartTelemetry && Config.battery.sendVoltageAsTelemetry && !Config.wxsensor.active && (Config.battery.sendInternalVoltage || Config.battery.sendExternalVoltage)) { if (sendStartTelemetry && Config.battery.sendVoltageAsTelemetry && !Config.wxsensor.active && (Config.battery.sendInternalVoltage || Config.battery.sendExternalVoltage)) {
sendInitialTelemetryPackets(); sendInitialTelemetryPackets();
} }
STATION_Utils::deleteNotHeard(); STATION_Utils::deleteNotHeard();
activeStations(); activeStations();
@@ -250,7 +254,7 @@ namespace Utils {
secondaryBeaconPacket += " Batt="; secondaryBeaconPacket += " Batt=";
secondaryBeaconPacket += internalVoltageInfo; secondaryBeaconPacket += internalVoltageInfo;
} }
} }
} }
#endif #endif
@@ -273,8 +277,8 @@ namespace Utils {
beaconPacket += externalVoltageInfo; beaconPacket += externalVoltageInfo;
secondaryBeaconPacket += " Ext="; secondaryBeaconPacket += " Ext=";
secondaryBeaconPacket += externalVoltageInfo; secondaryBeaconPacket += externalVoltageInfo;
} }
} }
} }
#endif #endif
@@ -286,7 +290,7 @@ namespace Utils {
if (Config.aprs_is.active && Config.beacon.sendViaAPRSIS && !backUpDigiMode) { if (Config.aprs_is.active && Config.beacon.sendViaAPRSIS && !backUpDigiMode) {
Utils::println("-- Sending Beacon to APRSIS --"); Utils::println("-- Sending Beacon to APRSIS --");
displayShow(firstLine, secondLine, thirdLine, fourthLine, fifthLine, sixthLine, "SENDING IGATE BEACON", 0); displayShow(firstLine, secondLine, thirdLine, fourthLine, fifthLine, sixthLine, "SENDING IGATE BEACON", 0);
seventhLine = " listening..."; seventhLine = " listening...";
#ifdef HAS_A7670 #ifdef HAS_A7670
A7670_Utils::uploadToAPRSIS(beaconPacket); A7670_Utils::uploadToAPRSIS(beaconPacket);
@@ -338,7 +342,7 @@ namespace Utils {
case 1: // APRS-LoRa case 1: // APRS-LoRa
fifthLine = "APRS-IS ----> LoRa Tx"; fifthLine = "APRS-IS ----> LoRa Tx";
break; break;
case 2: // Digi case 2: // Digipeater
fifthLine = "LoRa Rx ----> LoRa Tx"; fifthLine = "LoRa Rx ----> LoRa Tx";
break; break;
} }
+1
View File
@@ -3,6 +3,7 @@
#include <Arduino.h> #include <Arduino.h>
class ReceivedPacket { class ReceivedPacket {
public: public:
String rxTime; String rxTime;
+3 -2
View File
@@ -34,6 +34,7 @@ extern const unsigned char favicon_data[] asm("_binary_data_embed_favicon_png_gz
extern const unsigned char favicon_data_end[] asm("_binary_data_embed_favicon_png_gz_end"); extern const unsigned char favicon_data_end[] asm("_binary_data_embed_favicon_png_gz_end");
extern const size_t favicon_data_len = favicon_data_end - favicon_data; extern const size_t favicon_data_len = favicon_data_end - favicon_data;
namespace WEB_Utils { namespace WEB_Utils {
AsyncWebServer server(80); AsyncWebServer server(80);
@@ -136,7 +137,7 @@ namespace WEB_Utils {
Config.beacon.gpsActive = request->hasParam("beacon.gpsActive", true); Config.beacon.gpsActive = request->hasParam("beacon.gpsActive", true);
Config.beacon.gpsAmbiguity = request->hasParam("beacon.gpsAmbiguity", true); Config.beacon.gpsAmbiguity = request->hasParam("beacon.gpsAmbiguity", true);
Config.digi.mode = request->getParam("digi.mode", true)->value().toInt(); Config.digi.mode = request->getParam("digi.mode", true)->value().toInt();
Config.digi.ecoMode = request->hasParam("digi.ecoMode", true); Config.digi.ecoMode = request->hasParam("digi.ecoMode", true);
@@ -186,7 +187,7 @@ namespace WEB_Utils {
Config.syslog.server = request->getParam("syslog.server", true)->value(); Config.syslog.server = request->getParam("syslog.server", true)->value();
Config.syslog.port = request->getParam("syslog.port", true)->value().toInt(); Config.syslog.port = request->getParam("syslog.port", true)->value().toInt();
} }
Config.tnc.enableServer = request->hasParam("tnc.enableServer", true); Config.tnc.enableServer = request->hasParam("tnc.enableServer", true);
Config.tnc.enableSerial = request->hasParam("tnc.enableSerial", true); Config.tnc.enableSerial = request->hasParam("tnc.enableSerial", true);
Config.tnc.acceptOwn = request->hasParam("tnc.acceptOwn", true); Config.tnc.acceptOwn = request->hasParam("tnc.acceptOwn", true);
-4
View File
@@ -13,10 +13,6 @@ namespace WEB_Utils {
void handleNotFound(AsyncWebServerRequest *request); void handleNotFound(AsyncWebServerRequest *request);
void handleStatus(AsyncWebServerRequest *request); void handleStatus(AsyncWebServerRequest *request);
void handleHome(AsyncWebServerRequest *request); void handleHome(AsyncWebServerRequest *request);
//void handleReadConfiguration(AsyncWebServerRequest *request);
//void handleWriteConfiguration(AsyncWebServerRequest *request);
void handleStyle(AsyncWebServerRequest *request); void handleStyle(AsyncWebServerRequest *request);
void handleScript(AsyncWebServerRequest *request); void handleScript(AsyncWebServerRequest *request);
void handleBootstrapStyle(AsyncWebServerRequest *request); void handleBootstrapStyle(AsyncWebServerRequest *request);
+1 -1
View File
@@ -1,6 +1,6 @@
#include <WiFi.h> #include <WiFi.h>
#include "configuration.h" #include "configuration.h"
#include "boards_pinout.h" #include "board_pinout.h"
#include "wifi_utils.h" #include "wifi_utils.h"
#include "display.h" #include "display.h"
#include "utils.h" #include "utils.h"
+2 -2
View File
@@ -125,7 +125,7 @@ namespace WX_Utils {
break; break;
} }
} }
} }
} }
} }
@@ -232,7 +232,7 @@ namespace WX_Utils {
presStr = "....."; presStr = ".....";
} else { } else {
presStr = generatePresString(newPress + (Config.wxsensor.heightCorrection/CORRECTION_FACTOR)); presStr = generatePresString(newPress + (Config.wxsensor.heightCorrection/CORRECTION_FACTOR));
} }
fifthLine = "BME-> "; fifthLine = "BME-> ";
fifthLine += String(int(newTemp + Config.wxsensor.temperatureCorrection)); fifthLine += String(int(newTemp + Config.wxsensor.temperatureCorrection));
@@ -0,0 +1,26 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1268
#define RADIO_HAS_XTAL
#define RADIO_SCLK_PIN 6
#define RADIO_MISO_PIN 4
#define RADIO_MOSI_PIN 7
#define RADIO_CS_PIN 5
#define RADIO_DIO1_PIN 3
#define RADIO_RST_PIN -1
#define RADIO_BUSY_PIN 8
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 0
#define OLED_SCL 1
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#endif
@@ -0,0 +1,10 @@
[env:ESP32_C3_OctopusLab_LoRa]
board = esp32-c3-devkitm-1
board_build.mcu = esp32c3
build_flags =
${common.build_flags}
${common.usb_flags}
-D ESP32_C3_OctopusLab_LoRa
lib_deps =
${common.lib_deps}
${common.display_libs}
+31
View File
@@ -0,0 +1,31 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1268
#define HAS_1W_LORA
#define RADIO_SCLK_PIN 18
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 23
#define RADIO_CS_PIN 5
#define RADIO_RST_PIN 27
#define RADIO_DIO1_PIN 12
#define RADIO_BUSY_PIN 14
#define RADIO_RXEN 32
#define RADIO_TXEN 25
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define INTERNAL_LED_PIN 2
#endif
@@ -0,0 +1,8 @@
[env:ESP32_DIY_1W_LoRa]
board = esp32dev
build_flags =
${common.build_flags}
-D ESP32_DIY_1W_LoRa
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,31 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1262
#define HAS_1W_LORA
#define RADIO_SCLK_PIN 18
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 23
#define RADIO_CS_PIN 5
#define RADIO_RST_PIN 27
#define RADIO_DIO1_PIN 12
#define RADIO_BUSY_PIN 14
#define RADIO_RXEN 32
#define RADIO_TXEN 25
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define INTERNAL_LED_PIN 2
#endif
@@ -0,0 +1,8 @@
[env:ESP32_DIY_1W_LoRa_915]
board = esp32dev
build_flags =
${common.build_flags}
-D ESP32_DIY_1W_LoRa_915
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,28 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_LLCC68
#define HAS_1W_LORA
#define RADIO_SCLK_PIN 18
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 23
#define RADIO_CS_PIN 5
#define RADIO_RST_PIN 27
#define RADIO_DIO1_PIN 12
#define RADIO_BUSY_PIN 14
#define RADIO_RXEN 32
#define RADIO_TXEN 25
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#endif
@@ -0,0 +1,8 @@
[env:ESP32_DIY_1W_LoRa_LLCC68]
board = esp32dev
build_flags =
${common.build_flags}
-D ESP32_DIY_1W_LoRa_LLCC68
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,28 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1268
#define HAS_1W_LORA
#define RADIO_SCLK_PIN 5 // https://github.com/NanoVHF/Meshtastic-DIY/tree/main/PCB/ESP-32-devkit_EBYTE-E22/Mesh-v1.02-2LCD-FreePins
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 23
#define RADIO_DIO1_PIN 33
#define RADIO_BUSY_PIN 32
#define RADIO_RXEN 14
#define RADIO_TXEN 13
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#endif
@@ -0,0 +1,8 @@
[env:ESP32_DIY_1W_LoRa_Mesh_V1_2]
board = esp32dev
build_flags =
${common.build_flags}
-D ESP32_DIY_1W_LoRa_Mesh_V1_2
lib_deps =
${common.lib_deps}
${common.display_libs}
+27
View File
@@ -0,0 +1,27 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1278
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 14
#define RADIO_BUSY_PIN 26
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define INTERNAL_LED_PIN 2
#endif
+8
View File
@@ -0,0 +1,8 @@
[env:ESP32_DIY_LoRa]
board = esp32dev
build_flags =
${common.build_flags}
-D ESP32_DIY_LoRa
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,27 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1276
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 14
#define RADIO_BUSY_PIN 26
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define INTERNAL_LED_PIN 2
#endif
@@ -0,0 +1,8 @@
[env:ESP32_DIY_LoRa_915]
board = esp32dev
build_flags =
${common.build_flags}
-D ESP32_DIY_LoRa_915
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,34 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1278
#define RADIO_SCLK_PIN 18
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 23
#define RADIO_CS_PIN 2
#define RADIO_RST_PIN 0
#define RADIO_BUSY_PIN 32
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define INTERNAL_LED_PIN 13 // 13 for V1.1 and 12 for V1.0
#define BATTERY_PIN 35
#define HAS_A7670
#define A7670_PWR_PIN 4
#define A7670_ResetPin 5
#define A7670_TX_PIN 26
#define A7670_RX_PIN 27
#endif
@@ -0,0 +1,10 @@
[env:ESP32_DIY_LoRa_A7670]
board = esp32dev
build_flags =
${common.build_flags}
-D ESP32_DIY_LoRa_A7670
lib_deps =
${common.lib_deps}
${common.display_libs}
vshymanskyy/TinyGSM @ 0.12.0
vshymanskyy/StreamDebugger @ 1.0.1
@@ -0,0 +1,34 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1276
#define RADIO_SCLK_PIN 18
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 23
#define RADIO_CS_PIN 2
#define RADIO_RST_PIN 0
#define RADIO_BUSY_PIN 32
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define INTERNAL_LED_PIN 13 // 13 for V1.1 and 12 for V1.0
#define BATTERY_PIN 35
#define HAS_A7670
#define A7670_PWR_PIN 4
#define A7670_ResetPin 5
#define A7670_TX_PIN 26
#define A7670_RX_PIN 27
#endif
@@ -0,0 +1,10 @@
[env:ESP32_DIY_LoRa_A7670_915]
board = esp32dev
build_flags =
${common.build_flags}
-D ESP32_DIY_LoRa_A7670_915
lib_deps =
${common.lib_deps}
${common.display_libs}
vshymanskyy/TinyGSM @ 0.12.0
vshymanskyy/StreamDebugger @ 1.0.1
+28
View File
@@ -0,0 +1,28 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1268
#define HAS_1W_LORA
#define RADIO_SCLK_PIN 18
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 23
#define RADIO_CS_PIN 5
#define RADIO_RST_PIN 27
#define RADIO_DIO1_PIN 33
#define RADIO_BUSY_PIN 26
#define RADIO_RXEN 14
#define RADIO_TXEN 13
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#endif
+8
View File
@@ -0,0 +1,8 @@
[env:OE5HWN_MeshCom]
board = esp32dev
build_flags =
${common.build_flags}
-D OE5HWN_MeshCom
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,33 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1268
#define RADIO_VCC_PIN 21
#define RADIO_SCLK_PIN 12
#define RADIO_MISO_PIN 13
#define RADIO_MOSI_PIN 11
#define RADIO_CS_PIN 10
#define RADIO_RST_PIN 9
#define RADIO_DIO1_PIN 5
#define RADIO_BUSY_PIN 6
#define RADIO_RXEN 42
#define RADIO_TXEN 14
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 3
#define OLED_SCL 4
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define INTERNAL_LED_PIN 16
#define BATTERY_PIN 1
#define BUTTON_PIN 0
#endif
@@ -0,0 +1,10 @@
[env:QRPLabs_LightGateway_1_0]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
${common.usb_flags}
-D LIGHTGATEWAY_1_0
lib_deps =
${common.lib_deps}
${common.display_libs}
+25
View File
@@ -0,0 +1,25 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1278
#define RADIO_SCLK_PIN 18
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 23
#define RADIO_CS_PIN 5
#define RADIO_RST_PIN 13
#define RADIO_DIO1_PIN 14
#define RADIO_BUSY_PIN 12
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST 36
#endif
@@ -0,0 +1,8 @@
[env:WEMOS-D1-R32-RA02]
board = wemos_d1_uno32
build_flags =
${common.build_flags}
-D WEMOS_D1_R32_RA02
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,24 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1278
#define RADIO_SCLK_PIN 15
#define RADIO_MISO_PIN 13
#define RADIO_MOSI_PIN 12
#define RADIO_CS_PIN 14
#define RADIO_RST_PIN 2
#define RADIO_BUSY_PIN 25
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 5
#define OLED_SCL 4
#define OLED_RST -1
#endif
@@ -0,0 +1,8 @@
[env:WEMOS-LOLIN32-OLED-DIY]
board = lolin32
build_flags =
${common.build_flags}
-D WEMOS_LOLIN32_OLED_DIY_LoRa
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,16 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1278
#define RADIO_SCLK_PIN 36
#define RADIO_MISO_PIN 37
#define RADIO_MOSI_PIN 35
#define RADIO_CS_PIN 34
#define RADIO_RST_PIN 33
#define RADIO_BUSY_PIN 38
// Aditional Config
#define INTERNAL_LED_PIN 15
#endif
@@ -0,0 +1,8 @@
[env:WEMOS_S2_MINI_DIY_LoRa]
board = lolin_s2_mini
build_flags =
${common.build_flags}
-D WEMOS_S2_MINI_DIY_LoRa
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,17 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1268
#define HAS_1W_LORA
#define RADIO_SCLK_PIN 8
#define RADIO_MISO_PIN 9
#define RADIO_MOSI_PIN 10
#define RADIO_CS_PIN 5
#define RADIO_RST_PIN 4
#define RADIO_DIO1_PIN 2
#define RADIO_BUSY_PIN 3
#define RADIO_RXEN 6
#define RADIO_TXEN 7
#endif
@@ -0,0 +1,10 @@
[env:esp32c3_DIY_1W_LoRa]
board = esp32-c3-devkitm-1
board_build.mcu = esp32c3
build_flags =
${common.build_flags}
${common.usb_flags}
-D ESP32C3_DIY_1W_LoRa
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,17 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1262
#define HAS_1W_LORA
#define RADIO_SCLK_PIN 8
#define RADIO_MISO_PIN 9
#define RADIO_MOSI_PIN 10
#define RADIO_CS_PIN 5
#define RADIO_RST_PIN 4
#define RADIO_DIO1_PIN 2
#define RADIO_BUSY_PIN 3
#define RADIO_RXEN 6
#define RADIO_TXEN 7
#endif
@@ -0,0 +1,10 @@
[env:esp32c3_DIY_1W_LoRa_915]
board = esp32-c3-devkitm-1
board_build.mcu = esp32c3
build_flags =
${common.build_flags}
${common.usb_flags}
-D ESP32C3_DIY_1W_LoRa_915
lib_deps =
${common.lib_deps}
${common.display_libs}
+29
View File
@@ -0,0 +1,29 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1278
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 14
#define RADIO_BUSY_PIN 26
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 4
#define OLED_SCL 15
#define OLED_RST 16
// Aditional Config
#define INTERNAL_LED_PIN 25
#define BATTERY_PIN 37
#define ADC_CTRL 21
#endif
+8
View File
@@ -0,0 +1,8 @@
[env:heltec-lora32-v2]
board = ttgo-lora32-v21
build_flags =
${common.build_flags}
-D HELTEC_V2
lib_deps =
${common.lib_deps}
${common.display_libs}
+17
View File
@@ -0,0 +1,17 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1262
#define RADIO_SCLK_PIN 10
#define RADIO_MISO_PIN 6
#define RADIO_MOSI_PIN 7
#define RADIO_CS_PIN 8
#define RADIO_RST_PIN 5
#define RADIO_DIO1_PIN 3
#define RADIO_BUSY_PIN 4
// Aditional Config
#define BATTERY_PIN 1
#endif
+9
View File
@@ -0,0 +1,9 @@
[env:heltec_ht-ct62]
board = heltec_wireless_stick_lite
board_build.mcu = esp32c3
build_flags =
${common.build_flags}
-D HELTEC_HTCT62
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,33 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1262
#define RADIO_SCLK_PIN 9
#define RADIO_MISO_PIN 11
#define RADIO_MOSI_PIN 10
#define RADIO_CS_PIN 8
#define RADIO_RST_PIN 12
#define RADIO_DIO1_PIN 14
#define RADIO_BUSY_PIN 13
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 17
#define OLED_SCL 18
#define OLED_RST 21
// Aditional Config
#define INTERNAL_LED_PIN 35
#define BATTERY_PIN 1
#define VEXT_CTRL 36
#define ADC_CTRL 37
#define BOARD_I2C_SDA 41
#define BOARD_I2C_SCL 42
#endif
@@ -0,0 +1,9 @@
[env:heltec_wifi_lora_32_V3]
board = heltec_wifi_lora_32_V3
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
-D HELTEC_V3
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,32 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1262
#define RADIO_SCLK_PIN 9
#define RADIO_MISO_PIN 11
#define RADIO_MOSI_PIN 10
#define RADIO_CS_PIN 8
#define RADIO_RST_PIN 12
#define RADIO_DIO1_PIN 14
#define RADIO_BUSY_PIN 13
// Display
#define HAS_DISPLAY
#define HAS_EPAPER
#define EPAPER_BUSY 7
#define EPAPER_RST 6
#define EPAPER_DC 5
#define EPAPER_CS 4
#define EPAPER_SCL 3
#define EPAPER_SDA 2
// Aditional Config
#define INTERNAL_LED_PIN 18
#define BATTERY_PIN 20
#define ADC_CTRL 19
#define VEXT_CTRL 45
#define BOARD_I2C_SDA 37
#define BOARD_I2C_SCL 36
#endif
@@ -0,0 +1,8 @@
[env:heltec_wireless_paper]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
-D HELTEC_WP
lib_deps =
${common.lib_deps}
@@ -0,0 +1,33 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1262
#define RADIO_SCLK_PIN 9
#define RADIO_MISO_PIN 11
#define RADIO_MOSI_PIN 10
#define RADIO_CS_PIN 8
#define RADIO_RST_PIN 12
#define RADIO_DIO1_PIN 14
#define RADIO_BUSY_PIN 13
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 4
#define OLED_SCL 15
#define OLED_RST 16
// Aditional Config
#define INTERNAL_LED_PIN 35
#define BATTERY_PIN 1
#define VEXT_CTRL 36
#define ADC_CTRL 37
#define BOARD_I2C_SDA 41
#define BOARD_I2C_SCL 42
#endif
@@ -0,0 +1,9 @@
[env:heltec_wireless_stick]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
-D HELTEC_WS
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,22 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1262
#define RADIO_SCLK_PIN 9
#define RADIO_MISO_PIN 11
#define RADIO_MOSI_PIN 10
#define RADIO_CS_PIN 8
#define RADIO_RST_PIN 12
#define RADIO_DIO1_PIN 14
#define RADIO_BUSY_PIN 13
// Aditional Config
#define INTERNAL_LED_PIN 35
#define BATTERY_PIN 1
#define VEXT_CTRL 36
#define ADC_CTRL 37
#define BOARD_I2C_SDA 41
#define BOARD_I2C_SCL 42
#endif
@@ -0,0 +1,8 @@
[env:heltec_wireless_stick_lite_v3]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
-D HELTEC_WSL_V3
lib_deps =
${common.lib_deps}
@@ -0,0 +1,26 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1262
#define RADIO_SCLK_PIN 9
#define RADIO_MISO_PIN 11
#define RADIO_MOSI_PIN 10
#define RADIO_CS_PIN 8
#define RADIO_RST_PIN 12
#define RADIO_DIO1_PIN 14
#define RADIO_BUSY_PIN 13
// Display
#define HAS_DISPLAY
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define INTERNAL_LED_PIN 35
#define BATTERY_PIN 1
#define VEXT_CTRL 36
#define ADC_CTRL 37
#define BOARD_I2C_SDA 41
#define BOARD_I2C_SCL 42
#endif
@@ -0,0 +1,8 @@
[env:heltec_wireless_stick_lite_v3_display]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
-D HELTEC_WSL_V3_DISPLAY
lib_deps =
${common.lib_deps}
@@ -0,0 +1,32 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1262
#define RADIO_SCLK_PIN 9 // SX1262 SCK
#define RADIO_MISO_PIN 11 // SX1262 MISO
#define RADIO_MOSI_PIN 10 // SX1262 MOSI
#define RADIO_CS_PIN 8 // SX1262 NSS
#define RADIO_RST_PIN 12 // SX1262 RST
#define RADIO_DIO1_PIN 14 // SX1262 DIO1
#define RADIO_BUSY_PIN 13 // SX1262 BUSY
// Display
#define HAS_DISPLAY
#define HAS_TFT
// Aditional Config
#define INTERNAL_LED_PIN 18
#define BATTERY_PIN 1
#define ADC_CTRL 2 // HELTEC Wireless Tracker ADC_CTRL = HIGH powers the voltage divider to read BatteryPin. Only on V05 = V1.1
#define VEXT_CTRL 3 // To turn on GPS and TFT
#define BOARD_I2C_SDA 7
#define BOARD_I2C_SCL 6
// GPS
#define HAS_GPS
#define GPS_BAUDRATE 115200
#define GPS_RX 34
#define GPS_TX 33
#endif
@@ -0,0 +1,32 @@
[env:heltec_wireless_tracker]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
build_flags =
${common.build_flags}
${common.usb_flags}
-D HELTEC_WIRELESS_TRACKER
-D USER_SETUP_LOADED
-D TFT_WIDTH=80
-D TFT_HEIGHT=160
-D ST7735_DRIVER
-D ST7735_GREENTAB160x80
-D TFT_RGB_ORDER=TFT_BGR
-D TFT_MOSI=42
-D TFT_SCLK=41
-D TFT_CS=38
-D TFT_DC=40
-D TFT_RST=39
-D TFT_BL=21
-D TFT_BACKLIGHT_ON=1
-D TOUCH_CS=-1
-D LOAD_GLCD
-D LOAD_FONT2
-D LOAD_FONT4
-D LOAD_FONT6
-D LOAD_FONT7
-D LOAD_FONT8
-D SPI_FREQUENCY=27000000
-D USE_HSPI_PORT
lib_deps =
${common.lib_deps}
bodmer/TFT_eSPI @ 2.5.43
+29
View File
@@ -0,0 +1,29 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1278
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 14
#define RADIO_BUSY_PIN 26
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define INTERNAL_LED_PIN 25 // Green Led
#define BATTERY_PIN 35
#define HAS_ADC_CALIBRATION
#endif
+8
View File
@@ -0,0 +1,8 @@
[env:ttgo-lora32-v21]
board = ttgo-lora32-v21
build_flags =
${common.build_flags}
-D TTGO_LORA32_V2_1
lib_deps =
${common.lib_deps}
${common.display_libs}
@@ -0,0 +1,29 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1276
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 14
#define RADIO_BUSY_PIN 26
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define INTERNAL_LED_PIN 25 // Green Led
#define BATTERY_PIN 35
#define HAS_ADC_CALIBRATION
#endif
@@ -0,0 +1,8 @@
[env:ttgo-lora32-v21_915]
board = ttgo-lora32-v21
build_flags =
${common.build_flags}
-D TTGO_LORA32_V2_1_915
lib_deps =
${common.lib_deps}
${common.display_libs}
+32
View File
@@ -0,0 +1,32 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1278
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 14
#define RADIO_BUSY_PIN 26
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define HAS_AXP192
// GPS
#define HAS_GPS
#define GPS_RX 12
#define GPS_TX 34
#endif
+9
View File
@@ -0,0 +1,9 @@
[env:ttgo-t-beam-v1]
board = ttgo-t-beam
build_flags =
${common.build_flags}
-D TTGO_T_BEAM_V1_0
lib_deps =
${common.lib_deps}
${common.display_libs}
lewisxhe/XPowersLib @ 0.2.4
+32
View File
@@ -0,0 +1,32 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1278
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 14
#define RADIO_BUSY_PIN 26
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define HAS_AXP2101
// GPS
#define HAS_GPS
#define GPS_RX 12
#define GPS_TX 34
#endif
+9
View File
@@ -0,0 +1,9 @@
[env:ttgo-t-beam-v1_2]
board = ttgo-t-beam
build_flags =
${common.build_flags}
-D TTGO_T_BEAM_V1_2
lib_deps =
${common.lib_deps}
${common.display_libs}
lewisxhe/XPowersLib @ 0.2.4
@@ -0,0 +1,32 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1276
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 14
#define RADIO_BUSY_PIN 26
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define HAS_AXP2101
// GPS
#define HAS_GPS
#define GPS_RX 12
#define GPS_TX 34
#endif
@@ -0,0 +1,9 @@
[env:ttgo-t-beam-v1_2_915]
board = ttgo-t-beam
build_flags =
${common.build_flags}
-D TTGO_T_BEAM_V1_2_915
lib_deps =
${common.lib_deps}
${common.display_libs}
lewisxhe/XPowersLib @ 0.2.4
@@ -0,0 +1,34 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1262
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_DIO0_PIN 26
#define RADIO_RST_PIN 23
#define RADIO_DIO1_PIN 33
#define RADIO_BUSY_PIN 32
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define HAS_AXP2101
// GPS
#define HAS_GPS
#define GPS_RX 12
#define GPS_TX 34
#endif
@@ -0,0 +1,9 @@
[env:ttgo-t-beam-v1_2_SX1262]
board = ttgo-t-beam
build_flags =
${common.build_flags}
-D TTGO_T_BEAM_V1_2_SX1262
lib_deps =
${common.lib_deps}
${common.display_libs}
lewisxhe/XPowersLib @ 0.2.4
@@ -0,0 +1,31 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1276
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_RST_PIN 14
#define RADIO_BUSY_PIN 26
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define HAS_AXP192
// GPS
#define HAS_GPS
#define GPS_RX 12
#define GPS_TX 34
#endif
@@ -0,0 +1,9 @@
[env:ttgo-t-beam-v1_915]
board = ttgo-t-beam
build_flags =
${common.build_flags}
-D TTGO_T_BEAM_V1_0_915
lib_deps =
${common.lib_deps}
${common.display_libs}
lewisxhe/XPowersLib @ 0.2.4
@@ -0,0 +1,34 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1268
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 19
#define RADIO_MOSI_PIN 27
#define RADIO_CS_PIN 18
#define RADIO_DIO0_PIN 26
#define RADIO_RST_PIN 23
#define RADIO_DIO1_PIN 33
#define RADIO_BUSY_PIN 32
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 21
#define OLED_SCL 22
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define HAS_AXP192
// GPS
#define HAS_GPS
#define GPS_RX 12
#define GPS_TX 34
#endif
@@ -0,0 +1,9 @@
[env:ttgo-t-beam-v1_SX1268]
board = ttgo-t-beam
build_flags =
${common.build_flags}
-D TTGO_T_BEAM_V1_0_SX1268
lib_deps =
${common.lib_deps}
${common.display_libs}
lewisxhe/XPowersLib @ 0.2.4
@@ -0,0 +1,29 @@
#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_
// LoRa Radio
#define HAS_SX1262
#define RADIO_SCLK_PIN 5
#define RADIO_MISO_PIN 3
#define RADIO_MOSI_PIN 6
#define RADIO_CS_PIN 7
#define RADIO_RST_PIN 8
#define RADIO_DIO1_PIN 33
#define RADIO_BUSY_PIN 34
// Display
#define HAS_DISPLAY
#undef OLED_SDA
#undef OLED_SCL
#undef OLED_RST
#define OLED_SDA 18
#define OLED_SCL 17
#define OLED_RST -1 // Reset pin # (or -1 if sharing Arduino reset pin)
// Aditional Config
#define INTERNAL_LED_PIN 37 // Green Led
#define BATTERY_PIN 1
#endif
@@ -0,0 +1,10 @@
[env:ttgo_lora32_t3s3_v1_2]
board = esp32-s3-devkitc-1
board_build.mcu = esp32s3
board_upload.flash_size = 4MB
build_flags =
${common.build_flags}
${common.usb_flags}
-D TTGO_LORA32_T3S3_V1_2
lib_deps =
${common.lib_deps}