Skip to content

Uart buffer data loss leading to hang on MKRNB1500 #644

@joshbober

Description

@joshbober

Hello. We have been looking into this issue on the MKRNB repo, but I believe we have traced it down to the SAMD core being the root cause.

In the Modem.cpp file of the MKRNB library, part of the code waits for an AT response from the cellular modem that communicates through a uart interface. Once the uart buffer has data (uart->available() returns nonzero), each character gets stored in a local variable _buffer. This buffer eventually gets checked for an expected result code that ends every AT response. The issue is, for responses longer than 63 characters, the buffer only stores the first 63 and drops the rest. This means it also drops the result code, and the function assumes that it is still waiting for the end of the response.

This behavior occurs in versions 1.8.10 and 1.8.11 of the SAMD core. Reverting to version 1.8.9 resolves the issue. Please let me know what points need clarification, as I'm sure I haven't explained everything thoroughly. More details can be found in the link to the issue at the top of this comment.

I am happy to help with testing to resolve this if needed. Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy