Skip to main content
Associate III
October 23, 2026
Question

STM32U083CCT6 CDC_ACM Standalone

I am struggling with creating USB CDC_ACM standalone using only USBX. In my project my only aim is using my PCB as COM port using with USB connection. With that later on i will upload some settings etc. with usb connection. I cannot pass first step: Windows can not see my device successfully. Often throwing Code43 and Code10 errors. And rarely successfull connection established with the same code pattern. I am not sure if i do the things correctly. In LAB videos and official documents, they achieve USB standalone only using USBX with STM32U0 family. BUt i am not sure if this concept covers the CDC_ACM Standalone. Because i am new at USB communication, terminologies messing in my mind. To sum up, i want to be sure that if i can achieve USB standalone(bare-metal) applicaiton using only with USBX for CDC_ACM (virtual COM port)?

13 replies

Andrew Neil
Super User
October 23, 2026

Welcome to the forum.

Please give more details of what, exactly, you have tried, what equipment & tools you’re using, etc - see:

 

Have you tried using provided ST examples ?

In LAB videos …

What videos are they?

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
Associate III
October 23, 2026

Firstly, i have my own custom PCB design and MCU model is STM32U083CCT6. Between the PC and my PCB, i use 1m male-male  USB2.0standard cable.My first aim is when i connect my PCB to PC, i want to see the successfull connection for my PCB USB in device manager on the list of “Connection Points(COM and LPT)” section. Up to this point as a guide; i take

 this video. And i remove the HID parts from my codes.I am not sure if i follow the right source. As i follows this and make some PMA modification as below:

HAL_PCDEx_PMAConfig(&hpcd_USB_DRD_FS, 0x00, PCD_SNG_BUF, 0x14);

HAL_PCDEx_PMAConfig(&hpcd_USB_DRD_FS, 0x80, PCD_SNG_BUF, 0x54);

HAL_PCDEx_PMAConfig(&hpcd_USB_DRD_FS, 0x81, PCD_SNG_BUF, 0x94);

HAL_PCDEx_PMAConfig(&hpcd_USB_DRD_FS, 0x01, PCD_SNG_BUF, 0xD4);

HAL_PCDEx_PMAConfig(&hpcd_USB_DRD_FS, 0x82, PCD_SNG_BUF, 0x114);

 

I do not have stable connection. Frequently i get Code43 and Code10 errors. And rarely i get successful connection.

 

Andrew Neil
Super User
October 23, 2026

Firstly, i have my own custom PCB design.

I would strongly recommend that you start with a provided ST example on an ST board otherwise - especially as you say you are new at USB!

Otherwise, you don’t know if problems are with your hardware, or your software - or both!

 

For help with a custom board, you will need to post the schematics - again, see:

Some good, clear photos of your setup would also help.

Unfortunately, inserting & attaching images is currently disabled:

 

For posting source code, see:

 

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
Associate III
October 23, 2026

I dont have STM32U0 board but STM32F407 board. I am not sure if it is the right starting point because different MCU family may not share the same topology. I try my best. As pictures of my schematic and designs, as you said my other topic you say that they are disabley temporarily due to security vulnerabiliry on php.

Andrew Neil
Super User
October 23, 2026

I dont have STM32U0 board 

I strongly suggest that you get one!

Again, with a custom board you don’t know if problems are with your hardware, or your software - or both!

It looks like STM32U083C-DK is the one featured in your video

 

Indeed, pictures will have to wait until re-enabled on the forum - which should be “soon” ...

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
Associate III
October 23, 2026

In case of any progress i will tell you. First i try to get U0 board. Exactly i inspect https://github.com/STMicroelectronics/STM32CubeU0/tree/main/Projects/STM32U083C-DK/Applications/USBX that link now. I found it when making forum search for my problem.

Andrew Neil
Super User
October 23, 2026

Also look for examples via CubeMX ...

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
Associate III
October 23, 2026

I made it once but try more of them. Actually i spend a lot of time with debug steps and measuring VddUSB voltages, USB_DP and DM voltages before and after connecting the USB cables etc. When picture problem solved, i will post  more sources. Also i prepare some debug pdf document about what i have done and what i aim when i debug it. When i finish it and send you, maybe it gives us a hint. Up to this point i hope to get a solution without need this. I will inform in case of any new events about it.

ST Technical Moderator
October 23, 2026

Hi @tensaisakuragi06,

I recommend starting with ST’s USBX CDC_ACM example for the STM32U083C-DK: STM32CubeU0 USBX Device CDC_ACM.

First, verify that the example enumerates reliably your hardware setup. Once it works, adapt it to your application and replace or configure the ThreadX setup as needed for your bare metal requirements.

This helps separate software issues from problems specific to your custom PCB.

To give better visibility on the answered topics, please click on "Best answer" on the reply which solved your issue or answered your question.Best regards,FBL
Associate III
October 23, 2026

If i understand correctly inside that example, he also uses THREADX. My reason why i choose USBX standalone is when i made search about USB, there is a method called standalone and i do not need RTOS or threadX. Because i dont have any idea about what is RTOS and threadx, that USBX standalone method seems simple from me. I apologize for my lack of experience of USB. I try FBL method now.

Andrew Neil
Super User
October 23, 2026

As ​@FBL said, the point of using this example is to have known-good software - so any problems must be down to your hardware.

Once you have got that working, then you can go about removing the ThreadX dependency.

 

USBX standalone method seems simple from me

USB is not simple - however you do it!

You haven’t mentioned what experience you have with microcontrollers in general.

USB isn’t a great starting project for a beginner.

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
Associate III
October 23, 2026

I have quite experience with it. But i am new at STM32 MCUs. With STM32U083CCT6  MCU,from simpe to hard, i can read inputs, can read adc operations, can set timer for led operations, external interrupt operations. For more advanced applicaitons, i can run two STM32083CCCT6 board( each of them has RFM300W SubGhz RF module). Originally it has Nuvoton-Keil environment but i transport it to STM32 environment. They communicate each other succesfully. Additionally i run ai-thinkers PB03-F BLE module with that MCU with supplier library and modify it for STM32. Actually i work with STM32(ST) MCU products for 4 months but this USB communication dizzled me.

Associate III
October 23, 2026

Actually before designing a PCB i carefully inspect the MCU datasheet and its electrical design parameters. According to that i use independent LDO for VddUSB and its related filtering components etc. What i lack of is i did not do any project related to USB in different MCU brands.