Important: Please read the Qt Code of Conduct -

QSerialPort Issue with windows

  • Hi guys,

    I'm facing an issue with the Nordic NRF51-Dongle UART communication and qt QSerialPort.
    The port is correctly opened, but no data can be read from it.
    This problem happens just on Windows, while with Linux everything works pretty well.
    Tested on Debian, Ubuntu, Windows 7/8/10.

    I've programmed the board to communicate on UART with this configuration parameters:

    • Baudrate: 460800
    • Databits: 8
    • Stopbits: 1 (both side)
    • Parity: none
    • Flow Control: disabled

    I tried also with flow control enabled, but nothing changes.

    To be sure it wasn't a problem of my code, I tried to use your terminal example, and the issue still remains. Works on linux, not on Windows.
    Furthermore, to check if the issue comes from the board, I've tested the COMM both with Advanced serial port and Serial port monitor and they work well on each OS tested.

    Could you help me to resolve this issue? What could be?

    Thanks in advance for your help

  • Qt Champions 2020

    Could you help me to resolve this issue? What could be?

    Nope. You should himself try to debug library. Maybe the NRF51 driver does not support RX_EVENT or something else (or the FW does not implements some CDC spec??). Or... you can send me your stuff and I try to fix it.. ;)

  • This post is deleted!

  • Hi, perhaps because for normal serial ports on WIndows, the maximum speed is 115200 baud?

  • Just for the community to know, the problem was on the firmware of the integrated J-Link OB-SAM3U128.
    Latest firmware upgrades bring this known bug with QSerialPort on windows.

    More information can be found here:
    [](link url)

    I fixed the problem downgrading the segger firmware to the 2014 Nov 28 10:32.
    To do that, uninstall the segger application and drivers and install an older version you can find in the website.
    For me worked the version 496g.

    To downgrade the firmware before you have to invalidate it: with the jlink commander execute "exec InvalidateFW" and then, from the jlink configurator replace with the current host version (right click on the emulator raw -> replace firmware).

    Hope this could save a few working hours to someone.

    If anyone managed to found better work-arounds, please post them here!

Log in to reply