Skip to content

Commit 34bb2c8

Browse files
authored
Merge branch 'master' into sim7020_support
2 parents 2508486 + c7d5e17 commit 34bb2c8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+6024
-3584
lines changed

.github/ISSUE_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ with your board before submitting any issues.
2525

2626
Modem: <!-- Brand, model, variant, firmware version, ie Quectel BG96 Revision: BG96MAR02A07M1G -->
2727
Main processor board: <!-- Uno, Zero, ESP32, Particle, etc -->
28-
TinyGSM version: <!-- always try to use the latest (0.11.7) -->
28+
TinyGSM version: <!-- always try to use the latest (0.12.0) -->
2929
Code: <!-- Example name or paste in your code -->
3030

3131
### Scenario, steps to reproduce

.github/workflows/build_examples_platformio.yaml

Lines changed: 67 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,67 @@ name: Build Examples with PlatformIO
33
# Triggers the workflow on push or pull request events
44
on: [push, pull_request]
55

6+
concurrency:
7+
group: ${{ github.workflow }}-${{ github.ref }}
8+
cancel-in-progress: true
9+
610
jobs:
7-
build:
11+
determine_library_source:
12+
name: determine_library_source
813
runs-on: ubuntu-latest
914
if: "!contains(github.event.head_commit.message, 'ci skip')"
15+
outputs:
16+
library_install_zip: ${{ steps.store_vars.outputs.library_install_zip }}
17+
library_install_git: ${{ steps.store_vars.outputs.library_install_git }}
18+
19+
steps:
20+
- uses: actions/checkout@v4
21+
22+
- name: Set environment variables for pushes to any branch
23+
if: github.event_name == 'push'
24+
run: |
25+
echo "Push to commit ${GITHUB_SHA}"
26+
echo "LIBRARY_INSTALL_ZIP=https://github.com/${GITHUB_REPOSITORY}/archive/${GITHUB_SHA}.zip" >> $GITHUB_ENV
27+
echo "LIBRARY_INSTALL_GIT=https://github.com/${GITHUB_REPOSITORY}.git#${GITHUB_SHA}" >> $GITHUB_ENV
28+
29+
- name: Set environment variable for PR's from any branch
30+
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.name == github.repository
31+
run: |
32+
echo "Pull Request from the ${GITHUB_HEAD_REF} branch"
33+
echo "LIBRARY_INSTALL_ZIP=https://github.com/${GITHUB_REPOSITORY}/archive/${GITHUB_HEAD_REF}.zip" >> $GITHUB_ENV
34+
echo "LIBRARY_INSTALL_GIT=https://github.com/${GITHUB_REPOSITORY}.git#${GITHUB_HEAD_REF}" >> $GITHUB_ENV
35+
36+
- name: Set environment variable for PR's from any fork
37+
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.name != github.repository
38+
run: |
39+
echo "Pull Request from the fork ${{ github.event.pull_request.head.repo.full_name }} at ${{ github.event.pull_request.head.ref }}"
40+
echo "LIBRARY_INSTALL_ZIP=https://github.com/${{ github.event.pull_request.head.repo.full_name }}/archive/${{ github.event.pull_request.head.ref }}.zip" >> $GITHUB_ENV
41+
echo "LIBRARY_INSTALL_GIT=https://github.com/${{ github.event.pull_request.head.repo.full_name }}.git#${{ github.event.pull_request.head.ref }}" >> $GITHUB_ENV
42+
43+
- name: store enviroment variables as output
44+
id: store_vars
45+
run: |
46+
echo "library_install_zip=${{ env.LIBRARY_INSTALL_ZIP }}" >> $GITHUB_OUTPUT
47+
echo "library_install_git=${{ env.LIBRARY_INSTALL_GIT }}" >> $GITHUB_OUTPUT
48+
49+
print_library_source:
50+
name: print_library_source
51+
runs-on: ubuntu-latest
52+
needs: determine_library_source
53+
steps:
54+
- name: Check the library installation source
55+
run: |
56+
echo "Link to zip for Arduino CLI testing install:"
57+
echo "${{ needs.determine_library_source.outputs.library_install_zip }}"
58+
echo
59+
echo "Git reference for PlatformIO testing install"
60+
echo "${{ needs.determine_library_source.outputs.library_install_git }}"
61+
62+
build_pio:
63+
runs-on: ubuntu-latest
64+
needs: [determine_library_source]
65+
env:
66+
LIBRARY_INSTALL_GIT: ${{ needs.determine_library_source.outputs.library_install_git }}
1067

1168
strategy:
1269
matrix:
@@ -23,6 +80,7 @@ jobs:
2380
[
2481
TINY_GSM_MODEM_A6,
2582
TINY_GSM_MODEM_BG96,
83+
TINY_GSM_MODEM_A7672X,
2684
TINY_GSM_MODEM_ESP8266,
2785
TINY_GSM_MODEM_M95,
2886
TINY_GSM_MODEM_M590,
@@ -36,12 +94,13 @@ jobs:
3694
TINY_GSM_MODEM_SIM7070,
3795
TINY_GSM_MODEM_UBLOX,
3896
TINY_GSM_MODEM_SARAR4,
97+
TINY_GSM_MODEM_SARAR5,
3998
TINY_GSM_MODEM_XBEE,
4099
TINY_GSM_MODEM_SEQUANS_MONARCH,
41100
]
42101

43102
steps:
44-
- uses: actions/checkout@v3
103+
- uses: actions/checkout@v4
45104

46105
- name: Set variables
47106
run: |
@@ -54,7 +113,7 @@ jobs:
54113
fi
55114
56115
- name: Set up Python
57-
uses: actions/setup-python@v4
116+
uses: actions/setup-python@v5
58117
with:
59118
python-version: '3.x'
60119

@@ -64,8 +123,8 @@ jobs:
64123
python -m pip install --upgrade pip
65124
pip install --upgrade platformio
66125
67-
- name: Restore or Cache Platforms and Libraries
68-
uses: actions/cache@v3.3.1
126+
- name: Restore or Cache PlatformIO Platforms and Libraries
127+
uses: actions/cache@v4
69128
id: cache_pio
70129
with:
71130
path: ~/.platformio
@@ -75,7 +134,7 @@ jobs:
75134
key: ${{ hashFiles('./examples/example_dependencies.json') }}
76135

77136
# Install cores and library dependencies for the Arduino CLI, iff no cache
78-
- name: Install the Arduino libraries
137+
- name: Install the Arduino libraries for PlatformIO
79138
if: steps.cache_pio.outputs.cache-hit != 'true'
80139
run: pio lib --global install 89 415 1202 1286
81140

@@ -84,8 +143,8 @@ jobs:
84143
PLATFORMIO_CI_SRC: ${{ matrix.example }}
85144
TINYGSM_MODEM_TO_USE: ${{ matrix.modem }}
86145
run: |
87-
echo "${{ env.LIBRARY_INSTALL_SOURCE }}"
88-
pio lib --global install ${{ env.LIBRARY_INSTALL_SOURCE }}
146+
echo "${{ env.LIBRARY_INSTALL_GIT }}"
147+
pio pkg install -g --library ${{ env.LIBRARY_INSTALL_GIT }}
89148
sed -i 's/\/\/ #define TINY_GSM_MODEM_SIM800/#define TINY_GSM_MODEM_SIM800/g' ${{ matrix.example }}/*
90149
platformio ci --project-option='build_flags=-D ${{ env.TINYGSM_MODEM_TO_USE }}' --project-option='framework=arduino' --board=uno --board=leonardo --board=yun --board=megaatmega2560 --board=genuino101 --board=mkr1000USB --board=zero --board=teensy31 --board=bluepill_f103c8 --board=uno_pic32 --board=esp01 --board=nodemcuv2 --board=esp32dev
91150
pio lib --global uninstall TinyGSM

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,6 @@ extras/At Command Manuals - Unsupported/*
4747
filters/*
4848
platformio_extra_envs.ini
4949
*.tar.gz
50+
pioScripts/generate_compile_commands.py
51+
compile_commands.json
52+
src/TinyGsmATDefines.h

ChangeLog.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# ChangeLog
2+
All notable changes to this project will be documented in this file.
3+
4+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
5+
and its stricter, better defined, brother [Common Changelog](https://common-changelog.org/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
***
9+
10+
11+
## [Unreleased]
12+
****
13+
### Changed
14+
15+
### Added
16+
17+
### Removed
18+
19+
### Fixed
20+
21+
***
22+
23+
24+
## [v0.12.0]
25+
26+
### Changed
27+
- Moved bulk of waitResponse function to modem template and gave modems handleURCs fxn
28+
- Moved option in waitResponse for verbose outputs.
29+
- setBaud now returns a bool
30+
- Replace new line consts with defines and renamed to AT_NL
31+
- Renamed all RegStatus enums to be unique
32+
- Replaced `NULL` with `nullptr` and replaced c-style casts.
33+
- Moved setCertificates function and the certificate name matrix to the SSL template.
34+
- Changed inputs for (unimplemented) SSL certificate functions.
35+
- All modems will now return the pre-defined manufacturer and model in the name if the function to get the internal name fails.
36+
- Cleaned up code for getting modem names.
37+
- Made battery return types signed.
38+
39+
### Added
40+
- Added support for SSL for the Quentcel BG95 and BG96 from [Aurelien BOUIN](https://github.com/aurelihein) and [George O'Connor](https://github.com/georgeman93)
41+
- Added support for UBLOX SARA-R5 from [Sebastian Bergner](https://github.com/sebastianbergner)
42+
- Added support for SIMCOM A7672X from [Giovanni de Rosso Unruh](https://github.com/giovannirosso)
43+
- Added SIM5320 GPS location from [Bengarman](https://github.com/Bengarman)
44+
- Added functions `getModemSerialNumber`, `getModemModel`, and `getModemRevision`.
45+
- Added deep debugging option
46+
- Added documentation to the FIFO class
47+
48+
### Removed
49+
- Removed non-functional factory reset from SIM70xx series
50+
51+
### Fixed
52+
- Removed extra wait on SIM7000 from [Mikael Fredriksson](https://github.com/Gelemikke)
53+
- Fix status returns on ESP8266/ESP32 AT commands
54+
- Fix length of HEX for Sequans Monarch
55+
- Fix SIM7600 password then user when cid is set from [github0013](https://github.com/github0013)
56+
- Fix cardinal points in location by gps for SIM7600 from [Juxn3](https://github.com/Juxn3)
57+
- Fix NTP server sync for SIM70xx models from [Gonzalo Brusco](https://github.com/gonzabrusco)
58+
- Fixed SIM70xx inheritance
59+
60+
***

README.md

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ If you like **TinyGSM** - give it a star, or fork it and contribute!
1717
[![GitHub forks](https://img.shields.io/github/forks/vshymanskyy/TinyGSM.svg?style=social&label=Fork)](https://github.com/vshymanskyy/TinyGSM/network)
1818

1919
You can also join our chat:
20-
[![Gitter](https://img.shields.io/gitter/room/vshymanskyy/TinyGSM.svg)](https://gitter.im/tinygsm)
20+
[![Gitter](https://img.shields.io/gitter/room/vshymanskyy/TinyGSM.svg)](https://app.gitter.im/#/room/#tinygsm_Lobby:gitter.im)
2121

2222
- [Supported modems](#supported-modems)
2323
- [Supported boards/modules](#supported-boardsmodules)
@@ -29,7 +29,7 @@ You can also join our chat:
2929
- [How does it work?](#how-does-it-work)
3030
- [API Reference](#api-reference)
3131
- [Troubleshooting](#troubleshooting)
32-
- [Ensure stable data & power connection](#ensure-stable-data--power-connection)
32+
- [Ensure stable data \& power connection](#ensure-stable-data--power-connection)
3333
- [Baud rates](#baud-rates)
3434
- [Broken initial configuration](#broken-initial-configuration)
3535
- [Failed connection or no data received](#failed-connection-or-no-data-received)
@@ -70,34 +70,33 @@ TinyGSM also pulls data gently from the modem (whenever possible), so it can ope
7070
- SIMCom LTE Modules (SIM7100E, SIM7500E, SIM7500A, SIM7600C, SIM7600E)
7171
- SIMCom SIM7000E/A/G CAT-M1/NB-IoT Module
7272
- SIMCom SIM7020C/G NB-IoT Module
73-
- SIMCom SIM7028 CAT-M1/NB-IoT Module
74-
- SIMCom SIM7070/SIM7080/SIM7090 CAT-M1/NB-IoT Module
73+
- SIMCom SIM7028/SIM7070/SIM7080/SIM7090 CAT-M1/NB-IoT Module
74+
- SIMCom A7672X CAT-M1 Module
7575
- AI-Thinker A6, A6C, A7, A20
7676
- ESP8266/ESP32 (AT commands interface, similar to GSM modems)
7777
- Digi XBee WiFi and Cellular (using XBee command mode)
7878
- Neoway M590
7979
- u-blox 2G, 3G, 4G, and LTE Cat1 Cellular Modems (many modules including LEON-G100, LISA-U2xx, SARA-G3xx, SARA-U2xx, TOBY-L2xx, LARA-R2xx, MPCI-L2xx)
80-
- u-blox LTE-M/NB-IoT Modems (SARA-R4xx, SARA-N4xx, _but NOT SARA-N2xx_)
80+
- u-blox LTE-M/NB-IoT Modems (SARA-R4xx, SARA-N4xx, SARA-R5xx, _but NOT SARA-N2xx_)
8181
- Sequans Monarch LTE Cat M1/NB1 (VZM20Q)
8282
- Quectel BG96
83+
- Quectel BG95
8384
- Quectel M95
8485
- Quectel MC60 ***(alpha)***
8586

8687
### Supported boards/modules
88+
- EnviroDIY LTE Bee, WiFi Bee
8789
- Arduino MKR GSM 1400
88-
- GPRSbee
90+
- Sodaq GPRSbee, uBee
8991
- Microduino GSM
90-
- Adafruit FONA (Mini Cellular GSM Breakout)
91-
- Adafruit FONA 800/808 Shield
92+
- Adafruit FONA Mini Cellular GSM Breakout, 800/808 Shield, FONA 3G
9293
- Industruino GSM
94+
- Dragino NB-IoT Bee
95+
- Digi XBee S6B, XBee LTE Cat 1, XBee3 LTE Cat 1, XBee3 CatM
96+
- Nimbelink Skywire/Airgain NL-SW-LTE-QBG96, NL-SW-LTE-QBG95
9397
- RAK WisLTE ***(alpha)***
9498
- ... other modules, based on supported modems. Some boards require [**special configuration**](https://github.com/vshymanskyy/TinyGSM/wiki/Board-configuration).
9599

96-
More modems may be supported later:
97-
- [ ] Quectel M10, UG95
98-
- [ ] Telit GL865
99-
- [ ] ZTE MG2639
100-
- [ ] Hi-Link HLK-RM04
101100

102101
Watch this repo for new updates! And of course, contributions are welcome ;)
103102

@@ -111,6 +110,7 @@ Watch this repo for new updates! And of course, contributions are welcome ;)
111110
- ESP8266 - 5
112111
- Neoway M590 - 2
113112
- Quectel BG96 - 12
113+
- Quectel BG95 - 12
114114
- Quectel M95 - 6
115115
- Quectel MC60/MC60E - 6
116116
- Sequans Monarch - 6
@@ -119,17 +119,18 @@ Watch this repo for new updates! And of course, contributions are welcome ;)
119119
- SIM7000 - 8 possible without SSL, only 2 with
120120
- SIM 7070/7080/7090 - 12
121121
- SIM 7500/7600/7800 - 10
122+
- SIM A7672X - 10
122123
- u-blox 2G/3G - 7
123124
- u-blox SARA R4/N4 - 7
124125
- Digi XBee - _only 1 connection supported!_
125126
- UDP
126127
- Not yet supported on any module, though it may be some day
127128
- SSL/TLS (HTTPS)
128129
- Supported on:
129-
- SIM800, SIM7000, u-Blox, XBee _cellular_, ESP8266, and Sequans Monarch
130+
- SIM800, SIM7000, A7672X, u-Blox, XBee _cellular_, ESP8266, Sequans Monarch and Quectel BG95 and BG96
130131
- Note: **only some device models or firmware revisions have this feature** (SIM8xx R14.18, A7, etc.)
131132
- Not yet supported on:
132-
- Quectel modems, SIM 5360/5320/7100, SIM 7500/7600/7800
133+
- SIM 5360/5320/7100, SIM 7500/7600/7800
133134
- Not possible on:
134135
- SIM900, A6/A7, Neoway M590, XBee _WiFi_
135136
- Like TCP, most modules support simultaneous connections
@@ -152,14 +153,14 @@ Watch this repo for new updates! And of course, contributions are welcome ;)
152153
- Not yet supported on:
153154
- SIM7000, SIM5360/5320/7100, SIM7500/7800, VZM20Q (Monarch)
154155
- Not possible on:
155-
- XBee (any type), u-blox SARA R4/N4, Neoway M590, ESP8266 (obviously)
156+
- XBee (any type), u-blox SARA R4/R5/N4, Neoway M590, ESP8266 (obviously)
156157
- Functions:
157158
- Dial, hangup
158159
- DTMF sending
159160

160161
**Location**
161162
- GPS/GNSS
162-
- SIM808, SIM7000, SIM7500/7600/7800, BG96, u-blox
163+
- SIM808, SIM7000, SIM7500/7600/7800, BG96, BG95, u-blox
163164
- NOTE: u-blox chips do _NOT_ have embedded GPS - this functionality only works if a secondary GPS is connected to primary cellular chip over I2C
164165
- GSM location service
165166
- SIM800, SIM7000, Quectel, u-blox
@@ -177,6 +178,10 @@ Watch this repo for new updates! And of course, contributions are welcome ;)
177178
- [V1pr](https://github.com/V1pr)
178179
- Quectel M95
179180
- [replicadeltd](https://github.com/replicadeltd)
181+
- UBLOX SARA-R5
182+
- [Sebastian Bergner](https://github.com/sebastianbergner)
183+
- SIMCOM A7672X
184+
- [Giovanni de Rosso Unruh](https://github.com/giovannirosso)
180185
- Other Contributors:
181186
- https://github.com/vshymanskyy/TinyGSM/graphs/contributors
182187

0 commit comments

Comments
 (0)