Comments: RFM69HCW Hookup Guide
Looking for answers to technical questions?
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
If you've found an issue with this tutorial content, please send us your feedback!
I'm using an Arduino Mega (DEV-11061) and 2 logic level converters (BOB-12009) with this radio. Thus, connections are like in https://cdn.sparkfun.com/assets/f/1/0/e/9/fritzing-redboard.png except with Mega pins (2, 50 - 53). I see that the wire from DIO0 to Pin 2 bypasses the LLConverter. Won't this burn out the radio? Or is it the correct way to connect them? I can say that my radios are not chatting, yet, with SFE_RFM69HCW_example.ino modified as per this tutorial. I have even tried adding 3.3 v (COM-18357 ) bucks to both radios (and disconnecting Mega 3.3 + but leaving GND connected). I appreciate any suggestions you might have.
For anyone using the upstream RFM69 library: promiscuous mode was renamed to spy mode
This comment is in the code and is incorrect:
// RSSI is the "Receive Signal Strength Indicator", // smaller numbers mean higher power.
The previous statement is incorrect. A value of minus 34db (-34db) is larger than a value of -45db and -34db, being larger, indicates a larger received power. This is grammar school level "numbers" knowledge - common knowledge. Saying that "smaller number mean higher power" is misleading and completely wrong, obviously. -34db is a larger number than -45db is the smaller number. It's the VALUE we seek, not the font composition. Some may make some silly argument but they are part of this problematic misunderstanding - the source of this confusion in the first place. Just remember, folks, aA signal of +3db is far, far stronger than -45db despite the code comment inferring otherwise. Please preserve math's basic definitions. Accuracy matters!
I believe there is a thorough explanation for that comment in the signal strength section, shortly after the code:
I believe they were written in reference to the value's magnitude and not the value itself. However, I understand your point and will add a note stating that, so it won't confuse users.
Hi - thanks for the very nice guide. Can you help me with the following question: I need to send an OOK or ASK signal @ 433.42 kHz. If it were the "normal" 433.92 MHz I would have used a simple 433 MHz RF module. But at 500kHz away from the center frequency the receiver which I want to talk to doesn't get anything anymore. I am pretty sure I can use this module to set the exact frequency as I like to 433.42 MHz to match that of the receiver. The question that remains: is it possible to send simple ON/OFFs pulses using this module? I see in all the sample sketches I have looked at only these "packets"... Thanks in advance.
Hi, Is it possible to stop the led on the Arduino to blink at every radio.send(TONODEID, sendbuffer, sendlength) call? I have removed the pin definition for the led and all the calls to the Blink function, but nothing changes.
Thanks
Hi, I am using a Pro mini connected to a normal FTDI board for serial logging while the RFM69 break out board is powered separately by a voltage regulator I have built, but it does not work: the Arduino still needs external power. Can you help me to understand why? Thanks!
EDIT: I think I found the problem: SPI protocol needs a common ground. Just tried and now it is working perfectly!
EDIT: I found an article that I think answered my question. I misunderstood what the 50 ohms was referring to.
This was a fantastic guide! It worked no problem on my Arduino Uno with the default wiring that was given for the RedBoard. One question though. I need to use a remote antenna, and the guide says to use a 50 ohm coax cable, but does this mean 50 ohms OR LESS, or is a little bit of resistance actually required? And I assume this means that both the ANT and the GND lines inside the coax should EACH be 50 ohms? I googled around a bit and couldn't find a satisfying answer. Thanks!
To get this working with a Yun First Generation (and probably some of it applies to other ATmega32U4 based boards):
1) Connect SPI lines MISO, MOSI and CLK from the ICSP header to RFM69BOB pins O,I and C respectively. (Do not use pins 11-13 as the tutorial for the Uno)
2) For Slave Select use Yun Digital Pin 10 (i.e. connect RFM69BOB pin S to Yun pin D10)
3) For the Rx Interrupt use Pin 3, not Pin 2 as in the Tutorial (look at RFM69.h ifdef for AVR_ATmega32U4 to understand why)
In your code set the slave select pin like so:
That's it!
Note that the Yun/ATMega combo seems to be a bit slow on sending the ACK so for your other radios you should use a bit more time and retries if you want ACK to work. I am currently using (on all other radios except the Yun):
Hope this helps other Yun Generation 1 users that want to mess with RFM69 and use the Yun as the IoT gateway.
"Be sure that you’re powering your Arduino with a “Beefy 3” FTDI board, a wall-wart, or a Lipo battery."
Please forgive my ignorance, does this mean you can use: a “Beefy 3” FTDI board or a wall-wart, or a Lipo battery, Or does it mean a “Beefy 3” FTDI board with, a wall-wart, or a Lipo battery?
Thank you
Sorry for the confusion (and Oxford comma); you can power your project with any of those options. The main takeaway was that a normal (not Beefy) FTDI board can't provide enough power to run the RFM69, so use something else (or in addition to that).
Not really experienced with Arduino and even less so with github. I installed the most recent version of the Arduino IDE last night. I can't say I have if problem with the hardware, because I can't get the code to compile. I downloaded, the library .zip file then used the Arduino IDE, Libraries >Manage >add .zip file to install it. I then loaded the Examples > node file into the Arduino IDE. It wouldn't compile. I getting library file errors on the spi flash .lib file. I then used the "copy code " button to copy the code directly from the tutorial and got the same errors. I pretty sure it's something I'm buggering up but cant find it. I'll post the actual error comments later today, since I'm not at that machine now. Thanks for the sanity check.
Could this be used to make a wireless USB connection, by plugging one of the arduino/RFM69HCW packages to a computer, and the other to a phone or printer? And then sending the data out the USB as you normally would (ie. just hitting print).
If your USB application uses a COM (serial) port, then yes, this can be done. The example code we use in this Hookup Guide is very close to what you'd need (when you type characters in one end, they come out the other). You'll just have to come up with a way to pass carriage returns (which we're using as a signal to send a packet but not actually transmitting), and delete the code that prints out extra diagnostic information.
Thanks for the guide. Question removed.
I need a bit help about your product. I connected all connections with Bidirectional Logic Level Converter in arduino nano and uno when i try to transmit something in serial port that gave me an error. like "Node 2 ready , !1Node 2 ready, ⸮Lꋕ⸮2 ready, sendi⸮ , Node 2 ready !1Node 2 ready ⸮Lꋕ⸮2 ready sendi⸮" I provided enough current between 3.3V and gnd with "RXN1502D" Dc power supply. I also tried to connect 100uF/25V capacitor to 3.3V and gnd as parallel connection.