ATARI 65XE AS USB-KEYBOARD

2.4K525

Intro: ATARI 65XE AS USB-KEYBOARD

Making retro Atari 65XE as an USB-keyboard for a modern computer. As will leave the opportunity to use this Atari in native mode. The Arduino Leonardo used to connect Atari's keyboard to an USB. With an UNIX this keyboard will work without any restrictions. Windows need to connect to PC any USB-mouse at BIOS startup for the booting with this keyboard. Apple or others need little corrections within the Arduino program for the keys order correction.


There are no other reasons besides nostalgia.

STEP 1: Only 34 Soldering Points Is Need to Make

This Atari 65XE is nearly 30 years old. And he works. To add one more function for him - the USB-keyboard - is needed only Arduino Leonardo, not a lot of wires, an USB-cable. No DC-adapter of Atari will be needed for this function.

Only 34 soldering points are needed to make. Because the pitch of contacts on slots of the Atari's keyboard and on Arduino is 0.1 in (2.54 mm), the process of soldering is easy.

Note: for Linux usage it is applicable, as the restrictions described below are not important. But for full usage (in Windows, for example) it is needed to make more soldering (described here in the Appendix) and to modify the Arduino sketch.

STEP 2: Place Arduino Under the Case & Mark Some New Keys

After soldering wires from Arduino to J8 connector of Atari, Arduino can be placed at any cozi position under the case. The USB-cable needs to be connected to Arduino and let out from the Atari's case. Now possible to use this Atari like a regular USB-keyboard.

Not all keys of the retro Atari correspond to keys of a modern PC-keyboard. Some keys of Atari will be with 2 functions to make all PC's commands. It is possible to make some different layouts within the Arduino sketch. Within the layout of the Arduino sketch that's here, mainly keys of Atari correspond to PC-keys, but this ones are need to be noted (tabled on the picture here).

STEP 3: Flash Arduino Sketch Via USB

Flash Arduino Leonardo is easy via an USB. So, download:

* - because here all ICs of Atari is stayed in his places (that makes possibility of Atari to work in the native mode) when Arduino scanning the keyboard's matrix, time to time some random signals is appears from a chips. Mainly they affect keys "Pause" and "Control" as tested. Some protection from these signals is marked within the Arduino sketch and was tested. But if libraries "keyboard" and "keypad", that are developed independently, will change incompatibly, some words can occur. For this case here fixed for download the versions of libraries that were tested with the Arduino sketch. These libraries will be needed only if the Arduino sketch will not work with actual libraries.

In addition to the USB-keyboard usage it remains possible to enable this Atari in the native mode. But, of course, not at the same time when Atari are connected via an USB to a PC like a keyboard.

Appendix (not a required, but improves buttons handling in its combinations)

For the full usage of all buttons and all its possible combinations for USB application, while keep the native Atari mode alive, need to exclude from the work a part of the Atari circuit (marked red) when the keyboard is connected via USB; and to engage this section if Atari is running in native mode.

It is not very difficult to do, only a lot of soldering is required (of course, not in the Atari scheme) and one chip CD4066. One more thing that will help is that the 0.1 in (2.54 mm) male PCB strip connector fits perfectly into the Atari J8 slot.

17 Comments

Hi, very cool project, Trying to convert an Atari XL to this. J8 (24 pins) flex-pinch connector for the keyboard membrane sits physically on the motherboard PCB at 90 degrees, as compared to an XE. . Are there any more drawings that detail more of the pin number of J8 on the XE and the XL old PCB? . I'm not sure from the documents so far, if the 4066 in the one of the drawings, is on the XE already, or if that is an added part. Anyone know how that correspond to the XL? I don't have an XE here to examine, rather a 800XL and a 1200XL.. Also I'm still not 100% understanding of the red line markup on your XE mother board showing U24 a 4051 chip pin 16, being used as a tap for 5V VCC on the old XE mother board, where is the other end of that new wire?


I have since found this on the internet, a "SAM's Guide" to the Atari XL-800

http://www.atarimania.com/documents/Atari_800XL_Sa...

At first it appeared that the server for the PDF above, did not work. But I went to dinner, came back an hour later, and low-and-behold, the PDF had downloaded.

It is an EXCELLENT PDF, the best quality 800-XL schematics I have yet to see, because they are many-fewer pages, sooo they are way easier to read. AND, it has a nice page of more detailed pin-outs of J8 and all the chips and connectors. Even has O-scope images of signals at various pins. If you want to print these large schematics your either do a multi-sheet print, and tape them together or go to a print shop.
If anyone knows of SAM's service manual PDF's for the 1200-XL, or XE-130, please post.
Only if to change Arduino code and soldering scheme (because keyboard layouts have some differences between 800XL and 65XE). But idea is same.
Hi, looking to modify an Atari ST Mega desktop in to a usb keyboard set, any ideas?
No simple ideas... too many "lines" and "rows" in ST keyboard - a special chip is needed like in ordinary PC keyboard.
Hi, this looks nice, but i've a question : Could you use the origin D-SUB-9 Joystick-Ports with the arduino leonardo, too? So i could use the joystick/mouse too
Sorry, i'm not understand. The Atari native joystick port is not D-SUB connector. I can not imagine, for what its can be used with Arduino...
Hmmm. the ATARI-Joystick-Ports (A/B) are divided into 2 D-SUB-9-Male-Connectors... And i need em, because i want to build a Raspberry PI inside a 65XE-Case with its Keyboard and build at the Position of the two Joystick-Connectors a D-SUB-9 (Double)-2-Arduino Adapter and than going via USB directly to the Raspberry PI.
I think I get it. You will try soldering the Arduino to the joystick's lines on Atari PCB? May be this possible if Arduino will works on 3.3V, not with 5V. If Arduino will have works on 5V, then chips on the Atari PCB will makes interferences
could it be a choice, to use for the joystick-ports an extra arduino nano, and he will send informations to the leonardo?
If I understand correctly, you are in general had proposed a good approach to overcoming the limitations that are currently in my sketch (some keys, for example Ctrl + Alt + Del, do not work due to interference from Atari chips on native PCB).
Indeed, if you interrogate the keys and joystick with one Arduino with a voltage of 3.3V, and communicate with a PC through Leonardo (Pro mini) with a voltage of 5V (necessary for USB), then this will work better than in my version. I think.
Hi. Thanks for this. I'm wondering, can i use this with my Atari 600 XL?
I have heard the Atari 600XL has very good one keyboard tactile. Theoretically - yes, this must work with Atari 600XL keyboard with some but no global changes within Arduino code (becase keyboard layots have some differences between 600XL and 65XE). On practise... if no unsolder the keyboard's slot from Atari mainboard, chips of Atari will makes time to time some random signals being powered from Arduino's 5V. While testing with Atari 65XE I was noted this ones and was take in account within Arduino code. But what signals will be in Atari 600XL case, I dont know and I have no Atari 600XL for testing. Same time if you ready to unsolder the keyboard's slot from Atari mainboard, then may be this tested case is best for Atari 600/800XL?: http://blog.pixelpracht.net/?p=710
Did you just have this keyboard lying around? I feel like there's a story there.... thanks for sharing this on Instructables!