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:

Exactly same issue here. I uploaded latest firmware BC66NBR01A07 to BC66 module (Olimex NB-Iot-devkit) and before it tcp_http (arduino version) worked great, but after the firmware update this reset problem came. Output is exactly:

F1: 0000 0000
V0: 0000 0000 [0001]
00: 0006 000C
01: 0000 0000
U0: 0000 0001 [0000]
T0: 0000 00B4
Leaving the BROM

And it reboots every 30 seconds.

Board is connected to USB port, so power is clear and ok level.

I have tried many ways to workaround this. Any suggestions?

Attention: my Arduino port is connected to firmware version ( this port is not official product of Quectel )
if you update firmware you need pre-compile application…
Arduino have application blocker for wrong version

If Quectel made changes in version 7 I dont know that… but I dont see changes in Ql_OS_GetMessage
this function is most important and process all user callbacks

Thank you WizIO for great support and examples.

To pre-compile do I need to uninstall Quectel development platform and then install it again? Or is there some procedure defined for this?

Thanks, Jarkko

PlatformIO project INI, add parameter board_build.firmware = … to switch firmware

;board_build.firmware = BC66R01A04V01, BC66R01A05V01, BC66R01A07 ; default BC66R01A04V01

board_build.firmware = BC66R01A07

then Arduino know what firmware is selected

Hello All,

any possibility to downgrade from BC66NBR01A07 to BC66R01A05V01 ?

Let me know please I got the same problem


Quectel SDK? SDK version?

PlatformIO - OpenCPU? < PIO use SDK1.4
PlatformIO - Arduino?

Hello Georgi,

I bought the Olimex module BC66

I Updated the firmware to BC66NBR01A07 and I tryed tu use your Arduino OPen CPU porting



will test this days… if you can - share me example with crash
and will update soon SDK to 1.5 ( first only OpenCPU part )

Hi Georgi,

the code is your sample code info.ino I did not any modification but the module is in boot loop

Any possibility to down grade? I searched the old BC66R01A05V01 firmware but not Luck


will test tomorow

have bug with primary DNS, you need to patch firmware

ok Georgi,

thanks a lot

what is boot loop

are you add in platformio.ini
board_build.firmware = BC66R01A07

But I use Arduino not Platformio

Arduino IDE not support firmware BC66R01A07