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

UART SDK migration 8.1.0 -> 10.0.0

I have two UART devices on a custom board with an nRF51822. I've just upgraded the SDK I use from 8.1.0 to 10.0.0 and one of the UART connections has stopped working, but not the other.

Both use the same connection params: no hardware flow control, same baud rate, no parity, same buffer sizes, same IRQ priority. I've checked that power is getting to the module that's not responding. For the module that's not working, the UART event handler function is never called. Calls to app_uart_put() and app_uart_get() don't return any errors.

What changed between SDK 8.1.0 and SDK 10.0.0 that could possibly have caused this? I can see nothing in the release notes.

  • So if understand this correctly:

    • You have two custom boards
    • Both boards have one external device and an nRF51 mounted on them and they communicate through UART. No communication between the two boards?
    • They both worked fine with SDK 8, but only one of them works with SDK 10?

    So just for the record:

    • Are you using the exact same components on the boards?
    • Does the faulty board work if you revert back to SDK 8? I.e. you are sure it's not broken?
    • What kind of data are you sending over UART? Single bytes or strings?
    • Are you using a softdevice? If so what version? Are the boards using the same softdevice? I experienced the other day that in SDK 10 certain examples seemed to use the uart_fifo library when using S130, but the regular uart library for S110 (Or the other way around. I don't remember).
    • What nRF51 revision are you using?
  • No, just one board. Well, actually, a bunch of them, but I've tested on two of them and have the same result. Everything works if I revert back to SDK 8.1.0. Sending strings over UART. Using S110 v 8.0.0 in both cases. I'm using the FIFO library for both UART connections.

  • Ah, ok, so you have one board, with one nRF51 and two peer devices mounted on it? And you lost com to only one of them?

    Then I guess you have routed the UART traces from the peer devices to two separate set of pins on the nRF51, and then you are dynamically reconfiguring the UART to talk to one or the other? Are you using flow control? Do you mind uploading the code? You can submit a support ticket on myPage if your prefer some confidentiality.

  • Correct. Not using hardware flow control (params.flow_control = APP_UART_FLOW_CONTROL_DISABLED). I'll create a case. Thanks.

  • I also observed similar issue. Switching to SDK10, UART no longer works. I haven't have time to investigate. I went back to SDK9 everything is fine.

1 2