{"id":37228344,"url":"https://github.com/cepetr/blue2joy","last_synced_at":"2026-01-15T03:27:20.707Z","repository":{"id":331859145,"uuid":"998347374","full_name":"cepetr/blue2joy","owner":"cepetr","description":"Bluetooth HID adapter for Atari 8-bit computers: use modern BLE gamepads or mice to emulate the Atari joystick and paddles.","archived":false,"fork":false,"pushed_at":"2026-01-11T13:30:36.000Z","size":6304,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-11T16:02:32.804Z","etag":null,"topics":["atari","atari800"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cern-ohl-s-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cepetr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-CERN","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-08T12:23:05.000Z","updated_at":"2026-01-11T15:07:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cepetr/blue2joy","commit_stats":null,"previous_names":["cepetr/blue2joy"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cepetr/blue2joy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cepetr%2Fblue2joy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cepetr%2Fblue2joy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cepetr%2Fblue2joy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cepetr%2Fblue2joy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cepetr","download_url":"https://codeload.github.com/cepetr/blue2joy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cepetr%2Fblue2joy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28442272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"online","status_checked_at":"2026-01-15T02:00:08.019Z","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":["atari","atari800"],"created_at":"2026-01-15T03:27:20.006Z","updated_at":"2026-01-15T03:27:20.684Z","avatar_url":"https://github.com/cepetr.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🕹️ Blue2Joy\n\n**Blue2Joy** is an adapter that lets you use modern Bluetooth controllers with Atari 8-bit computers. It emulates **digital joysticks**, **analog paddles**, and supports **bidirectional communication** and much more.\n\nWhile primarily intended for gamepads, the device is not limited to them - in principle, any BLE HID device, such as a keyboard or mouse, can be connected.\n\n\u003e Only devices that fully support the BLE HID over GATT Profile (HOGP) are supported. For this reason many older devices (especially gamepads) are unfortunately are not usable with Blue2Joy. See [compatible devices](/doc/compatible-devices.md).\n\u003e\n\u003e I was not aware of this limitation at the beginning of the project. Had I known, I might have chosen a different approach or possibly not started the project at all. Even so, working on this project has been enjoyable and highly educational, and I learned a great deal in the process. I am also considering a future hardware revision that would either support Bluetooth Classic devices or implement a USB host interface, which could remove some of the current limitations. For these reasons, I ultimately decided to publish the project, as it may still be useful or inspiring to others.\n\n\u003cdiv\u003e\n  \u003cimg width=\"24%\" src=\"doc/images/blue2joy-case-top.jpg\"\u003e\n  \u003cimg width=\"24%\" src=\"doc/images/blue2joy-case-bot.jpg\"\u003e\n  \u003cimg width=\"24%\" src=\"doc/images/blue2joy-case-side.jpg\"\u003e\n  \u003cimg width=\"24%\" src=\"doc/images/blue2joy-set.jpg\"\u003e\n\u003c/div\u003e\n\n## Use Cases\nWhile there are other adapters that let Bluetooth controllers act as digital joysticks, Blue2Joy goes further. Besides standard and expected use cases, there are a few new possible ones that utilize analog input emulation or bidirectional communication:\n\n- Use a gamepad as a digital joystick with up to 3 buttons (Joy2B+ standard)\n- Use gamepad analog sticks as paddles (direct or integration mode)\n- Emulate paddles with a mouse\n- Use a gamepad as an analog joystick (two axes on analog inputs) with up to 5 buttons\n- Connect a mouse digitally - using quadrature encoding as on the Atari ST\n- Connect a mouse in an analog way - using analog inputs for deltas, with up to 5 buttons\n- Configure Blue2Joy via SPI-like communication over the joystick port\n- Emulate the Y-axis of a light pen (conceptual idea, not sure if possible)\n- Emulate an XEP-80 terminal (feasible in principle, but not started yet)\n\nAlthough designed for Atari 8-bit systems, Blue2Joy can be used with any device that follows the same joystick port pinout - with paddle functionality available only on Atari computers (see [details](/doc/paddle-emulation.md)).\n\n## 🚧 Project Status\n\nBlue2Joy is currently under active (but really slow) development. The hardware is stable and most of core features have been successfully tested, but the software still needs months of work before it’s ready for general use.\n\n## Repository Structure\n\nThis repository contains complete project documentation and source code for all Blue2Joy components shown in the following image.\n\n\u003cimg src=\"doc/images/sys.drawio.svg\"\u003e\n\n### Blue2Joy Hardware\n- Nordic nRF52840 (Cortex-M4F @ 64 MHz) with integrated Bluetooth 5 LE radio\n- USB 2.0 Full-Speed (device mode only) for firmware updates and debugging\n- Female 9-pin D-sub connector\n- RGB LED used as a status indicator (see [details](/doc/state-signalling.md))\n- Two user push-buttons (see [details](/doc/button-functions.md))\n\nFor more details, see the [hardware](/hardware/) folder.\n\n### Blue2Joy Firmware\n- Supports pairing and connection to BLE HID devices (tested with Xbox Wireless Controller)\n- Emulates a joystick port digital inputs as well as analog paddle potentiometers\n- Supports bidirectional (SPI) communication with the Atari\n- Indicates device status with an RGB LED\n- Allows custom mapping of HID-device controls to joystick and paddle inputs\n\nFor more details, see the [firmware](/firmware/) folder.\n\n### Web Configuration\n- A web application that allows to configure Blue2Joy device directly from any browser supporting the Web Bluetooth standard\n- Provides an easy way to configure the mapping of HID controls to joystick port digital and analog pins\n- Configure the device even while it is connected to HID devices (e.g., gamepads, mice)\n\nThe application is available at https://cepetr.github.io/blue2joy/main.\n\nFor more details, see the [webconfig](/webconfig/) folder.\n\n### Atari Application\n- Not implemented yet. This component currently exists only as a design intention.\n- Intended to be an application that allows configuring the Blue2Joy device directly from Atari\n- Planned to use the bidirectional (SPI-like) communication over the joystick port\n\nFor more details, see the [atari](/atari/) folder.\n\n## Feedback \u0026 Contributions\n\nI'd be very happy to receive any feedback, pull requests, or even just a note that you've built and tried out Blue2Joy.\n\n## License\n\nThis repository contains software, firmware, and hardware design files.\n\n### Software and Firmware\n\nAll software and firmware files (in `atari/`, `firmware/` and `webconfig/`) are licensed under the GNU General Public License, version 3.\n\nSee [LICENSE-GPL](LICENSE-GPL) for details.\n\n### Hardware\n\nSchematics, PCB, Mechanical design files (in `hardware/`) are licensed under the CERN Open Hardware Licence Version 2 - Strongly Reciprocal. You are free to use, modify, and share them, but if you distribute hardware or modified design files, you must also share your changes under the same license.\n\nSee [LICENSE-CERN](LICENSE-CERN) for details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcepetr%2Fblue2joy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcepetr%2Fblue2joy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcepetr%2Fblue2joy/lists"}