{"id":15550359,"url":"https://github.com/rgerganov/rf-car","last_synced_at":"2025-09-20T10:32:58.153Z","repository":{"id":50345840,"uuid":"65551175","full_name":"rgerganov/rf-car","owner":"rgerganov","description":"Controlling RC cars with HackRF","archived":false,"fork":false,"pushed_at":"2023-03-02T06:55:36.000Z","size":4146,"stargazers_count":144,"open_issues_count":3,"forks_count":21,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-01-11T15:53:38.734Z","etag":null,"topics":["hackrf","toys"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rgerganov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2016-08-12T12:20:20.000Z","updated_at":"2025-01-10T14:47:41.000Z","dependencies_parsed_at":"2024-10-27T10:54:03.616Z","dependency_job_id":"bebafbd9-8fbf-48c4-b099-e18aeffdeb95","html_url":"https://github.com/rgerganov/rf-car","commit_stats":{"total_commits":30,"total_committers":5,"mean_commits":6.0,"dds":0.5333333333333333,"last_synced_commit":"f2676c831f03b1b73622be4adab2548a53aad08b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgerganov%2Frf-car","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgerganov%2Frf-car/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgerganov%2Frf-car/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rgerganov%2Frf-car/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rgerganov","download_url":"https://codeload.github.com/rgerganov/rf-car/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233655324,"owners_count":18709260,"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":["hackrf","toys"],"created_at":"2024-10-02T13:56:01.046Z","updated_at":"2025-09-20T10:32:57.586Z","avatar_url":"https://github.com/rgerganov.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n[![Build Status](https://github.com/rgerganov/rf-car/workflows/CI/badge.svg)](https://github.com/rgerganov/rf-car/actions)\n\nSmall programs for controlling RC cars with HackRF.\n\n## `ook_car`\n![ook-car](/pics/ook-car.jpg)\n\nThis car works on 40.684 MHz and moves in 8 directions (forward, backward, left, right, forward-right,\nforward-left, backward-right, backward-left). You can see it in action here:\n\n[![demo-ook](https://img.youtube.com/vi/itS2pWkgNrM/0.jpg)](https://www.youtube.com/watch?v=itS2pWkgNrM)\n\nThe remote control is using OOK modulation with long and short pulses. One long\npulse is equal to three short pulses. For example, to move the car forward, we\nneed to send 4 long pulses followed by 10 short pulses. We can easily find the\ncontrol sequence for each direction by recording the signal from the RC and\nthen analyse it with [inspectrum](https://github.com/miek/inspectrum):\n\n![ook-signal](/pics/inspectrum-ook.png)\n\nTo synthesize the signal with the HackRF, we need to transmit\n`SAMPLE_RATE/SYMBOL_RATE` samples ('1' or '0') for each bit of the control\nsequence. We can find the `SYMBOL_RATE` with inspectrum, it is about 2018.\nWe choose the `SAMPLE_RATE` to be 2M.\n\n## `dickie`\n![dickie-car](/pics/dickie.jpg)\n\nThis is the [Dickie Toys Flippy RC Car](https://www.amazon.de/-/en/Dickie-Flippy-Control-Rotation-Function/dp/B084PY44PN), it works on 2.4 GHz and moves in 6 directions. You can see it in action here:\n\n[![demo-dickie](https://img.youtube.com/vi/mqSv-Nycy_4/0.jpg)](https://www.youtube.com/watch?v=mqSv-Nycy_4)\n\nFirst you need to turn on the car and then start `dickie`. This is because `dickie` sends a synchronization pattern upon start and the car needs to receive it.\nYou can find more details about the remote protocol in this [blog post](https://xakcop.com/post/re-2.4ghz/).\n\n## `concept`\n![dickie-car](/pics/concept.png)\n\nThis car is very similar to the one from Dickie Toys. The support was added by [@alexbilevskiy](https://github.com/alexbilevskiy), you can find more details in [this PR](https://github.com/rgerganov/rf-car/pull/4).\n\n## `rover`\n![rover-car](/pics/rover.jpg)\n\nThis is Range Rover donated by [thegiftscholars.com](https://www.thegiftscholars.com/cmj-rc-cars) especially for this project!\nIt works on 2.4 GHz and moves in 8 directions. You can see it in action here:\n\n[![demo-rover](https://img.youtube.com/vi/QaZhaHERiQc/0.jpg)](https://www.youtube.com/watch?v=QaZhaHERiQc)\n\n# Build \u0026 run\n\nThe programs depend only on SDL2, SDL2_image and libhackrf. To build on Linux:\n\n    $ sudo apt-get install libsdl2-dev libsdl2-image-dev libhackrf-dev\n    $ make\n    $ ./ook_car\n    $ ./dickie\n    $ ./rover\n\nTo build on OSX:\n\n    $ brew install sdl2 sdl2_image hackrf\n    $ make\n    $ ./ook_car\n    $ ./dickie\n    $ ./rover\n\n# Support\n\nIf you want to support the project you can send me an RC toy and I will try to reverse engineer its protocol and add it here. Send me an [email](mailto:rgerganov@gmail.com) for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frgerganov%2Frf-car","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frgerganov%2Frf-car","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frgerganov%2Frf-car/lists"}