Skip to the content
PCBKitNew board
2 layers23 × 47.5 mmBlue2joy, the printed circuit board in 3D

Bluetooth HID adapter for Atari 8-bit computers: use modern BLE gamepads or mice to emulate the Atari joystick and paddles.

Size
23 × 47.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
50
Nets
48
Pads
177
Tracks, vias
725, 96
Pours
5
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
8 Jun 2025
Updated
12 Jul 2026

Overview

Blue2joy is an open-source printed circuit board by cepetr, from the cepetr/blue2joy repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 2-layer board of 23 × 47.5 mm with 50 parts on 48 nets, routed with 725 tracks and 96 vias.

It is built around the 74LVC2G07DBVR-TD, 74LVC2G17DBVR-TD and 74HCT2G34GV, with the TLV9001IDBV, TPS73133DBV and BSS138 among its other parts. Its parts include 24 resistors, 10 ICs, 8 capacitors, 4 transistors and 2 switches. It belongs with the retro computing and games and keyboards and input boards and the nRF52 and nRF5x boards of this library.

Main components

8

README

README.md

🕹️ Blue2Joy

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. Try the live demo: https://cepetr.github.io/blue2joy/main.

While 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.

Only devices that fully support the BLE HID over GATT Profile (HOGP) are supported. For this reason many older devices (especially gamepads) are unfortunately not usable with Blue2Joy. See compatible devices.

Have a look at some demos:

Use Cases

While 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:

  • Use a gamepad as a digital joystick with up to 3 buttons (Joy2B+ standard)
  • Use gamepad's analog sticks as paddles (direct or integration mode)
  • Emulate paddles with a mouse
  • Use a gamepad as an analog joystick (two axes on analog inputs) with up to 5 buttons
  • Connect a mouse digitally- using quadrature encoding as on the Atari ST
  • Connect a mouse in an analog way - using analog inputs for deltas, with up to 5 buttons
  • Configure Blue2Joy via SPI-like communication over the joystick port
  • Emulate the Y-axis of a light pen (conceptual idea, not sure if possible)
  • Emulate an XEP80 terminal (work in progress)
  • Send keycodes from the browser to Atari via paddle lines (used by the XEP80 terminal; requires btjkbd.sys).

Although 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).

🚧 Project Status

Blue2Joy is currently under active (but really slow) development. The hardware is stable and most of the core features have been successfully tested, but the software still needs some work to reach the level of polish I would consider complete.

Repository Structure

This repository contains complete project documentation and source code for all Blue2Joy components shown in the following image.

Blue2Joy Hardware

  • Nordic nRF52840 (Cortex-M4F @ 64 MHz) with integrated Bluetooth 5 LE radio
  • USB 2.0 Full-Speed (device mode only) for firmware updates, debugging, or use as a faster alternative to Bluetooth
  • Female 9-pin D-sub connector
  • RGB LED used as a status indicator (see details)
  • Two user push-buttons (see details)

For more details, see the hardware folder.

Blue2Joy Firmware

  • Supports pairing and connection to BLE HID devices (tested with Xbox Wireless Controller)
  • Emulates a joystick port digital inputs as well as analog paddle potentiometers
  • Supports bidirectional (SPI) communication with the Atari
  • Indicates device status with an RGB LED
  • Allows custom mapping of HID-device controls to joystick and paddle inputs
  • Emulates an XEP80 terminal

For more details, see the firmware folder.

Web Configuration

  • A web application that allows you to configure the Blue2Joy device directly from any browser supporting the Web Bluetooth or Web USB standards
  • Provides an easy way to configure the mapping of HID controls to joystick port digital and analog pins
  • Allows you to configure the device even while it is connected to HID devices (e.g., gamepads, mice)
  • Emulates an XEP80 terminal

The application is available at https://cepetr.github.io/blue2joy/main.

For more details, see the webconfig folder.

Atari Blue2Joy Keyboard driver

A driver for SpartaDOS that lets you use Blue2Joy as a keyboard. It can be used together with XEP80 or on its own.

For more details, see the atari folder.

Atari Blue2Joy Configuration Application

  • Not implemented yet. This component currently exists only as a design intention.
  • Intended to be an application that allows configuring the Blue2Joy device directly from Atari
  • Planned to use the bidirectional (SPI-like) communication over the joystick port

For more details, see the atari folder.

Feedback & Contributions

I'd be very happy to receive any feedback, pull requests, or even just a note that you've built and tried out Blue2Joy.

License

This repository contains software, firmware, and hardware design files.

Software and Firmware

All software and firmware files (in atari/, firmware/ and webconfig/) are licensed under the GNU General Public License, version 3.

See LICENSE-GPL for details.

Hardware

Schematics, PCB layout, 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.

See LICENSE-CERN for details.

Parts

50
QtyValueFootprintReferences
1310kResistor_SMD:R_0805_2012MetricR1, R2, R3, R7, R8, R9, R11, R12, R13, R14, R15, R18, R19
51kResistor_SMD:R_0805_2012MetricR20, R21, R22, R23, R24
41uFCapacitor_SMD:C_0805_2012MetricC1, C2, C3, C4
3100nCapacitor_SMD:C_0805_2012MetricC6, C7, C8
374LVC2G07DBVPackage_TO_SOT_SMD:SOT-23-6U4, U7, U8
2100kResistor_SMD:R_0805_2012MetricR6, R10
21k8Resistor_SMD:R_0805_2012MetricR4, R17
22k2Resistor_SMD:R_0805_2012MetricR5, R16
274LVC2G17DBVPackage_TO_SOT_SMD:SOT-23-6U3, U5
2BSS138Package_TO_SOT_SMD:SOT-23Q1, Q3
2OMRON B3FS-1010Button_Switch_SMD:SW_SPST_Omron_B3FS-100xPSW1, SW2
2SI2323DDSPackage_TO_SOT_SMD:SOT-23Q4, Q5
110uFCapacitor_SMD:C_0805_2012MetricC5
174HCT2G34GVPackage_TO_SOT_SMD:SOT-23-6U10
1DE9_SocketConnector_Dsub:DSUB-9_Socket_EdgeMount_P2.77mmJ1
1TLV9001IDBVPackage_TO_SOT_SMD:SOT-23-5U6
1TOREX XC8110AA01MRPackage_TO_SOT_SMD:SOT-23-5U9
1TPS73133DBVPackage_TO_SOT_SMD:SOT-23-5U2
1WS2812C-2020LED_SMD:LED_WS2812B-2020_PLCC4_2.0x2.0mmD1
1XIAO_nRF52840_PlusXIAO:XIAO-nRF52840-Plus-SMDU1

Questions

How big is the Blue2joy PCB?

It measures 23 × 47.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Blue2joy use?

50 parts, built around the 74LVC2G07DBVR-TD, 74LVC2G17DBVR-TD, 74HCT2G34GV and TLV9001IDBV. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Blue2joy KiCad files?

From the cepetr/blue2joy repository on GitHub, at the commit this page was made from: the board is hardware/electronics/blue2joy.kicad_pcb and its schematic hardware/electronics/blue2joy.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Blue2joy design in my own project?

Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers100 × 180 mmX65-sbc revB1, the printed circuit board in 3D

    X65-sbc revB1

    jsyk/x65

    The 65c02 and 65c816s-based modern retro computer

    344 parts59MIT
  • 4 layers65 × 75 mmRp2040 audioboard, the printed circuit board in 3D

    Rp2040 audioboard

    lzptr/rp2040_audioboard

    Mixed signal audio board using the rp2040

    124 partsMIT
  • 2 layers79.1 × 82 mmRokisi, the printed circuit board in 3D

    Rokisi

    mdumas2/rokisi

    73 partsBSD-3-Clause
  • 2 layers100 × 100 mmOpen65, the printed circuit board in 3D

    Open65

    Maverick-Shark/X65_BigMiST

    The X65 is an ultimate computer for everyone interested in the venerable 65-series of 8-bit and 16-bit CPUs, i.e. the 6502 and 65816.

    195 partsMIT
  • 4 layers71.8 × 40.5 mmBioamplifier, the printed circuit board in 3D

    Bioamplifier

    RauLLorenzon/DIY_EEG

    8 Channel EEG board, based on the ADS1299

    95 parts4
  • 2 layers80 × 50 mmSSCosmicRay, the printed circuit board in 3D

    SSCosmicRay

    ethanharstad/SSCosmicRay

    Photodiode cosmic ray detector

    139 parts1
  • 2 layers66 × 20 mmSensor base iteration 2, the printed circuit board in 3D

    Sensor base iteration 2

    VEXU-GHOST/ghost_kicad

    Welcome to UT IEEE RAS VEXU GHOST's repository for our PCB developments! - PCB Images - Onboarding

    48 parts
  • 2 layers285 × 94.6 mmMain3, the printed circuit board in 3D

    Main3

    koron/yuiop

    YUIOP: Etude of designing keyboards

    207 parts15MIT