diff --git a/.github/workflows/main.yml b/.github/workflows/build_check.yml similarity index 87% rename from .github/workflows/main.yml rename to .github/workflows/build_check.yml index b940d07..a65a723 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/build_check.yml @@ -1,6 +1,12 @@ -name: PlatformIO CI +name: Build check and build -on: [push, pull_request] +on: + push: + paths-ignore: + - '*.md' + pull_request: + paths-ignore: + - '*.md' jobs: PlatformIO-Check: 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 diff --git a/README.md b/README.md index 5adabbb..ac540ec 100644 --- a/README.md +++ b/README.md @@ -1,87 +1,108 @@ # 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 + +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 : +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! -## 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 -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. +* 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 +### Configuration -* [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 +* 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'. -But you don't need to download all this libs, PlatformIO will take care for you ;) +## Branches in this repository and version system -## Configuration +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. -* 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 -## LoRa APRS iGates on aprs.fi +There are 2 main branches: +* *master* and +* *develop* -Feel free to add a link to your iGate here: +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. -* [OE5BPA-10](https://aprs.fi/info/a/OE5BPA-10) +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 + +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 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 +* minor: 46 +* patch: 0 + +so the version will be: 20.46.0 ## 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 @@ -91,7 +112,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. @@ -99,4 +120,4 @@ 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! 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