Skip to content
forked from xg590/SX1276

MicroPython Library for SX1276

Notifications You must be signed in to change notification settings

przemobe/SX1276

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repo implements more than basic SX1276 operations while Learn_SX1276 shows all the basics.

SX1276

MicroPython Library for SX1276 LoRa radio modem

Features

  • Send request, ask for response from a specified recipient, and broadcast.
  • Implement FHSS (first?)
    • FCC mandates frequency hopping if dwell time is above the threshold 400ms.
    • Large spreading factor and narrow bandwidth can significantly prolong the dwell time so that freq hopping is necessary for transmiiting large packet.

My dev environment

  • Two ESP32 with SX1276 (Heltec WiFi LoRa 32 V2)
  • VScode with Pico-Go extension
  • I configured project and global settings pico-go.json for Pico-Go ext so I can open two VScode window/instances and connect to two ESP32 boards simultanously

Usage

  • Connect two boards to dev machine
  • Open sender and receiver folders in two separate VScode windows.
  • Upload lora.py to boards
  • Run sender.py and receiver.py

FHSS

  • To prove the point of frequency hopping, I use a RTL-SDR to monitor the spectrum. In following waterfall diagram, we see the signal hops between 914 and 916MHz as I programmed it to be.
  • FHSS is not necessary if the message is short. For example, a 29Bytes packet can be transmitted under 400ms, given parameters {SF:10, BW:125kHz, CR:4/5, Header: Explicit , Preamble: 6}.
    Download the above air time calculator

Note

  • It is meaningless to do Channel Activity Detection (CAD) before Tx because SX1276 only match elusive preambles which last few milliseconds. No good solution to do Listen Before Talk or CSMA.

About

MicroPython Library for SX1276

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%