Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

USB-UART, half-duplex problem has returned! Linux issue?

Hello everyone,

This is the second time that I've had the problem I am about to describe.  I fixed it, and now it is broken again.  I am fairly certain that it is not (only) a Nordic problem, but I think that discussing the problem here will help isolate the cause, for myself and for other people.

I am doing development work with PCA10040 boards using nRF5 SDK 12.3.  I build software in a pure Linux environment on an Intel desktop machine.  My OS is Ubuntu 17.10.  The version of SEGGER J-Link that I am currently using is 6.22d.  I'm using the Nordic-tested gcc-arm-none-eabi toolchain, version 4_9-2015q3.  My compiler is gcc 7.2.0.  I know that the version of gcc is more recent than the one that Nordic tests with the SDK (4.9.3), however I have had people here in the Dev Zone tell me to use more recent gcc versions if I can.  Ubuntu installs more recent versions of gcc, and they have been working for me.

Between three days ago and today, something broke.  I lost the ability to transmit from my desktop PC to the Nordic dev board using the USB-UART.  The desktop PC receives transmissions from the Nordic board just fine.  I just went back and re-tried the UART example program in the SDK.  It prints "Start:", but it no longer echoes the characters you type.

All of my development software was installed about two months ago.  I haven't touched anything.  The only changes to my system would be software updates from Ubuntu, and I know that at least one update occurred.  Perhaps Ubuntu updated my gcc.  But my nRF5 SDK, J-Link, and toolchain would be untouched.

For most of last year, I had this exact same problem, which I documented here.  In addition to asking questions here, I inquired on the SEGGER forums.  I was advised to update JLink.  I tried a few different versions, but none of them helped.  I also asked questions on Ubuntu Forums.  I was assured that anything as serious as breaking a serial port driver would be immediately noticed and repaired by the Linux developers.  I'm not sure whether this is true.  Maybe we have a special case with the Nordic boards? 

So how did I fix this problem the last time?  Well, I didn't really.  When I upgraded from Ubuntu 17.04 to 17.10, two-way UART communication was restored.  That is a strong hint to me that the OS is involved.  Furthermore: I can tell you that two-way UART communication between my Nordic boards and the Windows OS still functioned even when Linux was not.  I haven't tested that yet today.  I will post an update if I discover that is not true this time.

I hope that someone can offer some insight and advice.  Thanks!

Parents Reply Children
No Data
Related