Skip to content

R900 meter, HackRF and signal transmission - can't receive anything on ESP32 ( hardwired to HackRF ) #190

@jdevelop

Description

@jdevelop

Current Situation

I captured a R900 packet from a meter, cleaned it using URH to remove noise etc - got the perfect waveform.
Connected my HackRF to a CC1101 module ( E07 900M10S) directly, flashed the example/OOK_Receiver onto ESP32. The pin connection is:

  • GD02 - IO21
  • GD00 - O15
  • MISO - IO19
  • MOSI - IO23
  • SCK - IO18
  • CSN - IO5

I confirmed that the packet is recognized by rtl-sdr dongle and rtl_433:

rtl_433 -f 912e6 -s 2e6 -R 228
rtl_433 version 25.02 (2025-02-19) inputs file rtl_tcp RTL-SDR SoapySDR with TLS

New defaults active, use "-Y classic -s 250k" if you need the old defaults

Found Rafael Micro R820T tuner
[SDR] Using device 0: Realtek, RTL2838UHIDIR, SN: 00000001, "Generic RTL2832U OEM"
Exact sample rate is: 2000000.052982 Hz
[R82XX] PLL not locked!
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
time      : 2025-09-26 16:36:57
model     : Neptune-R900 id        : 1234567890
unkn1     : 163          unkn2     : 4             nouse     : 0             backflow  : 0             consumption: 12345678      unkn3     : 0             leak      : 0             leaknow   : 0             extra     : 123456
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

I do the transfer as

hackrf_transfer -f 912e6 -s 2e6 -x 1 -t generated.cs8

Logs

> pio run -e esp32_cc1101 -t monitor --upload-port /dev/ttyUSB0
Processing esp32_cc1101 (board: esp32dev; framework: arduino; platform: espressif32@6.1.0)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Please build project in debug configuration to get more details about an exception.
See https://docs.platformio.org/page/projectconf/build_configurations.html


--- Terminal on /dev/ttyUSB0 | 921600 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
N:
N: ****** setup ******
rtl_433_ESP(6): CC1101 gpio receive pin: 15
rtl_433_ESP(6): CC1101 receive frequency: 912.000000
rtl_433_ESP(6): # of device(s) configured 170
rtl_433_ESP(6): ssizeof(r_device): 112
rtl_433_ESP(6): cfg->devices size: 19040
N: ****** setup complete ******
----- CC1101 Status -----
CC1101_MDMCFG1: 0x02
CC1101_MDMCFG2: 0x30
CC1101_MDMCFG3: 0x93
CC1101_MDMCFG4: 0x07
-------------------------
CC1101_DEVIATN: 0x14
CC1101_AGCCTRL0: 0x91
CC1101_AGCCTRL1: 0x40
CC1101_AGCCTRL2: 0xc7
-------------------------
CC1101_IOCFG0: 0x0d
CC1101_IOCFG1: 0x2e
CC1101_IOCFG2: 0x2e
-------------------------
CC1101_FIFOTHR: 0x07
CC1101_SYNC0: 0xad
CC1101_SYNC1: 0x12
-------------------------
CC1101_PKTLEN: 0x00
CC1101_PKTCTRL0: 0x32
CC1101_PKTCTRL1: 0x04
-------------------------
CC1101_ADDR: 0x00
CC1101_CHANNR: 0x00
CC1101_FSCTRL0: 0x00
CC1101_FSCTRL1: 0x0f
-------------------------
CC1101_FREQ0: 0xb1
CC1101_FREQ1: 0x13
CC1101_FREQ2: 0x23
-------------------------
CC1101_MCSM0: 0x14
CC1101_MCSM1: 0x30
CC1101_MCSM2: 0x07
-------------------------
CC1101_FOCCFG: 0x76
CC1101_BSCFG: 0x6c
CC1101_WOREVT0: 0x6b
CC1101_WOREVT1: 0x87
CC1101_WORCTRL: 0xf8
CC1101_FREND0: 0x11
CC1101_FREND1: 0x56
-------------------------
rtl_433_ESP(6): CC1101_FSCAL0: 0x0d
Ignored Signal length: 8681CC1101_FSCAL1: 0x2f
, Time since last bit length: 1689, Gap length: 1180707, Signal RSSI: -76, Current RSSI: -82, pulses: 0CC1101_FSCAL2: 0x2b
, noise count: 1
CC1101_FSCAL3: 0xaa
-------------------------
CC1101_RCCTRL0: 0x00
CC1101_RCCTRL1: 0x41
-------------------------
CC1101_PARTNUM: 0x00
CC1101_VERSION: 0x14
CC1101_MARCSTATE: 0x0d
CC1101_PKTSTATUS: 0xb0
CC1101_RXBYTES: 0x00
----- CC1101 Status -----
rtl_433_ESP(6): Ignored Signal length: 60000, Time since last bit length: 40064, Gap length: 30227376, Signal RSSI: -58, Current RSSI: -92, pulses: 0, noise count: 1
rtl_433_ESP(6): Ignored Signal length: 60000, Time since last bit length: 40064, Gap length: 1220420, Signal RSSI: -58, Current RSSI: -92, pulses: 0, noise count: 3
rtl_433_ESP(6): Ignored Signal length: 61000, Time since last bit length: 40064, Gap length: 802432, Signal RSSI: -58, Current RSSI: -92, pulses: 0, noise count: 5
rtl_433_ESP(6): Ignored Signal length: 60000, Time since last bit length: 40064, Gap length: 646444, Signal RSSI: -58, Current RSSI: -92, pulses: 0, noise count: 7
rtl_433_ESP(6): Ignored Signal length: 36000, Time since last bit length: 40064, Gap length: 2098444, Signal RSSI: -64, Current RSSI: -92, pulses: 0, noise count: 7
rtl_433_ESP(6): Ignored Signal length: 37000, Time since last bit length: 40064, Gap length: 1043432, Signal RSSI: -64, Current RSSI: -92, pulses: 0, noise count: 7
rtl_433_ESP(6): Ignored Signal length: 36000, Time since last bit length: 40064, Gap length: 665432, Signal RSSI: -64, Current RSSI: -92, pulses: 0, noise count: 7
rtl_433_ESP(6): Ignored Signal length: 37000, Time since last bit length: 40064, Gap length: 2635444, Signal RSSI: -70, Current RSSI: -92, pulses: 0, noise count: 7
rtl_433_ESP(6): Ignored Signal length: 87000, Time since last bit length: 40064, Gap length: 6179432, Signal RSSI: -81, Current RSSI: -92, pulses: 0, noise count: 8
rtl_433_ESP(6): Ignored Signal length: 87000, Time since last bit length: 40064, Gap length: 795432, Signal RSSI: -81, Current RSSI: -92, pulses: 0, noise count: 9
rtl_433_ESP(7): Average RSSI Signal -91 dbm, adjusted RSSI Threshold -82, samples 50000
rtl_433_ESP(6): Ignored Signal length: 87000, Time since last bit length: 40060, Gap length: 11068444, Signal RSSI: -81, Current RSSI: -92, pulses: 0, noise count: 10
rtl_433_ESP(6): Ignored Signal length: 37000, Time since last bit length: 40064, Gap length: 4079413, Signal RSSI: -64, Current RSSI: -92, pulses: 0, noise count: 12
rtl_433_ESP(6): Ignored Signal length: 37000, Time since last bit length: 40064, Gap length: 957421, Signal RSSI: -64, Current RSSI: -92, pulses: 0, noise count: 12
rtl_433_ESP(6): Ignored Signal length: 36000, Time since last bit length: 40064, Gap length: 3162433, Signal RSSI: -64, Current RSSI: -92, pulses: 0, noise count: 12
rtl_433_ESP(6): Ignored Signal length: 102000, Time since last bit length: 40065, Gap length: 3862421, Signal RSSI: -57, Current RSSI: -92, pulses: 1, noise count: 13
rtl_433_ESP(6): Ignored Signal length: 100000, Time since last bit length: 40065, Gap length: 1310410, Signal RSSI: -66, Current RSSI: -92, pulses: 0, noise count: 14
rtl_433_ESP(6): Ignored Signal length: 102000, Time since last bit length: 40065, Gap length: 935409, Signal RSSI: -56, Current RSSI: -92, pulses: 0, noise count: 16

Configuration

### platformio.ini


[env:esp32_cc1101]
board = esp32dev
build_flags = 
  '-DLOG_LEVEL=LOG_LEVEL_TRACE'
  '-DONBOARD_LED=2'          ; My ESP32 board had this wiring
; *** rtl_433_ESP Options ***
  '-DRF_MODULE_FREQUENCY=912.00'
  '-DOOK_MODULATION=true'       ; False is FSK, True is OOK
;  '-DRTL_DEBUG=4'           ; rtl_433 verbose mode
;  '-DRTL_VERBOSE=58'          ; LaCrosse TX141-Bv2, TX141TH-Bv2, TX141-Bv3, TX141W, TX145wsdth sensor
;  '-DRAW_SIGNAL_DEBUG=true'   ; display raw received messages
;  '-DMEMORY_DEBUG=true'   ; display memory usage information
  '-DDEMOD_DEBUG=true'  ; display signal debug info
;	'-DMY_DEVICES=true'		; subset of devices
  '-DENABLE_DECODE_Lacrosse_TX141' ; needed for some compatibility
  '-DENABLE_DECODE_NeptuneR900' ; only Neptune is enabled
;  '-DPUBLISH_UNPARSED=true'   ; publish unparsed signal details
  '-DMINRSSI=-82'
;  '-DRSSI_THRESHOLD=12'         ; Apply a delta of 12 to average RSSI level
;  '-DAVERAGE_RSSI=5000'     ; Display RSSI floor ( Average of 5000 samples )
;  '-DSIGNAL_RSSI=true'             ; Display during signal receive
;  '-DOOK_MODULATION=false'       ; False is FSK, True is OOK
; *** RF Module Options ***
  '-DRF_CC1101="CC1101"'  ; CC1101 Transceiver Module
;  '-DRF_MODULE_CS=5'      ; pin to be used as chip select
  '-DRF_MODULE_GDO0=15'   ; CC1101 pin GDO0 - Breadboard is 22 versus 13 on soldered
  '-DRF_MODULE_GDO2=21'    ; CC1101 pin GDO2
; '-DRF_MODULE_INIT_STATUS=true'    ; Display transceiver config during startup
; *** RadioLib Options ***
;  '-DRADIOLIB_DEBUG=true'
;  '-DRADIOLIB_VERBOSE=true'
  ; *** FSK Setting Testing ***
  ;'-DsetBitrate'
  ;'-DsetFreqDev'
  ;'-DsetRxBW'
monitor_port = /dev/ttyUSB0
monitor_speed = 921600
upload_port = /dev/ttyUSB0
upload_speed = 921600

Environment

  • OS: Arch Linux
  • Software: examples/OOK_Receiver
  • Node: n/a
  • npm: n/a

Process Supervisor

not applicable

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions