LoRa Basics MAC on Arduino 33 Nano

Is it possible to use the new-ish LoRa Basics MAC (https://github.com/lorabasics/basicmac) on Arduino boards? I had the impression that there was, but I see nothing in the docs or the repo.
Alternatively, is there any ongoing effort to port it to Arduino?


IIRC the memory footprint of it is too large.

And how about the new Arduino 33 Nanos? In particular, I’m looking at the Arduino 33 Nano BLE Sense that has an nRF52480, 1MB Flash and 256KB of RAM. It would be a perfect “Getting started” node with all those sensors.

1 Like

> And how about the new Arduino 33 Nanos?

An interesting possibility I guess, do you know what the deep sleep curent of those new ‘Arduino’ modules is ?

Apparently, 4.5uA running Blink, according to Arduino’s blog.

Mbed also supports tickless mode; in this way, every time you write delay() in your code, the board will try to go in low power modes, knowing exactly when to wake up for the next scheduled event (or any external interrupt). We are able to achieve an impressive 4.5uA of lower consumption while running a plain old Blink on the Nano 33 BLE (a minimal hardware modification is needed to obtain this value but another blog post is coming).

The “minimal hardware mod” they mention hasn’t been documented, as far as I know.

Should work easily. We just need someone to spend time on porting it to this target.

You probably have to remove an LED.


So a board specifically designed for IOT applications needs a hardware modification to work at a low sleep current …

1 Like

:smiley: In all fairness, IOT does not have to be low power, even in LoRaWAN, Class C profile is actually recommended for mains powered devices.

I glanced at the code a bit, and it looks like they actually use LMIC, but before the port to Arduino…(?)

Assuming this is the core I can see a complete MBED system in there including the LoRaMacNode integration.

No idea if this is actually included in the build. If it is, this is a better option than LMIC based stuff.

Holy!!! Yes, I am pretty sure that’s the core with mbed, but I didn’t notice it included LoRaMacNode in there. I’ll try to see if I can make it work. Thanks!

I’m looking in to this as well. Trying to create a simple LoRa node with the RFM95 connected to a ARD nano 33 IoT.
Did you manage to get this working?



Not yet, but in principle, it should work: https://github.com/arduino/ArduinoCore-nRF528x-mbedos/issues/42

Status of LoRa Basics MAC

LoRa Basic MAC (aka Basic MAC) has been deprecated by Semtech:

Please note that LoRaMAC-Node is replacing LoRa Basics MAC and should be used for new designs. In addition, in Q3 2020, Semtech will deliver a new software library to support the implementation of the LoRa Alliance’s LoRaWAN® specification with Modem functionalities.

If I understood correctly:
The ‘new software library’ will be based on ‘Soft Modem’ which will consist of a Soft Modem client (for end devices) and a set of Semtech backend services. The Soft Modem client will provide high-level functions that take care of much of the low-level stuff. Part of these functions may work independently while others will require use of the backend services.
The client will be developed for ARM and will be open sourced (so it can be ported by others). The services will be closed source but the specifications will be open.

Meanwhile @matthijskooijman has been busy porting Basic MAC to the Arduino framework.



1 Like


which could be an easy way to provide LoRa connectivity to the Nano BLE sense?

Is there some example (ie. skect and wire connection) on how to send data from the arduino nano 33) through lorawan by using a shield or an uart module?
Actually I miss something due to my low expertise in C programming… maybe I have to implement serial communication between the Nano33 and the MKR shield device which sends (LoRa) the data received by Nano 33 (by serial?) ?

Do you know where I can find some example related to the connection of Nano33 with a radio module (i.e. SX1276) with MbedOS libs?

thank you all in advance

Good morning,
I was not sure to put my question in this page or create a new topic:
I am going to send temperature of a sensor via arduino nano iot33 and
dragino lora sheild (module) to TTN, but after uploading LMIC lib to
the board the port loose and board disconnect. but it works properly
with arduino uno. As I discovered there is problem with interrupt pins in arduino iot33 (nano 33 iot interrupts - #3 by Willy_1 - Nano 33 IoT - Arduino Forum). I checked user manual of it, it seems there is no interrupt pin while in arduino uno there is on pins 2,3. May I ask your helps,
Many thanks

The Arduino forum (a good place to ask Arduino questions) thread you linked to says of the IOT33;

“So I tested all digital pins and the result is: pins 2, 3, 9, 10, and 11 work as interrupt pin

1 Like

Just to clarify, you have connected the Dragino LoRa Shield to the Arduino Nano IOT33?

LMIC does not use interrupts so it doesn’t matter - we traditionally use the ATmega328 interrupt pins 2 & 3 so that one day it may use interrupts if enabled.

So you are OK to use pins 2 & 3.