58 lines
1.4 KiB
Markdown
58 lines
1.4 KiB
Markdown
# 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", 10);
|
|
|
|
```
|
|
|
|
## 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
|