{"id":16164273,"url":"https://github.com/troglobit/rfctl","last_synced_at":"2025-10-23T23:47:18.284Z","repository":{"id":136803941,"uuid":"80376963","full_name":"troglobit/rfctl","owner":"troglobit","description":"Linux driver and control tool for 433 MHz communication on Raspberry Pi","archived":false,"fork":false,"pushed_at":"2018-10-12T20:21:42.000Z","size":154,"stargazers_count":28,"open_issues_count":4,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-17T00:34:08.558Z","etag":null,"topics":["433mhz","bitbang","gpio","home-automation","kernel-driver","linux-driver","raspberry-pi","raspbian"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/troglobit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-29T22:22:07.000Z","updated_at":"2025-01-22T15:25:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"1be8a011-30be-4364-9d02-0a35f39b7f56","html_url":"https://github.com/troglobit/rfctl","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/troglobit%2Frfctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/troglobit%2Frfctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/troglobit%2Frfctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/troglobit%2Frfctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/troglobit","download_url":"https://codeload.github.com/troglobit/rfctl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244318664,"owners_count":20433957,"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":["433mhz","bitbang","gpio","home-automation","kernel-driver","linux-driver","raspberry-pi","raspbian"],"created_at":"2024-10-10T02:46:02.403Z","updated_at":"2025-10-23T23:47:13.247Z","avatar_url":"https://github.com/troglobit.png","language":"C","readme":"433.92 MHz RF communication on Raspberry Pi\n===========================================\n[![License Badge][]][License] [![Travis Status][]][Travis]\n\n[rfctl][] is a simple Linux driver and control tool for 433.92 MHz RF\ncommunication on Raspberry Pi.\n\nThe following guide assumes the Raspbian Linux distribution is used on\nthe Raspberry Pi.  However, the kernel driver and the `rfctl` tool\nshould work fine on any distribution with a relatively modern kernel.\n\nThe following formum topic, although dated, also covers this driver and\nprovides some helpful tips and discussions.\n\n- https://www.raspberrypi.org/forums/viewtopic.php?t=11159\n\n\nrfctl driver\n------------\n\nThe default control interface of the `rfctl` tool utilizes `rfctl.ko`.\nIt is a LIRC style kernel device driver transmitting and recording pulse\nand pause lengths by bit banging on a GPIO pin.  See [HARDWARE.md][] for\ninformation on how to connect the GPIO to a common 433 MHz TX module.\n\nTo build you first need to install the kernel headers, in Raspbian the\n`raspberrypi-kernel-headers` meta package points to the latest kernel\nheaders, which will install somewhere in `/lib/modules`:\n\n```sh\nsudo apt install raspberrypi-kernel-headers\n```\n\nThen enter the kernel driver directory to build, load the driver, and\ncreate the device node `rfctl` uses:\n\n```sh\ncd rfctl/kernel\nmake\nsudo make insmod\n```\n\n\nrfctl tool\n----------\n\n`rfctl` is a small tool that acts as a remote control for switches that\nuse simple unidirectional communication based on OOK (On Off Keying)\nmodulation on a 433 MHz carrier.  By default `rfctl` uses the Linux\n`rfctl.ko` kernel driver.\n\nTo build:\n\n```sh\ncd rfctl/src\nmake\nsudo make install\n```\n\nA simple test on an old style (not selflearning) NEXA/PROVE/ARC set to\ngroup D, channel 1.\n\n```sh\nrfctl -p NEXA -g D -c 1 -l 1\nrfctl -p NEXA -g D -c 1 -l 0\n```\n\nSome popular (cheap) noname RF sockets, available from e.g. Conrad (DE),\nKjell \u0026 C:o (SE), or Maplin (UK) use the SARTANO/ELRO protocol and need\nto be encoded like this:\n\n```sh\nrfctl -p SARTANO -c 1000100000 -l 1     # I - 1\nrfctl -p SARTANO -c 1000010000 -l 1     # I - 2\nrfctl -p SARTANO -c 1000001000 -l 1     # I - 3\nrfctl -p SARTANO -c 1000000100 -l 1     # I - 4\n\nrfctl -p SARTANO -c 0100100000 -l 1     # II - 1\nrfctl -p SARTANO -c 0100010000 -l 1     # II - 2\nrfctl -p SARTANO -c 0100001000 -l 1     # II - 3\nrfctl -p SARTANO -c 0100000100 -l 1     # II - 4\n\nrfctl -p SARTANO -c 0010100000 -l 1     # III - 1\nrfctl -p SARTANO -c 0010010000 -l 1     # III - 2\nrfctl -p SARTANO -c 0010001000 -l 1     # III - 3\nrfctl -p SARTANO -c 0010000100 -l 1     # III - 4\n\nrfctl -p SARTANO -c 0001100000 -l 1     # IV - 1\nrfctl -p SARTANO -c 0001010000 -l 1     # IV - 2\nrfctl -p SARTANO -c 0001001000 -l 1     # IV - 3\nrfctl -p SARTANO -c 0001000100 -l 1     # IV - 4\n```\n\nIssue `rfctl --help` to get more information on supported protocols and\noptions.\n\n**Note:** All protocols might not be fully tested due to lack of\nreceivers and time :)\n\n\nthere are four lights\n---------------------\n\nAs an example of how to automate your home, there is a small script\nincluded that can be set up to run from cron.  For details, see the\nscript header comments in [onoff.sh][] it also has optional support\nfor the Pimoroni [Firefly Light][], this because the author has a\nsmall Raspberry Pi Zero at home.\n\n\ndisclaimer\n----------\n\nDo not use this software in situations where operation of, or lack of\noperation, may result in property damage, personal injury, or death.\nRegulatory bodies may have locked down public use of RF communication in\nyour location at a national level.  Do not use the `rfctl` software to\nbreak applicable laws and regulations.\n\n\norigin \u0026 references\n-------------------\n\nThis project orignates from the [rf-bitbanger][] project which was\ncreated by Tord Andersson.  It is released under the GNU General Public\nLicense (GPL), version 2.  See the file [COPYING][] for details.\n\nCode fragments from `rfcmd` by Tord Andersson, Micke Prag, Gudmund\nBerggren, Tapani Rintala, and others.  The kernel driver, `rfctl.ko`,\nis based on `lirc_serial.c` by Ralph Metzler et al.\n\n[COPYING]:       COPYING\n[HARDWARE.md]:   HARDWARE.md\n[rfctl]:         https://github.com/troglobit/rfctl\n[onoff.sh]:      https://github.com/troglobit/rfctl/onoff.sh\n[rf-bitbanger]:  https://github.com/tandersson/rf-bitbanger\n[Firefly Light]: https://learn.pimoroni.com/tutorial/sandyj/firefly-light\n[License]:       https://en.wikipedia.org/wiki/GPL_license\n[License Badge]: https://img.shields.io/badge/License-GPL%20v2-blue.svg\n[Travis]:        https://travis-ci.org/troglobit/rfctl\n[Travis Status]: https://travis-ci.org/troglobit/rfctl.png?branch=master\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftroglobit%2Frfctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftroglobit%2Frfctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftroglobit%2Frfctl/lists"}