LILYGO TTGO LoRa32 V2.1_1.6 915 MHz

,

Wow that’s great news! Awesome progress so fast. The data format looks right. This is what I get from my weather station on raspberry pi rtl_433: from rtt_433
{
“time”: “2023-05-12 12:12:35”,
“model”: “Fineoffset-WH24”,
“id”: 61,
“battery_ok”: 1,
“temperature_C”: 21.2,
“humidity”: 63,
“wind_dir_deg”: 311,
“wind_avg_m_s”: 7.7,
“wind_max_m_s”: 8.96,
“rain_mm”: 2118.9,
“uv”: 3393,
“uvi”: 8,
“light_lux”: 110747.0,
“mic”: “CRC”
}.
Good luck with the rest of the task.

My bad for not paying attention to this…

I may have missed the part about FSK on your devices. I currently only use a LoRa connection to a heltec ESP32 device that is used essentially as a precense sensor. In my case, the gateway was rather simple.

Hi did you have any success with FSK? I was hoping to use my newly acquired Lilygo to get data from a 433MHz oil level sensor (Watchman). I think this uses FSK which I guess it why it’s not currently supported. Thanks for all the work so far.

It is progressing well, work with heltec/lilygo boards is complete, now shifting to cc1101 boards

Thanks - any way for me to try it (with protocol #43 enabled) on lilygo, is it available in the nightly dev builds or can I build it myself with gitpod? I’m not too experienced with that.

Self hosted builds need the entire tool chain, including rtl_433_ESP. So best to wait

1 Like

I tried the latest version with the entrire toolchain and did was not able to rerecieve any signals. I added these buid flags under [env:lilygo-rtl_433] in environments.iniand tested various combination of having them turned off or on. Is there another flag I am missing to make this work as they did in your tests?

build_flags =
  ${com-esp32.build_flags}
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'    ; MQTT topic includes model and device
  '-DGateway_Name="OMG_lilygo_rtl_433_ESP"'
  ; FSK flags
  '-DRF_MODULE_FREQUENCY=915.00'
  '-DOOK_MODULATION=false'  ; if ook modulation is false then FSK is used
  '-DRF_SX1276="SX1276"'
; *** OpenMQTTGateway Modules ***
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioSX127x="SX127x"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="LilyGo_SSD1306"'

Those are the settings that were used for FSK devices at 915mhz. And the latest development build of openmqttgateway.

With my tests I had a FineOffset WH51 soil sensor, and I had no issues with reception at about 5 meters

I got this working in OMG by incorporating your example in a portable environment file:

[platformio]
default_envs = 
  esp32_lilygo

[env]

[env:esp32_lilygo]
platform = ${com.esp32_platform}
board = ttgo-lora32-v21
; ~/.platformio/packages/framework-arduinoespressif32/variants/.../pins_arduino.h
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.rtl_433_ESP}
build_flags =
  ${com-esp32.build_flags}

; rtl_433_ESP flag 
; '-DLOG_LEVEL=LOG_LEVEL_TRACE'
  '-DONBOARD_LED=LED_BUILTIN'          ; Onboard LED is GPIO 25 on the Heltec Board
  '-DOOK_MODULATION=false'       ; False is FSK, True is OOK
  '-DRF_MODULE_FREQUENCY=915.00'
  '-DRF_SX1276="SX1276"'

; *** OpenMQTTGateway Config ***
  '-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'    ; MQTT topic includes model and device
  '-DGateway_Name="OMG_ESP32_LILYGO"'  ; MQTT Client Name
; *** OpenMQTTGateway Modules ***
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioSX127x="SX1276"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="LilyGo_SSD1306"'
;   -DLOG_TO_OLED=true'         ; Enable log to OLED
;  '-DJSON_TO_OLED=true'
;  '-DLOG_LEVEL_OLED=LOG_LEVEL_NOTICE'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'
              
custom_description = For ESP32, Gateway using RTL_433_ESP and RadioLib @915MHz
custom_hardware = ESP32 LILYGO LoRa32 V2.1

the only issue I had was that OMG overwrites the frequency and I had to add the following lines to the config_RF.h file


/*------------------- ZradioSX127x Radio Frequencies ----------------------*/
#ifndef SX1276_FREQUENCY
#  define SX1276_FREQUENCY 915.00
#endif

#if defined(ZradioSX127x)
float receiveMhz = SX1276_FREQUENCY;
#endif

It works and I receive data from all my devices. I periodically see this in the trace:

bitbuffer_add_bit: Warning: row count limit (50 rows) reached

But it is working great. Thanks again for implementing the FSK in rtl_433_esp!

1 Like

Tks for sharing you successes with the latest release.

For some of the RF setting like frequency, we will be migrating to soft settings in the future, so you should be able to set them via the WebUi.

1 Like

Using rtl_433 - f 915000000 -s 1020K on a PI, I can pick up my Bresser 7-1 Weather Station ,id 43980
I believe the protocol to be #173 Weather Center 7 in 1

I have a TTGO LoRa32 915Mhz and 433Mhz models and have tried setting both to 915Mhz but cannot connect to my Station. I am willing to build a custom image with PaltformIO if need be?

Maybe I am missing something simpler? Any pointers will be most welcome!

The Bresser needs FSK Modulation, so you need a custom build with the same settings as above.

I have a working RTL_433 on a Linux box with the following configuration:

output mqtt://127.0.0.1:1883,user=rtl_433,pass=pass,retain=1,events=rtl_433[/model][/id]
hop_interval  60
frequency     915.00M
convert     si
report_meta time:iso:usec:tz

And I am seeing my Gas meter on this setup but when I try to use this configuration above and get it compiled and installed I never see updates side by side when my RTL_433 updates.

Here is what I see in MQTT for the Gas Meter.

{"time":"2023-08-19T18:03:25.076771-0400","model":"ERT-SCM","id":38105122,"physical_tamper":1,"ert_type":12,"encoder_tamper":0,"consumption_data":784444,"mic":"CRC"}

Any ideas to check?

The set up above is used to enable fsk reception on these radios by setting the required options in RTL_433_ESP. It will not work if your device is does not communicate using fsk. I would research your gas meter device to see if it is using fsk or ook encoding. For ook encoding, you should not use the above configuration and instead look for other OMG or RTL_433_ESP configurations more closely matching the radio for your gas meter.

According to the rtl_433 source code for the ERT-scm device that is recording it fine now it’s OOK_PULSE_MANCHESTER_ZEROBIT.

I think the issue is the protocol isn’t enabled and not sure how to enable it. According to their docs it’s either protocol 160 or 161.

EDIT: IT is protocol 149 according to RTL-433 (https://github.com/merbanan/rtl_433/blob/master/src/devices/ert_scm.c)

I built a 915 unit with the following:

[env:lilygo-rtl_915-test]
platform = ${com.esp32_platform}
board = ttgo-lora32-v21
; ~/.platformio/packages/framework-arduinoespressif32/variants/.../pins_arduino.h
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.rtl_433_ESP}
build_flags =
  ${com-esp32.build_flags}
; *** Custom - Richie ***
; '-DLOG_LEVEL=LOG_LEVEL_TRACE'
  '-DONBOARD_LED=LED_BUILTIN'          ; Onboard LED is GPIO 25 on the Heltec Board
  '-DOOK_MODULATION=true'       ; False is FSK, True is OOK
  '-DRF_MODULE_FREQUENCY=915.00'
  '-DRF_SX1276="SX1276"'
  '-DESPWifiManualSetup=true'
  '-DWEBUI_AUTH=false'
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'    ; MQTT topic includes model and device
  '-DGateway_Name="OMG-RTL-915-test"'
; *** OpenMQTTGateway Modules ***
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioSX127x="SX1276"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="LilyGo_SSD1306"'
;  '-DLOG_TO_OLED=true'         ; Enable log to OLED
;  '-DJSON_TO_OLED=true'
;  '-DLOG_LEVEL_OLED=LOG_LEVEL_NOTICE'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'
custom_description = For ESP32, Gateway using RTL_433_ESP and RadioLib for 915 MHZ
custom_hardware = ESP32 LILYGO LoRa32 V2.1

And ran my gas meter and got usage on the rtl_433 Linux node but not on the OMG node.

So how do we get protocols enabled on the OMG unit that do work in RTL-433 but not OMG?

I am also questioning myself as if the 915MHZ is properly working.

I have this test unit sniffing and saw the following

T: isAdupl?
N: Send on /RTL_433toMQTT/TPMS/Schrader-EG53MA4/FF99BE msg {"model":"Schrader-EG53MA4","type":"TPMS","flags":"c73ad9bc","id":"FF99BE","pressure_kPa":597.5,"temperature_C":120.5555,"mic":"CHECKSUM","protocol":"Schrader TPMS EG53MA4, PA66GF35","rssi":-95,"duration":42000}T
T: jsonPubl - ON
T: [ OMG->MQTT ] topic: home/OMG-RTL-915-test/RTL_433toMQTT/TPMS/Schrader-EG53MA4/FF99BE msg: {"model":"Schrader-EG53MA4","type":"TPMS","flags":"c73ad9bc","id":"FF99BE","pressure_kPa":597.5,"temperature_C":120.5555,"mic":"CHECKSUM","protocol":"Schrader TPMS EG53MA4, PA66GF35","rssi":-95,"duration":42000} 
: Announce Device sensor on  homeassistant/sensor/TPMS-Schrader-EG53MA4-FF99BE-temperature_C/configT: Min ind: 0
T: store code : 121 / 1103498
T: Col: val/timestamp
T: mem code : 121 / 1103498
T: mem code : 0 / 0
T: mem code : 0 / 0
T: mem code : 0 / 0
T: mem code : 0 / 0
T: mem code : 0 / 0
T: mem code : 0 / 0
T: mem code : 0 
/ 0
T: mem code : 0 / 0
T: mem code : 0 / 0
T: mem code : 0 / 0
T: mem code : 0 / 0
T: [ OMG->MQTT ] topic: homeassistant/sensor/TPMS-Schrader-EG53MA4-FF99BE-temperature_C/config msg: {"stat_t":"+/+/RTL_433toMQTT/Schrader-EG53MA453MA4/FF99BE","dev_cla":"temperature","unit_of_meas":"°C","name":"temperature","uniq_id":"TPMS-Schrader-EG53MA4-FF99BE-temperature_C","val_tpl":"{{ value_json.temperature_C | is_defined }}","state_class":"measurement","device":{"identifiers":["TPMS-Schrader-EG53MA4-FF99BE"],"connections":[["mac","TPMS-Schrader-EG53MA4-FF99BE"]],"model":"Schrader-EG53MA4","name":"TPMS-Schrader-EG53MA4-FF99BE","via_device":"OMG-RTL-915-test"}} 
T: Announce Device sensor on  homeassistant/sensor/TPMS-Schrader-EG53MA4-FF99BE-pressure_kPa/config
T: [ OMG->MQTT ] topic: homeassistant/sensor/TPMS-Schrader-EG53MA4-FF99BE-pressure_kPa/config msg: {"stat_t":"+/+/RTL_433toMQTT/Schrader-EG53MA453MA4/FF99BE","dev_cla":"pressure","name":"pressure","uniq_id":"TPMS-Schrader-EG53MA4-FF99BE-pressure_kPa","val_tpl":"{{ value_json.pressure_kPa | is_defined }}","state_class":"measurement","device":{"identifiers":["TPMS-Schrader-EG53MA4-FF99BE"],"connections":[["mac","TPMS-Schrader-EG53MA4-FF99BE"]],"model":"Schrader-EG53MA4","name":"TPMS-Schrader-EG53MA4-FF99BE","via_device":"OMG-RTL-915-test"}} 
T: Announce Device sensor on  homeassistant/sensor/TPMS-Schrader-EG53MA4-FF99BE-rssi/config
T: [ OMG->MQTT ] topic: homeassistant/sensor/TPMS-Schrader-EG53MA4-FF99BE-rssi/config msg: {"stat_t":"+/+/RTL_433toMQTT/Schrader-EG53MA453MA4/FF99BE","dev_cla":"signal_strength","unit_of_meas":"dB","name":"rssi","uniq_id":"TPMS-Schrader-EG53MA4-FF99BE-rssi","val_tpl":"{{ value_json.rssi | is_defined }}","state_class":"measurement","device":{"identifiers":["TPMS-Schrader-EG53MA4-FF99BE"],"connections":[["mac","TPMS-Schrader-EG53MA4-FF99BE"]],"model":"Schrader-EG53MA4","name":"TPMS-Schrader-EG53MA4-FF99BE","via_device":"OMG-RTL-915-test"}} 

When I look up this TPMS I see that it is 433 mhz maybe? So am I truly listening on 915 mhz with this build/config?

you can try my configuration and either comment out the line '-DOOK_MODULATION=false' or change it to '-DOOK_MODULATION=true' . That will make sure you are receiving data on 915Mhz with OOK. However, I would check the RTL_433_ESP release notes to make sure your gas meter is supported.

I did check with RTL_433_ESP release notes on the main github and found the following:

Registering protocol [44] "ERT Interval Data Message (IDM)"
Registering protocol [45] "ERT Interval Data Message (IDM) for Net Meters"
Registering protocol [46] "ERT Standard Consumption Message (SCM)"

In the main RTL_433 branch they have the following which is what is seeing my meter today:

[149]  ERT Standard Consumption Message (SCM)

I can confirm the meter is getting read on my RTL_433 non OMG setup fine and here is the messages received:

{"time":"2023-08-21T09:50:51.594013-0400","protocol":149,"model":"ERT-SCM","id":38105122,"physical_tamper":1,"ert_type":12,"encoder_tamper":0,"consumption_data":784546,"mic":"CRC","mod":"ASK","freq":914.8368,"rssi":-0.122044,"snr":34.24065,"noise":-34.3627}

So unless my build, shown below, is not configured right then I don’t know why it wouldn’t be showing up unless its distance.

build:

[env:lilygo-rtl_915-test]
platform = ${com.esp32_platform}
board = ttgo-lora32-v21
; ~/.platformio/packages/framework-arduinoespressif32/variants/.../pins_arduino.h
board_build.partitions = min_spiffs.csv
lib_deps =
  ${com-esp32.lib_deps}
  ${libraries.ssd1306}
  ${libraries.rtl_433_ESP}
build_flags =
  ${com-esp32.build_flags}
; *** Custom - Richie ***
; '-DLOG_LEVEL=LOG_LEVEL_TRACE'
  '-DONBOARD_LED=LED_BUILTIN'          ; Onboard LED is GPIO 25 on the Heltec Board
  '-DOOK_MODULATION=true'       ; False is FSK, True is OOK
  '-DRF_MODULE_FREQUENCY=915.00'
  '-DRF_SX1276="SX1276"'
  '-DOMG_VERSION="v1.6.0"'
  '-DESPWifiManualSetup=true'
  '-Dwifi_ssid="SSID"'
  '-Dwifi_password="PASS"'
  '-DNTP_SERVER="192.168.xx.xx"'
  '-DWEBUI_AUTH=false'
  '-DMQTT_USER="USER"'
  '-DMQTT_PASS="PASS"'
  '-DMQTT_SERVER="192.168.xx.xx"'
; *** OpenMQTTGateway Config ***
  ;'-UZmqttDiscovery'          ; disables MQTT Discovery
  '-DvalueAsATopic=true'    ; MQTT topic includes model and device
  '-DGateway_Name="OMG-RTL-915-test"'
; *** OpenMQTTGateway Modules ***
  '-DZgatewayRTL_433="rtl_433"'
  '-DZradioSX127x="SX1276"'
; *** ssd1306 Display Options ***
  '-DZdisplaySSD1306="LilyGo_SSD1306"'
;  '-DLOG_TO_OLED=true'         ; Enable log to OLED
;  '-DJSON_TO_OLED=true'
;  '-DLOG_LEVEL_OLED=LOG_LEVEL_NOTICE'
;  '-DDISPLAY_IDLE_LOGO=false'
;  '-DDISPLAY_BRIGHTNESS=80'
;  '-DDISPLAY_METRIC=false'
custom_description = For ESP32, Gateway using RTL_433_ESP and RadioLib for 868 MHZ
custom_hardware = ESP32 LILYGO LoRa32 V2.1

Also had to modify config_RF.h according to the notes above:

/*-------------------CC1101 frequency----------------------*/
//Match frequency to the hardware version of the radio if ZradioCC1101 is used.
#ifndef CC1101_FREQUENCY
//#  define CC1101_FREQUENCY 433.92
#  define CC1101_FREQUENCY 915.00
#endif
// Allow ZGatewayRF Module to change receive frequency of CC1101 Transceiver module
#if defined(ZradioCC1101) || defined(ZradioSX127x)
float receiveMhz = CC1101_FREQUENCY;
#endif

Any thoughts? I see other 915 mhz stuff getting recorded on my node. I have this test node right behind the wall opposite my gas meter.

Still struggling with this myself. Something I did come across however is the flag in the build to change frequency may be incorrect, hence the need to update config_RF.h for the lilygo chip.

Instead of using:

'-DRF_MODULE_FREQUENCY=915.00'

I am now using this and it is updating the frequency on my device without updating the config_RF.h:

'-DCC1101_FREQUENCY=915.00'

I found this via a post over on the Home Assist forms:

Having said all that, I still can not for the life of me get my water meter to pull in.