Arduino port for Quectel BC66 LTE Narow Band modules ( OpenCPU based )
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Arduino for Quectel BC66 LTE Narow Band modules

( OpenCPU based )

A few words in the beginning

  • This project not an official product of Quectel / Mediatek
  • The project is based on Quectel OpenCPU and port must be work on all NB modules
  • Quectel modules BC66NA will not be supported, your module must be marked as BC66NB-
  • Quectel BC26 should work ( with small modifications maybe, I do not have a module for experiments )
  • The full/exended port will make later, this will be start base
  • License: Free for all
  • This compile version: 1.0.4
  • Added Extended API

Chipset Mediatek MT2625 SoC Ultra-low power, 3GPP Release-14 enabled NB-IoT platform for wide-ranging home, civic, industrial or mobile applications

Module: Quectel BC66 is a high-performance, multi-band NB-IoT module...

  • Test Board for the project: BC66-TE-B ( it is shield Arduino, unfortunately... )
  • Modules BC66NA... is obsolete, replace with BC66NB... and firmware for NB
  • API: OpenCPU, native C, EAT (Embedded AT) oriented
  • User Application Size: ROM (BIN) 200k, RAM 100k




Video: Simple MQTT Example

MQTT Client example log

[DBG] CPU Frequency: 78000000 Hz
[APP] MQTT Simple Example
[IMEI] 867997030026542
[BAND] AT+QBAND=1,3, rc = 0
[APP] Narrow Band Level: -75,
[API] Connected
[API] MQTTConnect( 0 )
[API] MQTTPublish( 0 )
[API] MQTTDisconnect()
[API] Waithing...

result is there:

ATTENTION: Before start exeriments:

  • Update firmware version
  • Make Backup of NVDM Fields (module "eeprom")
  • IoT Tool, [Backup] button, check-box "Backup", select file for backup (use IMEI as name), [Start] and keep the file
  • Now you can start all and you can restore the module if need
  • Note: if you upload application to module you lose standart AT command via uarts (with backup file you can restore this)


  • Add json link to Arduino - Preferences

  • Open Borad Manager, Find WizIO, Install OR Update, Select board, Click [Compile] or [Upload]

Thanks to

  • Radu Igret for terminal uploader


  • add SPI
  • add I2S
  • add all gpio-s
  • debug and other stufs

Arduino + Extended API gives you tremendous opportunities for LTE Narrow Band

The extended API is dependent on firmware version. The API support direct calls to the core as FreeRTOS, lvip, mbedtls, http, mqtt...etc. API is selected as board model in Arduino Menu - Boards Manager.

Example: Quectel BC66NB-TE-B < R01A04V01 >

This api/board is dependent with firmware BC66NBR01A04V01 and module must be updated with this version. API has soft protection of not correct versions.

Example: Simple MQTT, source from there, folder examples

If you want to help / support - contact me

Other - Comming soon....