GithubHelp home page GithubHelp logo

lora-sdr's Introduction

LoRa SDR project

This project will make use of SDR hardware to receive and decode Lora.

Repository layout

  • LoRa*.cpp - Pothos processing blocks and unit tests
  • RN2483.py - python utility for controlling the RN2483
  • examples/ - saved Pothos topologies with LoRa blocks

Noise simulation

This example demonstrates the LoRa PHY blocks using a looback path in the presence of noise.

  • examples/lora_simulation.pth - modem simulation

RN2483 receiver

This example receives and demodulates raw symbols with logic analyzer plot to view the symbols and triggered waveform plots to view the input. Once the example is activated, simply run the RN2483.py script to generate a single waveform to trigger the plots.

  • RN2483.py --freq=863.1e6 --bw=0.5e6 --sf=11 --tx="hello"
  • examples/rx_RN2483.pth

Simple relay

This example includes a simple client and relay app. The relay receives and decodes messages and relays them into another frequency and sync word. The client can post messages to the relay and view the response in a chat box widget.

  • examples/lora_sdr_relay.pth - LimeSDR LoRa relay
  • examples/lora_sdr_client.pth - LimeSDR LoRa client

Building project

git clone https://github.com/myriadrf/LoRa-SDR.git
cd LoRa-SDR
mkdir build
cd build
cmake ../
make -j4
sudo make install

lora-sdr's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lora-sdr's Issues

Receive any LoRa packet

Hey guys, this is more a request than an issue.

The LoRa Demodulator currently ignore packets that don't match the sync word.
Could you help me how to remove that sync word check so I can receive any LoRa packet. For a study project I have an arduino set up that sends packets and I'd like to receive them in Pothos.
Any help would be greatly appreciated as I'm new to all of this.
Kind regards

LoRa Skimmer?

Would it be possible to use this project to implement a LoRa skimmer (similar to https://en.wikipedia.org/wiki/CW_Skimmer)? i.e. receive all LoRa packets transmitted with any frequency (within the SDR's frequency range/bandwidth, of course), bandwidth, spreading factor, coding rate, sync word, etc.

Related to #14

Implement maximum likelyhood for PPM == SF

In the case where the symbol set is equal to (and not greater) than spread factor, we are guaranteed +/-1 decoding errors. When the symbol set is greater, the detector error is simply shifted out. To correctly decode this, we need to take into account all of the symbol possibilities that go into one set of interleaved symbols and use the hamming errors to select the best decode option.

Two major complications to implement this:

  • Because of interleaving, errors are spread across every N symbols. The maximum likely hood path is as long as 1 group of interleaved symbols. But not as long as the entire payload, the process just repeats for every group
  • The header options support their own code rate separate from the payload (usually 4/8). So doing this requires its once in a generic way for the payload, and somewhat specifically for the header decode.

can't find Framework.hpp

i am sorry to bother you that i can't find file Framework.hpp.please tell me where i can find this,thank you very much.

Preamble Parameter

I dont see anywhere in the demodulation chain where the preamble detection is done. I would think it would be in the LoRa Demod block but there is no such parameter. I'm using an SX1276 chip and trying to read a packet with a RTL2832U. I am recieving the signal no problem via pothos but the signal wont make it past the LoRa Demod block.

Lora_simulation work only 10 times

I try to run lora_simulation but it receive 10 lora packet (0 to 9) and after that all packet are dropped.

Did I miss something ? (by the way thanks for those examples)

is this using explicit or implicit?

I was able to receive these signals on sx1276 in implicit header mode, but not explicit mode.
It appears to send a longer packet when I put a message into the chat box, which would imply explicit mode. (implicit mode is fixed-length)

lora_sdr_client and lora_sdr_relay not working

Hello everyone and happy new year !!!

I am trying to activate the topology in Pothos Flow for example lora_sdr_client.pth and lora_sdr_relay.pth and neither of them works.
No exception is printed on the console.

I am running LimeSDR and using Windows 8.1.

image

I think the issue is caused because I have not built the project. But lora_simulation.pth works (although buggy see issue) which means that it can find the LoRaEncoder LoRaDecoder modules.

How should I go about to troubleshoot this problem?

question LimeSDR

Dear all,

Is it possible to run the code with 2 LimeSDR boards https://wiki.myriadrf.org/LimeSDR-USB? I am thinking about configuring one LimeSDR device as a gateway, and another one as a device. Optionally, I can use USRP B210/USRP X310. Will I be able to easily accomplish that with your code?

Thanks in advance,

Best regards,
Eryk Schiller

Decoding the header

I try to decode LoRa header, this is encoded in the 8 symbols which follow the reverse-chirp 2+1/4 symbol part. Can someone confirm that the code in this repository has proper algorithms for this part ?
I have the symbols, but I can't make sense of them after deinteleave.
Do I need to de-whiten then as well ?
Is there anybody knowledgeable here, who could clarify the details ?

a question about whitening polynomial

Thank you to provide a project to help me comprehend LoRa decode process, I tried and it really works, but i still have a question about the whitening polynomial, can you give me a hand? thank you so much.

The prerequisites not mentioned by Read.me.

When installing LimeSDR-LoRa, there are two Prerequisites not mentioned by the author.

The first Prerequisite is to install Poco C++ library.
sudo apt-get install libpoco-doc libpoco-dev

And another is to install 'nlohmann-json-dev' package as shown in #12.
sudo apt-get install -y nlohmann-json-dev

PothosFlow is not loading *.pth files

I try to open the example .pth files and it will not read them. Forcing it / changing extension to .pothos, will give this error: PothosFlow.GraphEditor: Error parsing JSON: illegal value

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.