# ESP32 LoRa (SX127*) Provides SPI driver for SX1276/SX1278 LoRa radio ## Install Designed to be used as `esp-idf component`. Suggested using as `git submodule` ``` git submodule add https://gitlab.com/morganrallen/esp32-lora.git components/esp32-lora/ git submodule init git submodule update ``` ## Configure Uses built in KConfig. Run `make menuconfig` and find config under `Component config` -> `LORA32`. Defaults targeted to TTGO LoRa OLED boards. ## Use This is the most basic usage. Setting up the LoRa instance, setting it's receive handler, running init then sending a message. ``` lora32_cfg_t lora; lora = lora32_create(); lora.receive = &handle_lora_receive; lora32_init(&lora); lora32_send(&lora, "Hello, LoRa", 11); ``` ## API ### `lora32_cfg_t static lora32_create()` Creates a new LoRa instance ### `uint8_t lora32_init(lora32_cfg_t *config)` Initialized LoRa instance. This configures GPIOs, SPI, LoRa radio and receive handlers Returns 1 on success. ### `uint8_t lora32_data_available(lora32_cfg_t *lora)` Indicates if data is presently available. ### `uint8_t lora32_parse_packet(lora32_cfg_t *lora, uint8_t size)` ### `void lora32_send(lora32_cfg_t *config, uint8_t *data, uint8_t len)` Transmits data over the LoRa radio. ### `void lora32_set_spreadfactor(lora32_cfg_t *lora, uint8_t factor)` Sets LoRa Spread Factor. Accepts `6`-`12`. ### `void lora32_dump_regs(lora32_cfg_t *lora)` Dumps all registers from SX1276