Gazell nRF52820 / LoRa

Hi

Gazell libraries are provided in <SDK>/components/proprietary_rf/gzll/gcc/
and I have 2 questions about those

a) I see 2 flavours: gzll_<$HW>_gcc.a and gzll_<$HW>_sd_resources_gcc.a
For our product I dont use Softdevice so I guess gzll_<$HW>_gcc.a would be the right choice?
(haven't found a statement in the docs about this yet)

b) we use nRF52820 (no FPU) but there is no library version for this CPU
I was able to link with gzll_nrf52810_gcc.a
Is this the way to go?  

We plan to make a "PRO" version of our product with extended radio range.
I intend to add a LoRa chip to increase radio range.
But for this I would have to glue Gazell to LoRa hardware.
Gazell link layer is available as library only, no source code (?)
On github I find a project zhdylan/nordic-gzll, which looks a bit like re-inventing the wheel.

question: which way shold I go to combine Gazell with a LoRa chip?
(Gazell fits nicely the requirements of our application, LoRaWAN does not)

EDIT: I forgot one more question...
the Gazell user guide says:
"To set up a Gazell application...
    Initialize Gazell Link Layer glue code using gzll_glue_init()..."
why do the Gazell examples in the SDK don't call this function?

thank you very much for your advice and support :-))
Peter

Parents
  • Hi,

    a) I see 2 flavours: gzll_<$HW>_gcc.a and gzll_<$HW>_sd_resources_gcc.a
    For our product I dont use Softdevice so I guess gzll_<$HW>_gcc.a would be the right choice?
    (haven't found a statement in the docs about this yet)

    You can use both, the difference is the HW Resources usage, where one will use the same resources are the softdevice, while the other will use different instances that does not overlap with the ones used by the softdevice.

    b) we use nRF52820 (no FPU) but there is no library version for this CPU
    I was able to link with gzll_nrf52810_gcc.a
    Is this the way to go?  

    It may work, but this library will not have been tested on nRF52820. The nRF52820 have a different radio than nRF52810, so you might be missing features/errata workarounds if you use a library for another chip than it is built for. In nRF Connect SDK/nrfxlib, there is a library built for nRF52820 (with soft-float). This would be the only current solution for a production quality Gazell library for nRF52820. If you are starting a new project, it may be beneficial to start out with nRF Connect SDK anyway, as this is the platform that will have active development going forward. nRF5 SDK is still maintained, but it will not get new features.

    But for this I would have to glue Gazell to LoRa hardware.
    Gazell link layer is available as library only, no source code (?)

    Yes, the Gazell protocol is delivered as library only, the source code is not available.

    I'm not sure exactly how you want to glue the Gazell protocol to the LoRA hardware. Gazell is one of Nordic's proprietary protocols for sending data over the 2.4GHz radio. You may be able to implement a similar protocol for LoRa, but this would be on the side of the Gazell protocol. You could for instance implement a application layer on top, that interacts with both the Gazell library and the LoRa protocol.

    On github I find a project zhdylan/nordic-gzll, which looks a bit like re-inventing the wheel.

    As far as I can see, this is just an example application using the Gazell library, not a re-implementation of the Gazell protocol.

    EDIT: I forgot one more question...
    the Gazell user guide says:
    "To set up a Gazell application...
        Initialize Gazell Link Layer glue code using gzll_glue_init()..."
    why do the Gazell examples in the SDK don't call this function?

    I could not find any references to this function in the User Guide in nRF5 SDK. However, it is referenced in the nRF Connect SDK user guide, and also called in the samples.

    Best regards,
    Jørgen

Reply
  • Hi,

    a) I see 2 flavours: gzll_<$HW>_gcc.a and gzll_<$HW>_sd_resources_gcc.a
    For our product I dont use Softdevice so I guess gzll_<$HW>_gcc.a would be the right choice?
    (haven't found a statement in the docs about this yet)

    You can use both, the difference is the HW Resources usage, where one will use the same resources are the softdevice, while the other will use different instances that does not overlap with the ones used by the softdevice.

    b) we use nRF52820 (no FPU) but there is no library version for this CPU
    I was able to link with gzll_nrf52810_gcc.a
    Is this the way to go?  

    It may work, but this library will not have been tested on nRF52820. The nRF52820 have a different radio than nRF52810, so you might be missing features/errata workarounds if you use a library for another chip than it is built for. In nRF Connect SDK/nrfxlib, there is a library built for nRF52820 (with soft-float). This would be the only current solution for a production quality Gazell library for nRF52820. If you are starting a new project, it may be beneficial to start out with nRF Connect SDK anyway, as this is the platform that will have active development going forward. nRF5 SDK is still maintained, but it will not get new features.

    But for this I would have to glue Gazell to LoRa hardware.
    Gazell link layer is available as library only, no source code (?)

    Yes, the Gazell protocol is delivered as library only, the source code is not available.

    I'm not sure exactly how you want to glue the Gazell protocol to the LoRA hardware. Gazell is one of Nordic's proprietary protocols for sending data over the 2.4GHz radio. You may be able to implement a similar protocol for LoRa, but this would be on the side of the Gazell protocol. You could for instance implement a application layer on top, that interacts with both the Gazell library and the LoRa protocol.

    On github I find a project zhdylan/nordic-gzll, which looks a bit like re-inventing the wheel.

    As far as I can see, this is just an example application using the Gazell library, not a re-implementation of the Gazell protocol.

    EDIT: I forgot one more question...
    the Gazell user guide says:
    "To set up a Gazell application...
        Initialize Gazell Link Layer glue code using gzll_glue_init()..."
    why do the Gazell examples in the SDK don't call this function?

    I could not find any references to this function in the User Guide in nRF5 SDK. However, it is referenced in the nRF Connect SDK user guide, and also called in the samples.

    Best regards,
    Jørgen

Children
  • Hi Jørgen
    thank you very much for your advice :-)

    I see, I should switch from the SDK I use to Connect-SDK.

    The best option would have been to look at the Gazell source to find out how to properly integrate LoRa.
    This option is not available so I will have to go with the second best which is... I don't know yet.
    Luckily I can first deliver Gazell out of the box and the long range version can wait.
    This gives me time to find a reasonable solution.

    best regards
    Peter

Related