{"id":669,"date":"2020-11-18T18:15:09","date_gmt":"2020-11-18T17:15:09","guid":{"rendered":"https:\/\/www.sevenwatt.com\/main\/?p=669"},"modified":"2020-11-18T18:18:57","modified_gmt":"2020-11-18T17:18:57","slug":"receive-buienradar-br-1800-weather-station-on-rfm69-and-lora-modules","status":"publish","type":"post","link":"https:\/\/www.sevenwatt.com\/main\/receive-buienradar-br-1800-weather-station-on-rfm69-and-lora-modules\/","title":{"rendered":"Receive Buienradar BR-1800 weather station on RFM69 and Lora modules"},"content":{"rendered":"\n<p>My local sailing club has a Buienradar BR-1800 weather station with its indoor unit in the start\/finish venue. There it is inaccessible to the sailors. I have some past experience in weather stations. I was the first to receive <a href=\"https:\/\/www.sevenwatt.com\/main\/wh1080-protocol-v2-fsk\/\">FSK signals from a WH1080<\/a> weather station. Before that time OOK was the modulation of choice. As sailor I actually want to be able to read the local wind and direction, preferable also from home. So I set out to make this weather station internet connected.<\/p>\n<p>I started googling on to my surprise I found only questions of people who wanted to connect this to for example Domoticz but no easy solutions that I could reuse. Later I learned that there is an implementation which is copied by one or two others. That was after the fact!. Googling on reverse engineering or rf protocol for the BR-1800 I found two useful pieces of information. The first indicated that the BR-1800 is a Fine Offset WH-2300 and it had two spreadsheets with the RF protocol (RF properties and packet format). Searching of WH-2300 did not result in more knowledge. The second interesting information was a picture of the internal PCB that showed a footprint of the radio module used. I quickly recognized that as a HopeRF RFM22.\u00a0\u00a0<\/p>\n<p><a href=\"https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2020\/11\/br1800pcb.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-670\" src=\"https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2020\/11\/br1800pcb.jpg\" alt=\"\" width=\"2048\" height=\"1536\" srcset=\"https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2020\/11\/br1800pcb.jpg 2048w, https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2020\/11\/br1800pcb-300x225.jpg 300w, https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2020\/11\/br1800pcb-1024x768.jpg 1024w, https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2020\/11\/br1800pcb-768x576.jpg 768w, https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2020\/11\/br1800pcb-1536x1152.jpg 1536w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><\/a><\/p>\n<p>\u00a0<\/p>\n<p>The FSK signals are compatible across a range of HopeRF radio&#8217;s. Together with the protocol spreadsheet there was enough information to get me started. I pulled a STM32-based <a href=\"https:\/\/jeelabs.org\/docs\/hardware\/jnz\/\">Jeenode Zero with RFM69<\/a> radio form the box and set up a PlatformIO environment using the <a href=\"https:\/\/platformio.org\/lib\/show\/3082\/JeeH\">jeelabs\/Jeeh<\/a> library as a lib_deps. With reusing some code and register settings form my earlier <a href=\"https:\/\/www.sevenwatt.com\/main\/wh1080-protocol-v2-fsk\/\">WH1080 work<\/a> I was able to quickly make a receiver implementation.<\/p>\n<p>So I went to the sailing club (sailed a bit first), opened my laptop and after a few minutes I had received the raw data of several packets. Back home! After studying a bit and comparing to the expected protocol I noticed that the payload was too short and I actually recognized it. I hooked up the WH1080 packet decoder and indeed, WH1080 \/ WS400 signals. There is another station at the club, maybe on a boat. But I should have received Buienradar BR-1800 signals as well. Same frequency and bitrate.<\/p>\n<p>The next day I went back to the club and decided to inspect the indoor unit. It had no reception of the outdoor unit. So I took a long ladder and removed the outdoor unit and brought it home. checking the batteries learned that the rechargeable NiM-hydrides were completely flat. So much for a solar recharging system. After fixing this and hooking up the Jeenode Zero again I started receiving the signals. After tweaking a bit with preamble and syncword detection settings I was receiving over 80% of the transmitted packages. Next step: Decoding.<\/p>\n<p>As the format is clearly related to the WH-1080 and using the rf protocol spreadsheet it was not too difficult to write the decoding algorithm. The CRC turned out to be the same as for the WH-1080. By now I had realized that this outdoor unit &#8220;architecture&#8221; is actually better known as WH24. There are some FCC records for clearance in the USA. Searching on WH24 I finally found\u00a0 source code in <a href=\"https:\/\/github.com\/merbanan\/rtl_433\">Benjamin Larsson repository<\/a>. In this <a href=\"https:\/\/github.com\/merbanan\/rtl_433\/blob\/master\/src\/devices\/fineoffset.c\">file<\/a> details of the protocol and decoding can be found. I used this to &#8220;compare notes&#8221; and copied code to derive the UV-index. In the end it turns out that the BR-1800 uses a different UV-index scale.\u00a0<\/p>\n<p>After hooking up the Jeenode Zero with RFM69 I started to receive some packets. With some tuning of preamble and syncword detection I receive over 80% of the transmissions. At this point in time I have a working implementation.\u00a0<\/p>\n<pre>RF69 #17: 24 3c ce 62 19 63 0f 03 00 02 00 00 00 00 00 a9 c9<br \/>r 116 l 2 a-1525<br \/><br \/>checksum\u00a0 ok crc\u00a0 ok <br \/>ID: 3C, T=13.7\u00b0C, relH=99%, Wvel=2.1m\/s, Wmax=3.4m\/s, Wdir=206\u00b0, Rain=0.6mm, UV=0, UVindex=0, Light=0.0, battery ok<\/pre>\n<p>The final goal is to connect the Buienradar BR-1800 with wifi to the internet. ESP32 is a very useful solutions. They are available with HopeRF (RFM95\/RFM96) and SemTech (SX1276\/SX1278) Lora modules. So would a Lora module be able to receive the FSK modulated signals. The answer is yes which I will explain in a next post.<\/p>\n<p>Source code will become available on github\/sevenw after finishing the project and some cleanup.<\/p>\n<p>\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>My local sailing club has a Buienradar BR-1800 weather station with its indoor unit in the start\/finish venue. There it is inaccessible to the sailors. I have some past experience in weather stations. I was the first to receive FSK signals from a WH1080 weather station. Before that time OOK was the modulation of choice. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":671,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[68,70,71,8,72,65,66,67,9,4,69],"class_list":["post-669","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-weatherstations","tag-br-1800","tag-buienradar","tag-fine-offset","tag-fsk","tag-jeenode-zero","tag-rf69","tag-rf96","tag-sx1276","tag-weather-station","tag-wh1080","tag-wh2300"],"_links":{"self":[{"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/posts\/669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/comments?post=669"}],"version-history":[{"count":11,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/posts\/669\/revisions"}],"predecessor-version":[{"id":683,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/posts\/669\/revisions\/683"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/media\/671"}],"wp:attachment":[{"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/media?parent=669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/categories?post=669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/tags?post=669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}