mirror of
https://github.com/lora-aprs/LoRa_APRS_Tracker.git
synced 2026-02-05 23:35:12 +01:00
Compare commits
No commits in common. "master" and "v23.36.0" have entirely different histories.
1
.github/workflows/buid_check.yml
vendored
1
.github/workflows/buid_check.yml
vendored
|
|
@ -8,7 +8,6 @@ on:
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
merge_group:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
|
||||||
14
README.md
14
README.md
|
|
@ -1,14 +1,3 @@
|
||||||
# Status update – September 2025
|
|
||||||
|
|
||||||
Over the past year, my focus has shifted to other projects, and I’ve decided it’s time to close the chapter on this one. I will no longer provide updates or support, and the repository will be archived.
|
|
||||||
|
|
||||||
This project has been a fun journey, and I’d like to thank everyone who used, contributed, or shared feedback along the way. Your interest and support kept it alive far longer than I originally expected.
|
|
||||||
|
|
||||||
If you’re looking for a great alternative, I recommend [CA2RXU LoRa APRS Tracker/Station](https://github.com/richonguzman/LoRa_APRS_Tracker).
|
|
||||||
|
|
||||||
73,
|
|
||||||
OE5BPA
|
|
||||||
|
|
||||||
# LoRa APRS Tracker
|
# LoRa APRS Tracker
|
||||||
|
|
||||||
The LoRa APRS Tracker will work with very cheep hardware which you can buy from amazon, ebay or aliexpress.
|
The LoRa APRS Tracker will work with very cheep hardware which you can buy from amazon, ebay or aliexpress.
|
||||||
|
|
@ -21,8 +10,7 @@ Try it out and be part of the APRS network.
|
||||||
You can use one of the Lora32 boards:
|
You can use one of the Lora32 boards:
|
||||||
|
|
||||||
* TTGO T-Beam V0.7 (433MHz SX1278)
|
* TTGO T-Beam V0.7 (433MHz SX1278)
|
||||||
* TTGO T-Beam V1.0 and V1.1 (433MHz SX1278)
|
* TTGO T-Beam V1 (433MHz SX1278)
|
||||||
* TTGO T-Beam V1.2 AXP2101 (433MHz SX1278)
|
|
||||||
|
|
||||||
This boards cost around 30 Euros, they are very cheap but perfect for an LoRa iGate.
|
This boards cost around 30 Euros, they are very cheap but perfect for an LoRa iGate.
|
||||||
Keep in minde: you need a 433MHz version!
|
Keep in minde: you need a 433MHz version!
|
||||||
|
|
|
||||||
|
|
@ -2,19 +2,19 @@
|
||||||
default_envs = ttgo-t-beam-v1
|
default_envs = ttgo-t-beam-v1
|
||||||
|
|
||||||
[env]
|
[env]
|
||||||
platform = espressif32 @ 6.7.0
|
platform = espressif32 @ 6.3.2
|
||||||
framework = arduino
|
framework = arduino
|
||||||
lib_ldf_mode = deep+
|
lib_ldf_mode = deep+
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
monitor_filters = esp32_exception_decoder
|
monitor_filters = esp32_exception_decoder
|
||||||
lib_deps =
|
lib_deps =
|
||||||
adafruit/Adafruit GFX Library @ 1.11.9
|
adafruit/Adafruit GFX Library @ 1.11.7
|
||||||
adafruit/Adafruit SSD1306 @ 2.5.10
|
adafruit/Adafruit SSD1306 @ 2.5.7
|
||||||
bblanchon/ArduinoJson @ 7.0.4
|
bblanchon/ArduinoJson @ 6.21.2
|
||||||
lewisxhe/XPowersLib @ 0.2.4
|
lewisxhe/XPowersLib @ 0.1.8
|
||||||
sandeepmistry/LoRa @ 0.8.0
|
sandeepmistry/LoRa @ 0.8.0
|
||||||
peterus/APRS-Decoder-Lib @ 0.0.6
|
peterus/APRS-Decoder-Lib @ 0.0.6
|
||||||
mikalhart/TinyGPSPlus @ 1.1.0
|
mikalhart/TinyGPSPlus @ 1.0.3
|
||||||
paulstoffregen/Time @ 1.6
|
paulstoffregen/Time @ 1.6
|
||||||
shaggydog/OneButton @ 1.5.0
|
shaggydog/OneButton @ 1.5.0
|
||||||
peterus/esp-logger @ 1.0.0
|
peterus/esp-logger @ 1.0.0
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
#include "pins.h"
|
#include "pins.h"
|
||||||
#include "power_management.h"
|
#include "power_management.h"
|
||||||
|
|
||||||
#define VERSION "23.36.01"
|
#define VERSION "23.36.0"
|
||||||
|
|
||||||
logging::Logger logger;
|
logging::Logger logger;
|
||||||
|
|
||||||
|
|
@ -71,12 +71,24 @@ static void toggle_display() {
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
|
|
||||||
#if defined(TTGO_T_Beam_V1_0) || defined(TTGO_T_Beam_V1_2)
|
#ifdef TTGO_T_Beam_V1_0
|
||||||
Wire.begin(SDA, SCL);
|
Wire.begin(SDA, SCL);
|
||||||
if (powerManagement->begin(Wire)) {
|
if (powerManagement->begin(Wire)) {
|
||||||
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "PMU", "init done!");
|
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "AXP192", "init done!");
|
||||||
} else {
|
} else {
|
||||||
logger.log(logging::LoggerLevel::LOGGER_LEVEL_ERROR, "PMU", "init failed!");
|
logger.log(logging::LoggerLevel::LOGGER_LEVEL_ERROR, "AXP192", "init failed!");
|
||||||
|
}
|
||||||
|
powerManagement->activateLoRa();
|
||||||
|
powerManagement->activateOLED();
|
||||||
|
powerManagement->activateGPS();
|
||||||
|
powerManagement->activateMeasurement();
|
||||||
|
#endif
|
||||||
|
#ifdef TTGO_T_Beam_V1_2
|
||||||
|
Wire.begin(SDA, SCL);
|
||||||
|
if (powerManagement->begin(Wire)) {
|
||||||
|
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, "AXP2101", "init done!");
|
||||||
|
} else {
|
||||||
|
logger.log(logging::LoggerLevel::LOGGER_LEVEL_ERROR, "AXP2101", "init failed!");
|
||||||
}
|
}
|
||||||
powerManagement->activateLoRa();
|
powerManagement->activateLoRa();
|
||||||
powerManagement->activateOLED();
|
powerManagement->activateOLED();
|
||||||
|
|
@ -185,7 +197,7 @@ void loop() {
|
||||||
static bool BatteryIsConnected = false;
|
static bool BatteryIsConnected = false;
|
||||||
static String batteryVoltage = "";
|
static String batteryVoltage = "";
|
||||||
static String batteryChargeCurrent = "";
|
static String batteryChargeCurrent = "";
|
||||||
#if defined(TTGO_T_Beam_V1_0) || defined(TTGO_T_Beam_V1_2)
|
#ifdef TTGO_T_Beam_V1_0
|
||||||
static unsigned int rate_limit_check_battery = 0;
|
static unsigned int rate_limit_check_battery = 0;
|
||||||
if (!(rate_limit_check_battery++ % 60)) {
|
if (!(rate_limit_check_battery++ % 60)) {
|
||||||
BatteryIsConnected = powerManagement->isBatteryConnect();
|
BatteryIsConnected = powerManagement->isBatteryConnect();
|
||||||
|
|
@ -289,10 +301,7 @@ void loop() {
|
||||||
aprsmsg += BeaconMan.getCurrentBeaconConfig()->message;
|
aprsmsg += BeaconMan.getCurrentBeaconConfig()->message;
|
||||||
}
|
}
|
||||||
if (BatteryIsConnected) {
|
if (BatteryIsConnected) {
|
||||||
aprsmsg += " - Bat.: " + batteryVoltage + "V";
|
aprsmsg += " - _Bat.: " + batteryVoltage + "V - Cur.: " + batteryChargeCurrent + "mA";
|
||||||
#ifdef TTGO_T_Beam_V1_0
|
|
||||||
aprsmsg += " - Cur.: " + batteryChargeCurrent + "mA";
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BeaconMan.getCurrentBeaconConfig()->enhance_precision) {
|
if (BeaconMan.getCurrentBeaconConfig()->enhance_precision) {
|
||||||
|
|
@ -367,9 +376,6 @@ void loop() {
|
||||||
would lead to decrease of beacon rate in between 5 to 20 km/h. what
|
would lead to decrease of beacon rate in between 5 to 20 km/h. what
|
||||||
is even below the slow speed rate.
|
is even below the slow speed rate.
|
||||||
*/
|
*/
|
||||||
if (curr_speed == 0) {
|
|
||||||
curr_speed = 1;
|
|
||||||
}
|
|
||||||
txInterval = min(BeaconMan.getCurrentBeaconConfig()->smart_beacon.slow_rate,
|
txInterval = min(BeaconMan.getCurrentBeaconConfig()->smart_beacon.slow_rate,
|
||||||
BeaconMan.getCurrentBeaconConfig()->smart_beacon.fast_speed * BeaconMan.getCurrentBeaconConfig()->smart_beacon.fast_rate / curr_speed) *
|
BeaconMan.getCurrentBeaconConfig()->smart_beacon.fast_speed * BeaconMan.getCurrentBeaconConfig()->smart_beacon.fast_rate / curr_speed) *
|
||||||
1000;
|
1000;
|
||||||
|
|
|
||||||
|
|
@ -146,13 +146,13 @@ bool AXP2101::begin(TwoWire &port) {
|
||||||
_pmu->enablePowerOutput(XPOWERS_ALDO3);
|
_pmu->enablePowerOutput(XPOWERS_ALDO3);
|
||||||
|
|
||||||
// disable all axp chip interrupt
|
// disable all axp chip interrupt
|
||||||
_pmu->disableIRQ(XPOWERS_AXP2101_ALL_IRQ);
|
_pmu->disableIRQ(XPOWERS_AXP192_ALL_IRQ);
|
||||||
|
|
||||||
// Set constant current charging current
|
// Set constant current charging current
|
||||||
_pmu->setChargerConstantCurr(XPOWERS_AXP2101_CHG_CUR_800MA);
|
_pmu->setChargerConstantCurr(XPOWERS_AXP192_CHG_CUR_780MA);
|
||||||
|
|
||||||
// Set up the charging voltage
|
// Set up the charging voltage
|
||||||
_pmu->setChargeTargetVoltage(XPOWERS_AXP2101_CHG_VOL_4V2);
|
_pmu->setChargeTargetVoltage(XPOWERS_AXP192_CHG_VOL_4V2);
|
||||||
|
|
||||||
_pmu->setChargingLedMode(XPOWERS_CHG_LED_CTRL_CHG);
|
_pmu->setChargingLedMode(XPOWERS_CHG_LED_CTRL_CHG);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue