{"id":17723782,"url":"https://github.com/ncw/vband","last_synced_at":"2026-02-27T23:02:34.328Z","repository":{"id":238298402,"uuid":"796251051","full_name":"ncw/vband","owner":"ncw","description":"Raspberry Pi Pico 2040 vband compatible morse keyer interface","archived":false,"fork":false,"pushed_at":"2024-05-11T15:46:58.000Z","size":13,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-11T16:45:58.996Z","etag":null,"topics":["cw","keyboard","morse","pico","rp2040","usb","vband"],"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/ncw.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},"funding":{"github":["ncw"],"patreon":"njcw","liberapay":"ncw","custom":["https://rclone.org/donate/"]}},"created_at":"2024-05-05T11:58:17.000Z","updated_at":"2024-05-11T15:46:59.000Z","dependencies_parsed_at":"2024-05-05T14:30:14.939Z","dependency_job_id":"70a7bf6b-b95e-4e65-9ab4-395b3ecf5051","html_url":"https://github.com/ncw/vband","commit_stats":null,"previous_names":["ncw/vband"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncw%2Fvband","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncw%2Fvband/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncw%2Fvband/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncw%2Fvband/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ncw","download_url":"https://codeload.github.com/ncw/vband/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240324059,"owners_count":19783453,"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":["cw","keyboard","morse","pico","rp2040","usb","vband"],"created_at":"2024-10-25T15:44:01.036Z","updated_at":"2026-02-27T23:02:34.256Z","avatar_url":"https://github.com/ncw.png","language":"C","funding_links":["https://github.com/sponsors/ncw","https://patreon.com/njcw","https://liberapay.com/ncw","https://rclone.org/donate/"],"categories":[],"sub_categories":[],"readme":"# Raspberry Pi Pico 2040 vband compatible morse keyer interface\n\nThis implements a USB keyboard interface for a Raspberry Pi Pico 2040 to allow you to plug in your morse straight key or paddle into your computer. It should also work on the Pico-W but doesn't use any Wifi facilities so you don't need the more expensive unit.\n\nInputs\n\n- Keyer on stereo 3.5mm audio jack 3 conductor TRS\n    - GP16 should be T (tip)\n    - GP17 should be connected to R (ring)\n    - Ground should be connected S (shield)\n\nOutput\n\n- A USB keyboard interface\n\nWhen you plug it into your computer it will appear as a new keyboard\n\n```\nBus 003 Device 051: ID cafe:4004 M5NCW Morse Key Keyboard\n```\n\nNote that you need a USB A to Micro USB B cable to plug in to the Pico. You've likely got lots of these lying around at home, however many of these cables are power only which **don't work**. I suggest you buy one from the same place you get the Pico if you aren't sure, or you can do what I did which was try about 5 cables before I found one which worked!\n\n## Construction\n\nThis requires soldering a connector on to the Pico so a total of 6 solder joints. Or if you wish to do less soldering, buy a 3.5mm stereo extension lead and cut it in half. You'll only have 3 joints to solder then.\n\nYou could also build this on a breadboard but I'm imagining most radio amateurs will prefer to solder on a connector.\n\n[Insert image here]\n\n## Installing the firmware\n\nDownload the `vband.uf2` file from [the releases](https://github.com/ncw/vband/releases/latest) first.\n\n1. Unplug the Pico from the USB for 5 seconds\n2. Plug in while holding the button on the board\n3. After 5 seconds release the button\n4. Wait for the mass storage device to be mounted - this should pop up a window on your computer\n5. Copy the `vband.uf2` firmware to this window - this will program the firware into the Pico\n6. The Pico will unmount and restart running the firmware\n\nConnect a paddle at this point.\n\n- pressing the left paddle should cause the LED to come on\n- pressing the right paddle should cause the LED to come on\n- pressing both paddles should cause the LED to go off\n\nIf that looks like it is working, then connect to vband or one of the other programs in the compatible software section and give it a go!\n\n## How it works\n\nIt essentially implements a two key USB keyboard\n\n- `dit` Left CTRL\n- `dah` Right CTRL\n\nIt uses the well developed USB libraries for the Raspberry Pi Pico to do this.\n\n## Compatible software\n\n- [vband](https://hamradio.solutions/vband/) for online practice QSOs.\n- others coming soon!\n\n## Building the firmware\n\nNote that you **do not** need to build the firmware if you just want to use the interface - download the prebuilt `vband.uf2` from the downloads section.\n\nFirst you will need to install the [pico 2040 C SDK](https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html)\n\nI installed this on my ubuntu machine by checking out the pico SDK and running this to install the compilers.\n\n```\nsudo apt install cmake gcc-arm-none-eabi\n```\n\nPoint `PICO_SDK_PATH` at the path you installed the sdk and compile\n\n```\nexport PICO_SDK_PATH=/opt/pico-sdk\nmkdir build\ncd build\ncmake ..\nmake\n```\n\nThis will produce a `vband.uf2` file in the `build` directory.\n\nSend this to the board using the instructions above.\n\n## Bugs\n\nPlease report bugs and request new features or send pull requests to GitHub.\n\n## Licence\n\nThis is licenced under the permissive MIT licence. If someone wants to build a commercial version of this I'm totally fine with that as long as it is attributed to M5NCW.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncw%2Fvband","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fncw%2Fvband","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncw%2Fvband/lists"}