Home >Industry dynamics>Industry dynamics
Getting Started with the E104-BT02 in 5 Minutes: BLE Bluetooth Communication Module (Open-Source Circuit & Driver Code)

A public technical documentation edition covering module overview, chip solution, pin definitions, performance parameters, reference circuit, AT command configuration, PCB layout guidelines, module usage and application experiments with open-source driver and sample code.

E104-BT02

Module Overview

The BLE Bluetooth module based on EBYTE E104-BT02 implements Bluetooth communication using the E104-BT02 serial-to-BLE module. The module is built on the Dialog DA14580 solution, operates in the 2.4GHz ISM band, and integrates the BLE protocol stack, advertising and connection management, transparent transmission and serial AT-command configuration. The module operating voltage is 2.5~3.6V (3.3V recommended); the carrier board in this project accepts +5V input and regulates it to the module supply through an AMS1117-3.3V.

The module supports master/slave role switching. Users can exchange data with an external MCU over UART, and in configuration mode can modify the device name, baud rate, advertising, UUID, MTU, MAC binding and power-related parameters. By default the module works in slave role with advertising enabled, UART 19200bps, no parity and 1 stop bit — suitable for smart home, industrial telemetry, automated data acquisition, wearables and BLE human-machine interaction scenarios.

  • Supports the BLE 5.1 standard and is compatible with common BLE Central devices.

  • Supports master/slave integration; the master can connect to up to 2 slave modules.

  • Supports UART transparent transmission, default 19200bps, 8N1.

  • Supports low-power sleep, UART wake-up, data-valid indication and connection-status indication.

  • Supports 16-bit / 128-bit UUID, MTU 20~128 bytes, Beacon / iBeacon advertising and Bluetooth sniffing.

  • Comes with an on-board PCB antenna; module size approx. 14.6mm × 21.9mm.

Main Chip Introduction

This module adopts the E104-BT02 BLE serial communication module design with the Dialog DA14580 as the core solution. The module already integrates RF, protocol stack and serial transparent transmission internally, so the external host MCU does not need to configure the DA14580 registers directly — it only needs to control the MODE, WKP, RESET_H and UART interfaces per this manual.

Chip Overview

The DA14580 is an SoC solution for low-power Bluetooth applications. The E104-BT02 builds on it by integrating BLE protocol processing, UART transparent transmission and parameter storage. The official product datasheet describes the current module as BLE 5.1; early Specification summaries still state BLE 4.2, so both the module firmware version should be recorded for certification, interoperability and production traceability.

Pin Definition

The E104-BT02 is a 20-pin, 1.27mm-pitch SMD module. The table below is compiled from the official product datasheet. Keep the reserved pins P01, P02, P07, P10, P12, P13 and P15 unconnected to external logic.

PinNameFunction
P00MODMode control: pull low to enter AT configuration, release to resume transparent transmission
P03APPData-valid indication: low level indicates the module is outputting serial data
P04MTXUART data output (module → host RX)
P05MRXUART data input (host TX → module)
P06WKPWake-up control: falling edge wakes, rising edge sleeps
P11STAConnection-status output: low level indicates BLE connected
P14Role initialization (high level or floating = slave)
RESET_HRSTHardware reset
OthersReserved pins, do not connect to external logic

Functional Block Diagram

The official documentation does not provide a detailed internal block diagram of the DA14580. Combining the external functions of the E104-BT02, the module can be abstracted as the data path "UART interface → module firmware → BLE protocol stack / GATT → RF antenna". P00/MOD, P06/WKP, RESET_H and P14 handle module state, wake-up, reset and role initialization, while P03/APP and P11/STA provide status outputs.

Functional UnitInputOutput / Function
UART transparent transmissionP05 / MRXP04 / MTX; bidirectional UART ↔ BLE data bridging
BLE protocol stackAdvertising, scanning, connection parametersGATT services, Notify / Write, Beacon
Mode controlP00 / MOD, P06 / WKPTransparent transmission, AT configuration, sleep, wake-up
Status outputInternal module stateP03 data-valid, P11 connection status
Parameter storageAT commandsDevice name, baud rate, MTU, UUID etc. saved across power cycles

Performance Parameters

The main performance parameters of the E104-BT02 are listed below; values are from the official E104-BT02 product datasheet. Typical values are affected by advertising, connection, LED load, power supply and PCB layout.

ParameterMinTypicalMax / Notes
Supply voltage2.5V3.3V3.6V; exceeding 3.6V may damage
Communication levelGND3.3V5V TTL risks damage
Operating band2379MHz2496MHz
TX current3.4mATypical
RX current3.7mADepends on software shutdown conditions
Sleep current3μATypical; state-dependent
TX power0dBm1mW
RX sensitivity-93.5dBm-94dBm-94.5dBm
Reference range70mClear open air, height approx. 2.5m
Bluetooth protocolBLE 5.1Early summary files state BLE 4.2
Module size14.6 × 21.9mmSMD, 1.27mm pitch

Reference Circuit

The reference circuit of the carrier board in this project consists of +5V input, 3.3V regulation, power filtering, the E104-BT02 module, UART / wake-up interface, MODE control, connection-status LED and power LED.

 5V-to-3.3V Power Conversion

U2 uses an AMS1117-3.3V to convert the carrier-board +5V input to the +3.3V required by the module. C1 and C2 provide input/output filtering and module supply decoupling. When designing, check the regulator dropout, heating and power-on overshoot to ensure the module VCC never exceeds 3.6V.

 E104-BT02 Module Section

The E104-BT02 is the core functional device: VCC connects to +3.3V, GND to system ground; P04 / P05 handle UART, P06 is wake-up, P00 is mode control, and P11 outputs connection status. Reserved pins are left floating per the official pin definition.

Buttons and Indicator LEDs

In the schematic, LED1 indicates +5V power and LED2, driven by the P11 net, indicates the Bluetooth connection state. The MODE-related button or interface pulls P00 low to enter AT configuration and resumes transparent transmission when released. LED current should be included in low-power measurements.

 External Interface

The schematic labels CN1 as a 4-pin connector with nets +5V, P06, MTX and MRX; H1 is the MODE-related interface / button connection. Before mass production, add Pin1 orientation and wiring order to the PCB silkscreen and assembly drawings to avoid connector direction errors.

Chip Configuration

The E104-BT02 is a plug-and-play module; there is no need to configure DA14580 registers externally. All common settings are configured via UART AT commands and saved to the module after successful configuration. Before executing AT commands, the module must be awake and P00/MOD must be pulled low.

Configuration ItemDefaultNotes
UART19200bps / no parity / 1 stop bitHost serial port must match
RoleSlaveP14 high or floating
Device nameE104-BT02Up to 18 ASCII bytes
AdvertisingEnabled / 1sSlave waits for connection
MTU20 bytesConfigurable 20~128, takes effect on next connection
Data-output indicationEnabledP03 outputs low to indicate

Communication Interface and Related Protocols

Serial Transparent Transmission Principle

The internal E104-BT02 acts as the core: it wraps the data stream sent by the external MCU over UART into BLE data for wireless transmission, and restores BLE-received data into a UART data stream output to the MCU. The module does not parse user data content — it only performs the bidirectional transparent conversion of "serial electrical signal → BLE wireless data → serial electrical signal".

Data DirectionModule PinHost Connection
Host → BLEP05 / MRXHost TX → E104 P05
BLE → HostP04 / MTXE104 P04 → Host RX
Data-validP03 / APPLow level indicates the module is outputting serial data
Connection statusP11 / STALow level indicates BLE connected

 AT Commands

AT commands uniformly use the <command> format without appending CR, LF or CRLF. Common commands in configuration mode:

CommandFunctionNotes
Reset protocol stackResetNot equivalent to hardware RESET_H
Restore factory defaultsFactory restoreHigh-impact operation
Set UART baud rateSet serial parametersTakes effect after exiting configuration
Read baud rateRead current serial parametersReturns current configuration
Set device nameSet nameUp to 18 ASCII bytes
Read device nameRead nameReturns device name
Enable/disable advertisingAdvertising controlUsed in slave role
Read connection statusStatus queryValid when connected
Read local MACMAC queryReturns hexadecimal address
Disconnect current linkDisconnectActive disconnect
Set MTUMTU configuration20~128, takes effect on next connection
Enable UART wake-upWake-up configWake on RX falling edge
Control data-valid indicationStatus indicationAffects P03
Over-the-air config authenticationAuthentication settingDefault 123456

Command differences: The AT manual, product datasheet and early Specification files come from different historical versions. Before importing into software, rely on the actual firmware echo and record the firmware version and any abnormal returns.

PCB Layout Guidelines

  • Keep the area under and around the on-board antenna clear per official recommendations: no copper pour, no traces.

  • Place the antenna tip near the carrier-board edge and avoid metal enclosures, batteries, screws, shields and high-speed digital lines nearby.

  • Provide multi-point ground return for the module GND; place the supply filter capacitor close to VCC / GND; do not route UART or LED lines through the antenna area.

  • After changing module orientation, antenna clearance, enclosure material or grounding structure, re-test range, RSSI, throughput and reconnection.

Circuit Engineering & Module Usage

Circuit Source Project

To obtain the circuit source project, follow the official WeChat account 【Freak 嵌入式】.

Module Usage

This module requires attention to three things at the same time: UART direction, MODE configuration level and WKP wake-up state. Recommended hardware connections:

E104-BT02Carrier Board / HostNotes
P04 / MTXHost UART RXE104 → host
P05 / MRXHost UART TXHost → E104
P00 / MODMode controlLOW = configuration, HIGH / floating = transparent
P06 / WKPWake-up controlFalling edge wakes, rising edge sleeps
VCC / GND3.3V / common groundNever apply 5V logic to I/O

The verified RP2040 wiring uses UART0: GP16 TX → carrier MTX/TX → E104 P05 RX; E104 P04 TX → carrier MRX/RX → GP17 RX. GP16 / GP17 here are only test connections, not mandatory GPIO assignments of the driver.

Important note: The carrier-board net names in this project use host-perspective naming: the MTX/TX net connects to module P05 (module RX), and the MRX/RX net connects to module P04 (module TX). Follow the actual schematic nets — do not cross-connect based on names alone.

Connect the module to the GraftPort-RP2040 development board's UART0 interface using an HY2.0-4P cable:

Dev Board PinModule PinDescription
Pin 16MTXUART data line, corresponds to the board TX pin
Pin 17MRXUART data line, corresponds to the board RX pin

Application Experiments

The following uses a Raspberry Pi Pico / RP2040, MicroPython and a phone BLE Central as an example to complete AT queries and bidirectional BLE/UART transparent transmission. Before the experiment, confirm the module is powered correctly, the host and module share a common ground, and prepare a connection that can control P00/MOD.

Search for the driver package e104bt02_driver on uPyPI (https://upypi.net/zh/ ), copy the local install command, and import the module driver library via the mip tool:


mpremote mip install https://upypi.net/pkgs/e104bt02_driver/1.3.1

     

After importing the EBYTE E104-BT02 serial-to-BLE module driver code, copy the main.py code  into your project:

Flash the code, open a terminal, connect to the host with the mpremote tool and run main.py:

  1. Keep P06/WKP in the awake state.

  2. Hold MODE so P00/MOD is low.

  3. Read the module baud rate, name, state, MTU, role and MAC address.

  4. Release MODE so P00/MOD returns high.

  5. Open the WeChat mini-program (Bluetooth Serial — Jiangxie Tech / 江协科技).

  6. Use the Bluetooth assistant to connect to the E104-BT02.

  7. Set the receive and send UUIDs (e.g. FFF1 Notify / FFF2 Write).

  8. Observe both ends working.

ItemUART Baud RateModule NameBluetooth StateMTUWorking RoleMAC Address
Query Result19200E104-BT02Advertising / Connected20~128SlaveXX:XX:XX

Driver

  • Driver library: e104bt02_driver (v1.3.1)

  • Install command: mpremote mip install https://upypi.net/pkgs/e104bt02_driver/1.3.1

  • For more content, see the original article: Feishu Wiki


Promotion de printemps

🌟 Tell us what you need. We'll send you the best deal

Shipping notice: For door-to-door / DDP service to the US, Canada, and Europe 👉 Shop on RobotShop

How to Order:👉Submit Your Request 

🎓Free Samples for University StudentsUniversity-Sponsorship Applications