{"id":17320081,"url":"https://github.com/kevinmehall/rtlsdr-433m-sensor","last_synced_at":"2025-10-18T09:07:22.664Z","repository":{"id":3085540,"uuid":"4109696","full_name":"kevinmehall/rtlsdr-433m-sensor","owner":"kevinmehall","description":"Decoder for Oregon Scientific v1 protocol wireless temperature sensors with RTL-SDR and GNU Radio.","archived":false,"fork":false,"pushed_at":"2017-03-25T21:37:24.000Z","size":123,"stargazers_count":176,"open_issues_count":3,"forks_count":34,"subscribers_count":32,"default_branch":"master","last_synced_at":"2025-03-28T02:14:15.016Z","etag":null,"topics":["gnuradio","rtl-sdr","software-defined-radio","temperature-sensor"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kevinmehall.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-04-23T04:48:33.000Z","updated_at":"2025-02-17T13:21:45.000Z","dependencies_parsed_at":"2022-08-26T06:42:03.325Z","dependency_job_id":null,"html_url":"https://github.com/kevinmehall/rtlsdr-433m-sensor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinmehall%2Frtlsdr-433m-sensor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinmehall%2Frtlsdr-433m-sensor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinmehall%2Frtlsdr-433m-sensor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinmehall%2Frtlsdr-433m-sensor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinmehall","download_url":"https://codeload.github.com/kevinmehall/rtlsdr-433m-sensor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248886324,"owners_count":21177643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gnuradio","rtl-sdr","software-defined-radio","temperature-sensor"],"created_at":"2024-10-15T13:28:54.391Z","updated_at":"2025-10-18T09:07:17.628Z","avatar_url":"https://github.com/kevinmehall.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Decoding Oregon Scientific wireless sensor data with RTL-SDR and GNU Radio\n===========================================================================\n\nKevin Mehall  \nhttp://kevinmehall.net\n\nThis script decodes the packets that Oregon Scientific remote\nthermometers (like the one pictured below) send to the display unit. It also\nserves as example code for accessing [rtl-sdr][] / GNU Radio samples live from\nPython.\n\n![Picture of sensor](http://kevinmehall.net/s/2012/oregon-scientific-sensor.jpeg)\n\nEach sensor transmits every 30 seconds on 433.9MHz. The packet is repeated\ntwice. Modulation is [On-off keying][ook], and the 32 data bits are\n[manchester encoded][manchester]. Alexander Yerezeyev implemeted a\n[decoder for AVR][avr-code] microcontrollers, and wrote up a\n[description of the protocol][alyer].\n\nMy sensors use the V1 protocol, but if you have newer sensors, take a look at\n[JeeLabs' description][jeelabs-v2] of the V2 protocol. It would probably be\nsimple to adapt my code.\n\n[rtl-sdr]: http://sdr.osmocom.org/trac/wiki/rtl-sdr \n[ook]: http://en.wikipedia.org/wiki/On-off_keying\n[manchester]: http://en.wikipedia.org/wiki/Manchester_encoding\n[alyer]: http://alyer.frihost.net/thn128decoding.htm\n[avr-code]: http://code.google.com/p/thn128receiver/source/browse/osv1_dec.c\n[jeelabs-v2]: http://jeelabs.net/projects/11/wiki/Decoding_the_Oregon_Scientific_V2_protocol\n\nThe GNU Radio [osmosdr block] captures from the [device][p160].\nIt's tuned slightly to the side to avoid the DC noise at the local oscillator\nfrequency. A `freq_xlating_fir_filter_ccc` block selects and downsamples the\ncorrect region of the captured frequency range. Then it AM demodulates that band, and\nuses a message sink and queue to bring the samples into Python. (see gr_queue.py).\nA Python state machine detects the preamble, manchester-decodes the bits, and\nthen parses the packet.\n\n[osmosdr block]: http://cgit.osmocom.org/cgit/gr-osmosdr/\n[p160]: http://blog.kevinmehall.com/post/21103573304/my-10-96-software-defined-radio-arrived\n\n\nYou can also (with the `-a` flag) play the AM audio to your speakers. The sensor\npackets sound like beeps, and you can hear other devices transmitting on the ISM\nband.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinmehall%2Frtlsdr-433m-sensor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinmehall%2Frtlsdr-433m-sensor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinmehall%2Frtlsdr-433m-sensor/lists"}