This is a customized DS213 APP firmware with Roll Mode support (and other features). Based on the official app firmware v1.27, and fixed some bugs.
What is Roll Mode?
On an oscilloscope, roll mode is a method of displaying acquired waveform data without waiting for the complete waveform record. For example, if a sweep was 10 divisions long with a rate of one second per division, and roll mode wasn’t available, it would take 10 seconds to fill the waveform record. But using roll mode, the oscilloscope will immediately begin displaying results rather than waiting the full 10 seconds.
The firmware is built on GNU Arm Embedded Toolchain. Both Windows and Linux are tested.
arm-none-eabi-gcc --version
arm-none-eabi-gcc.exe (GNU Tools for Arm Embedded Processors 9-2019-q4-major) 9.
2.1 20191025 (release) [ARM/arm-9-branch revision 277599]
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- Install
arm-none-eabi-gcc --version
download from. Probably latest version will work but tested onarm-none-eabi-gcc --version
arm-none-eabi-gcc.exe (GNU Arm Embedded Toolchain 10.3-2021.10) 10.3.1 20210824 (release)` - Install
make
2.1. Open Powershell as admin (must be admin) 2.2. Runchoco install make
. After that make can be used without admin - Fully close and reopen vscode and terminal that you gonna use for building
- [Optional] You can increment app version in file
Program\APP\Main.c
around line 86u8 APP_VERSION[12] = { "v20.11.27" };
- Open Powershell terminal.
- Navigate to the project folder e.g. with command
cd C:\GitHub\DS213_ECHO
inside whichMakefile
is located - Run command
make
. This will create newbuild
folder with build files - Only file you need is
build/DS213_ECHO.hex
- Then follow firmware update instructions as usual but use your new .hex file
arm-none-eabi-gcc --version
arm-none-eabi-gcc (15:6.3.1+svn253039-1build1) 6.3.1 20170620
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The MCU of DS213 is STM32F103VET6, with 512kB(0x80000) FLASH. The FLASH layout is as follows:
Name | Start | Length |
---|---|---|
DFU | 0x08000000 | 0x08000 |
APP | 0x08008000 | 0x68000 |
FPGA | 0x08070000 | 0x0D800 |
LOGO | 0x0807D800 | 8310 |
Full update procedure in case a speedy version below doesn't work
- Enter DS213 DFU mode (turn power on while holding K1 Play/Pause button)
- Copy FPGA_CFG.ADR to DFU disk, Then the DFU disk will restart.
- Copy STMU_213_018.bin to DFU disk, Then the DFU disk will restart.
- Copy DS213_ECHO_v20.12.25.hex to DFU disk.
- Restart DS213.
There are no address information in the .bin file, so we put a .ADR file to DFU disk to setup the firmware start addressThat's what step 2 did. However, the .hex file contains address information, we don't need a .ADR file. If your DS213 is using the official latest firmware, the FPGA is latest 018 version, you can omit step 2 and 3.
- Prep: Have file explorer open and
DS213_ECHO.hex
in view and USB connected - Build:
make
- Enter DFU: Hold K1 Play/Pause button and turn off and on
- Drag
DS213_ECHO.hex
to newly opened window - Off & On at the moment copy window disappears (no need to wait any longer)
- STM32F103VET6 32 bit ARM Cortex-M3 72MHz
- No FPU
- 512KB FLASH, 64KB RAM
- 8 MB memory for waveform data and images
- Internal 1000 mAh Lithium battery
- 2.8" Full Color TFT LCD
- 400x240 resolution
- 360x200 area for waveform (other area taken by menus)
- 12x8 grid | dx: 30px/div | dy: 25px/div