12#include <RHGenericSPI.h>
13#include <RHSPIDriver.h>
16#define RH_RF69_FXOSC 32000000.0
19#define RH_RF69_FSTEP (RH_RF69_FXOSC / 524288)
23#define RH_RF69_NUM_INTERRUPTS 3
26#define RH_RF69_SPI_WRITE_MASK 0x80
29#define RH_RF69_FIFO_SIZE 66
32#define RH_RF69_MAX_ENCRYPTABLE_PAYLOAD_LEN 64
36#define RH_RF69_HEADER_LEN 4
44#ifndef RH_RF69_MAX_MESSAGE_LEN
45#define RH_RF69_MAX_MESSAGE_LEN (RH_RF69_MAX_ENCRYPTABLE_PAYLOAD_LEN - RH_RF69_HEADER_LEN)
49#define RH_RF69_MODE_IDLE 0
50#define RH_RF69_MODE_RX 1
51#define RH_RF69_MODE_TX 2
54#define RH_RF69_DEFAULT_NODE_ADDRESS 0
61#define RH_RF69_DEFAULT_HIGHPOWER true
63#define RH_RF69_DEFAULT_HIGHPOWER false
67#define RH_RF69_REG_00_FIFO 0x00
68#define RH_RF69_REG_01_OPMODE 0x01
69#define RH_RF69_REG_02_DATAMODUL 0x02
70#define RH_RF69_REG_03_BITRATEMSB 0x03
71#define RH_RF69_REG_04_BITRATELSB 0x04
72#define RH_RF69_REG_05_FDEVMSB 0x05
73#define RH_RF69_REG_06_FDEVLSB 0x06
74#define RH_RF69_REG_07_FRFMSB 0x07
75#define RH_RF69_REG_08_FRFMID 0x08
76#define RH_RF69_REG_09_FRFLSB 0x09
77#define RH_RF69_REG_0A_OSC1 0x0a
78#define RH_RF69_REG_0B_AFCCTRL 0x0b
79#define RH_RF69_REG_0C_RESERVED 0x0c
80#define RH_RF69_REG_0D_LISTEN1 0x0d
81#define RH_RF69_REG_0E_LISTEN2 0x0e
82#define RH_RF69_REG_0F_LISTEN3 0x0f
83#define RH_RF69_REG_10_VERSION 0x10
84#define RH_RF69_REG_11_PALEVEL 0x11
85#define RH_RF69_REG_12_PARAMP 0x12
86#define RH_RF69_REG_13_OCP 0x13
87#define RH_RF69_REG_14_RESERVED 0x14
88#define RH_RF69_REG_15_RESERVED 0x15
89#define RH_RF69_REG_16_RESERVED 0x16
90#define RH_RF69_REG_17_RESERVED 0x17
91#define RH_RF69_REG_18_LNA 0x18
92#define RH_RF69_REG_19_RXBW 0x19
93#define RH_RF69_REG_1A_AFCBW 0x1a
94#define RH_RF69_REG_1B_OOKPEAK 0x1b
95#define RH_RF69_REG_1C_OOKAVG 0x1c
96#define RH_RF69_REG_1D_OOKFIX 0x1d
97#define RH_RF69_REG_1E_AFCFEI 0x1e
98#define RH_RF69_REG_1F_AFCMSB 0x1f
99#define RH_RF69_REG_20_AFCLSB 0x20
100#define RH_RF69_REG_21_FEIMSB 0x21
101#define RH_RF69_REG_22_FEILSB 0x22
102#define RH_RF69_REG_23_RSSICONFIG 0x23
103#define RH_RF69_REG_24_RSSIVALUE 0x24
104#define RH_RF69_REG_25_DIOMAPPING1 0x25
105#define RH_RF69_REG_26_DIOMAPPING2 0x26
106#define RH_RF69_REG_27_IRQFLAGS1 0x27
107#define RH_RF69_REG_28_IRQFLAGS2 0x28
108#define RH_RF69_REG_29_RSSITHRESH 0x29
109#define RH_RF69_REG_2A_RXTIMEOUT1 0x2a
110#define RH_RF69_REG_2B_RXTIMEOUT2 0x2b
111#define RH_RF69_REG_2C_PREAMBLEMSB 0x2c
112#define RH_RF69_REG_2D_PREAMBLELSB 0x2d
113#define RH_RF69_REG_2E_SYNCCONFIG 0x2e
114#define RH_RF69_REG_2F_SYNCVALUE1 0x2f
116#define RH_RF69_REG_37_PACKETCONFIG1 0x37
117#define RH_RF69_REG_38_PAYLOADLENGTH 0x38
118#define RH_RF69_REG_39_NODEADRS 0x39
119#define RH_RF69_REG_3A_BROADCASTADRS 0x3a
120#define RH_RF69_REG_3B_AUTOMODES 0x3b
121#define RH_RF69_REG_3C_FIFOTHRESH 0x3c
122#define RH_RF69_REG_3D_PACKETCONFIG2 0x3d
123#define RH_RF69_REG_3E_AESKEY1 0x3e
125#define RH_RF69_REG_4E_TEMP1 0x4e
126#define RH_RF69_REG_4F_TEMP2 0x4f
127#define RH_RF69_REG_58_TESTLNA 0x58
128#define RH_RF69_REG_5A_TESTPA1 0x5a
129#define RH_RF69_REG_5C_TESTPA2 0x5c
130#define RH_RF69_REG_6F_TESTDAGC 0x6f
131#define RH_RF69_REG_71_TESTAFC 0x71
137#define RH_RF69_OPMODE_SEQUENCEROFF 0x80
138#define RH_RF69_OPMODE_LISTENON 0x40
139#define RH_RF69_OPMODE_LISTENABORT 0x20
140#define RH_RF69_OPMODE_MODE 0x1c
141#define RH_RF69_OPMODE_MODE_SLEEP 0x00
142#define RH_RF69_OPMODE_MODE_STDBY 0x04
143#define RH_RF69_OPMODE_MODE_FS 0x08
144#define RH_RF69_OPMODE_MODE_TX 0x0c
145#define RH_RF69_OPMODE_MODE_RX 0x10
148#define RH_RF69_DATAMODUL_DATAMODE 0x60
149#define RH_RF69_DATAMODUL_DATAMODE_PACKET 0x00
150#define RH_RF69_DATAMODUL_DATAMODE_CONT_WITH_SYNC 0x40
151#define RH_RF69_DATAMODUL_DATAMODE_CONT_WITHOUT_SYNC 0x60
152#define RH_RF69_DATAMODUL_MODULATIONTYPE 0x18
153#define RH_RF69_DATAMODUL_MODULATIONTYPE_FSK 0x00
154#define RH_RF69_DATAMODUL_MODULATIONTYPE_OOK 0x08
155#define RH_RF69_DATAMODUL_MODULATIONSHAPING 0x03
156#define RH_RF69_DATAMODUL_MODULATIONSHAPING_FSK_NONE 0x00
157#define RH_RF69_DATAMODUL_MODULATIONSHAPING_FSK_BT1_0 0x01
158#define RH_RF69_DATAMODUL_MODULATIONSHAPING_FSK_BT0_5 0x02
159#define RH_RF69_DATAMODUL_MODULATIONSHAPING_FSK_BT0_3 0x03
160#define RH_RF69_DATAMODUL_MODULATIONSHAPING_OOK_NONE 0x00
161#define RH_RF69_DATAMODUL_MODULATIONSHAPING_OOK_BR 0x01
162#define RH_RF69_DATAMODUL_MODULATIONSHAPING_OOK_2BR 0x02
165#define RH_RF69_PALEVEL_PA0ON 0x80
166#define RH_RF69_PALEVEL_PA1ON 0x40
167#define RH_RF69_PALEVEL_PA2ON 0x20
168#define RH_RF69_PALEVEL_OUTPUTPOWER 0x1f
171#define RH_RF69_RSSICONFIG_RSSIDONE 0x02
172#define RH_RF69_RSSICONFIG_RSSISTART 0x01
175#define RH_RF69_DIOMAPPING1_DIO0MAPPING 0xc0
176#define RH_RF69_DIOMAPPING1_DIO0MAPPING_00 0x00
177#define RH_RF69_DIOMAPPING1_DIO0MAPPING_01 0x40
178#define RH_RF69_DIOMAPPING1_DIO0MAPPING_10 0x80
179#define RH_RF69_DIOMAPPING1_DIO0MAPPING_11 0xc0
181#define RH_RF69_DIOMAPPING1_DIO1MAPPING 0x30
182#define RH_RF69_DIOMAPPING1_DIO1MAPPING_00 0x00
183#define RH_RF69_DIOMAPPING1_DIO1MAPPING_01 0x10
184#define RH_RF69_DIOMAPPING1_DIO1MAPPING_10 0x20
185#define RH_RF69_DIOMAPPING1_DIO1MAPPING_11 0x30
187#define RH_RF69_DIOMAPPING1_DIO2MAPPING 0x0c
188#define RH_RF69_DIOMAPPING1_DIO2MAPPING_00 0x00
189#define RH_RF69_DIOMAPPING1_DIO2MAPPING_01 0x04
190#define RH_RF69_DIOMAPPING1_DIO2MAPPING_10 0x08
191#define RH_RF69_DIOMAPPING1_DIO2MAPPING_11 0x0c
193#define RH_RF69_DIOMAPPING1_DIO3MAPPING 0x03
194#define RH_RF69_DIOMAPPING1_DIO3MAPPING_00 0x00
195#define RH_RF69_DIOMAPPING1_DIO3MAPPING_01 0x01
196#define RH_RF69_DIOMAPPING1_DIO3MAPPING_10 0x02
197#define RH_RF69_DIOMAPPING1_DIO3MAPPING_11 0x03
200#define RH_RF69_DIOMAPPING2_DIO4MAPPING 0xc0
201#define RH_RF69_DIOMAPPING2_DIO4MAPPING_00 0x00
202#define RH_RF69_DIOMAPPING2_DIO4MAPPING_01 0x40
203#define RH_RF69_DIOMAPPING2_DIO4MAPPING_10 0x80
204#define RH_RF69_DIOMAPPING2_DIO4MAPPING_11 0xc0
206#define RH_RF69_DIOMAPPING2_DIO5MAPPING 0x30
207#define RH_RF69_DIOMAPPING2_DIO5MAPPING_00 0x00
208#define RH_RF69_DIOMAPPING2_DIO5MAPPING_01 0x10
209#define RH_RF69_DIOMAPPING2_DIO5MAPPING_10 0x20
210#define RH_RF69_DIOMAPPING2_DIO5MAPPING_11 0x30
212#define RH_RF69_DIOMAPPING2_CLKOUT 0x07
213#define RH_RF69_DIOMAPPING2_CLKOUT_FXOSC_ 0x00
214#define RH_RF69_DIOMAPPING2_CLKOUT_FXOSC_2 0x01
215#define RH_RF69_DIOMAPPING2_CLKOUT_FXOSC_4 0x02
216#define RH_RF69_DIOMAPPING2_CLKOUT_FXOSC_8 0x03
217#define RH_RF69_DIOMAPPING2_CLKOUT_FXOSC_16 0x04
218#define RH_RF69_DIOMAPPING2_CLKOUT_FXOSC_32 0x05
219#define RH_RF69_DIOMAPPING2_CLKOUT_FXOSC_RC 0x06
220#define RH_RF69_DIOMAPPING2_CLKOUT_FXOSC_OFF 0x07
223#define RH_RF69_IRQFLAGS1_MODEREADY 0x80
224#define RH_RF69_IRQFLAGS1_RXREADY 0x40
225#define RH_RF69_IRQFLAGS1_TXREADY 0x20
226#define RH_RF69_IRQFLAGS1_PLLLOCK 0x10
227#define RH_RF69_IRQFLAGS1_RSSI 0x08
228#define RH_RF69_IRQFLAGS1_TIMEOUT 0x04
229#define RH_RF69_IRQFLAGS1_AUTOMODE 0x02
230#define RH_RF69_IRQFLAGS1_SYNADDRESSMATCH 0x01
233#define RH_RF69_IRQFLAGS2_FIFOFULL 0x80
234#define RH_RF69_IRQFLAGS2_FIFONOTEMPTY 0x40
235#define RH_RF69_IRQFLAGS2_FIFOLEVEL 0x20
236#define RH_RF69_IRQFLAGS2_FIFOOVERRUN 0x10
237#define RH_RF69_IRQFLAGS2_PACKETSENT 0x08
238#define RH_RF69_IRQFLAGS2_PAYLOADREADY 0x04
239#define RH_RF69_IRQFLAGS2_CRCOK 0x02
242#define RH_RF69_SYNCCONFIG_SYNCON 0x80
243#define RH_RF69_SYNCCONFIG_FIFOFILLCONDITION_MANUAL 0x40
244#define RH_RF69_SYNCCONFIG_SYNCSIZE 0x38
245#define RH_RF69_SYNCCONFIG_SYNCSIZE_1 0x00
246#define RH_RF69_SYNCCONFIG_SYNCSIZE_2 0x08
247#define RH_RF69_SYNCCONFIG_SYNCSIZE_3 0x10
248#define RH_RF69_SYNCCONFIG_SYNCSIZE_4 0x18
249#define RH_RF69_SYNCCONFIG_SYNCSIZE_5 0x20
250#define RH_RF69_SYNCCONFIG_SYNCSIZE_6 0x28
251#define RH_RF69_SYNCCONFIG_SYNCSIZE_7 0x30
252#define RH_RF69_SYNCCONFIG_SYNCSIZE_8 0x38
253#define RH_RF69_SYNCCONFIG_SYNCSIZE_SYNCTOL 0x07
256#define RH_RF69_PACKETCONFIG1_PACKETFORMAT_VARIABLE 0x80
257#define RH_RF69_PACKETCONFIG1_DCFREE 0x60
258#define RH_RF69_PACKETCONFIG1_DCFREE_NONE 0x00
259#define RH_RF69_PACKETCONFIG1_DCFREE_MANCHESTER 0x20
260#define RH_RF69_PACKETCONFIG1_DCFREE_WHITENING 0x40
261#define RH_RF69_PACKETCONFIG1_DCFREE_RESERVED 0x60
262#define RH_RF69_PACKETCONFIG1_CRC_ON 0x10
263#define RH_RF69_PACKETCONFIG1_CRCAUTOCLEAROFF 0x08
264#define RH_RF69_PACKETCONFIG1_ADDRESSFILTERING 0x06
265#define RH_RF69_PACKETCONFIG1_ADDRESSFILTERING_NONE 0x00
266#define RH_RF69_PACKETCONFIG1_ADDRESSFILTERING_NODE 0x02
267#define RH_RF69_PACKETCONFIG1_ADDRESSFILTERING_NODE_BC 0x04
268#define RH_RF69_PACKETCONFIG1_ADDRESSFILTERING_RESERVED 0x06
271#define RH_RF69_AUTOMODE_ENTER_COND_NONE 0x00
272#define RH_RF69_AUTOMODE_ENTER_COND_FIFO_NOT_EMPTY 0x20
273#define RH_RF69_AUTOMODE_ENTER_COND_FIFO_LEVEL 0x40
274#define RH_RF69_AUTOMODE_ENTER_COND_CRC_OK 0x60
275#define RH_RF69_AUTOMODE_ENTER_COND_PAYLOAD_READY 0x80
276#define RH_RF69_AUTOMODE_ENTER_COND_SYNC_ADDRESS 0xa0
277#define RH_RF69_AUTOMODE_ENTER_COND_PACKET_SENT 0xc0
278#define RH_RF69_AUTOMODE_ENTER_COND_FIFO_EMPTY 0xe0
280#define RH_RF69_AUTOMODE_EXIT_COND_NONE 0x00
281#define RH_RF69_AUTOMODE_EXIT_COND_FIFO_EMPTY 0x04
282#define RH_RF69_AUTOMODE_EXIT_COND_FIFO_LEVEL 0x08
283#define RH_RF69_AUTOMODE_EXIT_COND_CRC_OK 0x0c
284#define RH_RF69_AUTOMODE_EXIT_COND_PAYLOAD_READY 0x10
285#define RH_RF69_AUTOMODE_EXIT_COND_SYNC_ADDRESS 0x14
286#define RH_RF69_AUTOMODE_EXIT_COND_PACKET_SENT 0x18
287#define RH_RF69_AUTOMODE_EXIT_COND_TIMEOUT 0x1c
289#define RH_RF69_AUTOMODE_INTERMEDIATE_MODE_SLEEP 0x00
290#define RH_RF69_AUTOMODE_INTERMEDIATE_MODE_STDBY 0x01
291#define RH_RF69_AUTOMODE_INTERMEDIATE_MODE_RX 0x02
292#define RH_RF69_AUTOMODE_INTERMEDIATE_MODE_TX 0x03
295#define RH_RF69_FIFOTHRESH_TXSTARTCONDITION_NOTEMPTY 0x80
296#define RH_RF69_FIFOTHRESH_FIFOTHRESHOLD 0x7f
299#define RH_RF69_PACKETCONFIG2_INTERPACKETRXDELAY 0xf0
300#define RH_RF69_PACKETCONFIG2_RESTARTRX 0x04
301#define RH_RF69_PACKETCONFIG2_AUTORXRESTARTON 0x02
302#define RH_RF69_PACKETCONFIG2_AESON 0x01
305#define RH_RF69_TEMP1_TEMPMEASSTART 0x08
306#define RH_RF69_TEMP1_TEMPMEASRUNNING 0x04
309#define RH_RF69_TESTPA1_NORMAL 0x55
310#define RH_RF69_TESTPA1_BOOST 0x5d
313#define RH_RF69_TESTPA2_NORMAL 0x70
314#define RH_RF69_TESTPA2_BOOST 0x7c
317#define RH_RF69_TESTDAGC_CONTINUOUSDAGC_NORMAL 0x00
318#define RH_RF69_TESTDAGC_CONTINUOUSDAGC_IMPROVED_LOWBETAON 0x20
319#define RH_RF69_TESTDAGC_CONTINUOUSDAGC_IMPROVED_LOWBETAOFF 0x30
322#define RH_RF69_HAVE_SERIAL
815 RH_RF69(uint8_t slaveSelectPin = SS, uint8_t interruptPin = 2,
RHGenericSPI& spi = hardware_spi);
841 bool setFrequency(
float centre,
float afcPullInRange = 0.05);
882 void setTxPower(int8_t power,
bool ishighpowermodule = RH_RF69_DEFAULT_HIGHPOWER);
911 bool recv(uint8_t* buf, uint8_t* len);
919 bool send(
const uint8_t* data, uint8_t len);
939 void setSyncWords(
const uint8_t* syncWords = NULL, uint8_t len = 0);
982 virtual bool sleep();
1037 uint8_t
_buf[RH_RF69_MAX_MESSAGE_LEN];
virtual RHMode mode()
Definition RHGenericDriver.cpp:165
Base class for SPI interfaces.
Definition RHGenericSPI.h:31
Base class for RadioHead drivers that use the SPI bus to communicate with its transport hardware.
Definition RHSPIDriver.h:39
Driver to send and receive unaddressed, unreliable datagrams via an RF69 and compatible radio transce...
Definition RH_RF69.h:731
bool init()
Definition RH_RF69.cpp:100
void setModemRegisters(const ModemConfig *config)
Definition RH_RF69.cpp:434
static RH_RF69 * _deviceForInterrupt[]
Array of instances connected to interrupts 0 and 1.
Definition RH_RF69.h:11
uint32_t _lastPreambleTime
Time in millis since the last preamble was received (and the last time the RSSI was measured)
Definition RH_RF69.h:1043
static void isr0()
Low level interrupt service routine for RF69 connected to interrupt 0.
Definition RH_RF69.cpp:268
void handleInterrupt()
Definition RH_RF69.cpp:201
void setEncryptionKey(uint8_t *key=NULL)
Definition RH_RF69.cpp:476
void setModeRx()
Definition RH_RF69.cpp:356
uint8_t _interruptPin
The configured interrupt pin connected to this instance.
Definition RH_RF69.h:1018
static uint8_t _interruptCount
Index of next interrupt number to use in _deviceForInterrupt.
Definition RH_RF69.h:1015
static void isr1()
Low level interrupt service routine for RF69 connected to interrupt 1.
Definition RH_RF69.cpp:273
void setIdleMode(uint8_t idleMode)
Definition RH_RF69.cpp:95
bool available()
Definition RH_RF69.cpp:489
uint8_t _idleMode
The radio OP mode to use when mode is RHModeIdle.
Definition RH_RF69.h:1025
uint16_t deviceType()
Definition RH_RF69.h:989
uint32_t getLastPreambleTime()
int8_t temperatureRead()
Definition RH_RF69.cpp:284
void setOpMode(uint8_t mode)
Definition RH_RF69.cpp:319
ModemConfigChoice
Definition RH_RF69.h:762
@ GFSK_Rb57_6Fd120
GFSK, Whitening, Rb = 57.6kbs, Fd = 120kHz.
Definition RH_RF69.h:780
@ OOK_Rb2_4Bw4_8
OOK, Whitening, Rb = 2.4kbs, Rx Bandwidth = 4.8kHz.
Definition RH_RF69.h:787
@ FSK_Rb38_4Fd76_8
FSK, Whitening, Rb = 38.4kbs, Fd = 76.8kHz.
Definition RH_RF69.h:768
@ FSK_Rb9_6Fd19_2
FSK, Whitening, Rb = 9.6kbs, Fd = 19.2kHz.
Definition RH_RF69.h:766
@ GFSK_Rb125Fd125
GFSK, Whitening, Rb = 125kbs, Fd = 125kHz.
Definition RH_RF69.h:781
@ FSK_Rb2Fd5
FSK, Whitening, Rb = 2kbs, Fd = 5kHz.
Definition RH_RF69.h:763
@ GFSK_Rb4_8Fd9_6
GFSK, Whitening, Rb = 4.8kbs, Fd = 9.6kHz.
Definition RH_RF69.h:776
@ FSK_Rb250Fd250
FSK, Whitening, Rb = 250kbs, Fd = 250kHz.
Definition RH_RF69.h:771
@ FSK_Rb57_6Fd120
FSK, Whitening, Rb = 57.6kbs, Fd = 120kHz.
Definition RH_RF69.h:769
@ GFSK_Rb19_2Fd38_4
GFSK, Whitening, Rb = 19.2kbs, Fd = 38.4kHz.
Definition RH_RF69.h:778
@ OOK_Rb19_2Bw38_4
OOK, Whitening, Rb = 19.2kbs, Rx Bandwidth = 38.4kHz.
Definition RH_RF69.h:790
@ FSK_Rb2_4Fd4_8
FSK, Whitening, Rb = 2.4kbs, Fd = 4.8kHz.
Definition RH_RF69.h:764
@ OOK_Rb9_6Bw19_2
OOK, Whitening, Rb = 9.6kbs, Rx Bandwidth = 19.2kHz.
Definition RH_RF69.h:789
@ FSK_Rb19_2Fd38_4
FSK, Whitening, Rb = 19.2kbs, Fd = 38.4kHz.
Definition RH_RF69.h:767
@ GFSK_Rb38_4Fd76_8
GFSK, Whitening, Rb = 38.4kbs, Fd = 76.8kHz.
Definition RH_RF69.h:779
@ GFSK_Rb9_6Fd19_2
GFSK, Whitening, Rb = 9.6kbs, Fd = 19.2kHz.
Definition RH_RF69.h:777
@ GFSK_Rb250Fd250
GFSK, Whitening, Rb = 250kbs, Fd = 250kHz.
Definition RH_RF69.h:782
@ GFSK_Rb55555Fd50
GFSK, Whitening, Rb = 55555kbs,Fd = 50kHz.
Definition RH_RF69.h:783
@ FSK_Rb4_8Fd9_6
FSK, Whitening, Rb = 4.8kbs, Fd = 9.6kHz.
Definition RH_RF69.h:765
@ OOK_Rb1Bw1
OOK, Whitening, Rb = 1kbs, Rx Bandwidth = 1kHz.
Definition RH_RF69.h:785
@ FSK_Rb125Fd125
FSK, Whitening, Rb = 125kbs, Fd = 125kHz.
Definition RH_RF69.h:770
@ OOK_Rb4_8Bw9_6
OOK, Whitening, Rb = 4.8kbs, Rx Bandwidth = 9.6kHz.
Definition RH_RF69.h:788
@ GFSK_Rb2Fd5
GFSK, Whitening, Rb = 2kbs, Fd = 5kHz.
Definition RH_RF69.h:774
@ GFSK_Rb2_4Fd4_8
GFSK, Whitening, Rb = 2.4kbs, Fd = 4.8kHz.
Definition RH_RF69.h:775
@ OOK_Rb32Bw64
OOK, Whitening, Rb = 32kbs, Rx Bandwidth = 64kHz.
Definition RH_RF69.h:791
@ FSK_Rb55555Fd50
FSK, Whitening, Rb = 55555kbs,Fd = 50kHz for RFM69 lib compatibility.
Definition RH_RF69.h:772
@ OOK_Rb1_2Bw75
OOK, Whitening, Rb = 1.2kbs, Rx Bandwidth = 75kHz.
Definition RH_RF69.h:786
void setModeTx()
Definition RH_RF69.cpp:372
int8_t rssiRead()
Definition RH_RF69.cpp:307
void readFifo()
Definition RH_RF69.cpp:232
bool setModemConfig(ModemConfigChoice index)
Definition RH_RF69.cpp:443
bool send(const uint8_t *data, uint8_t len)
Definition RH_RF69.cpp:515
uint8_t _buf[RH_RF69_MAX_MESSAGE_LEN]
Array of octets of teh last received message or the next to transmit message.
Definition RH_RF69.h:1037
virtual bool sleep()
Definition RH_RF69.cpp:346
void setPreambleLength(uint16_t bytes)
Definition RH_RF69.cpp:455
bool printRegister(uint8_t reg)
Definition RH_RF69.cpp:552
bool setFrequency(float centre, float afcPullInRange=0.05)
Definition RH_RF69.cpp:294
volatile uint8_t _bufLen
The message length in _buf.
Definition RH_RF69.h:1034
bool printRegisters()
Definition RH_RF69.cpp:562
void setTxPower(int8_t power, bool ishighpowermodule=RH_RF69_DEFAULT_HIGHPOWER)
Definition RH_RF69.cpp:389
static void isr2()
Low level interrupt service routine for RF69 connected to interrupt 1.
Definition RH_RF69.cpp:278
uint8_t maxMessageLength()
Definition RH_RF69.cpp:547
uint8_t _deviceType
The reported device type.
Definition RH_RF69.h:1028
bool recv(uint8_t *buf, uint8_t *len)
Definition RH_RF69.cpp:497
void setSyncWords(const uint8_t *syncWords=NULL, uint8_t len=0)
Definition RH_RF69.cpp:461
int8_t _power
The selected output power in dBm.
Definition RH_RF69.h:1031
uint8_t _myInterruptIndex
Definition RH_RF69.h:1022
void setModeIdle()
Definition RH_RF69.cpp:331
volatile bool _rxBufValid
True when there is a valid message in the Rx buffer.
Definition RH_RF69.h:1040
Defines register values for a set of modem configuration registers.
Definition RH_RF69.h:742
uint8_t reg_02
Value for register RH_RF69_REG_02_DATAMODUL.
Definition RH_RF69.h:743
uint8_t reg_19
Value for register RH_RF69_REG_19_RXBW.
Definition RH_RF69.h:748
uint8_t reg_05
Value for register RH_RF69_REG_05_FDEVMSB.
Definition RH_RF69.h:746
uint8_t reg_04
Value for register RH_RF69_REG_04_BITRATELSB.
Definition RH_RF69.h:745
uint8_t reg_37
Value for register RH_RF69_REG_37_PACKETCONFIG1.
Definition RH_RF69.h:750
uint8_t reg_06
Value for register RH_RF69_REG_06_FDEVLSB.
Definition RH_RF69.h:747
uint8_t reg_03
Value for register RH_RF69_REG_03_BITRATEMSB.
Definition RH_RF69.h:744
uint8_t reg_1a
Value for register RH_RF69_REG_1A_AFCBW.
Definition RH_RF69.h:749