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

nRF9160 Modem Hardware API Documentation

Is there any public documentation on the LTE Modem hardware API for the nRF9160?

I'm interested in porting an embedded operating system written in Rust to the nRF9160 and am trying to determine how the AT command writes to the sockets are translated into IPC and MMIO accesses. I found the socket library code here: https://github.com/NordicPlayground/nrfxlib/tree/master/bsdlib, but the compiled archive files don't explain how the underlying code actually works. The nRF9160 Objective Product Specification says "Note: For details regarding the modem API, please refer to nRF Connect SDK document and nRF91 AT Commands, Command Reference Guide document." but I can't find any explanation of the hardware API in those locations.

I understand that the firmware running within the modem itself needs to be unmodifiable by end users, or else it may not be in compliance with various regulations, but the interface to the modem seems like it could be made available to users without harm.

Parents Reply Children
  • (I don't speak for Branden, but we collaborate on the same project together, so I'm chiming in too)

    > Is there a reason why you do not want to use bsdlib in your application?

    We're interested in portin Tock OS to the nRF91 (the nRF52 series is already one of the two main platforms for the OS). Supporting modems through an abstraction layer has historically been a problem.

    Typically these layers take over hardware features that the OS needs to control, or their runtime behavior has either not been compatible with the OS, or has not been documented enough to be able to work around. So far, the BLE and 802.15.4 radios have been documented well enough at the hardware level to implement our own drivers.

    (Anecdotally, I know both Branden and I have used the nRF SDKs independently and they are very nice to use, so we're not complaining!)

  • Hi,

    Amit said:
    Typically these layers take over hardware features that the OS needs to control, or their runtime behavior has either not been compatible with the OS, or has not been documented enough to be able to work around. So far, the BLE and 802.15.4 radios have been documented well enough at the hardware level to implement our own drivers.

    The bsdlib is a "thin layer" between the application and the modem, especially when comparing it to our softdevices. Documentation for the bsdlib will follow. in terms of requirements, it uses flash, RAM, and two interrupts (see here: https://github.com/NordicPlayground/fw-nrfconnect-nrf/blob/master/lib/bsdlib/bsd_os.c). More info on the requirements will follow once we reach a non-alpha state on our NCS software solution. 

     

    Kind regards,

    Håkon

  • Has there been any changes regarding this? Is there any API to interact with the LTE modem directly? Do you have any suggestions on which would be the best way to integrate this with an existing IP stack?

  • The former answers in this thread is still valid. No changes towards how to interact with the modem.

    I'd recommend that you create new cases in general instead of asking questions in older threads.

     

    Kind regards,

    Håkon

Related