ZXPicoJoy Programmable Joystick Interface for the ZX Spectrum
ORIGINAL GITHUB: https://github.com/TomDDG/ZXPicoJoy
Programmable Joystick Interface for the ZX Spectrum using a Raspberry Pico.
Supports:
- Kempston
- Sinclair 1 & 2
- Cursor
- Any key combination
Uses an OLED and buttons to program and does not interfere with the Spectrum unless it is supposed to.
The PCB
PCB designed to have all the components on the side away from the Spectrum to give more room. The edge connector then sits on the back side as well as the OLED so this is visible to the user. This is also why the buttons are reversed.
PCB v1.6c Front

PCB v1.6c Back

Joystick Pin-Out
The joystick is wired for 3 button Kempston (Amiga) with the option to flip button 2 to pin 7 enabling the use of 2 button Amstrad joysticks. There is also an option to supply power to pin 7 for autofire circuits. It is wired to 3V3 instead of 5V so may not work on all joysticks, however, all the ones I have tried work fine as they are simple transistor circuits.
Pin 1: Up
Pin 2: Down
Pin 3: Left
Pin 4: Right
Pin 5: Button 3
Pin 6: Button 1
Pin 7: Button 2 for Amstrad compatibility, not connected or 3V3
Pin 8: GND
Pin 9: Button 2 or not connected
Bill of Materials (BoM)
1x Raspberry Pico. Recommend H variant as header pre-soldered.
2x SN74LVC245AN Octal Bus Transceiver With 3-State Outputs. Note these need to be the LVC variant to work with the 3v3 of the Pico.
Optional 2x10pin sockets
1x CDx4HC4075 Triple 3-Input OR Gates. Note these need to be the HC variant in order to work with 3V3 supply voltage.
Optional 2x7pin socket
3x 100nF/0.1uF Capacitor
1x 1N4001 Diode or 1N5158 Diode
1x 56pin PCB Edge Connector. Needs both ends cutting off, the pins removing top & bottom at position 5 and a piece of plastic or metal inserting for the slot (see ZX Spectrum Edge Connector). This ensures everything aligns when connecting.
2x 20pin female header sockets
5x 6x6x9mm Right Angled PCB Momentary Push Button
1x 6x6x9mm PCB Momentary Push Button
1x DE9 9pin Male PCB Connector
1x 4pin PCB header socket 2.54mm Pitch
1x SSD1306 OLED 0.96" (you can get larger ones just make sure they are SSD1306). Be very careful of the GND & VCC placement as they are sometimes reversed.
1x 2x2pin PCB pin header + jumpers
ZXPicoJoy Programmable Joystick Interface for the ZX Spectrum
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
- Comments(0)
- Likes(4)
-
Florin RUSSEN
Aug 20,2025
-
URAN235 KFFM
Jun 26,2025
-
Tony RetroManiak
Jan 15,2025
-
Francisco Meza
Nov 29,2024
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
-
Necroware S7-VRM (2024 Version)
Note from PCBWay: There are some problems in the BOM on the project page that cannot be resolved. If...
-
Atari 2600 PlusCart
Original Site: https://gitlab.com/firmaplus/atari-2600-pluscart
-
2 digit Turbo Display
Original GITHUB: https://github.com/wiretap-retro/2-digit-Turbo-Display?tab=readme-ov-file#2-digit-t...
-
TRH9000 - a graphics expansion cartridge for MSX
Original GITHUB: https://github.com/cristianoag/trh9000
-
SD-1000 - Sega flash multicart for SC-3000, SG-1000 and Mark III based on Pico Clone
Original GITIHUB: https://github.com/aotta/SD-1000
-
PiCOLECO - a Colecovision flash multicart based on Pico clone
Original GITHUB: https://github.com/aotta/PiCOLECO
-
Pi-RTO II - a Intellivision flash multicart based on Pico clone
Original GITHUB: https://github.com/aotta/PiRTOII
-
PicoPAC - Flash Multicart for Philips Videopac (Magnavox Odyssey 2)
Original GITHUB: https://github.com/aotta/PicoPACMore info: https://www.nightfallcrew.com/22/09/202...
-
PicoMSX (Pico MSX Not MSXPico)
ORIGINAL GITHUB: https://github.com/Chandler-Kluser/picomsxThis project is on development by his aut...
-
MSX Goauld Rev. 4.1
Original GITHUB: https://github.com/jabadiagm/MSXgoauld_tn20k
-
Atari 7800 Mini Ultra Rev. D Game Cart
Please see the AtariAge forum: https://forums.atariage.com/topic/69710-the-7800-cartridge-board-thre...
-
286 Booster from Necroware
Original GITHUB:https://github.com/necroware/287-boosterCredits to Necroware.
-
MSX SD Mapper v2
ORIGINAL GITHUB: GitHub - fbelavenuto/msxsdmapperv2: MSX SD Mapper Interface V2
-
Atari 2600 & 7800 Pico Cart Nightfall Version
Original Website: https://www.nightfallcrew.com/17/01/2025/picoa10400-flashcart-for-atari-2600-7800/
-
Atari XE FULL RA Cart / ECI Extender v2.0
TESTED AND WORKING PERFECT.
-
Atari 1200XL Extender Cart
Original Website: https://www.bitsofthepast.com/cartridgeboards.html#
-
Atari 1200XL RA Extender ( Angle Cart )
Original Website: https://www.bitsofthepast.com/cartridgeboards.html#
-
Atari XE ECI port to XL PBI Angle Cart
Original Creator and Website: https://www.bitsofthepast.com/PBI_ECIBoards.html#ATTENTION: This proje...
-
-
AEL-2011 Power Supply Module
460 0 2 -
AEL-2011 50W Power Amplifier
421 0 2 -
-
-
Custom Mechanical Keyboard
651 0 0 -
Tester for Touch Screen Digitizer without using microcontroller
299 2 2 -
Audio reactive glow LED wristband/bracelet with NFC / RFID-Tags
284 0 1 -
-
-







