

Elastick adapter
Connect vintage joysticks (Atari, CoCo...) to your modern PC via Bluetooth
- Size
- 64 × 70.7 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 17
- Nets
- 34
- Pads
- 80
- Tracks, vias
- 111, 0
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 2 Aug 2025
- Updated
- 6 Apr 2026
Overview
Elastick adapter is an open-source printed circuit board by smart-fun, from the smart-fun/elastick repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 64 × 70.7 mm with 17 parts on 34 nets, routed with 111 tracks and 0 vias.
Its parts include 4 capacitors, 2 switches, 1 IC and 1 connector. It belongs with the retro computing and games and keyboards and input boards of this library.
README
README.mdElastick adapter
Connect vintage joysticks (Apple II, Atari, CoCo, Sega…) to a modern PC via Bluetooth.
🚧 WORK IN PROGRESS – NOT READY YET 🚧

Elastick is a hardware and software project built around the ESP32‑based Lolin D32.
It interfaces with classic joysticks and exposes them as standard Bluetooth game controllers, compatible with emulators like MAME or with any modern game supporting gamepads.
Vintage controllers can also be tested directly on the Elastick device itself, without needing a Bluetooth connection.
Supported Controllers
Josticks / Game Pads
- Amstrad CPC
- Apple II - with a cable adapter
- Atari 8 bits / ST
- Commodore 64/128/Amiga
- IBM PC (DA-15 connector) - with a cable adapter
- MSX
- Sega Master System
- Sega Mega Drive
- Tandy Color Computer (CoCo) - with a cable adapter
- Thomson MO/TO - with a cable adapter
Mouses
- Amiga Mouse (test only)
- Atari ST Mouse (test only)
Paddles
- Atari 2600 Paddles
Installation
The main code is located in the code/elastick folder. The project now works with VSCode IDE + PlatformIO extension. Simply open this folder from the PlatformIO extension, build and upload on the Elastick board!
The main folders:
- code: arduino code
- 3d: resources for 3D printing (not ready yet)
- elec: kicad project for PCB
- resources: various pictures
Known issues
Devices requiring 5V power
Most devices work without using the VCC pin at all, but a few peripherals need a full 5‑volt supply to operate correctly. Since the Arduino only provides 3.3 V, these devices may fail to initialize or behave unpredictably. So far, only one mouse has shown this limitation; all other tested devices function normally.
ESP32 reboot during Bluetooth initialization
Some ESP32 boards (including the Lolin D32) may reboot exactly when Bluetooth is initialized.
After investigation, the root cause was a regression in the ESP32 Arduino core (version 3.x) affecting BLE initialization. The board consistently reboots as soon as Bluetooth is started. Using the ESP32 Arduino core 2.0.17 restores full stability:
- no reboot during BLE initialization
- stable operation on USB power or on battery
Using ESP32 Arduino core 2.0.17 fully resolves this issue.
Hardware
- Lolin D32 WROOM (ESP32) µc
- OLED 0,96" SSD1306 I2C 128X64 pixels
- DE-9 female connector aka DB9
- Rotary Button EC11
Additional documentation
License
This project was originally released under the MIT License. As of April 2026, it is distributed under the Apache License 2.0.
Copyright 2026 Arnaud Guyon
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Parts
17| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 22nF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C3, C4 |
| 1 | 100nF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C2 |
| 1 | 470µF | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | C1 |
| 1 | DE-9JOYSTICK | Connector_Dsub:DSUB-9_Pins_Horizontal_P2.77x2.84mm_EdgePinOffset7.70mm_Housed_MountingHolesOffset9.12mm | J1 |
| 1 | LOLIN-D32 | elastick:Lolin D32 | U1 |
| 1 | POWER | elastick:SW_90degrees_3pins | SW1 |
| 1 | ROTARY_SWITCH | elastick:rotary_encoder | SW2 |
| 1 | SSD1306 I2C OLED | elastick:oled_128_64_i2c | DS1 |
The 9 most common of 17 parts.
Questions
How big is the Elastick adapter PCB?
It measures 64 × 70.7 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Elastick adapter use?
17 parts. 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 Elastick adapter KiCad files?
From the smart-fun/elastick repository on GitHub, at the commit this page was made from: the board is elec/elastick_adapter_kicad/elastick_adapter.kicad_pcb and its schematic elec/elastick_adapter_kicad/elastick_adapter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Elastick adapter design in my own project?
Its repository publishes it under the Apache-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
- 2 layers50 × 35 mm

- 2 layers139.7 × 62.2 mm

- 2 layers29.2 × 55.9 mm

Deniseadapter
hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI
17 parts1kGPL-3.0 - 2 layers24.5 × 36.5 mm

- 2 layers56.3 × 55.7 mm

StarNecklace
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
17 parts915 - 2 layers25 × 25 mm

SmallEncoder
DDeGonge/OS-ARM
This arm is not industrial and it will not be fast, but that is not my goal. But it will hopefully be a very nice looking arm fully capable of 6dof motion, cheap enough to keep it accessable but capable enough to…
17 parts498MIT - 2 layers38.9 × 16.1 mm

- 2 layers36 × 51 mm

