From 9acfe8058f46800137b3149f4746ce80bbd95bf7 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 15 Nov 2020 13:57:04 +0100 Subject: [PATCH 1/8] release jobs: remove comments, update names, add heltec boards --- .github/workflows/release.yml | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5572892..a83c49c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,14 +1,13 @@ on: push: - # Sequence of patterns matched against refs/tags tags: - - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 + - 'v*' -name: Upload Release Asset +name: Upload Release Assets jobs: build: - name: Upload Release Asset + name: Upload Release Assets runs-on: ubuntu-latest steps: - run: sudo apt-get install python3-setuptools python3-wheel @@ -25,14 +24,25 @@ jobs: release_name: Release ${{ github.ref }} draft: false prerelease: false + # upload heltec_wifi_lora_32_v1 - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: .pio/build/TrackerD-OE1ACM/firmware.bin - asset_name: TrackerD-OE1ACM.bin + asset_path: .pio/build/heltec_wifi_lora_32_v1/firmware.bin + asset_name: heltec_wifi_lora_32_v1.bin asset_content_type: application/bin + # upload heltec_wifi_lora_32_v2 + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: .pio/build/heltec_wifi_lora_32_v2/firmware.bin + asset_name: heltec_wifi_lora_32_v2.bin + asset_content_type: application/bin + # upload ttgo-lora32-v1 - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -41,6 +51,7 @@ jobs: asset_path: .pio/build/ttgo-lora32-v1/firmware.bin asset_name: ttgo-lora32-v1.bin asset_content_type: application/bin + # upload ttgo-lora32-v2 - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -49,6 +60,7 @@ jobs: asset_path: .pio/build/ttgo-lora32-v2/firmware.bin asset_name: ttgo-lora32-v2.bin asset_content_type: application/bin + # upload ttgo-t-beam-v0_7 - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -57,6 +69,7 @@ jobs: asset_path: .pio/build/ttgo-t-beam-v0_7/firmware.bin asset_name: ttgo-t-beam-v0_7.bin asset_content_type: application/bin + # upload ttgo-t-beam-v1 - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -65,3 +78,12 @@ jobs: asset_path: .pio/build/ttgo-t-beam-v1/firmware.bin asset_name: ttgo-t-beam-v1.bin asset_content_type: application/bin + # upload TrackerD-OE1ACM + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: .pio/build/TrackerD-OE1ACM/firmware.bin + asset_name: TrackerD-OE1ACM.bin + asset_content_type: application/bin From 4c5401288992d559fcdaaf8bd3bbb00a0d767af3 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 15 Nov 2020 13:57:31 +0100 Subject: [PATCH 2/8] ignore readme on push and pull requests --- .github/workflows/main.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b940d07..87c03d2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,12 @@ -name: PlatformIO CI +name: PlatformIO checks and build -on: [push, pull_request] +on: + push: + paths-ignore: + - *.md + pull_request: + paths-ignore: + - *.md jobs: PlatformIO-Check: From 7bea116ffee75def47179b3c0d7eae61b286c5e3 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 15 Nov 2020 13:57:53 +0100 Subject: [PATCH 3/8] update heltec names --- platformio.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platformio.ini b/platformio.ini index eee9aa1..4f6e006 100644 --- a/platformio.ini +++ b/platformio.ini @@ -22,11 +22,11 @@ monitor_flags = --raw #upload_protocol = espota #upload_port = .local -[env:heltec_wifi_lora_32_V1] +[env:heltec_wifi_lora_32_v1] board = ttgo-lora32-v1 build_flags = -Werror -Wall -DHELTEC_WIFI_LORA_32_V1 -[env:heltec_wifi_lora_32_V2] +[env:heltec_wifi_lora_32_v2] board = ttgo-lora32-v1 build_flags = -Werror -Wall -DHELTEC_WIFI_LORA_32_V2 From 6116d021a7e1b1c1cd6607f110835f35ad487de2 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 15 Nov 2020 14:08:57 +0100 Subject: [PATCH 4/8] fixing ignore --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 87c03d2..1e9250e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,10 +3,10 @@ name: PlatformIO checks and build on: push: paths-ignore: - - *.md + - '*.md' pull_request: paths-ignore: - - *.md + - '*.md' jobs: PlatformIO-Check: From 6ea060098b4cf5591b76a11882266d1843755647 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 15 Nov 2020 14:09:33 +0100 Subject: [PATCH 5/8] rename file --- .github/workflows/{main.yml => build_check.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{main.yml => build_check.yml} (96%) diff --git a/.github/workflows/main.yml b/.github/workflows/build_check.yml similarity index 96% rename from .github/workflows/main.yml rename to .github/workflows/build_check.yml index 1e9250e..a65a723 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/build_check.yml @@ -1,4 +1,4 @@ -name: PlatformIO checks and build +name: Build check and build on: push: From d9e6127d5c2f6f463b776570e40b4fcdd5ced331 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 15 Nov 2020 14:30:39 +0100 Subject: [PATCH 6/8] readme update --- README.md | 92 ++++++++++++++++++++++++------------------------------- 1 file changed, 40 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index 5adabbb..d43d40c 100644 --- a/README.md +++ b/README.md @@ -14,22 +14,22 @@ Try it out and be part of the APRS network. You can use one of the Lora32 boards without changings : -* Heltec WiFi LoRa 32 V1 (433MHz SX1278) -* Heltec WiFi LoRa 32 V2 (433MHz SX1278) -* TTGO LoRa32 V1 (433MHz SX1278) -* TTGO LoRa32 V2 (433MHz SX1278) -* TTGO LoRa32 V2.1 (433MHz SX1278) -* TTGO T-Beam V0.7 (433MHz SX1278) -* TTGO T-Beam V1 (433MHz SX1278) -* Tracker D from [OE1ACM and OE1CGC](https://www.lora-aprs.at/) -* and sure many more... +* Heltec WiFi LoRa 32 V1 (433MHz SX1278) +* Heltec WiFi LoRa 32 V2 (433MHz SX1278) +* TTGO LoRa32 V1 (433MHz SX1278) +* TTGO LoRa32 V2 (433MHz SX1278) +* TTGO LoRa32 V2.1 (433MHz SX1278) +* TTGO T-Beam V0.7 (433MHz SX1278) +* TTGO T-Beam V1 (433MHz SX1278) +* Tracker D from [OE1ACM and OE1CGC](https://www.lora-aprs.at/) +* and sure many more... Here are some amazon-de links for some example boards: -* [LoRa32 V1](https://www.amazon.de/dp/B07VPHYYJD) -* [LoRa32 V1](https://www.amazon.de/dp/B07QRG89ZV) -* [LoRa32 V2](https://www.amazon.de/dp/B07VL97VNH) -* [LoRa32 V2.1](https://www.amazon.de/dp/B07RXSKPBX) -* [T-Beam V1.0](https://www.amazon.de/dp/B07RT9FKPL) +* [LoRa32 V1](https://www.amazon.de/dp/B07VPHYYJD) +* [LoRa32 V1](https://www.amazon.de/dp/B07QRG89ZV) +* [LoRa32 V2](https://www.amazon.de/dp/B07VL97VNH) +* [LoRa32 V2.1](https://www.amazon.de/dp/B07RXSKPBX) +* [T-Beam V1.0](https://www.amazon.de/dp/B07RT9FKPL) This boards cost around 20 Euros, they are very cheap and perfect for an LoRa iGate. Keep in minde: you need a 433MHz version! @@ -38,50 +38,31 @@ Keep in minde: you need a 433MHz version! ### How to compile -The best success is to use PlatformIO. +The best success is to use PlatformIO (and it is the only platform where I can support you). -* Go to [PlatformIO](https://platformio.org/) download and install the IDE. -* If installed open the IDE, go to the left side and klick on 'extensions' then search for 'PatformIO' and install. -* When installed click 'the ant head' on the left and choose import the project on the right. -* Just open the folder and you can compile the Firmware. - -### Dependencies - -* [LoRa](https://github.com/sandeepmistry/arduino-LoRa) by Sandeep Mistry -* [APRS-IS-Lib](https://github.com/peterus/APRS-IS-Lib) by Peter Buchegger -* [APRS-Decoder-Lib](https://github.com/peterus/APRS-Decoder-Lib) by Peter Buchegger -* [LoRa-APRS-Lib](https://github.com/peterus/LoRa-APRS-Lib) by Peter Buchegger -* [ArduinoJson](https://github.com/bblanchon/ArduinoJson) by Benoit Blanchon -* [AXP202X_Library](https://github.com/lewisxhe/AXP202X_Library) by Lewis He -* [Adafruit SSD1306](https://github.com/adafruit/Adafruit_SSD1306) by Adafruit (with all dependecies) -* [NTPClient](https://github.com/arduino-libraries/NTPClient) by Fabrice Weinberg - -But you don't need to download all this libs, PlatformIO will take care for you ;) +* Go to [PlatformIO](https://platformio.org/) download and install the IDE. +* If installed open the IDE, go to the left side and klick on 'extensions' then search for 'PatformIO' and install. +* When installed click 'the ant head' on the left and choose import the project on the right. +* Just open the folder and you can compile the Firmware. ## Configuration -* You can find all nessesary settings to change for your configuration in **data/is-cfg.json**. -* To upload it to your board you have to do this via **Upload File System image** in PlatformIO! -* To find the 'Upload File System image' click the PlatformIO symbol (the little alien) on the left side, choos your configuration, click on 'Platform' and search for 'Upload File System image'. - -## LoRa APRS iGates on aprs.fi - -Feel free to add a link to your iGate here: - -* [OE5BPA-10](https://aprs.fi/info/a/OE5BPA-10) +* You can find all nessesary settings to change for your configuration in **data/is-cfg.json**. +* To upload it to your board you have to do this via **Upload File System image** in PlatformIO! +* To find the 'Upload File System image' click the PlatformIO symbol (the little alien) on the left side, choos your configuration, click on 'Platform' and search for 'Upload File System image'. ## Future plans -* [x] show time until next beaconing -* [ ] show login issues from IS server -* [ ] add better OLED library to support multiple different OLEDs -* [x] add support to turn OLED on, off and dimming -* [ ] add support for temperature chips (BMExxx) -* [ ] add FTP server support to upload configuration -* [ ] add web server for configuration and other things -* [ ] add statistics for received packages -* [ ] show received packages on a map -* [ ] etc. +* [x] show time until next beaconing +* [ ] show login issues from IS server +* [ ] add better OLED library to support multiple different OLEDs +* [x] add support to turn OLED on, off and dimming +* [ ] add support for temperature chips (BMExxx) +* [x] add FTP server support to upload configuration +* [ ] add web server for configuration and other things +* [ ] add statistics for received packages +* [ ] show received packages on a map +* [ ] etc. ## LoRa Tracker @@ -99,4 +80,11 @@ For direct mount you need a display with this Pinout -> [VCC - GND - SCL - SDA]( A direct mount of the [other display](pics/display-wrong.jpg) is not possible without damage the display! The 'wrong' display works too but you have to change VCC and GND by wire ! -feel free to add hints! \ No newline at end of file +feel free to add hints! + +## Blog posts and Youtube videos from other Hams + +* [OE1ROT](https://www.aronaut.at/2020/11/lora-aprs-gateway-mit-esp32-boards/) +* [DL7AG](http://online.dl7ag.de/lora-aprs-dl7ag-10/) +* [Manuel Lausmann - Tracker](https://www.youtube.com/watch?v=clIlTEFbWLk) +* [Manuel Lausmann - iGate](https://www.youtube.com/watch?v=C7hfVe32pXs) From a96eab365228aeb1c0d21d4cfb03d7d0bb19d931 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 15 Nov 2020 20:58:30 +0100 Subject: [PATCH 7/8] readme changes --- README.md | 59 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index d43d40c..9cf9beb 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,24 @@ # LoRa APRS iGate -![PlatformIO CI](https://github.com/lora-aprs/LoRa_APRS_iGate/workflows/PlatformIO%20CI/badge.svg) +![Build check and build](https://github.com/lora-aprs/LoRa_APRS_iGate/workflows/Build%20check%20and%20build/badge.svg) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/0b7452d5b3b747b88c736e253dda51e6)](https://app.codacy.com/gh/lora-aprs/LoRa_APRS_iGate?utm_source=github.com&utm_medium=referral&utm_content=lora-aprs/LoRa_APRS_iGate&utm_campaign=Badge_Grade_Dashboard) The LoRa APRS iGate will work with very cheep hardware which you can buy from amazon, ebay or aliexpress. Try it out and be part of the APRS network. -**There is a german [quick start](https://www.lora-aprs.info/docs/LoRa_APRS_iGate/quick-start-guide/) page! Take a look ;)** - ![TTGO LoRa32](pics/iGate.png) +## Blog posts and Youtube videos from other Hams + +* [OE1ROT](https://www.aronaut.at/2020/11/lora-aprs-gateway-mit-esp32-boards/) (blog post - german) 14.11.2020 +* [DL7AG](http://online.dl7ag.de/lora-aprs-dl7ag-10/) (blog post - german) 08.11.2020 +* [Manuel Lausmann - iGate](https://www.youtube.com/watch?v=C7hfVe32pXs) (youtube - german) 06.11.2020 +* [Manuel Lausmann - Tracker](https://www.youtube.com/watch?v=clIlTEFbWLk) (youtube - german) 02.11.2020 +* [OE1ROT](https://www.aronaut.at/2019/12/lora-aprs-tracker-mit-ttgo-t-beam-433mhz/) (blog post - german) 09.12.2019 + ## Supported boards -You can use one of the Lora32 boards without changings : +You can use one of the Lora32 boards without changings: * Heltec WiFi LoRa 32 V1 (433MHz SX1278) * Heltec WiFi LoRa 32 V2 (433MHz SX1278) @@ -34,7 +40,9 @@ Here are some amazon-de links for some example boards: This boards cost around 20 Euros, they are very cheap and perfect for an LoRa iGate. Keep in minde: you need a 433MHz version! -## Compiling +## Compiling and configuration + +**There is a german [quick start](https://www.lora-aprs.info/docs/LoRa_APRS_iGate/quick-start-guide/) page! Take a look ;)** ### How to compile @@ -45,12 +53,42 @@ The best success is to use PlatformIO (and it is the only platform where I can s * When installed click 'the ant head' on the left and choose import the project on the right. * Just open the folder and you can compile the Firmware. -## Configuration +### Configuration * You can find all nessesary settings to change for your configuration in **data/is-cfg.json**. * To upload it to your board you have to do this via **Upload File System image** in PlatformIO! * To find the 'Upload File System image' click the PlatformIO symbol (the little alien) on the left side, choos your configuration, click on 'Platform' and search for 'Upload File System image'. +## Branches in this repository and version system + +This Firmware is developed in a rolling release system: everyday a new release could be created. But there are still rules where new pull requests has to go and and how the version system looks like. + +### Branches + +There are 2 main branches: +* *master* and +* *develop* + +The *master* branch has all releases and is the most stable one. With the different tags you can jump to different versions or if you take the most current master branch you will just get the last version. There will be no side releases which are branch of from master. If there is a bugfix version it will be done directly on the master branch and a tag will be generated with a new version. + +The *develop* branch is used for new feature development. It will be also used to stabilize the current development to create a new stable version (merge request to *master* branch). **Again:** all new development (pull requests) has to go directly into the *develop* branch! + +### Version system + +If the *develop* branch is stable enough for a new release it will be merged with a pull request to the *master* branch and a new version will be generated. + +The versions are based on this settings: +* major: the current year (2 digits) +* minor: the current week of the year +* patch: if there is a patch for an release, just increment the number, otherwise 0 + +*example*: a new release will be created on the 11/14/2020, this version numbers will be used: +* major: 20 +* minor: 46 +* patch: 0 + +so the version will be: 20.46.0 + ## Future plans * [x] show time until next beaconing @@ -72,7 +110,7 @@ Look at my other project: a [LoRa Tracker](https://github.com/peterus/LoRa_APRS_ ### Here are some peculiarities of the different boards -* TTGO T-Beam V1 +* TTGO T-Beam V1 When adding a 0,96" OLED display direct to the board you have to be careful, there are two different pinout versions on the market. @@ -81,10 +119,3 @@ A direct mount of the [other display](pics/display-wrong.jpg) is not possible wi The 'wrong' display works too but you have to change VCC and GND by wire ! feel free to add hints! - -## Blog posts and Youtube videos from other Hams - -* [OE1ROT](https://www.aronaut.at/2020/11/lora-aprs-gateway-mit-esp32-boards/) -* [DL7AG](http://online.dl7ag.de/lora-aprs-dl7ag-10/) -* [Manuel Lausmann - Tracker](https://www.youtube.com/watch?v=clIlTEFbWLk) -* [Manuel Lausmann - iGate](https://www.youtube.com/watch?v=C7hfVe32pXs) From 4338fa47f0a7e4033829b689f65baf1c5f2096da Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 15 Nov 2020 21:04:44 +0100 Subject: [PATCH 8/8] readme update --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9cf9beb..ac540ec 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ Try it out and be part of the APRS network. * [Manuel Lausmann - Tracker](https://www.youtube.com/watch?v=clIlTEFbWLk) (youtube - german) 02.11.2020 * [OE1ROT](https://www.aronaut.at/2019/12/lora-aprs-tracker-mit-ttgo-t-beam-433mhz/) (blog post - german) 09.12.2019 +feel free to add yours or create a ticket if you want to be added. + ## Supported boards You can use one of the Lora32 boards without changings: @@ -61,7 +63,7 @@ The best success is to use PlatformIO (and it is the only platform where I can s ## Branches in this repository and version system -This Firmware is developed in a rolling release system: everyday a new release could be created. But there are still rules where new pull requests has to go and and how the version system looks like. +This firmware is developed in a rolling release system: everyday a new release could be created. But there are still rules where new pull requests has to go and and how the version system looks like. ### Branches @@ -69,9 +71,9 @@ There are 2 main branches: * *master* and * *develop* -The *master* branch has all releases and is the most stable one. With the different tags you can jump to different versions or if you take the most current master branch you will just get the last version. There will be no side releases which are branch of from master. If there is a bugfix version it will be done directly on the master branch and a tag will be generated with a new version. +The *master* branch has all releases and is the most stable one. With the different tags you can jump to different versions or if you take the most current *master* branch you will just get the latest, stable version. There will be no side releases which are branched of from *master*. If there is a bugfix version it will be done directly on the *master* branch and a tag will be generated with a new version. -The *develop* branch is used for new feature development. It will be also used to stabilize the current development to create a new stable version (merge request to *master* branch). **Again:** all new development (pull requests) has to go directly into the *develop* branch! +The *develop* branch is used for new feature development. It will be also used to stabilize the current development to create a new stable version (pull request to *master* branch). **Again:** all new development (pull requests) has to go directly into the *develop* branch! ### Version system @@ -80,7 +82,7 @@ If the *develop* branch is stable enough for a new release it will be merged wit The versions are based on this settings: * major: the current year (2 digits) * minor: the current week of the year -* patch: if there is a patch for an release, just increment the number, otherwise 0 +* patch: if there is a important fix for an release, just increment the number, otherwise 0 *example*: a new release will be created on the 11/14/2020, this version numbers will be used: * major: 20