Atari 800 XL converted to USB keyboard

Bitsquid

27 Jan 2015, 02:14

A while ago I was browsing a local flee market for used keyboards. No luck with that, but I found an Atari 800XL for 20€ that was in great external condition and I figured I could try to turn it into a keyboard instead.
Atar800xl_01.jpg
Atar800xl_01.jpg (244.41 KiB) Viewed 4017 times
When at home I opened it and found the keyboard to employ some kind of circuit printed on foil which was blugged into the main board through a plug-in connector.
Atar800xl_07.jpg
Atar800xl_07.jpg (279.47 KiB) Viewed 4017 times
Because I couldn't find an identical connector to purchase online I figured I could just desolder it from the PCB. Well, turns out I couldn't. To get it free you probably need to heat up all 20-something pins at the same time which I couldn't figure out how to do with the simple soldering iron I had. So I bought a fretsaw and got rid of the PCB piece by piece! :twisted: :lol:
Atar800xl_02.jpg
Atar800xl_02.jpg (331.38 KiB) Viewed 4017 times
Then I bought a Teensy microcontroller, soldered a bunch of pinheaders to it and a complementary bunch of pinheaders to the connector I hijacked from the PCB.
Atar800xl_03.jpg
Atar800xl_03.jpg (146.08 KiB) Viewed 4017 times
Atar800xl_04.jpg
Atar800xl_04.jpg (675.75 KiB) Viewed 4017 times
From now on it was basically a coding job. Just apply some voltage to a pin and check all other pins if there's some measurable current. After a bit of coding and logging data through the handy Keyboard.print() command I had the keyboard matrix figured out. The only major hurdle was, that there were a short circuit... the keyboard behaved like the Escape key was pressed all the time. But by carfully seperating the foil with the circuits and cleaning it in that area that problem was resolved.
Atar800xl_05.jpg
Atar800xl_05.jpg (157.34 KiB) Viewed 4017 times
It still took me a while to come up with a program that would allow me to map all buttons correctly because the keyboard layout is far from standard. And I still haven't figured out what the button in the lower right corner is supposed to mean! But this evening I got it working. And the code isn't even a big mess (180 lines of codes most of it lookup tables) so I'm quite happy. Would have never expected microcontrollers to be so convenient and flexible. I'm sure this won't be my last project ivolving one. (It was my first, though^^)

The downside is that now that I got it working I know that it isn't exactly what I went to the flea market for: a nice mechanical keyboard fit for every day use. I'll never get used to that layout. And while the caps are beautiful and sturdy typing feels a little weird.
Atar800xl_06.jpg
Atar800xl_06.jpg (184.84 KiB) Viewed 4017 times
So, if anyone reading this wants to trade the McGyver-Atari-Keyboard for some other keyboard (or a set of keycaps for my Ducky Zero) I'm willing to trade! ;)

(Yeah that was a stupid project but I had fun :mrgreen: )

User avatar
Halvar

27 Jan 2015, 02:37

Nice project! :D

http://www.atarimania.com/documents/ata ... -guide.pdf

It might also be a nice case for a raspberry pi running pimame... :ugeek:

http://pimame.org/index.html

User avatar
Muirium
µ

27 Jan 2015, 13:28

You coded it up by yourself? Well done! Usually everyone uses Hasu's or Soarer's.

The way I'd use that bottom right key is as "Fn" so I could hold it to engage a function layer, with arrow keys and such playing double duty on other keys across the board. A short right shift is a godsend, because you can do an HHKB-style function layer:

Image

Mind, if I ever figured out how to code a Teensy directly, I would likely forget all about rollover!

User avatar
seebart
Offtopicthority Instigator

27 Jan 2015, 13:52

fantastic Bitsquid! I love the Atari 800 XL! Much respect!

That Atari 800 layout, magic. ;)

Bitsquid

27 Jan 2015, 14:39

Yay, thanks for the postive comments! :D

My custom "firmware" is really basic. As far as I understand it the Atari keyboard itself wouldn't support multiple non-modifier keypresses at the same time (NKRO) so my programming doesn't deal with complexities like that. Maybe I do the keyboard injustice and it would be possible but there are no diodes and as soon as you press multiple keys current flows back & forth and whole rows in the keyboard matrix appear to be active.

I can post the source when I'm home if you want to have a look. ;)

User avatar
Muirium
µ

27 Jan 2015, 15:19

Yeah, that's a pain. You sure that bottom right corner key is masked by alphas? It looks the ideal bonus mod.

User avatar
bhtooefr

27 Jan 2015, 15:22

It's also worth noting that there are various revisions of the 800XL keyboard, with very different switches. (Mine is one of the oldest (the oldest?) revision, with Alps SKFL (IIRC) switches.)

Bitsquid

02 Feb 2015, 00:36

I've also posted about this project on my blog. The post contains a bit more text and explainations and the full code of the firmware. Consider it open source if you ever come into a situation where it could be useful.

mr_a500

01 Mar 2015, 21:04

bhtooefr wrote: It's also worth noting that there are various revisions of the 800XL keyboard, with very different switches. (Mine is one of the oldest (the oldest?) revision, with Alps SKFL (IIRC) switches.)
I think the oldest version is the AWC with the engraved keycaps (narrow font, outlines) - judging by the pre-release photos, box art, manuals, pamphlets and advertisements.

The ALPS SKFL version is the nicest to type on, but the keycaps seem cheaper quality than other versions.

Post Reply

Return to “Gallery”