From 747aec30898590c64f427f0d07bc16d550dd84c4 Mon Sep 17 00:00:00 2001 From: Valentin Saugnier Date: Wed, 9 Aug 2023 16:46:14 +0200 Subject: [PATCH] Change README.md + better way to alternate BT symbols --- README.md | 38 ++++++++++++++++++++++++++++++++++---- src/display.cpp | 13 ++++--------- 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 62ff025..7bd1b95 100644 --- a/README.md +++ b/README.md @@ -46,8 +46,36 @@ on the Menu 3: - 1 long press/push = Change Display Eco Mode (Turn off after 4 seg). - 2 short press/pushes = Menu 0 (back to the Tracker Screen). +____________________________________________________ + +# BLUETOOTH EXPLANATION (**Only for Android**) + +## APRSDroid + +- Pair your phone with the tracker. Its name is "Lora Tracker XXXX" +- Install [APRSDroid](https://aprsdroid.org/) app +- Open app and go to Settings and click on connection preferences +- Protocol : TNC2 or Kiss +- Type : BLuetooth SPP +- Module : Select our tracker name +- Tadam ! + +## ShareGps (NMEA) + +- Pair your phone with the tracker. Its name is "Lora Tracker XXXX" +- Install [ShareGPS](https://play.google.com/store/apps/details?id=com.jillybunch.shareGPS&pcampaignid=web_share) app +- Open app and go to Connections tab +- Click on add button +- Choose NMEA as Data Type +- Choose Bluetooth as Connectoin Method +- Name it and click next to set you tracker +- To connect to it : long press on the connection name and click connect +- BT is listening, repeat the operation a second time to initiate the connection +- Tadam ! + ____________________________________________________ Timeline (Versions): +- 2023.08.09 Adding Bluetooth capabilities with Kiss and TNC2, TTGO Lora 32 - 2023.04.16 Sending and Receiving LoRa Packets. - 2023.05.12 Saving Messages to Internal Memory. - 2023.05.14 Adding Menu. @@ -65,10 +93,12 @@ Timeline (Versions): - 2023.07.18 Add Support for triggering PTT to external amplifier. - 2023.07.24 New Validation for Callsings, Overlay change and New Icons (Bike, Motorcycle). ____________________________________________________ -This code was based on the work by OE5BPA LoRa Tracker, Serge Y. Stroobandt, ON4AA in the byte-saving part of the APRS 434 firmware and Manfred DC2MH (Mane76) with the mods for multiple Callsigns and processor speed. -- https://github.com/aprs434/lora.tracker -- https://github.com/lora-aprs/LoRa_APRS_Tracker -- https://github.com/Mane76/LoRa_APRS_Tracker +This code was based on the work of : +- Serge Y. Stroobandt : base91 and others ideas +- https://github.com/aprs434/lora.tracker : ON4AA in the byte-saving part of the APRS 434 firmware +- https://github.com/lora-aprs/LoRa_APRS_Tracker : OE5BPA LoRa Tracker +- https://github.com/Mane76/LoRa_APRS_Tracker : Manfred DC2MH (Mane76) with the mods for multiple Callsigns and processor speed +- https://github.com/dl9sau/TTGO-T-Beam-LoRa-APRS : DL9SAU for the Kiss <> TNC2 lib ____________________________________________________ # Hope You Enjoy this, 73 !! CD2RXU , Valparaiso, Chile \ No newline at end of file diff --git a/src/display.cpp b/src/display.cpp index f2e5684..eac2ba2 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -1,12 +1,12 @@ #include -#include #include #include #include "custom_characters.h" #include "configuration.h" #include "pins_config.h" #include "display.h" +#include "TimeLib.h" #define SYM_HEIGHT 14 #define SYM_WIDTH 16 @@ -21,8 +21,6 @@ String symbolArray[10] = {"[", ">", "j", "b", "<", "s", "u", "R", "v"}; int symbolArraySize = sizeof(symbolArray)/sizeof(symbolArray[0]); const uint8_t *symbolsAPRS[] = {runnerSymbol, carSymbol, jeepSymbol, bikeSymbol, motorcycleSymbol, shipSymbol, truckSymbol, recreationalVehicleSymbol, vanSymbol}; -uint32_t symbolTime = millis(); - // T-Beams bought with soldered OLED Screen comes with only 4 pins (VCC, GND, SDA, SCL) // If your board didn't come with 4 pins OLED Screen and comes with 5 and one of them is RST... // Uncomment Next Line (Remember ONLY if your OLED Screen has a RST pin). This is to avoid memory issues. @@ -187,11 +185,12 @@ void show_display(String header, String line1, String line2, String line3, Strin } /* - * Symbol alternate every 2.5s (+/- 500ms due to 1s tick of display refresh) + * Symbol alternate every 5s * If bluetooth is disconnected or if we are in the first part of the clock, then we show the APRS symbol * Otherwise, we are in the second part of the clock, then we show BT connected */ - if (!bluetoothConnected || millis() - symbolTime <= 2500) { + const auto time_now = now(); + if (!bluetoothConnected || time_now % 10 < 5) { if (symbol != 100) { symbolAvailable = true; display.drawBitmap((display.width() - SYM_WIDTH), 0, symbolsAPRS[symbol], SYM_WIDTH, SYM_HEIGHT, 1); @@ -201,10 +200,6 @@ void show_display(String header, String line1, String line2, String line3, Strin } else if (bluetoothConnected) { display.drawBitmap((display.width() - SYM_WIDTH), 0, bluetoothSymbol, SYM_WIDTH, SYM_HEIGHT, 1); } - - if (millis() - symbolTime >= 5000) { - symbolTime = millis(); - } } display.display();