Comments: RFM69HCW Hookup Guide

Pages

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.

  • 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.

  • klikini / about 3 years ago / 1

    For anyone using the upstream RFM69 library: promiscuous mode was renamed to spy mode

  • Member #1530873 / about 4 years ago * / 1

    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!

    • santaimpersonator / about 4 years ago / 1

      I believe there is a thorough explanation for that comment in the signal strength section, shortly after the code:

      Signal Strength

      You might have noticed the "RSSI" number that the example code prints out. "RSSI" stands for "Receive Signal Strength Indicator;" it's a measurement of how strong the transmission was when a message was received.

      This number is in decibels (dB), which means that when nodes are close to each other this will be a low number like -25, and, when they're further away, they'll be higher numbers like -50...

      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.

  • Member #1494745 / about 6 years ago / 1

    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.

  • Member #1488076 / about 6 years ago / 1

    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

  • Member #1488076 / about 6 years ago * / 1

    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!

  • Member #871037 / about 6 years ago * / 1

    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!

  • Member #1146010 / about 6 years ago * / 1

    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:

    // Initialize the RFM69HCW:
    radio.setCS(10);
    radio.initialize(FREQUENCY, MYNODEID, NETWORKID);
    radio.setHighPower(); // Always use this for RFM69HCW
    

    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):

    radio.sendWithRetry(TONODEID, sendbuffer, sendlength, 5, 100)
    

    Hope this helps other Yun Generation 1 users that want to mess with RFM69 and use the Yun as the IoT gateway.

  • Member #1184541 / about 7 years ago / 1

    "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

    • MikeGrusin / about 7 years ago / 1

      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).

  • Member #463193 / about 7 years ago / 1

    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.

  • Member #714016 / about 9 years ago / 1

    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).

    • MikeGrusin / about 9 years ago / 1

      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.

  • Member #1550007 / about 5 years ago * / 0

    Thanks for the guide. Question removed.

  • Member #1284105 / about 7 years ago / 0

    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.


If you've found an issue with this tutorial content, please send us your feedback!