BG95 EVB Introduction

Supported Module List

Feature List

Overview

  • The QuecPython_BG95_EVB is a compact and portable "pocket-sized" EVB specifically designed for QuecPython.

  • The main board is equipped with a BG95 series module and a Type-C interface. You can easily develop the EVB with just a USB Type-C cable.

  • The EVB is also equipped with an expansion board that supports light sensors, UV sensors, VOC sensors, nine-axis sensors, and temperature and humidity sensors.

  • The EVB is compatible with Raspberry Pi Zero, and the expansion board for Raspberry Pi Zero can be directly used on the QuecPython_BG95_EVB.

Description

The main components and interface layout of the EVB are shown in the following figure.

img

Resource Download

EVB Resources

EVB Interface

8 Pin Assignment

Pin Header Number Silkscreen Pin No. Function
JP6 1 PWK_AUTO 15 POWERKEY
JP6 2 PWK_AUTO - GND
JP6 3 VDD_EXT - 1.8 V
JP6 4 VDD_EXT 29 VDD_EXT
JP6 5 MODULE_EN - 3.6 V
JP6 6 MODULE_EN - 3.6 V
JP6 7 GNSS_EN - 3.3 V
JP6 8 GNSS_EN 51 GNSS_EN
  • 1 & 2: Automatic power-on.
  • 3 & 4: connect VDD_EXT to provide power for external circuit. For power consumption measurement, VDD_EXT needs to be disconnected.
  • 5 & 6: Turn on the DC-DC converter to provide power to the module.
  • 7 & 8: Enable active power supply for GNSS.

40 Pin Assignment

Pin Header Number Name GPIO Multiplexing Function Pin Header Number Name GPIO Multiplexing Function
JP7 1 3V3 - 3.3 V Output JP8 2 5V - 5 V Output
JP7 3 SDA1 I2C1_SDA
GPIO14
I2C1 Data
General Purpose Input/Output
JP8 4 5V - 5 V Output
JP7 5 SCL1 I2C1_SCL
GPIO13
I2C1 Clock
General Purpose Input/Output
JP8 6 GND - Ground
JP7 7 P35 GPIOX
UART4_TXD
General Purpose Input/Output
UART4 Send
JP8 8 TX2 UART2_TXD UART2 Send
JP7 9 GND - Ground JP8 10 RX2 UART2_RXD UART2 Recv
JP7 11 P06 GPIO3
PCM_DIN
General Purpose Input/Output
Digital Audio Input signal
JP8 12 P37 GPIOX
I2C_SDA
General Purpose Input/Output
I2C Data
JP7 13 P05 GPIO2
PCM_SYNC
General Purpose Input/Output
Digital Audio Sync signal
JP8 14 GND - Ground
JP7 15 P04 GPIO1
PCM_CLK
General Purpose Input/Output
Digital Audio Clock signal
JP8 16 P86 GPIO19 General Purpose Input/Output
JP7 17 3V3 - 3.3V Output JP8 18 P88 GPIO21 General Purpose Input/Output
JP7 19 MO2 SPI2_MOSI
GPIO8
UART0_TXD
SPI2 Master Output Slave Input
General Purpose Input/Output
UART0 Send
JP8 20 GND - Ground
JP7 21 MI2 SPI2_MISO
GPIO7
UART0_RXD
SPI2 Master Input Slave Output
General Purpose Input/Output
UART0 Recv
JP8 22 P20 GPIOX General Purpose Input/Output
JP7 23 CLK2 SPI2-CLK
GPIO5
I2C0_CLK
SPI2 Clock
General Purpose Input/Output
I2C0 Clock
JP8 24 CS2 SPI2_CS
GPIO6
I2C0_SDA
SPI2 Chip Select
General Purpose Input/Output
I2C0 Data
JP7 25 GND - Ground JP8 26 P38 GPIOX General Purpose Input/Output
JP7 27 P25 GPIO9
SPI0_CS
General Purpose Input/Output
SPI0 Chip Select
JP8 28 P26 GPIO10
SPI0_CLK
General Purpose Input/Output
SPI0 Clock
JP7 29 P34 GPIOX
UART4_RXD
General Purpose Input/Output
UART4 Recv
JP8 30 GND - Ground
JP7 31 P87 GPIO20 General Purpose Input/Output JP8 32 PWM PWM0
GPIO17
PWM0 Output
General Purpose Input/Output
JP7 33 P85 GPIO18
PWM1
General Purpose Input/Output
PWM1 Output
JP8 34 GND - Ground
JP7 35 P28 GPIO12
SPI0_MISO
UART3_RXD
General Purpose Input/Output
SPI0 Master Input Slave Output
UART3 Recv
JP8 36 P39 GPIOX General Purpose Input/Output
JP7 37 P07 GPIO4
PCM_DOUT
General Purpose Input/Output
Digital Audio Output signal
JP8 38 P27 GPIO11
SPI0_MOSI
UART3_TXD
General Purpose Input/Output
SPI0 Master Output Slave Input
UART3 Send
JP7 39 GND Ground JP8 40 P36 GPIOX
I2C_SCL
General Purpose Input/Output
I2C Clock

The main pin layout of the EVB is shown in the figure below.

img

Note
For more information about QuecPython_BG95_EVB, please visit https://python.quectel.com/en/resource-download?cid=5&pid=238.

EVB Configuration

The peripheral pin assignments are detailed as follows.

No. Name Model Supported Silkscreen Remarks
1 USB_TYPEC Interface - Yes - -
2 SIM Card Slot SMN-315-ARP7 Yes CARD2 Nano-SIM
3 LED Indicator (see below) - Yes - -

On-board LED indicators:

  • SIM_CHK: The SIM_CHK indicator lights up when a SIM card is inserted into the card slot.
  • NET: Network indicator.
  • PSM: Sleep mode indicator.
  • PWM: PWM function indicator.
  • PWR: Power indicator.

Refer to the silkscreen below the module in the EVB front figure (The module side) above for LED indicator locations.

Quick Start Guide

Hardware Preparation

  • Step 1: Required Items

    • Development board
    • USB-C cable (A-to-C)
    • Windows 10 PC
    • Nano-SIM card
    • 4G antenna
  • Step 2: Antenna & SIM Installation

    • Attach the provided antenna to the MAIN antenna port.
    • Insert the SIM card into the Nano-SIM slot.
  • Step 3: Connect the Board

    • Power the board via USB-C.
  • Step 4: Power On

    • Press and hold PWK until the power indicator light on the mainboard (labeled as POW) lights up.
    • If you short-circuited PWK_ON, there's no need to press PWK; the board will power on automatically.

    If the PWR indicator is constantly on, the EVB is successfully turned on.

Driver Installation

  1. Download the QuecPython USB Driver from QuecPython Official Drivers.
  2. Extract and run setup.exe or setup.bat.
  3. Verify installation in Device Manager (look for "Quectel USB" ports). Ignore unrelated devices like "Mobile ECM Network Adapter."

Tool Installation

  1. QPYcom: Download from QuecPython Tools. Extract and use directly.
  2. VSCode Plugin: Search for "QuecPython" in the Visual Studio Code marketplace.

Firmware Burning

  1. Firmware Download: Get the latest QuecPython firmware for BG95 from QuecPython Firmware Page.

  2. Burning Steps:

    • Open QPYcom, select the USB REPL port, and create a new project.

    • Choose the .bin firmware file (BG95 requires .mbn format for older versions).

    • Set mode to "Download FW" and click Download.

    • For BG95, enable DM serial port before burning.

download_firmware1

download_firmware2

download_firmware3

REPL Debugging

  1. Connect via QPYcom and open the REPL interface.
  2. Test with print("Hello World!").

hello

First Script Development

Writing a Script

Create helloworld.py:

print("Hello World!")

File Transfer

  • Method 1: Drag-and-drop files via QPYcom’s GUI.

download_script1

  • Method 2: Use the "Download Script" feature in QPYcom.

download_script1

Running Scripts

Execute via REPL:

import example
example.exec("/usr/helloworld.py")

Stopping Program Execution

How to stop a running program. The following methods are provided according to the type of the running script file:

Is the program name main.py? Does the program contain a dead loop? Does the program use multiple threads? Stopping Steps
(1) Press Ctrl + A to enter RAW mode
(2) Press Ctrl + D to restart the QuePython virtual machine
(3) Press Ctrl + B to return to the normal interactive mode
(4) If the above methods fail, re-flash the firmware
(1) Press Ctrl + C to interrupt the program execution
(2) If the above method fails, re-flash the firmware
(1) Press Ctrl + A to enter RAW mode
(2) Press Ctrl + D to restart the QuePython virtual machine
(3) Press Ctrl + B to return to the normal interactive mode
(4) If the above methods fail, wait for the program to finish running
(1) Press Ctrl + C to interrupt the program execution
(2) If the above method fails, re-flash the firmware
(1) Press Ctrl + D to restart the QuePython virtual machine
(2) If the above method fails, directly restart the module
(1) Press Ctrl + D to restart the QuePython virtual machine
(2) If the above method fails, directly restart the module
(1) Press Ctrl + C to interrupt the program execution
(2) If the above method fails, re-flash the firmware or directly restart the module
(1) Press Ctrl + C to interrupt the program execution
(2) If the above method fails, re-flash the firmware or directly restart the module

Low Power Consumption Testing Guide

The BG95 module supports multiple operating modes, each with distinct power consumption characteristics. The common operating modes are as follows:

ACTIVE: The module is engaged in LTE data transmission, GSM calls, or executing RTOS logic. Power consumption varies significantly depending on specific tasks and network communication standards, as both CPU power usage and RF power levels differ across scenarios.

IDLE: The module is in an idle state with hardware fully powered and RTOS running, but no active threads. It resumes operation immediately upon task initiation or incoming network activity. ECX00U series modules reduce clock frequency in IDLE mode, entering a light sleep state (disabling high-speed clocks while keeping the CPU active).

Sleep: Sleep mode requires the module to be idle with autosleep enabled. In this mode, RTOS pauses, clock frequency slows, and peripheral controllers (UART, SPI, etc.) are powered down, retaining only essential interrupt controllers to minimize power consumption.

PSM: PSM (Power Saving Mode) is a 3GPP-defined low-power mode where the module periodically wakes to perform tasks and remains in PSM sleep otherwise. During PSM sleep, behavior and power consumption resemble a powered-off state.

Power Off: The module is fully powered down, with baseband chips and peripheral controllers disabled (PMIC remains active). It can be awakened via Powerkey or RTC alarm.

Module Model BG95
IDLE (LTE FDD@64ms) 18.9 mA (catm@128ms)
SLEEP (LTE FDD@64ms) 1.89 mA (catm@128ms)
SLEEP (CFUN0) 0.575 mA
PSM 5.10 μA
Power Off 14.87 μA

Test Preparation

  • Step 1: Hardware Setup

    Prepare the following components before starting:

    1. Development Board
    2. USB Cable (USB-A to USB-TypeC)
    3. PC (Windows 10)
    4. SIM Card
    5. 4G Antenna
    6. Power Monitor Mini
  • Step 2: Antenna & SIM Card Installation

    Install the provided antenna into the MAIN antenna socket and insert the SIM card into the development board's SIM slot.

  • Step 3: Board Connection

    Connect the development board's Type-C port to the PC using a USB Type-C cable. Attach the power monitor's positive lead to MODULE_EN's Vbat (refer to BG95 User Guide) and the negative lead to the module's GND. Connection diagram:

    Important!
    Remove all jumper caps during measurements to avoid external interference.

Power Consumption Measurement

Power-Off Current

With the board connected via USB Type-C, power off the module by disabling USB_VBus (set USB switch to "off" on the board's rear). Measure the current while the module is inactive (output pins pulled low/floating). Average current remains stable at microampere levels.

Power-off current measurement

Idle Current

After power-off measurement, press and hold Powerkey to boot the module (default: IDLE mode). The module remains idle with RTOS running but no active threads, ready to resume instantly for tasks or calls.

Idle current measurement

Sleep Current

With autosleep enabled during idle, the module enters sleep mode by deactivating non-essential IP cores (peripherals/interrupts) and reducing clock frequency.

  1. Re-enable USB_VBus.

  2. Open QPYcom Tool and execute:

    import pm
    pm.autosleep(1)  # Enable autosleep
    
    Sleep current waveform
  3. Disable USB_VBus again (switch to "off").
    API Reference | Details

  4. Sleep current shows periodic spikes:

    Sleep current waveform

PSM Current

To enable PSM:

  1. Request PSM from the base station (via ATTACH/TA_UPDATER with timer parameters).
    • Note: Base station determines final timer values.
  2. Once ACT timer expires in IDLE, the module shuts down CPU/RF (partial power-off), retaining wake-up sources (ACT/TAU timers, PSM_INT).

Steps:

  1. Enable USB_VBus.

  2. PSM Guide | API. In QPYcom:

    pm.set_psm_time(tau_uint,tau_time,act_uint,act_time)   # Configure PSM
    
    PSM current measurement
  3. Disable USB_VBus.

  4. PSM baseline current (µA-level, similar to power-off):

    PSM current measurement

Notes:

  • Confirm carrier support for PSM and configure compatible network standards (this test uses catM).
  • Additional guidance.