SAMD21 RF PRO (Sparkfun) with TTN V3 - Possible in Nov ‘22?

Hi everyone,

Has anyone been able to run the latest TTN stack on this board? It’s LMIC alright based on SAMD21 but Sparkfun instructions are terribly outdated and it seems dev has halted on this board completely?


TTN Stack would be the LNS (these days TTS(CE) aka TTNV3 vs earlier TTN V2) not a node so not possible - unless you are looking to port over one of the Node TTN libraries from things like the UNO, Node or GNSE? (Note former use Microchip modules - with stack embedded, Latter uses alternate STM Arm implementation)

Or are you asking if such a device can be configured to be a LoRaWAN Node (Rev 1.0.2, 1.0.3 or even 1.0.4) using an available Library? (LMIC - look at latest MCCI or potentially a LoRaMAC-node implementation?)) that will play nice with current TTS (V.3.22…)? (Note they are currently out of stock - another victim of the global chip shortage/extended supply chain?)

Hi, I am asking whether anyone has been able to successfully configure Sparkfun’s SAMD21 Pro RF board to be a LoRaWAN Node on the current implementation of TTN

If such person does exist please share an example of how this was done - Sparkfun’s own example is outdated and non-relevant as of today.


I have got a Seeduino XIAO, which uses a SAMD21G18A processor working fine with a TTNV3.

The LMIC code, from the old old days of TTNV2 runs OK.

Indeed hence my commnet wrt node firmware - the old docs called out Matthijs Kooijman’s old LMIC implmentation - now long since deprecated hence need to look at the more recent libs and frameworks I mentioned. WRT capability it then comes down to the resources of the MCU to hold the compiled code along with the complete ability to handle uplinks, downlinks and esp. all the associated MAC commands and required acknowledgements etc. Haven’t used myself but sure others more knowledgable or experienced with hacking the code and squeezing into constrained systems will respond :wink:

Update…as I see Stuart just has! :rofl:

Can you confirm which lib version you have used on this for @bubba198 ?

I have tested the MCCI_LoRaWAN_LMIC version, that seems OK.

Currently playing with the LMIC_low_power (older still) library in order to solve the duty cycle from deep sleep issue. The library code itself works, the XIAO joins, receives the devaddr etc, even negotiates down to SF7 when intially set to SF12. What I have yet to solve is how to get the XIAO to ignore the duty cycle limit.

For basic nodes both those LMIC libraries seem to be OK, should I have expected any issues for basic node operation ?

@bubba198 If you want to follow some of Stuart’s work with the SAMD21 (XIAO) the link to the thread (where he calls out some of the issues mentioned here) is

Probably not if on MCCI and no memory constraints…as above haven’t used… perhaps Jac or Nick have?

Probably a moving target of getting the right config on TTS to work with the MAC implementation in LMIC - some times I have nice well behaved nodes, other times they attract a downlink per uplink.

Thank you everyone - if one has working example for this board to share with the community - that would be optimal. The libraries used and a simple “hello world” payload example. Thank you

Read the thread, its been reported that the MCCI_LoRaWAN_LMIC library has examples that work with a SAMD21 processor, so they might work with your SAMD21 board.

Have a look at: LMIC-node

It supports multiple SAMD21 based boards.
It should be relatively easy to select one of the ‘Adafruit Feather M0 RFMx LoRa’, ‘Adafruit QT PY’ or ‘SAMD21 M0-Mini’ boards as alternative for your Sparkfun board and edit it’s Board Support File (BSF) to adjust for the proper pins / IO connections of your board.

@bluejedi Thank you, wonderful, read through it, only question I have before testing is what values to plug here. The instructions don’t specify the exact steps for adding the end device to the console?


Whilst LMIC-node provides the framework, the foundations are built on your choice of the LMIC library - which you need to look at the docs so you are get such details as the LW version.

@descartes Hi, I’m using MCCI LoRaWAN LMIC library as suggested by @bluejedi

I haven’t kept up with the latest changes recently, but as far as I’m aware a safe choice is to select version 1.0.3 for both LoRaWAN and Regional Parameters.

1 Like

I’m not sure I understand your point. You are using a wrapper that makes implementation much simpler, but you choose the engine.

As you know what the underlying stack is, you can read the implementation information for it to make the appropriate choices.

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.