This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Is there a Windows driver for the nRF52840 USB CDC ACM?

Hi

I'm trying to use the nRF52840 USB Serial UART device (aka USB CDC ACM) however I can't find a Windows driver for this device

The VID is 0x1915 and the PID is 0x520F

I've looked in all the development files listed for the nRF52840 PDK www.nordicsemi.com/.../nRF52840-Preview-DK

But I can't find a driver.

I've tried forcing a CDC ACM driver using libwdi, but although the board then appears as a serial device, I can't see any data from the board, so I presume that method is not valid as it may be a composite device and i need a more complex install method (or the official driver)

Parents
  • Hi Roger,

    I found that issue on my PC too.

    I checked with the developer, it could be an issue with signing for the driver. We will look into that.

    The work around is to select: "Browse my computer for driver software" -> "Let me pick from a list " -> "Ports (COM & LPT)" ->"Have Disk..."

    After that you select the nordic_cdc_acm_example.inf file in the SDK folder. It should work after that.

  • OK. Partially fixed this (Though it still doesnt work in Hercules which is strange)

    There is a bug in your example code on line 293 (examples\peripheral\usbd_cdc_acm\main.c)

    You are using sizeof(m_tx_buffer) but this will be the entire buffer which is 64 x 16 characters

    The code should use strlen(m_tx_buffer)

    e.g.

        ret = app_usbd_cdc_acm_write(&m_app_cdc_acm, m_tx_buffer, strlen(m_tx_buffer));
    

    Otherwise it sends the entire buffer including nulls etc

    Note. This still does not resolve the issue where it does not work with all terminals...

    I suspect there is another issue, possibly a bit deeper in the USB code.

Reply
  • OK. Partially fixed this (Though it still doesnt work in Hercules which is strange)

    There is a bug in your example code on line 293 (examples\peripheral\usbd_cdc_acm\main.c)

    You are using sizeof(m_tx_buffer) but this will be the entire buffer which is 64 x 16 characters

    The code should use strlen(m_tx_buffer)

    e.g.

        ret = app_usbd_cdc_acm_write(&m_app_cdc_acm, m_tx_buffer, strlen(m_tx_buffer));
    

    Otherwise it sends the entire buffer including nulls etc

    Note. This still does not resolve the issue where it does not work with all terminals...

    I suspect there is another issue, possibly a bit deeper in the USB code.

Children
No Data
Related