Skip to content

Commit 8ab9506

Browse files
authored
Merge pull request #2842 from particle-iot/fix/bg95s5-init
Allow Device OS to initialize BG95-S5 modems
2 parents 6f729af + f08200c commit 8ab9506

File tree

5 files changed

+22
-13
lines changed

5 files changed

+22
-13
lines changed

hal/network/ncp_client/quectel/quectel_ncp_client.cpp

+6-2
Original file line numberDiff line numberDiff line change
@@ -1135,8 +1135,12 @@ int QuectelNcpClient::initReady(ModemState state) {
11351135
skipAll(serial_.get(), 1000);
11361136
CHECK(waitAtResponse(10000));
11371137

1138-
// Select either internal or external SIM card slot depending on the configuration
1139-
CHECK(selectSimCard());
1138+
// Cannot use ncpId() as this is not programmed on first boot during manufacturing
1139+
// Read NCP ID from OTP when initializing the modem after provisioning
1140+
if (platform_primary_ncp_identifier() != PLATFORM_NCP_QUECTEL_BG95_S5) {
1141+
// Select either internal or external SIM card slot depending on the configuration
1142+
CHECK(selectSimCard());
1143+
}
11401144

11411145
// Just in case disconnect
11421146
// int r = CHECK_PARSER(parser_.execCommand("AT+COPS=2"));

hal/shared/cellular_enums_hal.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ typedef enum {
4949
DEV_QUECTEL_BG95_MF = 17,
5050
DEV_QUECTEL_BG95_M6 = 18,
5151
DEV_QUECTEL_BG95_M5 = 19,
52-
52+
DEV_QUECTEL_BG95_S5 = 22
5353
} Dev;
5454
//! SIM Status
5555
typedef enum {

hal/shared/cellular_ncp_dev_mapping.h

+3
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ inline Dev cellular_dev_from_ncp(PlatformNCPIdentifier identifer) {
6565
case PLATFORM_NCP_QUECTEL_BG95_M5:
6666
device = DEV_QUECTEL_BG95_M5;
6767
break;
68+
case PLATFORM_NCP_QUECTEL_BG95_S5:
69+
device = DEV_QUECTEL_BG95_S5;
70+
break;
6871
default:
6972
device = DEV_UNKNOWN;
7073
break;

hal/shared/platform_ncp.h

+11-10
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,17 @@ typedef enum PlatformNCPIdentifier {
5353
PLATFORM_NCP_SARA_R510 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_UBLOX, 7),
5454

5555
// 0x6x
56-
PLATFORM_NCP_QUECTEL_BG96 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 1),
57-
PLATFORM_NCP_QUECTEL_EG91_E = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 2),
58-
PLATFORM_NCP_QUECTEL_EG91_NA = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 3),
59-
PLATFORM_NCP_QUECTEL_EG91_EX = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 4),
60-
PLATFORM_NCP_QUECTEL_BG95_M1 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 5),
61-
PLATFORM_NCP_QUECTEL_EG91_NAX = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 6),
62-
PLATFORM_NCP_QUECTEL_BG77 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 7),
63-
PLATFORM_NCP_QUECTEL_BG95_MF = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 8),
64-
PLATFORM_NCP_QUECTEL_BG95_M6 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 9),
65-
PLATFORM_NCP_QUECTEL_BG95_M5 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 10),
56+
PLATFORM_NCP_QUECTEL_BG96 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 1),
57+
PLATFORM_NCP_QUECTEL_EG91_E = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 2),
58+
PLATFORM_NCP_QUECTEL_EG91_NA = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 3),
59+
PLATFORM_NCP_QUECTEL_EG91_EX = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 4),
60+
PLATFORM_NCP_QUECTEL_BG95_M1 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 5),
61+
PLATFORM_NCP_QUECTEL_EG91_NAX = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 6),
62+
PLATFORM_NCP_QUECTEL_BG77 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 7),
63+
PLATFORM_NCP_QUECTEL_BG95_MF = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 8),
64+
PLATFORM_NCP_QUECTEL_BG95_M6 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 9),
65+
PLATFORM_NCP_QUECTEL_BG95_M5 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 10),
66+
PLATFORM_NCP_QUECTEL_BG95_S5 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 13),
6667

6768
// 0x8x
6869
PLATFORM_NCP_BROADCOM_BCM9WCDUSI09 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_BROADCOM, 1),

hal/src/msom/platform_ncp_quectel.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ bool isValidNcpId(uint8_t id) {
4040
case PlatformNCPIdentifier::PLATFORM_NCP_QUECTEL_BG77:
4141
case PlatformNCPIdentifier::PLATFORM_NCP_QUECTEL_BG95_M6:
4242
case PlatformNCPIdentifier::PLATFORM_NCP_QUECTEL_BG95_M5:
43+
case PlatformNCPIdentifier::PLATFORM_NCP_QUECTEL_BG95_S5:
4344
return true;
4445
default:
4546
return false;

0 commit comments

Comments
 (0)