BC66 module reset after few second

Currently BC66 module have BC66NBR01A07 core firmware revision.
I am doing OpenCPU firmware using Eclipse kepler IDE.
In my firmware, I am toggling GPIO in while(1) loop.

Hardware Setup :

  1. SIM card not inserted
  2. Antenna not connected
  3. Module Powered by external power supply 3.3V


  1. After Module Powered ON , following is the log observed on putty

F1: 0000 0000

V0: 0000 0000 [0001]

00: 0006 000C

01: 0000 0000

U0: 0000 0001 [0000]

T0: 0000 00B4

Leaving the BROM

  1. Then module get restart automatically after around 30sec.
  2. Module restart process still continue after around 30sec.
  3. After restart, we observed the above same log on putty.
  4. Internal message also is not available in queue.

Please help me on it.
Thanks in advance.

  1. I must say you should check the power supply requirements for the BC66 module. Voltage & current
  2. Then status of the Power key after Module Turn on.
  3. Monitor the AT+CPIN, AT+CFUN, AT+CREG, AT+CGREG commands status/responses.
  4. Check the PSM Mode settings.

you will also able to debug this using the netlight (LED blinks conditions).
Refer 3.13. Network Status Indication in : BC66 Hardware Design

Dear Rashmi,

This is a RTOS, so you should never use infinite loops!
That will set of the internal watchdog.

Try starting a timer that periodically will toggle your pin instead.

All the best:



I’m using the same module I think the problem you’re talking about is the pwrkey problem pwrkey pin always make sure you give logic 0 When you use pwrkey should make logic 1, then should stop in logic 0.

Good luck with.

In OpenCPU the Ql_OS_GetMessage() is the most important and the most “dangerous” function
The main task (all tasks) have hiden queue for periferal (all) callbacks and if you do not perform this function
the queue will overflow and application will crash or reset (BC66 reset, M66 crash)
If an event happens (example Timer expired -> timer_callback ) the RTOS kernel will send message to the task (where the timer was created) (where the callback was created) …
Hidden for the user Ql_OS_GetMessage processes this message and execute the registered callback

for toggle pin use timer…

… and sorry for my Bulgarian English :slight_smile: