Hello,
I am trying to use two Arduino Unos to make two RFM69HCW modules communicate.
I am following this Sparkfun tutorial, but it doesn't work so far. I am using a logic level shifter and have connected it all like so:
The transceiver uses 3v3, but I have read that the 3v3 pin on the Arduino is not enough to power the transceiver, so I've tried using a resistor divider as level shifter from the 5v pin to 3v3.
When running the example, what's printed in the serial monitor is
Node 2 ready
sending to node 1, message [hello]
This happens when I try sending from both nodes.
When looking at the library and adding print statements every few lines to see how far it gets before stopping, it seems like it stops in void RFM69::sendFrame(uint16_t toAddress, const void* buffer, uint8_t bufferSize, bool requestACK, bool sendACK)
, at this while statement waiting for the ready signal from the transceiver, signifying that it has entered standby mode:
setMode(RF69_MODE_STANDBY); // turn off receiver to prevent reception while filling fifo
while ((readReg(REG_IRQFLAGS1) & RF_IRQFLAGS1_MODEREADY) == 0x00){}
Could it be that it still doesn't have enough power? Or could it be that the SPI pins are connected wrong? From studying the library functions called, it seems like it both writes to and reads from the transceiver before reaching that point, although I don't know if there should have been an error message or something if it failed the initialization.
Do you have any idea what could cause this?
Edit: I got the exact same result when removing the transceiver from the breadboard entirely... So I guess something must be wrong with the connections... Maybe the soldering is bad? Any tips on how to debug this?