dzach / nrfmon

RfMon: a software spectrum analyzer for the RFM12B tranceiver module
38 stars 11 forks source link

Spectrum is only showing one flat line #9

Closed plin2 closed 6 years ago

plin2 commented 6 years ago

The Spectrum only shows an orange block of the same level of e.g. -67 dBm for alle frequencies. There is no difference in rssi from 860 to 880 MHz.

What could be the reason?

dzach commented 6 years ago

Can you post a screenshot showing what you describe? What is your hardware?

plin2 commented 6 years ago

My hardware is an Arduino nano ATmega328P with the RFM12B attached to it. Before taking the screenshot I checked my wiring again and detected a mistake - I mixed up IRQ and MISO (I followed the following wiring sketch since I didnt find any other)

cookbook_rfm12b_connections

But even after that I get a sort of 'flatline'

nrfmon_screenshot

My Arduino nano is connected to an x86 computer with openSUSE Leap 42.3 (64 bit). You'll see the nrfmon software versions in the screenshot.

My Questions right now:

dzach commented 6 years ago

Your setup seems to be ok but the screenshot doesn't look right; it seems like you are either getting an overwhelmingly strong signal that's saturating the input, or possibly that the rf stage of the RFM12B isn't working as it should? The best way to debug the radios without equipment (e.g. a logic analyzer and/or an oscilloscope) is to have two arduino-rfm12b systems communicate with each other. If they do communicate, then obviously you will know the radios are ok.

To answer your questions.

nrfmon can also receive packets sent by a similar transmitter, in 'Listen' mode. But to do so, you need to have set all relevant radio parameters correctly, on both transmitter and receiver (nrfmon) sides.

I don't have an active system running at this moment. If you want to see more details on how this monitor works, you may check this long thread from the time nrfmon was developed. There are many images and explanations about its operation there.

Hopefully you will solve the problem soon.

plin2 commented 6 years ago

Tnakks for the hints. In the meantime I started debugging de rf12mon.ino ksetch a little bit by putting some Serial.println(); behind the #if defined(RFMON_ARSSI) ... #endif. Seems as if one complete run takes about 1-2 seconds. So that will be my timeframe. From my understanding untill now I should get one 476 bytes line of rssi levels. I don't see that appearing in the Arduino IDE serial monitor. I tried to call rf12_lowbat() to check the communication wirth the RFM12B to receive either 0 or 1. No feedback.

I just tried your suggestion regarding 'Traffic'. The results looks like this

nrfmon_screenshot_2

Some background information: I try to control my shutters via home automation. I got quite far with an device call SIGNALduino, but that d´can detect onla one frequency. Since the remote control for my shutters (more or less a no-name product) seems to by usinf FSK I#m looking for the second frequency. That might be at about 868.300 MHz, but my SIGNALduino transmitts at 868.00 MHz and the motors are reacting (but not always. So, my target right now is the band between 868.00 and 868.700 MHz. I'll press the remote button long enough.

What next?

dzach commented 6 years ago

From your last screenshot it seems like you are indeed communicating with theArduino Nano serialy, since you are reading rf12mon.ino's signature in the reply ("xcvr rf12b ver 0.7.6 hw HeeNode..." etc). If you know the band of interest, then using my suggestion above and narrowing the scan width will give you faster scanline times. You may need to check if the radio rf stage is still ok.

I'll mark this issue 'closed', as this doesn't seem to be a problem with nrfmon. Of cource you can still commend here, if you think there is more that can be done on the issue you are facing with the radio.

plin2 commented 6 years ago

mmhh, even if I set Frequency to 868.3000 I don't see any spectrum.

When I have Traffic=on and Print packet data as raw, shouldn't I see some incoming rssi-message to produce a spectrum?

How can I tell that the Arduino is really communicating with the RFM12B? Would it show error messages if it couldn't?

What is #define RFMON_ARSSI 0 beeing used for?

dzach commented 6 years ago