rtl_433_ESP icon indicating copy to clipboard operation
rtl_433_ESP copied to clipboard

Trying to get a RFM95W module to work with rtl_433_esp

Open jbroll opened this issue 7 months ago • 3 comments

Current Situation

Hi All, I'm trying to get generic RFM95W 915Mhz radio module to work with rtl_433_esp. I have what I thought would be the hard parts, firmware and wiring, working pretty quickly. My esp32-s3 card boots up and I see the logs registering all the protocols. Then I see the status register dump from the SX127x. After that I just see some very low signal RSSI lines and no packets. I'm using the OOK_Reciever example with the GPIOs defined for my module connections. There is an Accurite 5n1 Weather station with fresh batteries in the same room with me. I see the Accurite data on the weather station panel.

The package lists the module as:

RFM95W 915MHz w/SX1276 wireless transceiver module HopeRF Original.

Included platform IO config and some logs in the other input boxes.

Thanks!

Logs

----- SX127x Status -----
RegOpMode: 0x2c
RegPacketConfig1: 0x00
RegPacketConfig2: 0x00
RegBitrateMsb: 0x68
RegBitrateLsb: 0x2a
RegRxBw: 0x01
RegAfcBw: 0x02
-------------------------
RegOokPeak: 0x08
RegOokFix: 0x50
RegOokAvg: 0x12
-------------------------
RegLna: 0x20
RegRxConfig: 0x08
RegRssiConfig: 0x00
-------------------------
RegDioMapping1: 0x00
----- SX127x Status -----
...
rtl_433_ESP(7): Average RSSI Signal -91 dbm, adjusted RSSI Threshold -82, samples 50000
rtl_433_ESP(7): Average RSSI Signal -90 dbm, adjusted RSSI Threshold -81, samples 50000
rtl_433_ESP(7): Average RSSI Signal -90 dbm, adjusted RSSI Threshold -81, samples 50000
rtl_433_ESP(7): Average RSSI Signal -90 dbm, adjusted RSSI Threshold -81, samples 50000
...

Configuration

[platformio]
default_envs = esp32s3-generic
src_dir = .
boards_dir = boards

[env:esp32s3-generic]
platform = espressif32
board = esp32s3box
framework = arduino

build_flags =
    -D LED_BUILTIN=2               ; if you have an onboard LED
    -D ARDUINO_ESP32S3_DEV          ; ensure correct Arduino defines
  '-DLOG_LEVEL=LOG_LEVEL_TRACE'
  '-DONBOARD_LED=LED_BUILTIN'
; *** rtl_433_ESP Options ***
  '-DRF_MODULE_FREQUENCY=915.00'
  '-DOOK_MODULATION=1'           ; False = FSK, True = OOK
  '-DRF_SX1276="SX1276"'
  '-DRTL_DEBUG=4'
  '-DRTL_VERBOSE=58'
  '-DRAW_SIGNAL_DEBUG=true'
;  '-DMEMORY_DEBUG=true'
;  '-DDEMOD_DEBUG=true'
;  '-DMY_DEVICES=true'
;  '-DPUBLISH_UNPARSED=true'
;  '-DRSSI_THRESHOLD=12'
  '-DOOK_FIXED_THRESHOLD=0x50'
;  '-DAVERAGE_RSSI=5000'
;  '-DSIGNAL_RSSI=true'
; *** RF Module Pin Mapping for ESP32-S3-CAM ***
  '-DRF_MODULE_MISO=1'      ; SPI MISO
  '-DRF_MODULE_MOSI=42'     ; SPI MOSI
  '-DRF_MODULE_SCK=41'      ; SPI SCK
  '-DRF_MODULE_CS=40'       ; SX1276 NSS
  '-DRF_MODULE_RST=39'      ; SX1276 RESET
  '-DRF_MODULE_DIO0=38'     ; SX1276 DIO0 (IRQ)
  '-DRF_MODULE_DIO1=47'     ; SX1276 DIO1 (optional IRQ)
  '-DRF_MODULE_DIO2=21'     ; SX1276 DIO2 (optional IRQ)
  '-DRF_MODULE_INIT_STATUS=true'

Environment

  • OS:
  • Software:
  • Node:
  • npm:

Process Supervisor

hb-service

Additional Context

No response

jbroll avatar Sep 21 '25 18:09 jbroll

The way the code works with the receiver module is by polling the rssi value, and when it drops it indicates a signal is being received, it then starts receiving the signal. And when the rssi goes back up it indicates signal is complete and sends the pulses for decoding.

I don’t think your module is picking up anything.

Can you share a link to module you bought and the wiring diagram you used?

NorthernMan54 avatar Sep 21 '25 19:09 NorthernMan54

Aliexpress Google login seems to be down, so I don't have the product link. I'll get it when I can if that will be helpful.

I agree that I'm not getting any signal. I've tried 2 of the modules and the results are the same. I have a 5n1 weather station here and assume it to be broadcasting? I see the data from the station on its dedicated info panel, so it must be sending something? I had the short loop antenna that you see on most modules connected, then I switched to a 3.2" quarter wave straight wire - was that a good idea?

The little module has these labels on the card that correspond to this diagram on the aliexpress site. I mapped them to available GPIO and then to the defines needed in the platformio.ini file. Since it looks like the firmware is talking to the module I think I did all that correctly.

Image Image

jbroll avatar Sep 21 '25 20:09 jbroll

I agree with your comments about the firmware talking to the unit.

The other thing I do when testing stuff is use a RTL-SDR with rtl_433 to check the frequency and other signal details as part of tuning. You could be slightly off on frequency hence not being able to receive.

Another thought, the OOK_Receiver has a setup to tweak various knobs in the module. You could try changing the code to twist the frequency to see if anything shows up.

NorthernMan54 avatar Oct 13 '25 14:10 NorthernMan54