Skip to content

Latest commit

 

History

History
151 lines (118 loc) · 16 KB

File metadata and controls

151 lines (118 loc) · 16 KB

DapLink - EasyFlash

English - Français

Introduction

This tool is for internal use, we use it (1) to load daplink on certain targets (STM32L475, STM32WB55, ...), replacing ST-LINK and (2) to flash a wireless stack (BLE, Thread, Zigbee, ...) on the STM32WB5xxG co-processor.

DapLink

With OpenOCD, the program steps are :

  1. Unlock the RDP of the STM32F103xB
  2. Mass erase flash
  3. Flash bootloader
  4. Send firmware
  5. (optionnal) Send test program

Stack Wireless

The stack is flashed to the co-processor using the FUS and a program called operator, which acts as a relay between high-level commands and the FUS. The operator is precompiled, but is not the official ST Microelectronics version, the sources are available here (https://github.com/steamicc/codal-steami-samples/tree/main/samples/Peripherals/FUS_WS_Operator).

screenshot

Appearance may vary depending on your OS configuration.

Requirements

💻 System

To avoid installing OpenOCD on your computer, we recommend using the pre-built version maintained by XPack. The tested and compatible version is v0.12.0-4.

💡 The archives available in releases already contains all the files placed where they need to be.

⚠️ Mac OS X is not yet supported, but PRs are welcome 😉

💾 Bootloader & Firmware

💡 Older releases are available here: https://github.com/letssteam/DAPLink/releases

⚠️ For other targets, please go directly to the DapLink GitHub

Usage

🔌 Probe wiring (DapLink)

To enable the program to flash the bootloader, firmware and then the test program, the board must be wired to a probe (ST-Link, Black magic probe, etc.), and connected to the computer (using a micro-USB cable).

⚠️ Connect the target (STM32 Disco L475 IoTNode, STM32 Nucleo WB55, ...) to your computer after wiring and connecting the probe to your computer

STeaMi

STM32 Disco L475 IoTNode

STM32 Nucleo WB55

💻 Software

The program offer a simple GUI interface to select the bootload and the firmware that will be flashed on the STM32F1x.

DapLink

  1. Select files you downloaded from requirements
    1. The bootloader binary file to flash (e.g: stm32f103xb_bl.bin)
    2. The firmware binary file to flash (e.g: stm32f103xb_stm32l475vg_if.bin)
    3. (optionnal) The program binary file to flash (you can find test program in test bin folder)
  2. Set the target mount point name (e.g: DIS_L4IOT, DAPLINK, STEAMI...)
  3. Define the timeout mount point waiting (e.g: 10), in seconds
  4. Push the "Start" button.

Wireless Stack

  1. Select the board serial port
  2. Choose a stack. A description of the stacks is available below
  3. Press the “Start” button

💡 Pro tips: All inputs are saved for the next time you will open the tool !

🦀 Run from sources

  1. Install rust
  2. Install openocd
  3. Clone or download this repository git clone https://github.com/steamicc/DapLink-EasyFlash.git
  4. Enter in project folder cd DapLink-EasyFlash
  5. Run cargo run from the project root.

Test files

In the test bin folder, you can find some simple programs for targets.

test-l475.bin

It blinks the LEDs, LD1 and LD2, in two different patterns.

test-wb55.bin

Toggles between high and low states of pins PC10 and PC12. (The video is the result on the STeaMi board).

Stack details

Firmware Description STM32WB5xxG (1M) STM32WB5xxY (640K) STM32WB5xxE (512K) STM32WB5xxC (256K)
BLE HCI AdvScan * To be used for advertising and scanning through HCI interface
* BT SIG Certification listing : Declaration ID D042213 / QDID 160726
* HCI Layer only mode, layers supported : Link Layer, HCI
BLE LLD * BLE LLD (Low Level Driver) Radio Transparent firmware
* To be used for direct access on BLE LLD features and API
BLE Stack full * BT SIG Certification listing : Declaration ID D042164 / QDID 160724
* Full BLE Stack, layers supported : Link Layer, HCI, L2CAP, ATT, SM, GAP and GATT database
* Following features are kept (based on Basic stack library compared to previous deliveries):
* GAP peripheral, central (Master up to 8 links/Slave up to 8 links/all combinations in between)
* GATT server, client
* Data length extension
* 2Mbit PHY / PHY update
* Privacy
* White list
* Legacy Pairing, LE secure connections
* Direct Test Mode
* HCI interface (full, like stm32wb5x_BLE_HCILayer_fw.bin)
* Following features are removed:
* L2Cap Connection - oriented channels support (IP over BLE enabler)
* Channel selection #2 (under application flag selection)
* Some HCI interface features (won’t be able to process through HCI interface)
BLE Stack full extended * BT SIG Certification listing (1) : Declaration ID D060553 / QDID 182505
* BT SIG Certification listing (2) : Declaration ID D063069 / QDID 201968
* BT SIG Certification listing (3) : Declaration ID D063070 / QDID 216169
* Full BLE Stack extended, layers supported : Link Layer, HCI, L2CAP, ATT, SM, GAP and GATT database
* Following features are kept:
* GAP peripheral, central (Master up to 8 links/Slave up to 8 links/all combinations in between)
* GATT server, client
* Data length extension
* 2Mbit PHY / PHY update
* Privacy
* White list
* Legacy Pairing, LE secure connections
* HCI interface (full, like stm32wb5x_BLE_HCILayer_fw.bin)
* Direct Test Mode
* L2CAP connection oriented channels support (IP over BLE enabler)
* Channel selection #2 (under application flag selection)
* BLE Extended advertising (under application SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV flag selection with following limitations on currently supported configurations as (max sets number, max advertising data length) equal to [(1,1650),(2,1650),(3,1650),(4,1035),(5,621),(6,414),(7,207),(8,207)] such as both parameters are compliant with allocated Total memory computed with BLE_EXT_ADV_BUFFER_SIZE based on Max Extended advertising configuration.
* BLE GATT caching supported (certified BLE 5.3)
* BLE Enhanced ATT supported (certified BLE 5.3)
* Warning: To use this binary, it is necessary to adapt the scatter file in the BLE applications as:
* The RAM_A shared range shall be reduced to memory range [0x20030000:0x200307FF]
* The Mail-box buffers(MB_MEM1, MB_MEM2) shall be located in RAM_B shared defined in memory range [0x20038000:0x2003A7FF]
* The RAM_B shared shall be added to Total_RAM_region
BLE Stack light * BT SIG Certification listing : Declaration ID D042164 / QDID 160724
* Full BLE Stack, layers supported : Link Layer, HCI, L2CAP, ATT, SM, GAP and GATT database
* Wireless Ble stack Light configuration – Slave Only
* Following features are kept:
* GAP peripheral only (LL Slave up to 4 links)
* GATT server
* Data length extension
* 2Mbit PHY / PHY update
* Privacy
* White list
* Legacy Pairing, LE secure connections
* Direct Test Mode
* HCI interface (reduced)
* Channel selection #2 [CSA2] feature added
* Additional beacon
* Following features are removed:
* BLE “Slave Only” stack implies that with this stack configuration, STM32WB is not able to scan and request a BLE connection.
* It will just advertise, and accept incoming connection request from other master devices (e.g. Smartphone).
* While with the “full feature” BLE stack, STM32WB5xx is able to support both master and slave roles on different links (with the limitation of max 8 links in parallel).
BLE HCILayer * BT SIG Certification listing : Declaration ID D042213 / QDID 160726
* HCI Layer only mode, layers supported : Link Layer, HCI with Direct Test Mode
BLE HCILayer extended * BT SIG Certification listing (1) : Declaration ID D060553 / QDID 182505
* BT SIG Certification listing (2) : Declaration ID D063069 / QDID 201968
* HCI Layer only mode extended, layers supported : Link Layer, HCI with Direct Test Mode
* BLE Extended advertising (under application SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV flag selection with following limitations on currently supported configurations as (max sets number, max advertising data length) equal to [(1,1650),(2,1650),(3,1650),(4,1035),(5,621),(6,414),(7,207),(8,207)] such as both parameters are compliant with allocated Total memory computed with BLE_EXT_ADV_BUFFER_SIZE based on Max Extended advertising configuration.
Thread FTD * Full Thread Device v1.3 ready
* To be used for Leader / Router / End Device Thread role (full features excepting Border Router)
Thread MTD * Minimal Thread Device v1.3 ready
* To be used for End Device and Sleepy End Device Thread role
Thread RCP * OpenThread Radio Co-Processor (RCP)
* To be used for Thread Border Router setup.
* Application layer and OpenThread core on the host processor, minimal OpenThread MAC on the 802.15.4 SoC.
* Communication between the RCP and the host processor is managed by OpenThread Daemon through an UART interface over the Spinel protocol.
BLE Thread static * Static Concurrent Mode BLE Thread
* Supports Full BLE Stack and Full Thread Device v1.3 ready
* BT SIG Certification listing : Declaration ID D042164 / QDID 160724
BLE Thread dynamic * Dynamic Concurrent Mode BLE Thread
* Supports Full BLE Stack and Full Thread Device v1.3 ready
* BT SIG Certification listing : Declaration ID D042164 / QDID 160724
Mac 802_15_4 * MAC API is based on latest official IEEE Std 802.15.4-2011
* To be used for MAC FFD and RFD devices
Phy 802_15_4 * 802.15.4 Features exposed on application side
* Reduced number of commands called from application side to manage 802.15.4 API
* Not a Transparent mode, 802.15.4 API not deployed on application side
* Can to used with STM32CubeMonitor-RF application or dedicated M4 Application.
Zigbee RFD * Zigbee Reduced Function Device
* Zigbee Compliant Platform ready
* To be used for End Device Zigbee role
Zigbee FFD * Zigbee Compliant Platform ready
* Supports Full Function Device (FFD)
BLE Mac 802_15_4 * Static Concurrent Mode BLE MAC 802.15.4.
* Supports Full BLE Stack and MAC 802.15.4 API based on latest official IEEE Std 802.15.4-2011
* BT SIG Certification listing : Declaration ID D042164 / QDID 160724
BLE Zigbee FFD static * Static Concurrent Mode BLE Zigbee FFD.
* Supports Full BLE Stack and Zigbee FFD(Full Function Device) Compliant Platform ready.
* BT SIG Certification listing : Declaration ID D042164 / QDID 160724
BLE Zigbee RFD static * Static Concurrent Mode BLE Zigbee RFD.
* Supports Full BLE Stack and Zigbee RFD(Reduced Function Device) Compliant Platform ready.
* Optimized for Power consumption.
* BT SIG Certification listing : Declaration ID D042164 / QDID 160724
BLE Zigbee FFD dynamic * Dynamic Concurrent Mode BLE Zigbee FFD.
* Supports Full BLE Stack and Zigbee FFD(Full Function Device) Compliant Platform ready.
* BT SIG Certification listing : Declaration ID D042164 / QDID 160724
BLE Zigbee RFD dynamic * Dynamic Concurrent Mode BLE Zigbee RFD.
* Supports Full BLE Stack and Zigbee RFD(Reduced Function Device) Compliant Platform ready.
* Optimized for Power consumption.
* BT SIG Certification listing : Declaration ID D042164 / QDID 160724