However, you can turn on something called "promiscuous mode," which
tells the node to receive every message that it hears on the network. This
can be useful for debugging, routing messages to and from the radio
network, etc, but note that even promiscuous mode won't let you hear
messages sent on a different network.
Acknowledgement
When you send a message, you have the choice of sending it "in the blind,"
hoping that the receiver will pick it up, or you can request an
acknowledgement (usually shortened to "ACK") that the message was
received. In fact, the RFM69 library can automatically resend a message
until it either receives an acknowledgement from the receiver (success!) or
it has resent it a specific number of times without a response (fail).
Whether you use acknowledgements or not depends on your application.
You may want to use acknowlegements if the data you're sending is very
important or if you want to be sure that both ends of a link are functional.
But, some applications work better in the blind, such as high-bandwidth
data where a lost message isn't a big deal, beacons that multiple modules
may receive, one-way links using highly-directional antennas, etc. It's up to
you.
There's one catch: even though it's easy to request an acknowledgement
when you send a message, the receiver will not automatically send an
acknowlegement. Your code must check received messages for
acknowledgement requests and send acknowledge messages manually.
See the example code for details.
Encryption
As noted above, "promiscuous mode" will let you silently listen in on all the
conversations going on in a given network. If you're sending sensitive
information, this may not be good news to you since someone else may be
listening to your conversations. Fortunately, the RFM69 can protect your
communications using AES (Advanced Encryption Standard) encryption,
which is extremely secure.
Encryption can be turned on or off by a library command (see the examples
for details). You'll also need to make sure that both ends of your link are
using the same 16-byte key. Only those RFM69s using exactly the same
key will be able to decode the messages.
PROTIP: Similarly, anyone who *has* the key will be able to decode
your messages, so be sure to keep the key secret! In particular,
remember that it will be saved along with your source code, so erase
the key before saving it, or keep your source code secret as well.
Running the Example Code
Felix Rusu of LowPowerLab has written an excellent Arduino library for the
RFM69 that handles the details of setting up the module and sending and
receiving data. This guide will cover interfacing the RFM69HCW to an
Arduino microcontroller using this library.
If you're using a different microcontroller, the information here plus the
datasheet and the RFM69 library source code should help get you up and
running. (If you write example code for another system, we'll be glad to add
it to our code repository).
Page 12 of 19
Need help?
Do you have a question about the RFM69HCW and is the answer not in the manual?
Questions and answers