Compare commits

..

No commits in common. "master" and "v23.36.0" have entirely different histories.

5 changed files with 28 additions and 35 deletions

View file

@ -8,7 +8,6 @@ on:
pull_request: pull_request:
branches: branches:
- master - master
merge_group:
jobs: jobs:
build: build:

View file

@ -1,14 +1,3 @@
# Status update September 2025
Over the past year, my focus has shifted to other projects, and Ive decided its 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 Id 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 youre 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!

View file

@ -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

View file

@ -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;

View file

@ -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);