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

Baremetal + ble module

Hi,

> Context:

I run a baremetal application that I would like to enhance with bluetooth. I am considering a BLE module from NS.

  • I currently have a SoC (nanopi m1) and I don't want to fiddle with the BLE stack AT ALL.
  • I cannot use a BLE SoC only, I need those nanopi m1 to act as master. I have to be able to control everything from the nanopi (that is a constraint I won't circumvent for ease of management).
  • I want something that I can connect to gpio pins and get it running.

Again, I don't use Linux and don't want to. I have my own OS that runs lightning fast already.

> Question:

  • So, is it possible to use NS modules in this context? which one would fit best?
  • I looked at your documentation and SDK but cannot figure out the addresses/registers/how-to to submit and receive packets easily.

Please ask me to clarify if you find an obscure point in my need.

Thanks

  • Don't know why you mention Linux, because the nRF chips don't run Linux, or have anything at all much to do with Linux. Nobody is going to suggest Linux.

    Yes you can use the Nordic chips as slaves doing only the BTLE part of the operation. SDKs up to and including SDK11 have a BLE Serialization library which allows you to send BLE commands to the nrf chip over a serial interface and get data back. It's similar to writing your application on the nRF chip, same sequence of calls, however they run on the other MCU, are serialized and sent over the interface, then unpacked and run on the nRF, then the responses come back. It's kind of a proprietary HCI interface. The Nordic chip just runs a loop reading the serial port, sending off commands to the bluetooth stack (softdevice), fetching events and sending them back over the serial port.

    Alternatively - if your BLE is fairly standalone, you could write the BLE service entirely on the nordic chip and have your own simple serial protocol between that and the MCU which just transfers application level events backwards and forwards.

    It's not quite the same as some of the connectivity chips which present as registers over SPI or something like that, BLE Serialization is more like packing function calls to be executed on the far side of a serial link.

    Take a look at the BLE serialization stuff in SDK 11 and see if it makes sense. It's a bit of a waste of the capabilities of the chip (nRF52 I'd use myself) but it will do what you want.

  • Thanks RK, you know, often people tell me "Just use Linux and be done with it". This sentence makes me sick. That is why I prefer to be clear about it immediately. Sorry if it sounded harsh, it was not the purpose :) As for the SDK v11, i am reading it carefully now. It seems to answer the need PER-FEC-TLY :) I read it and be back if I have some questions about it.

  • I wonder who's saying such things. In my opinion using Linux implies a higher complexity, price and consumption. That's totally fine for some applications but it's not the same scope at all. Note that the SDK V11 is not the last one, it's currently the V12 (though there are still a few issues documented on this forum, but NS is quite fast at fixing them).

  • yes but SDK12 doesn't support ble serialisation and it's not expected until SDK13

  • So there are features supported on SDK11 and not SDK12 ? Strange, thanks for the information. Anyway I think I've read that SDK13 will arrive in November.

Related