Hi all,
I bought a handful of RFM69H (not HW as it turns out...) modules cheep off t'bay, and now I'm trying to get them to talk to each other. Nothing doing so far...
My setup is as follows: On either end of one large breadboard, I have 2-off Arduino Nano boards (I also tried Mini-Pros, but only have one FTDI cable handy for programming).
On each Arduino, the MOSI/MISO/SCK/NSS lines are connected via a bi-directional level shifter (looks identical to this one: http://www.kitsguru.com/index.php?route=product/product&product_id=904 although I didn't buy it from there) to the correct pins on the modules. (So - to clarify, I have 2x 4-way level shifters, one for each Arduino. I have NOT put 5v anywhere near either module)
External power is supplied by a 2-amp 5v wall wart onto one side of the breadboard (my 5v/gnd rails). I have a 3v step-down power supply connected to the rails on the other side of the breadboard, this is powered from the 5v line. Each Arduino & HV side of the level shifter is powered from the shared 5v rail. Each RFM69H and LV side of the level shifter is powered from the shared 3v rail.
The interrupt pin DI00 on each RFM69H is attached directly to pin 2 of the relevant Arduino. The reset pin of each RFM69H is left floating. I've soldered a 10cm piece of wire to the Antenna connection of each module, They end up being about 18" apart on the bench.
Wiring is as per the Sparkfun diagram (https://cdn.sparkfun.com/assets/f/1/0/e/9/fritzing-redboard.png) except I've powered my level shifter & module directly from the appropriate power rails on the breadboard.
Next step - load the Sparkfun example application. No comms.
Next I tried the TNode/TGateway examples at Anarduino - also no joy.
Adding various debugging showed the TNode code hanging when it tried to read the RFM69H temperature.
The Sparkfun code didn't crash, but didn't work either.
I have both Arduinos plugged into the same computer via USB ports, so I can see both serial outputs. The initialization text comes up OK, but nothing thereafter. The Sparkfun code shows it attempting to transmit (and I can see LED13 flashing on the Nano boards), but nothing else back.
I also added a "readAllRegs()" call to the Sparkfun code, and enabled debug (#DEFINE REGISTER_DETAIL) in the RFM69.cpp library; the results of this appeared to be garbage (absolutely everything set to "1"). Including the write-only register...
Some questions:
-
Is it likely I've got a batch of duff modules? I got 3x 915mhz and 2x 434mhz. So far I've only tested with 2 of the 915mhzs. These came direct from China (hence not having the "W" designation) and cost buttons, so no real loss if they're toast.
-
Is sharing the power supply between the two Arduinos likely to cause any problems?
-
When I put a multimeter reading mA into the power line, it never read more than 40-50mA, even when a module was supposedly transmitting. Which given these are the high power modules, seems wrong?
-
I've read somewhere that pulling Reset up for 100uS may be required. I presume this would require another level shifter... (I've got one somewhere); has anyone else tried this & had any success with otherwise non-functioning modules?
Lastly... I soldered moderately long flying leads to the module (about 10-12cm). As I only had female-female leads available, I've then used standard jumper leads to plug these into the board. Is THIS likely to cause issues? Should I reduce the "flying leads" to a minimum so the module's up-close and personal to the Arduino?
Many thanks in advance for any assistance. I can take a photo of the breadboard if you want the gory details...