TREK1000 source code


We are planning to use DW1000 for RTLS application in one of our product. We have already ordered TREK1000 evaluation board for this purpose. I have some concerns regarding the source code available in Decawave website. I have downloaded CooCox 2.10 CubeMX 2.25 from the website. It seems that this source code archive have different projects based on different IDEs. one project is based on CooCox and other is based on CubeMX. But by looking into the code we feel that both source code version are different(DW1000 Device Driver Version 02.16.01 & DW1000 Device Driver Version 04.00.05). Eg, in decadriver folder all files are different for both DecaRangeRTLS_ARM_2p10 and DecaRangeRTLS_ARMCubeMx_2p25. Please let me know which is the latest version of source code to start with. Also I don’t have CooCox IDE. I was able to open the DecaRangeRTLS_ARMCubeMx_2p25 project in System Workbench for STM32(AC6 SW4STM32). Is this the correct IDE for the project. Please let me know the latest source code for development.

Shijo Thomas

Hi Shijo,

When you order a TREK1000, the software in the STM32F105RC will be loaded with SW version 2.10 in the factory. This can be confirmed when powering up the TREK boards.
Some customers are interested in the source code of this version 2.10 (driver version is 02.16.00 and coocox 1.7.8 should be used.
However the latest TREK Software available is version 2.25 (driver 04.00.5).
It is this version of TREK SW (2.25) which is also compatible with the sample code API 2.4. This 2.4 Sample code can also be downloaded from our website. (name: DW1000 Application Programming Interface with STM32F10x Application examples)
So you are correct. 2.25 is the latest TREK SW and it should open in your system workbench

Hi Shijo,

I also meant to say that
TREK Version 2.10 requires DecaRTLS GUI version 3.6.
TREK version 2.25 requires DecaRTLS GUI version 3.8.
Using TREK version 2.25 with GUI version 3.6 won’t work, the distances are not indicated.

Dear [color=#333333]Leo,[/color]

[color=#333333]Thanks for your support[/color]

Hi DecaLeo,

The Coocox 2.1 can not be downloaded from anywhere. Seems that they have abandoned/discontinued the software.

Instead, is it fine if we use CubeIDE from STM?

Instead, when I tried to use the Coocox 1.7.8 the following error occurs in project building:

arm-none-eabi-gcc: error: H:\UWB Sensors\Decawave\Firmware sourcecodes\trek1000\STM2.10_CooCox_PC3.6\DecaWave_TREK1000_Source_STM2.10_PC3.6\TREK1000\DecaRangeRTLS Source Code\DecaRangeRTLS ARM\DecaRangeRTLS_ARM_2p10\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\startup_stm32f10x_cl.S: No such file or directory

p.s. - I have a v2.1 TREK1000 board.



It’s not clear what you’re doing:
TREK latest software is ARM code in v2.25 . To compile this code your ST cubeIDE should be OK., while for version 2.10, you cannot use CubeMX , but coocox.
TREK GUI software is version 3.8.
For TREK version 2.10. TREK GUI 3.6 shall be used.
To compile TREK GUI 3.6 and 3.8 neither coocox or CubeIDE shall be used as it is built under the Qt Framework. See source code guides for the GUIs .

The GUI for EVK (v3.05) is built under Microsoft Visual C++ 2010 Express Edition…
Latest EVK1000 software is version 3.11 , for which cubeMX shall used also…

We have been aiming to move away from coocox as the software we used (1.7.8) is not always available for download, hence the CubeMX versions available now (2.25 for TREK , version 3.11 for EVK1000 and version 2.14 for the Examples API.


1 Like

Hi Leo,

To be precise, I want to amend the anchor to anchor messaging with a payload message that I want to send. And also want to amend what each TREK write on the virtual COM port.

So, I have to flash the amended programme by recompiling and re-generating the project.

Would I be able to do this using the CubeIDE as I am having a v2.1 TREK1000?

The CubeIDE load the CubeMX perspective using STM32Cube FW_F1 V1.3.1. Will that create any problem(I noticed that it is STM32Cube FW_F1 V1.4.0 in the porting instructions document)?

Many thanks…


Hi Erange,

The cube verision you have shoudl be ok. The porting document is from some time ago and so versions mentioned in teh docuemnt can be ignored

1 Like

Hi Leo,
when I tried to implement the TREK1000 in STM CubeIDE, the following got changes than instructed in the “Setting up Cube MX project for EVB1000 HW” document(


  • Tool chain ==> STM32CubeIDE
  • Firmware package name and version ==> STM32Cube FW_F1 V1.7.0

Since they are not as specified as in the “Setting up Cube MX project for EVB1000 HW” document and also I can not change it from the CubeIDE, will it be a problem of reliability in the sensor operation?

If then, how could I overcome it?

Thank you in advance…


Hi Leo.

I have a TREK1000 with PCBs labelled with 2.10.
At documentation software we have a description: " PCBs labelled with 2.10 are calibrated to CooCox version." What does it exactly mean?

Can I update the firmware of STM32F105 of this board using CubeMX 2.25 firmware version?

Thank you.

Hi Anderson

2.10 was build using COOCOX a couple of year ago. But we decided to move away from coocox as sometimes it was not possible to download COOCOX or the version used to build 2.10 (1.7.8) was not available. So we moved to cubemx, a far more common IDE.
So yes, you can use 2.25 in the TREK boards/ But don’t forget also to use version 3.08 version of the TREK GUI (you’re probably using version 3.06 now)
Would you be ok with sharing some info about yourself? Are you representing a company or university , or neither?

Regards & stay safe

Thank you for your quick response.

I just added right now some information in my forum profile.

I am from Sao Paulo-Brazil. Our company, Mocap Brasil, developed a Motion Capture system using inertial sensores. Now, we are integrating UWB radio to reduce drift in positional estimation.

We are justing starting, you will see us here again.

Thank you!