Skip to main content
Visitor II
March 19, 2025
Solved

Using CubeProgrammer driver without CubeProgrammer_API.dll

  • March 19, 2025
  • 3 replies
  • 724 views

My company wishes to implement a feature in an existing C# application in order to download firmware to MCUs (USB DFU only).

I was able to get this done using the drivers and dlls provided through Dfuse (https://www.st.com/en/development-tools/stsw-stm32080.html).

There seems to be an issue concering the Dfuse driver on some of our computers which is why I tried to do the same using the driver and the CubeProgrammer_API.dll which are both part of the STM32CubeProgrammer (https://www.st.com/en/development-tools/stm32cubeprog.html). I managed to get that working as well, but it seems like the CubeProgrammer_API.dll needs a lot of other files to be able to work (>400MB).

This is why I was wondering if the CubeProgrammer_API.dll accesses another separat dll that only handles the USB DFU protocol (like STDFU.dll which is part of Dfuse) and does not need the >400MB of files.

Best,

Stefan 

Best answer by Aziz BRIGUI

Hello @SMeier,

You can checkout STM32CubeCLT available under this link

The STM32CubeProgrammer package inside it will support all programming interfaces and is ~90 MBs.

Aziz

3 replies

Senior III
March 19, 2025

You can try dfu-util instead. It is  an open-source DFU tool that supports STM32. This could be wrapped in C# via process execution.

Aziz BRIGUI
Aziz BRIGUIBest answer
Technical Moderator
April 25, 2025

Hello @SMeier,

You can checkout STM32CubeCLT available under this link

The STM32CubeProgrammer package inside it will support all programming interfaces and is ~90 MBs.

Aziz

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
Pavel A.
Super User
April 25, 2025

The (kernel) driver behind the DFU mode is simply the winusb. It is standard in-box Windows component, the only hitch is "installing" it, that's, associating it with specific USB device IDs.