|
| LLCC68 (Module *mod) |
| Default constructor.
|
|
int16_t | begin (float freq=434.0, float bw=125.0, uint8_t sf=9, uint8_t cr=7, uint8_t syncWord=RADIOLIB_SX126X_SYNC_WORD_PRIVATE, int8_t pwr=10, uint16_t preambleLength=8, float tcxoVoltage=0, bool useRegulatorLDO=false) |
| Initialization method for LoRa modem.
|
|
int16_t | setBandwidth (float bw) override |
| Sets LoRa bandwidth. Allowed values are 125.0, 250.0 and 500.0 kHz.
|
|
int16_t | setSpreadingFactor (uint8_t sf) override |
| Sets LoRa spreading factor. Allowed values range from 5 to 11, depending on currently set spreading factor.
|
|
int16_t | setDataRate (DataRate_t dr) override |
| Set data.
|
|
int16_t | checkDataRate (DataRate_t dr) override |
| Check the data rate can be configured by this module.
|
|
int16_t | setModem (ModemType_t modem) override |
| Set modem for the radio to use. Will perform full reset and reconfigure the radio using its default parameters.
|
|
| SX1262 (Module *mod) |
| Default constructor.
|
|
virtual int16_t | beginFSK (float freq=434.0, float br=4.8, float freqDev=5.0, float rxBw=156.2, int8_t power=10, uint16_t preambleLength=16, float tcxoVoltage=1.6, bool useRegulatorLDO=false) |
| Initialization method for FSK modem.
|
|
int16_t | beginLRFHSS (float freq=434.0, uint8_t bw=RADIOLIB_SX126X_LR_FHSS_BW_722_66, uint8_t cr=RADIOLIB_SX126X_LR_FHSS_CR_2_3, bool narrowGrid=true, int8_t power=10, float tcxoVoltage=1.6, bool useRegulatorLDO=false) |
| Initialization method for LR-FHSS modem. This modem only supports transmission!
|
|
int16_t | setFrequency (float freq) override |
| Sets carrier frequency. Allowed values are in range from 150.0 to 960.0 MHz. Will automatically perform image calibration if the frequency changes by more than RADIOLIB_SX126X_CAL_IMG_FREQ_TRIG MHz.
|
|
int16_t | setFrequency (float freq, bool skipCalibration) |
| Sets carrier frequency. Allowed values are in range from 150.0 to 960.0 MHz. Will automatically perform image calibration if the frequency changes by more than RADIOLIB_SX126X_CAL_IMG_FREQ_TRIG_MHZ.
|
|
virtual int16_t | setOutputPower (int8_t power) override |
| Sets output power. Allowed values are in range from -9 to 22 dBm. This method is virtual to allow override from the SX1261 class.
|
|
int16_t | checkOutputPower (int8_t power, int8_t *clipped) override |
| Check if output power is configurable.
|
|
int16_t | setModem (ModemType_t modem) override |
| Set modem for the radio to use. Will perform full reset and reconfigure the radio using its default parameters.
|
|
| SX126x (Module *mod) |
| Default constructor.
|
|
int16_t | begin (uint8_t cr, uint8_t syncWord, uint16_t preambleLength, float tcxoVoltage, bool useRegulatorLDO=false) |
| Initialization method for LoRa modem.
|
|
int16_t | beginFSK (float br, float freqDev, float rxBw, uint16_t preambleLength, float tcxoVoltage, bool useRegulatorLDO=false) |
| Initialization method for FSK modem.
|
|
int16_t | beginLRFHSS (uint8_t bw, uint8_t cr, bool narrowGrid, float tcxoVoltage, bool useRegulatorLDO=false) |
| Initialization method for LR-FHSS modem. This modem only supports transmission!
|
|
int16_t | setLrFhssConfig (uint8_t bw, uint8_t cr, uint8_t hdrCount=3, uint16_t hopSeqId=0x100) |
| Sets LR-FHSS configuration.
|
|
int16_t | reset (bool verify=true) |
| Reset method. Will reset the chip to the default state using RST pin.
|
|
int16_t | transmit (const uint8_t *data, size_t len, uint8_t addr=0) override |
| Blocking binary transmit method. Overloads for string-based transmissions are implemented in PhysicalLayer.
|
|
int16_t | receive (uint8_t *data, size_t len) override |
| Blocking binary receive method. Overloads for string-based transmissions are implemented in PhysicalLayer.
|
|
int16_t | transmitDirect (uint32_t frf=0) override |
| Starts direct mode transmission.
|
|
int16_t | receiveDirect () override |
| Starts direct mode reception. Only implemented for PhysicalLayer compatibility, as SX126x series does not support direct mode reception. Will always return RADIOLIB_ERR_UNKNOWN.
|
|
int16_t | scanChannel () override |
| Performs scan for LoRa transmission in the current channel. Detects both preamble and payload. Configuration defaults to the values recommended by AN1200.48.
|
|
int16_t | scanChannel (const ChannelScanConfig_t &config) override |
| Performs scan for LoRa transmission in the current channel. Detects both preamble and payload.
|
|
int16_t | sleep () override |
| Sets the module to sleep mode. To wake the device up, call standby(). Overload with warm start enabled for PhysicalLayer compatibility.
|
|
int16_t | sleep (bool retainConfig) |
| Sets the module to sleep mode. To wake the device up, call standby().
|
|
int16_t | standby () override |
| Sets the module to standby mode (overload for PhysicalLayer compatibility, uses 13 MHz RC oscillator).
|
|
int16_t | standby (uint8_t mode, bool wakeup=true) |
| Sets the module to standby mode.
|
|
virtual void | setDio1Action (void(*func)(void)) |
| Sets interrupt service routine to call when DIO1 activates.
|
|
virtual void | clearDio1Action () |
| Clears interrupt service routine to call when DIO1 activates.
|
|
void | setPacketReceivedAction (void(*func)(void)) override |
| Sets interrupt service routine to call when a packet is received.
|
|
void | clearPacketReceivedAction () override |
| Clears interrupt service routine to call when a packet is received.
|
|
void | setPacketSentAction (void(*func)(void)) override |
| Sets interrupt service routine to call when a packet is sent.
|
|
void | clearPacketSentAction () override |
| Clears interrupt service routine to call when a packet is sent.
|
|
void | setChannelScanAction (void(*func)(void)) override |
| Sets interrupt service routine to call when a channel scan is finished.
|
|
void | clearChannelScanAction () override |
| Clears interrupt service routine to call when a channel scan is finished.
|
|
int16_t | startTransmit (const uint8_t *data, size_t len, uint8_t addr=0) override |
| Interrupt-driven binary transmit method. Overloads for string-based transmissions are implemented in PhysicalLayer.
|
|
int16_t | finishTransmit () override |
| Clean up after transmission is done.
|
|
int16_t | startReceive () override |
| Interrupt-driven receive method with default parameters. Implemented for compatibility with PhysicalLayer.
|
|
int16_t | startReceive (uint32_t timeout, RadioLibIrqFlags_t irqFlags=RADIOLIB_IRQ_RX_DEFAULT_FLAGS, RadioLibIrqFlags_t irqMask=RADIOLIB_IRQ_RX_DEFAULT_MASK, size_t len=0) |
| Interrupt-driven receive method. DIO1 will be activated when full packet is received.
|
|
int16_t | startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod, RadioLibIrqFlags_t irqFlags=RADIOLIB_IRQ_RX_DEFAULT_FLAGS, RadioLibIrqFlags_t irqMask=RADIOLIB_IRQ_RX_DEFAULT_MASK) |
| Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2.
|
|
int16_t | startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8, RadioLibIrqFlags_t irqFlags=RADIOLIB_IRQ_RX_DEFAULT_FLAGS, RadioLibIrqFlags_t irqMask=RADIOLIB_IRQ_RX_DEFAULT_MASK) |
| Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages.
|
|
int16_t | readData (uint8_t *data, size_t len) override |
| Reads data received after calling startReceive method. When the packet length is not known in advance, getPacketLength method must be called BEFORE calling readData!
|
|
int16_t | startChannelScan () override |
| Interrupt-driven channel activity detection method. DIO1 will be activated when LoRa preamble is detected, or upon timeout. Defaults to CAD parameter values recommended by AN1200.48.
|
|
int16_t | startChannelScan (const ChannelScanConfig_t &config) override |
| Interrupt-driven channel activity detection method. DIO1 will be activated when LoRa preamble is detected, or upon timeout.
|
|
int16_t | getChannelScanResult () override |
| Read the channel scan result.
|
|
int16_t | setCodingRate (uint8_t cr) |
| Sets LoRa coding rate denominator. Allowed values range from 5 to 8.
|
|
int16_t | setSyncWord (uint8_t syncWord, uint8_t controlBits=0x44) |
| Sets LoRa sync word.
|
|
int16_t | setCurrentLimit (float currentLimit) |
| Sets current protection limit. Can be set in 2.5 mA steps.
|
|
float | getCurrentLimit () |
| Reads current protection limit.
|
|
int16_t | setPreambleLength (size_t preambleLength) override |
| Sets preamble length for LoRa or FSK modem. Allowed values range from 1 to 65535.
|
|
int16_t | setFrequencyDeviation (float freqDev) override |
| Sets FSK frequency deviation. Allowed values range from 0.0 to 200.0 kHz.
|
|
int16_t | setBitRate (float br) override |
| Sets FSK bit rate. Allowed values range from 0.6 to 300.0 kbps.
|
|
int16_t | setDataRate (DataRate_t dr) override |
| Set data.
|
|
int16_t | checkDataRate (DataRate_t dr) override |
| Check the data rate can be configured by this module.
|
|
int16_t | setRxBandwidth (float rxBw) |
| Sets FSK receiver bandwidth. Allowed values are 4.8, 5.8, 7.3, 9.7, 11.7, 14.6, 19.5, 23.4, 29.3, 39.0, 46.9, 58.6, 78.2, 93.8, 117.3, 156.2, 187.2, 234.3, 312.0, 373.6 and 467.0 kHz.
|
|
int16_t | setRxBoostedGainMode (bool rxbgm, bool persist=true) |
| Enables or disables Rx Boosted Gain mode as described in SX126x datasheet section 9.6 (SX1261/2 v2.1, SX1268 v1.1)
|
|
int16_t | setDataShaping (uint8_t sh) override |
| Sets time-bandwidth product of Gaussian filter applied for shaping. Allowed values are RADIOLIB_SHAPING_0_3, RADIOLIB_SHAPING_0_5, RADIOLIB_SHAPING_0_7 or RADIOLIB_SHAPING_1_0. Set to RADIOLIB_SHAPING_NONE to disable data shaping.
|
|
int16_t | setSyncWord (uint8_t *syncWord, size_t len) override |
| Sets FSK sync word in the form of array of up to 8 bytes. Can also set LR-FHSS sync word, but its length must be 4 bytes.
|
|
int16_t | setSyncBits (uint8_t *syncWord, uint8_t bitsLen) |
| Sets FSK sync word in the form of array of up to 8 bytes.
|
|
int16_t | setNodeAddress (uint8_t addr) |
| Sets node address. Calling this method will also enable address filtering for node address only.
|
|
int16_t | setBroadcastAddress (uint8_t broadAddr) |
| Sets broadcast address. Calling this method will also enable address filtering for node and broadcast address.
|
|
int16_t | disableAddressFiltering () |
| Disables address filtering. Calling this method will also erase previously set addresses.
|
|
int16_t | setCRC (uint8_t len, uint16_t initial=0x1D0F, uint16_t polynomial=0x1021, bool inverted=true) |
| Sets CRC configuration.
|
|
int16_t | setWhitening (bool enabled, uint16_t initial=0x01FF) |
| Sets FSK whitening parameters.
|
|
int16_t | setTCXO (float voltage, uint32_t delay=5000) |
| Sets TCXO (Temperature Compensated Crystal Oscillator) configuration.
|
|
int16_t | setDio2AsRfSwitch (bool enable=true) |
| Set DIO2 to function as RF switch (default in Semtech example designs).
|
|
float | getDataRate () const |
| Gets effective data rate for the last transmitted packet. The value is calculated only for payload bytes.
|
|
float | getRSSI () override |
| Gets recorded signal strength indicator. Overload with packet mode enabled for PhysicalLayer compatibility.
|
|
float | getRSSI (bool packet) |
| Gets RSSI (Recorded Signal Strength Indicator).
|
|
float | getSNR () override |
| Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa modem.
|
|
float | getFrequencyError () |
| Gets frequency error of the latest received packet. WARNING: This functionality is based on SX128x implementation and not documented on SX126x. While it seems to be working, it should be used with caution!
|
|
size_t | getPacketLength (bool update=true) override |
| Query modem for the packet length of received payload.
|
|
size_t | getPacketLength (bool update, uint8_t *offset) |
| Query modem for the packet length of received payload and Rx buffer offset.
|
|
int16_t | fixedPacketLengthMode (uint8_t len=RADIOLIB_SX126X_MAX_PACKET_LENGTH) |
| Set modem in fixed packet length mode. Available in FSK mode only.
|
|
int16_t | variablePacketLengthMode (uint8_t maxLen=RADIOLIB_SX126X_MAX_PACKET_LENGTH) |
| Set modem in variable packet length mode. Available in FSK mode only.
|
|
RadioLibTime_t | getTimeOnAir (size_t len) override |
| Get expected time-on-air for a given size of payload.
|
|
RadioLibTime_t | calculateRxTimeout (RadioLibTime_t timeoutUs) override |
| Calculate the timeout value for this specific module / series (in number of symbols or units of time)
|
|
uint32_t | getIrqFlags () override |
| Read currently active IRQ flags.
|
|
int16_t | setIrqFlags (uint32_t irq) override |
| Set interrupt on DIO1 to be sent on a specific IRQ bit (e.g. RxTimeout, CadDone).
|
|
int16_t | clearIrqFlags (uint32_t irq) override |
| Clear interrupt on a specific IRQ bit (e.g. RxTimeout, CadDone).
|
|
int16_t | implicitHeader (size_t len) |
| Set implicit header mode for future reception/transmission.
|
|
int16_t | explicitHeader () |
| Set explicit header mode for future reception/transmission.
|
|
int16_t | setRegulatorLDO () |
| Set regulator mode to LDO.
|
|
int16_t | setRegulatorDCDC () |
| Set regulator mode to DC-DC.
|
|
int16_t | setEncoding (uint8_t encoding) override |
| Sets transmission encoding. Available in FSK mode only. Serves only as alias for PhysicalLayer compatibility.
|
|
void | setRfSwitchPins (uint32_t rxEn, uint32_t txEn) |
| Some modules contain external RF switch controlled by pins. This function gives RadioLib control over those pins to automatically switch between various modes: When idle both pins will be LOW, during TX the txEn pin will be HIGH, during RX the rxPin will be HIGH.
|
|
void | setRfSwitchTable (const uint32_t(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) |
| Some modules contain external RF switch controlled by pins. This function gives RadioLib control over those pins to automatically switch between various modes.
|
|
int16_t | forceLDRO (bool enable) |
| Forces LoRa low data rate optimization. Only available in LoRa mode. After calling this method, LDRO will always be set to the provided value, regardless of symbol length. To re-enable automatic LDRO configuration, call SX126x::autoLDRO()
|
|
int16_t | autoLDRO () |
| Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method, LDRO will be enabled automatically when symbol length exceeds 16 ms.
|
|
uint8_t | randomByte () override |
| Get one truly random byte from RSSI noise.
|
|
int16_t | invertIQ (bool enable) override |
| Enable/disable inversion of the I and Q signals.
|
|
int16_t | getModem (ModemType_t *modem) override |
| Get modem currently in use by the radio.
|
|
void | setDirectAction (void(*func)(void)) override |
| Set interrupt service routine function to call when data bit is received in direct mode.
|
|
void | readBit (uint32_t pin) override |
| Function to read and process data bit in direct reception mode.
|
|
int16_t | uploadPatch (const uint32_t *patch, size_t len, bool nonvolatile=true) |
| Upload binary patch into the SX126x device RAM. Patch is needed to e.g., enable spectral scan and must be uploaded again on every power cycle.
|
|
int16_t | spectralScanStart (uint16_t numSamples, uint8_t window=RADIOLIB_SX126X_SPECTRAL_SCAN_WINDOW_DEFAULT, uint8_t interval=RADIOLIB_SX126X_SCAN_INTERVAL_8_20_US) |
| Start spectral scan. Requires binary path to be uploaded.
|
|
void | spectralScanAbort () |
| Abort an ongoing spectral scan.
|
|
int16_t | spectralScanGetStatus () |
| Read the status of spectral scan.
|
|
int16_t | spectralScanGetResult (uint16_t *results) |
| Read the result of spectral scan.
|
|
int16_t | setPaConfig (uint8_t paDutyCycle, uint8_t deviceSel, uint8_t hpMax=RADIOLIB_SX126X_PA_CONFIG_HP_MAX, uint8_t paLut=RADIOLIB_SX126X_PA_CONFIG_PA_LUT) |
| Set the PA configuration. Allows user to optimize PA for a specific output power and matching network. Any calls to this method must be done after calling begin/beginFSK and/or setOutputPower. WARNING: Use at your own risk! Setting invalid values can and will lead to permanent damage!
|
|
int16_t | calibrateImage (float freq) |
| Perform image rejection calibration for the specified frequency. Will try to use Semtech-defined presets first, and if none of them matches, custom iamge calibration will be attempted using calibrateImageRejection.
|
|
int16_t | calibrateImageRejection (float freqMin, float freqMax) |
| Perform image rejection calibration for the specified frequency band. WARNING: Use at your own risk! Setting incorrect values may lead to decreased performance.
|
|
int16_t | setPaRampTime (uint8_t rampTime) |
| Set PA ramp-up time. Set to 200us by default.
|
|
int16_t | transmit (const char *str, uint8_t addr=0) |
| C-string transmit method.
|
|
virtual int16_t | transmit (const uint8_t *data, size_t len, uint8_t addr=0) |
| Binary transmit method. Must be implemented in module class.
|
|
virtual int16_t | receive (uint8_t *data, size_t len) |
| Binary receive method. Must be implemented in module class.
|
|
int16_t | startTransmit (const char *str, uint8_t addr=0) |
| Interrupt-driven Arduino String transmit method. Unlike the standard transmit method, this one is non-blocking. Interrupt pin will be activated when transmission finishes.
|
|
virtual int16_t | startTransmit (const uint8_t *data, size_t len, uint8_t addr=0) |
| Interrupt-driven binary transmit method.
|
|
virtual int16_t | readData (uint8_t *data, size_t len) |
| Reads data that was received after calling startReceive method.
|
|
| PhysicalLayer (float step, size_t maxLen) |
| Default constructor.
|
|
int16_t | transmit (const char *str, uint8_t addr=0) |
| C-string transmit method.
|
|
virtual int16_t | standby (uint8_t mode) |
| Sets module to a specific standby mode.
|
|
int16_t | startTransmit (const char *str, uint8_t addr=0) |
| Interrupt-driven Arduino String transmit method. Unlike the standard transmit method, this one is non-blocking. Interrupt pin will be activated when transmission finishes.
|
|
float | getFreqStep () const |
| Gets the module frequency step size that was set in constructor.
|
|
uint32_t | getIrqMapped (RadioLibIrqFlags_t irq) |
| Convert from radio-agnostic IRQ flags to radio-specific flags.
|
|
int16_t | checkIrq (RadioLibIrqType_t irq) |
| Check whether a specific IRQ bit is set (e.g. RxTimeout, CadDone).
|
|
int16_t | setIrq (RadioLibIrqFlags_t irq) |
| Set interrupt on specific IRQ bit(s) (e.g. RxTimeout, CadDone). Keep in mind that not all radio modules support all RADIOLIB_IRQ_ flags!
|
|
int16_t | clearIrq (RadioLibIrqFlags_t irq) |
| Clear interrupt on a specific IRQ bit (e.g. RxTimeout, CadDone). Keep in mind that not all radio modules support all RADIOLIB_IRQ_ flags!
|
|
int32_t | random (int32_t max) |
| Get truly random number in range 0 - max.
|
|
int32_t | random (int32_t min, int32_t max) |
| Get truly random number in range min - max.
|
|
int16_t | startDirect () |
| Configure module parameters for direct modes. Must be called prior to "ham" modes like RTTY or AX.25. Only available in FSK mode.
|
|
int16_t | setDirectSyncWord (uint32_t syncWord, uint8_t len) |
| Set sync word to be used to determine start of packet in direct reception mode.
|
|
int16_t | available () |
| Get the number of direct mode bytes currently available in buffer.
|
|
void | dropSync () |
| Forcefully drop synchronization.
|
|
uint8_t | read (bool drop=true) |
| Get data from direct mode buffer.
|
|
virtual int16_t | setDIOMapping (uint32_t pin, uint32_t value) |
| Configure DIO pin mapping to get a given signal on a DIO pin (if available).
|
|