HAB LoRa

From philcrump.co.uk
Jump to: navigation, search

RFM Modules Datasheet: RFM95/96/97/98 Datasheet

Baudrates

Max Bandwidth: 20.8 KHz

Spreading Factor 12 10 6
SnR Gain 20dB 15dB 5dB
FEC 1/2 5/6 1/2 5/6 1/2 5/6
Bitrate 31 49 244(?) 391(?) 976 1562

Header Mode

A spreading factor of 6 requires Implicit Mode

Explicit

Each packet contains a short (4/8 protected) header specifying the payload length, code rate, and presence of a CRC.

Implicit

The payload length, code rate and CRC presence must be known in advance and pre-programmed.

Existing Implementations

Dave Akerman

SSDV SF:6, FEC: 5/6

Telem SF:11 FEC:1/2

Initialisation

Check Version Number to verify connectivity

  • readRegister(REG_HWVERSION)

Set RFM to LoRa Sleep Mode

  • writeRegister(REG_OPMODE, 0x80)

Set LoRa Modem Configuration

  • writeRegister(REG_MODEM_CONFIG, IMPLICIT_MODE | ERROR_CODING_4_5 | BANDWIDTH_20K8)
  • writeRegister(REG_MODEM_CONFIG2, SPREADING_6)

Packet Length MSB

  • writeRegister(REG_PACKET_CONFIG2, (readRegister(REG_PACKET_CONFIG2) & 0xF8) | 0x05)

Set Receiver sequencer

  • writeRegister(REG_SEQUENCE_CONFIG2, 0x04)

Set Preamble Size to 12 symbols

  • writeRegister(REG_PREAMBLE_LSB, 0x0C)

Set payload length (required for implicit mode)

  • writeRegister(REG_PAYLOAD_LENGTH,PAYLOAD_LENGTH)
  • writeRegister(REG_RX_NB_BYTES,PAYLOAD_LENGTH)

Frequency

Fstep = Fxosc/2^19

Frf = Fstep * Reg_Freq

Fxosc = 32 MHz

Fstep = 19 Hz

Reg_Freq Lookup

0x06, 0x07, 0x08 (MSB - mid - LSB)

434.000 - 0x6c, 0x80, 0x00

434.100 - 0x6c, 0x86, 0x66

434.200 - 0x6c, 0x8c, 0xcc

434.300 - 0x6c, 0x93, 0x33

434.400 - 0x6c, 0x99, 0x99