etrombly/RFM69

Pi 2 B is not receiving from moteino. Transmit is OK.

Opened this issue · 11 comments

I am testing communication between a Raspberry Pi model 2B and moteino. On the Pi I am using the radio1.py script, with slight changes. On the moteino I am using a modified version of LowPowerLab's "Struct_receive" example script. They're in the attachment.

On the Pi, I see:

starting loop...
tx to radio 2: I'm radio 1: 0
start recv...
timed out waiting for recv
end recv...
 ***  from 0 RSSI:0
ack not requested...

and so on. On the moteino, I see

[1]  [RX_RSSI:-65]Got: I'm radio 1: 2 - ACK sent. Pinging node 1 - ACK...nothing
[1]  [RX_RSSI:-66]Got: I'm radio 1: 1 - ACK sent.

the [1] means the message came from node 1, which is the Raspberry Pi. So it transmits and the moteino receives.

However, the ACK back fails, and any transmitting I try from the moteino side is not received by the Pi.

I'm using a perfboard hack to attach the RFM69 to the Pi. I've attached the RFM69 according to the pins in README.md here, except I'm using ground pin 20. I have RFM69W, so not enabling high power.
files.tar.gz

Hello
I have same problem.
You have solution ?

No solution. I gave up on the Pi and I am using an ESP8266 with RFM69 as a gateway to ethernet.

@morrowwm Same problem here, When you say ESP8266 with RFM69 what do you mean?

Thanks,
B

It's a LoLin nodeMCU board. I connected the RFM69CW module with a homemade cable.
20180208_091618

Work for wemos D1 and esp07.

I have the same issue. It can send but not receive.

I am experiencing similar problem within 2 PIs.. It seems I receive the ACK maybe 10% of the time..
Anyone has an idea of the reason why the PI would act as such?

Thanks

OK, it seems adding 2 milliseconds delay before sending the ACK does the trick for me. (i.e now receive the ACK 100 % of the time).
This delay seem to be used in a few examples cases from the original library.

From the radio1.py line 58 it would look like:

    if radio.ACKRequested():
        print "sending ack..."
        time.sleep(0.002)
        radio.sendACK()

Actually the trick described above do not work anyore for me after reboot. I'll edit when I'll have finish my investigation.

I am trying to connect 2 RFM69HCW using a RPI 3 B+ and RPI 2 B.

I am using radio1.py and radio2.py exemple sighlty modified. I can get the radio2 to send msg to radio1, which receives it and send the ACK. But I can't get the radio2 to systematically get the ACK back. (i.e sendWithRetry should turn to True and so print ( ack_recieved)). It only print it some time, maybe 1 out of 10...

I am using highpower.

Any idea if I am doing something silly?
Thanks