{"id":19696693,"url":"https://github.com/pfeerick/usb_elrs_receiver","last_synced_at":"2026-04-17T02:00:44.337Z","repository":{"id":74669256,"uuid":"524925071","full_name":"pfeerick/USB_ELRS_Receiver","owner":"pfeerick","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-19T04:25:18.000Z","size":1317,"stargazers_count":52,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-19T16:46:31.984Z","etag":null,"topics":[],"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/pfeerick.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":"2022-08-15T09:22:37.000Z","updated_at":"2025-10-19T04:23:00.000Z","dependencies_parsed_at":"2023-11-24T06:35:59.044Z","dependency_job_id":"8ba06e2f-3b97-4cd9-8492-f66d93cc5f8e","html_url":"https://github.com/pfeerick/USB_ELRS_Receiver","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/pfeerick/USB_ELRS_Receiver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfeerick%2FUSB_ELRS_Receiver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfeerick%2FUSB_ELRS_Receiver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfeerick%2FUSB_ELRS_Receiver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfeerick%2FUSB_ELRS_Receiver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pfeerick","download_url":"https://codeload.github.com/pfeerick/USB_ELRS_Receiver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pfeerick%2FUSB_ELRS_Receiver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31911846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-11T19:35:54.571Z","updated_at":"2026-04-17T02:00:44.331Z","avatar_url":"https://github.com/pfeerick.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"USB CRSF/ELRS Receiver\n======================\n\nUse your ELRS transmitter as a joystick for your PC simulator using a \nmicrocontroller and ELRS receiver.\n\n\n## Hardware Requirements / Recommendations\n - Microcontroller:\n   - [Seeed Studio XIAO SAMD21](https://www.seeedstudio.com/Seeeduino-XIAO-Arduino-Microcontroller-SAMD21-Cortex-M0+-p-4426.html)\n   - [Seeed Studio XIAO RP2040](https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html)\n - ELRS Receiver:\n   - [Happymodel EP2](http://www.happymodel.cn/index.php/2021/04/10/happymodel-2-4g-expresslrs-elrs-nano-series-receiver-module-pp-rx-ep1-rx-ep2-rx)\n   - [Radiomaster RP2](https://www.radiomasterrc.com/products/rp2-expresslrs-2-4ghz-nano-receiver)\n   - [iFlight ELRS Receiver](https://shop.iflight-rc.com/iFlight-ELRS-Receiver-Pro1757)\n\nNote: While the XIAO RP2040 is supported, I recommend the XIAO SAMD21, as \nRP2040 platform support will take up some 2.5GB of space, so will take a while \nto download. I also ran into an issue on Windows 11 where the firmware could \nnot be uploaded until using [Zadig](https://zadig.akeo.ie/) to install the \n`libusb-win32` driver for the `RP2 Boot2 (Interface 1)`. There is no reason the \nofficial Raspberry Pi Pico could not be used if you have one handy, but for \ncompactness the XIAO boards are best.\n\nThe choice of ELRS receiver is up to you. The recommended receivers are due to \nthe compact nature of the build, as they fit neatly within the footprint of the \nXIAO boards. \n\n\n## Device Connections: \n\n```\n  XIAO   ---   ELRS\n  =================\n  5V  \u003c－－－＞ 5V\n  GND \u003c－－－＞ GND\n  RX  \u003c－－－＞ TX\n  TX  \u003c－－－＞ RX\n```\nBoth signal lines are 3.3V, just connect them as they are. Since this is serial \ncommunications, it is necessary to connect RX of one side to the TX of the \nother, and vice versa.\n\n### XIAO SAMD21\n![XIAO-SAMD21 wiring](doc/xiao-samd21-wiring.png)\n\n### XIAO RP2040\n![XIAO-RP2040 wiring](doc/xiao-rp2040-wiring.png)\n\nAs you can see from the images, the XIAO boards have a VIN and GND pin at the \nbottom, which is actually 5V and GND when the USB is plugged in. So you all the \nconnections are accessible from the end with these boards, making the resulting \nbuild very neat. \n\n\n## Finished builds\n\n### XIAO SAMD21 /w  Happymodel EP2 Receiver\nThe antenna has seen better days!\n\n![Built SAMD21 CRSF](doc/xiao-samd21-built-unit.png)\n\n\n### XIAO RP2040 /w  iFlight 2.4Ghz Receiver\nThis isn't as compact as some of the others, but has the added benefit of \ncoming with pre-soldered wires on the receiver - just cut the plug off and \nsolder the wires onto the microcontroller!\n\n![Built RP2040 CRSF](doc/xiao-rp2040-built-unit.png)\n\n## Building and Uploading\nYou can either download a prebuilt binary from https://github.com/pfeerick/USB_ELRS_Receiver/releases/tag/latest, and install it to your device (for the RP2040/PICO targets it is a simple drag and drop / copy to firmware drive operation), or use the following notes as a guide on how to build the firmware locally, and upload it to your device.\n\nI will assume you have already installed [VSCode](https://code.visualstudio.com/) and [PlatformIO](https://platformio.org/platformio-ide) via the respective installation guides. Once you have download the code from this repo to your computer (either via git clone or [downloading as a zip](https://github.com/pfeerick/USB_ELRS_Receiver/archive/refs/heads/master.zip)), open up the folder in VSCode. You will then be able to choose the PlatformIO \"alien head\" icon head in the sidebar, and then choose the build and upload task for your desired target. PlatformIO will automatically install the dpendences when you change targets, which may take some minutes to download. \n\nFor example, to build and upload to the XAIO SAMD21 in one step:\n\n![PIO Upload](doc/pio-upload.png)\n\n## Cases\n- @r0zbot shared this case that suits the SAMD21 as well as a Betaflight SuperD ELRS receiver, with a slot for the antennas.\nhttps://www.printables.com/model/1573043-xiao-samd21-elrs-usb-box\n\n## Acknowledgments:\n\nBased on the project originally developed by kobatan:\n- https://qiita.com/kobatan/items/40728fbb625057d9f42b\n- https://qiita.com/kobatan/items/253f1614a8653a1dcb1a\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpfeerick%2Fusb_elrs_receiver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpfeerick%2Fusb_elrs_receiver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpfeerick%2Fusb_elrs_receiver/lists"}