Imported from GitHub: Al-Nafuur/KeyPortari · commit 42ccd77 · license MIT
Description
PS/2 keyboard interface for the Atari 2600 and 7800
README
🕹️⌨️ The KeyPortari a 2600/7800 Keyboard Interface
This project enables the connection of a PS/2 keyboard (or a USB keyboard that supports the PS/2 protocol) to the Atari 2600 or 7800 console. The ATmega328P processes keystrokes and controls the joystick inputs of the Atari 2600 accordingly.
✨ Features
- PS/2 Keyboard Support: Supports various keyboard layouts (DE, US, FR).
- Direct ASCII Conversion: Translates keystrokes into Atari 2600-compatible signals.
- Configurable Keymaps: Customizable key assignments for Atari 2600 control.
- Efficient GPIO Usage: Utilizes an 8-bit port for direct control.
- Configurable DIP Switches: 4-bit resistor-ladder circuit for easy configuration.
🔌 Hardware Requirements
- ATmega328P 5V 16Mhz (Arduino-compatible)
- PS/2 Keyboard (or USB Keyboard that supports the PS/2 protocol)
- Resistors for Resistor-Ladder (10kΩ, 20kΩ, 40kΩ, 80kΩ, 100kΩ Pull-up)
- 2x Quad analog switch (74HC4066)
- Joystick port connection for the Atari 2600
🛠️ Sponsored by JLCPCB
PCB manufacturing for this project was kindly sponsored by JLCPCB – a leading PCB prototype service. For the first prototype run, JLCPCB generously provided 15 SMD assembled test boards, helping to accelerate early hardware development.
If you’re a developer or hardware tinkerer and would like to experiment with the interface or contribute your own ideas, feel free to reach out to me via AtariAge – I’d be happy to provide a board to support your work.
🧪 Breadboard Setup (one joystick forwarded)

⚙️ Installation & Setup
- Upload code to ATmega328P (via Arduino IDE or AVRDUDE).
- Connect PS/2 keyboard to the corresponding pins.
- Set DIP switches for the desired configuration.
- Connect to the Atari 2600 joystick port.
🎮 Usage
- Each keystroke on the PS/2 keyboard is translated into joystick controls for the Atari 2600.
- Modifier keys like
Shift,Ctrl, andAltinfluence the key output (e.g., uppercase/lowercase characters). - DIP switches can be used to activate different keyboard layout (US,DE,FR) configurations.
🐞 Known Issues & Solutions
🙏 Credits
- Project discussion: AtariAge Forum
- Open-source libraries: PS/2 Keyboard Library (modified for this project)
- Steve Guidi's "Basic Programming" protocol
📄 License
- Firmware is licensed under the MIT License
- Hardware designs (schematics, PCB) are under the CERN Open Hardware Licence v2.0 - Permissive
If you have any questions or suggestions, feel free to open an issue on GitHub! 🎮
No comments yet. Be the first to ask about this board.