BC66 module reset after few second

Dev.setBand(8); // 900 Mhz
4.5 seconds

Ok,

I installed Platformio,

than I restored BC66R01A07

and I compiled and upload the code attached.

#include <Arduino.h>
#include “custom_feature_def.h”
#include “ql_type.h”
#include “ql_stdlib.h”
#include “ql_uart.h”
#include “ril.h”

char cmd_1[] = “AT+QCGDEFCONT=IP,nbiot.tids.tim.it”;
char cmd_2[] = “AT+QSPCHSC=1”;

void CB_UART_Hdlr(Enum_SerialPort port, Enum_UARTEventType msg, bool level, void* customizedPara){}

char DBG_BUFFER[512];

#define DBG(FORMAT,…) {
Ql_memset(DBG_BUFFER, 0, 512);
Ql_sprintf(DBG_BUFFER, FORMAT, ##VA_ARGS);
Ql_UART_Write(UART_PORT0, (u8*)DBG_BUFFER, Ql_strlen(DBG_BUFFER));
}

void setup(){

int t = millis();

String imei, mcc_mnc, sim_imsi, sim_iccid, uid;

int ret = Ql_UART_Register(UART_PORT0, CB_UART_Hdlr, NULL);
Ql_UART_Open(UART_PORT0, 115200, FC_NONE);
Ql_RIL_Initialize();

if (( ret = Ql_RIL_SendATCmd(cmd_1, Ql_strlen(cmd_1), NULL, NULL, 300) )) {
DBG("[ERROR] EPORT = %d\n", ret);
}

if (( ret = Ql_RIL_SendATCmd(cmd_2, Ql_strlen(cmd_1), NULL, NULL, 300) )) {
DBG("[ERROR] EPORT = %d\n", ret);
}

Dev.noSleep(); // disable PSM sleep, is enabled by default
Dev.setBand(20); // set Band

Serial.begin(115200);
Serial.debug(); // enable debug for this port, DBG( work as printf )

Serial.printf(“Arduino %s\n”, Dev.getVersion());
Dev.getImei(imei);
Serial.printf(“IMEI %s\n”, imei.c_str());
Dev.getUid(uid);
Serial.printf(“UID %s\n”, uid.c_str());

Dev.waitSimReady();

Dev.getMccMnc(mcc_mnc);
Serial.printf(“MCCMNC %s\n”, mcc_mnc.c_str());
Dev.getImsi(sim_imsi);
Serial.printf(“IMSI %s\n”, sim_imsi.c_str());
Dev.getIccid(sim_iccid);
Serial.printf(“ICCID %s\n”, sim_iccid.c_str());

Dev.waitCereg();
delay(200); // must have some delay, afrer this time next values is available

Serial.printf(“Rx level %d dbm\n”, Dev.getReceiveLevel());
Serial.printf(“Rx quality %d\n”, Dev.getQuality());
Serial.printf(“Rx access %d\n”, Dev.getAccess());
Serial.printf(“Cell cid %d\n”, Dev.getCid());
Serial.printf(“Cell tac %d\n”, Dev.getTac());
char mlts[322];
Dev.getMlts(mlts, 322);
Serial.printf(“Cell mlts %s\n”, mlts);
pinMode(LED, OUTPUT);
digitalWrite(LED, 1);
Serial.printf(“Elapsed: %d mili seconds\n”, millis() - t);
}

void loop(){

static int led = 0;
delay(500);
Serial.print(">");
digitalWrite(LED, ++led & 1);
/* loop must be state machine, dont make long delays */
}

but does not work:

— Miniterm on COM10 115200,8,N,1 —
— Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H —

F1: 0000 0000
V0: 0000 0000 [0001]
00: 0006 000C
01: 0000 0000
U0: 0000 0001 [0000]
T0: 0000 00B4
Leavin�

  • Ql_RIL_SendATCmd( AT+QSPCHSC=1 … )
  • Ql_RIL_SendATCmd( AT*MCGDEFCONT=“IP” … )