Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow Device OS to initialize BG95-S5 modems #2842

Merged
merged 2 commits into from
Dec 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions hal/network/ncp_client/quectel/quectel_ncp_client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1135,8 +1135,12 @@ int QuectelNcpClient::initReady(ModemState state) {
skipAll(serial_.get(), 1000);
CHECK(waitAtResponse(10000));

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

// Just in case disconnect
// int r = CHECK_PARSER(parser_.execCommand("AT+COPS=2"));
Expand Down
2 changes: 1 addition & 1 deletion hal/shared/cellular_enums_hal.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ typedef enum {
DEV_QUECTEL_BG95_MF = 17,
DEV_QUECTEL_BG95_M6 = 18,
DEV_QUECTEL_BG95_M5 = 19,

DEV_QUECTEL_BG95_S5 = 22
} Dev;
//! SIM Status
typedef enum {
Expand Down
3 changes: 3 additions & 0 deletions hal/shared/cellular_ncp_dev_mapping.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ inline Dev cellular_dev_from_ncp(PlatformNCPIdentifier identifer) {
case PLATFORM_NCP_QUECTEL_BG95_M5:
device = DEV_QUECTEL_BG95_M5;
break;
case PLATFORM_NCP_QUECTEL_BG95_S5:
device = DEV_QUECTEL_BG95_S5;
break;
default:
device = DEV_UNKNOWN;
break;
Expand Down
21 changes: 11 additions & 10 deletions hal/shared/platform_ncp.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,16 +53,17 @@ typedef enum PlatformNCPIdentifier {
PLATFORM_NCP_SARA_R510 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_UBLOX, 7),

// 0x6x
PLATFORM_NCP_QUECTEL_BG96 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 1),
PLATFORM_NCP_QUECTEL_EG91_E = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 2),
PLATFORM_NCP_QUECTEL_EG91_NA = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 3),
PLATFORM_NCP_QUECTEL_EG91_EX = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 4),
PLATFORM_NCP_QUECTEL_BG95_M1 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 5),
PLATFORM_NCP_QUECTEL_EG91_NAX = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 6),
PLATFORM_NCP_QUECTEL_BG77 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 7),
PLATFORM_NCP_QUECTEL_BG95_MF = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 8),
PLATFORM_NCP_QUECTEL_BG95_M6 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 9),
PLATFORM_NCP_QUECTEL_BG95_M5 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 10),
PLATFORM_NCP_QUECTEL_BG96 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 1),
PLATFORM_NCP_QUECTEL_EG91_E = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 2),
PLATFORM_NCP_QUECTEL_EG91_NA = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 3),
PLATFORM_NCP_QUECTEL_EG91_EX = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 4),
PLATFORM_NCP_QUECTEL_BG95_M1 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 5),
PLATFORM_NCP_QUECTEL_EG91_NAX = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 6),
PLATFORM_NCP_QUECTEL_BG77 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 7),
PLATFORM_NCP_QUECTEL_BG95_MF = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 8),
PLATFORM_NCP_QUECTEL_BG95_M6 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 9),
PLATFORM_NCP_QUECTEL_BG95_M5 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 10),
PLATFORM_NCP_QUECTEL_BG95_S5 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_QUECTEL, 13),

// 0x8x
PLATFORM_NCP_BROADCOM_BCM9WCDUSI09 = PLATFORM_NCP_IDENTIFIER(PLATFORM_NCP_MANUFACTURER_BROADCOM, 1),
Expand Down
1 change: 1 addition & 0 deletions hal/src/msom/platform_ncp_quectel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ bool isValidNcpId(uint8_t id) {
case PlatformNCPIdentifier::PLATFORM_NCP_QUECTEL_BG77:
case PlatformNCPIdentifier::PLATFORM_NCP_QUECTEL_BG95_M6:
case PlatformNCPIdentifier::PLATFORM_NCP_QUECTEL_BG95_M5:
case PlatformNCPIdentifier::PLATFORM_NCP_QUECTEL_BG95_S5:
return true;
default:
return false;
Expand Down