Hi,
I have some problem with RFM69HW module.
I wrote some code based on LOWPOWERLAB RFM69 library.
I have 4 modules that communicate without problems with FSK modulation and 57,6kbs baudrate (868Mhz, +20dbm mode).
Now I try avoid some collision when transmitting data. I`m checking RSSI before sending data like in LowPowerLab library.
When RSSI is above -90 dbm channel is busy and transmission is delayed.
LowPowerLab library code in this case is:
//
if (_mode == RF69_MODE_RX && PAYLOADLEN == 0 && readRSSI() < CSMA_LIMIT) //if signal stronger than -100dBm is detected assume channel activity
CSMA_LIMIT is set to -90dbm
//
That means, author of this code has RSSI lower than -90dbm (-100dbm in comment ?) when there is no RF signal.
In my case I have signal between -90 and -80dbm (depends from module) when is no RF signal (my CSMA_LIMIT is -90dbm).
This indicates to code that channel is still busy.
Additional, I can still receive proper packets when RSSI is about -90dbm.
I can move my CSMA_LIMIT for example to -70dbm
That means, when signal level is LOW, I can still receive packets, but I can`t recognize channel activity
My questions are:
What are practical RSSI values for RFM69HW when nobody transmit data (channel is free)?
Maybe I`m doing something wrong. Should be my RSSI values lower than -90dbm when channel is free.
Best regards,
TL
Lower = smaller number (ie -100dBm is lower than -90).
So at -90 there is more energy than at -100. You can assume that at -100 the channel is free and at -90 there is something going on.
Something like -80, -70, -50 is going towards very strong signal.
My problem is with RSSI readout.
I made test:
1. I was sending stream of packets non-stop from transmiter.
2. On receiver I was looking for RSSI of every received packet on LCD Display.
3. I started receding with receiver from transmiter and checking RSSI of received packets.
4. Last packets I was able to receive was about -90dbm. It`s looks ok.
But, When I try to read RSSI when nobody transmits I have values about -80dbm.
This mean that for distand devices I`m able to receive packets, but I`m not able to detect channel activity during data transmitting.
This confusing me, because I wanted use RSSI readout to avoid collisions, (carrier sense, channel activity).
TL
The library is doing the RSSI checking for activity before sending, so it just works, not much effort needed from your part.
If you modify my library or port it, I don't know how you use it and no way of testing it with your hardware so I can't help much.
If you have faulty modules then that also will cause confusion.
Your radios are not the only ones being heard.
What happens if I change the CSMA_LIMIT to -110??
It will be more sensitive, but might also pick up some noise.
Would noise look garble in the data received?
Yes