Ymodem support for zephyr based nrf connect SDK over UART interface

Hi Team,

Problem: I'm working on a project using the nRF52840 and nRF Connect SDK 2.2.0. I need to transfer some files from host over UART and store them in LittleFS. I've successfully used MCUMgr for firmware updates via bootloader but am now trying to enable it in my application for file transfer. However, I'm facing challenges as I'm already using the same UART for other communication.

Question:

  1. YModem Support: Does nRF Connect SDK 2.2.0 support YModem for file transfer over UART? If so, could you please provide guidance or examples on how to implement it?
  2. MCUMgr for File Transfer: Is MCUMgr suitable for file transfer in my scenario? If yes, could you provide specific configurations and code snippets to enable it in my application, especially considering the shared UART usage?

Additional Information:

  • I'm using LittleFS for file storage, it was verified, i am curretly using this little fs on ext Flash for configuration storage.
  • I've successfully used MCUMgr for firmware updates via bootloader over UART, Now I am encountering issues when trying to enable MCUMgr in my application for file transfer.

I would appreciate any insights, code examples, or troubleshooting tips to help me achieve file transfer over UART using either YModem or MCUMgr from host.

Thanks,

MK V

Parents
  • Hi,

    Ymodem support is not integrated in zephyr as far as I can tell. It is also not possible to share the same UARTE hardware instance between mcumgr and the application. Therefore, the simplest approach seems to be adding file transfer support to your existing UART communication interface, which I assume is implemented in your application code.

    Best regards,

    Vidar

  • Hi Vidar,

    Thanks for confirmation that Ymodem support is not integrated in zephyr on nrf connect sdk.
    Are there any recommended frameworks or libraries that can facilitate file transfer over UART, including error correction and data integrity checks using nrf Connect SDK? 

    If not, receiving raw data and storing it in a little filesystem will be a viable approach, I think.

    Thanks,

    MK V

  • Hi,

    Zephyr include transfers protocols such as SLIP, but these seem to be integrated with the network stack, so can't be easily integrated to existing uart handler in an application. I beleive the simplest approach will be to receive and store the data yourself. You can consider adding checksum checks, etc for improved reliability. 

    Best regards,

    Vidar

Reply
  • Hi,

    Zephyr include transfers protocols such as SLIP, but these seem to be integrated with the network stack, so can't be easily integrated to existing uart handler in an application. I beleive the simplest approach will be to receive and store the data yourself. You can consider adding checksum checks, etc for improved reliability. 

    Best regards,

    Vidar

Children
Related