Lora support on OpenWrt devices via Mikrotik R11e-LoRa8 mini-PCIe card?

Hi,
did anyone try to get Mikrotik R11e-LoRa8 mini-PCIe Lora card working on OpenWrt?
Mikrotik R11e-LoRa8 is using Semtech SX1301 chip.

Are there some other Lora cards that work on OpenWrt?

Hi,

Sorry for reviving this old post, but I got my hands on the wAP LR8 kit, which is basically a wAP R bundled with the R11e-LR8 card.

First, I just added support for the router. It's not merged upstream yet, but I'll be opening a pull request soon.

Second, the R11e-LoRa8 mini-PCIe is not really mini-PCIe. It has the mini-PCIe form factor, but it uses the USB lines to communicate with the SoC. As MikroTik states:

R11e-LR8 is a new concentrator Gateway card for LoRa® technology in mini PCIe form factor based on Semtech SX1301 chipset. It enables LoRa® connectivity for any MikroTik product that has mPCIe slot with connected USB lines.

I got the R11e-LR8 detected on the USB port:

root@OpenWrt:~# lsusb
Bus 001 Device 002: ID 2cd2:020a  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@OpenWrt:~# lsusb -v -s 001:002

Bus 001 Device 002: ID 2cd2:020a  
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            2 Communications
  bDeviceSubClass         2 Abstract (modem)
  bDeviceProtocol         0 None
  bMaxPacketSize0        64
  idVendor           0x2cd2 
  idProduct          0x020a 
  bcdDevice            1.00
  iManufacturer           1 MikroTik
  iProduct                2 R11e-LoRa
  iSerial                 3 DEADBEEFABCD
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           67
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol      1 AT-commands (v.25ter)
      iInterface              0 
      CDC Header:
        bcdCDC               1.10
      CDC Call Management:
        bmCapabilities       0x00
        bDataInterface          1
      CDC ACM:
        bmCapabilities       0x02
          line coding and serial state
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              16
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0001
  Self Powered

I couldn't do anything useful with the device, but at least I know it's actually accessible.

Cheers!

1 Like

Upon further searching the Lora device should be able to be used with

and

and

Or even just the radio card - R11e-LR8 with a miniPCIe to USB adapter and installing packet_forwarder
from

support doc from MiktroTik
https://help.mikrotik.com/docs/display/UM/R11e-LR8

Hi Mark,

Thanks for your pointers. The R11e-LR8, which is included in the wAP LR8 kit is based on Semtech's SX1301 gateway chip, which is commonly found in LoRaWAN gateways.

I didn't have time to investigate further but I could check that the OpenWrt-based Dragino LPS8 runs /usr/bin/lora_pkt_forwarder (presumably from the repository you linked above).

Whenever I have some time available I'll try Xueliu's OpenWrt LoRa feed you linked above, it looks very promising. Do you have any experience running this software on OpenWrt?

Cheers!

1 Like

Hi, no not as yet, but will do eventually when I have some OpenWRT based hardware

​i am currently experimenting with these ESP32 based devices
interfaces over Bluetooth, usb and wifi

I think one of the Xue Liu packages is in the official feeds of OpenWrt, did you see this? https://github.com/openwrt/packages/blob/master/net/lora-gateway-hal/Makefile

also ther was a work in progress PR to integrate the lora_pkt_forwarder in official feeds here https://github.com/openwrt/packages/pull/13379

2 Likes

yes i saw that recent lora-gateway-hal master commit

what i do not see at the moment, is many options for using lora (on OpenWRT) without using the things network - packet broker - things ecosystem

https://www.thethingsindustries.com/docs/reference/packet-broker/

the metastatic projects is very interesting as is have some very practical applications - ie remote gpio read and write

off-grid use

Did anyone look into porting basicstation (at least LNS) to OpenWrt?

@aparcar , not sure if anyone has, are you interested ?

Yes I think I'll take care, maybe @rogerpueyo can help me a bit

Hi,

@bobafetthotmail I hadn't seen neither the lora-gateway-hal package nor the PR before, thanks! :slight_smile:

@aparcar I added Xue Liu repository and compiled the packet forwarder LuCI app and the packet forwarder daemon. I got it working but, as soon as a LoRa packet arrived, the daemon crashed. Let's see if we can push it a little bit further.

@rogerpueyo I'd use the basicstation rather than the legacy pkg_forwarder, did you try that? The setup is a bit more complicated I tested it locally and it forwarded more than one package!

Moin! :slight_smile:

As an exception, I dare to revive this thread again, because many references are already in here that really do not need to be repeated. The topic is from my point of view not yet really "solved", at least when looking through the references for me still a few questions have arisen. Maybe other people have also failed. Let's get more specific here! :slight_smile:

I am facing the (self-chosen) task to get a R11e-LoRa8 running in a BPi-R64-V1.1. The goal is not to integrate the device into LoraWAN / TTN, I just want to receive or send raw LoRa packets.

What do I have so far as a setup

  • Running OpenWRT (current master) on the BPi-R64-V1.1
  • Installed card R11e-LoRa8, the card also shows up via lsusb as "2cd2:020a" as documented in the beginning of the thread
  • Installed packages libloragw - 5.0.1-2 libloragw-tests - 5.0.1-2 and libloragw-utils - 5.0.1-2 directly from the packages.

This is how I understand the concept of MikroTik PCI card, feel free to correct me:

  • The card has a sx1301 chip, which is first accessed via SPI
  • The card has a STM32F4 as MCU (soldered on the PCB backside). This talks via SPI with the "sx1301" and provides the USB connection (via the USB pins of the miniPCI connector).
  • The MCU is also responsible, among other things, for writing the appropriate firmware to the SX1301 at system startup.
  • The "MCU part" could also be served by a direct SPI connected Linux System like OpenWRT.

My questions in form of a rough logical chain:

  • Could it be that the linked tools mostly rely on direct SPI communication, i.e. without an intermediary controller? From the datasheet: "The control of the SX1301 by the MCU is made using a Hardware Abstraction Layer (HAL). The Hardware Abstraction Layer source code is provided by Semtech and can be adapted by the MCU developers. "-> the MCU is already there. Also the linked Dragino LPS8 is directly connected via SPI.
  • The "libloragw" seems to use the HAL (SPI using) libraries directly and wants to communicate with the SX1301.
  • Could it be that this makes it basically unclear what the controller of the R11e-LoRa8 expects for commands via USB?
  • Has anyone explicitly gotten the R11e-LoRa8 to run directly under OpenWRT / Linux? Because it just sounds superficial here in the thread after reading it several times, I don't see an obvious solution :slight_smile:

I'm just unsure if I'm missing something fundamental, maybe you guys have helpful thoughts on this again. After all, if I (hopefully not) understood correctly, this thread would have to be marked with a clear "No doesn't work! Do not buy!".

ahoi!
oyla

1 Like