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!