Jump to content
IGNORED

New Member - Is there a replacement for stackpole-style 800 keyboards?


Krenath

Recommended Posts

That looks great!  Clever of you to include the XL/XE Help key, as well as the 1200XL's Function key.

 

There was a post a while back about someone's experiments with using a laser engraver to fuse toner onto key caps.  They had pretty good results, but that was with black toner on light keys.  White toner does exist, though.

  • Thanks 1
Link to comment
Share on other sites

On 2/7/2021 at 9:36 AM, StickJock said:

That looks great!  Clever of you to include the XL/XE Help key, as well as the 1200XL's Function key.

 

There was a post a while back about someone's experiments with using a laser engraver to fuse toner onto key caps.  They had pretty good results, but that was with black toner on light keys.  White toner does exist, though.

 Thanks!  It seems that finding a 9-key-wide spacebar for a Cherry-style keyboard is impossible these days.  SO I figured I'd try to size it down a bit and use the additional space to sneak in additional keys.  This means I have to source a 4-key-wide spacebar, but that's not nearly as difficult to find.  And it's not any less comfortable to type on.  Most people seem to use their right thumb to hit somewhere below the B, N, or M keys, it seems, so anything much wider is a waste and requires extra hardware to keep the spacebar level when being pressed.

My brother has a GlowForge laser in his workshop.  I'm going to see if he can set it up to be able to do the engraving for me.  Rather than printing color on the surface, I may see if we can etch it deep enough to fill with light-colored epoxy.


I figure we can use some scrap acrylic he has laying about to make a precise holder for individual keys, then we can slot them all into the holder and engrave them once we have all the details dialed in. 

 

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

 Been a while since I posted about this, but I decided to take a second of my keyboard PCBs and solder it up.  This time with diodes.

The first keyboard, I installed jumpers in each of the diode positions because a stock Atari keyboard doesn't use diodes. 

Everything worked perfectly normally, and the Help and F1 through F4 keys were easily detected when the machine was booted up in XL/XE mode in Incognito.  

The only strange thing was that Ctrl+F2 seems to lock up the machine in XL/XE mode but not in A800 mode.

This second keyboard with the diodes in it has some interesting benefits:

If you look up information on the Atari keyboard matrix (such as from here: https://www.atariarchives.org/c3ba/page004.php), you'll be told that 16 control-shift-key combinations cannot be detected.  The following keys share row lines with either control or shift and if you're holding both control AND shift, cause connections in the key matrix that the 4051 chips can't figure out: 
J K L ; + * Z X C V B F1 F2 F3 F4 Help

Not only that, but there are some combinations you can hit that will be misinterpreted as other keys.  For example, Ctrl+L+9 is misread as the Break key.

With the diodes installed instead of jumpers in my second keyboard, ALL possible keycodes can be detected.  Even the ones that were previously not working.  You could write a program that used Ctrl+Shift+L and nothing at all would conflict with it because no preexisting software could possibly have expected it.

The diodes also stop the false key detection (something often called 'ghosting' in modern keyboards).  The diodes prevent current from going the wrong way and being detected as a different key when you hold three or more keys down.  Ctrl

There's also nothing stopping anyone from adding additional keys for the keycodes that currently do not exist.  They can be detected by software that knows to check for it, and there are 6 slots in the key matrix for unused keys.  With control and shift combinations, that makes another 24 functions that could be added to a keyboard.  Not to mention you can use Ctrl+Shift+Help and Ctrl+Shift+F1 through Ctrl+Shift+F4 now.

Once you have a diode-equipped keyboard, all you need to do to test that itr can detect the new keys and key combinations is write a small basic program like:

10 PRINT PEEK(764) : GOTO 10

 

And you'll be able to see the value change for the new keys on a modified keyboard where it won't on an unmodified 400/800/XL/XE.

It does make me wonder exactly what Ctrl-F2 is doing to XL/XEs though...

Edit: This pdf (http://mixinc.net/atari/books/XL-OS_Full_Searchable.pdf) says "CTRL-F2 controls the Screen Enable/Disable Direct Memory Access (DMA). It produces no ATASCII code. This key combination affects the operating system handling at the display function This key combination is not reassignable."

Edited by Krenath
  • Like 2
Link to comment
Share on other sites

um the shift control letter and numbers sequences are used by MyIDE, MyBIOS, AVG carts and the like... it may depend on the OS you use and whatever keyboard you're into using. Using the diodes erstwhile may be changing resistance and voltage levels as well and may have brought you're circuits into the proper levels so you can see the combinations... so if you your diodes give that functionality back I'd say it's a winner.

Edited by _The Doctor__
Link to comment
Share on other sites

1 hour ago, _The Doctor__ said:

it may depend on the OS you use and whatever keyboard you're into using. Using the diodes erstwhile may be changing resistance and voltage levels as well and may have brought you're circuits into the proper levels so you can see the combinations... so if you your diodes give that functionality back I'd say it's a winner.

Many of the shift control letter and number combinations do work, but a small number of them, the ones I listed above, do not.  The only way they'd be detectable would be with an aftermarket keyboard.  Something like a TK-II or other PC-to-Atari adapter might be able to send those codes.  Because the PC keyboards have the diodes in them by default.

It's not so much voltage levels, but the voltage path through the keyboard matrix while the 4051 chips are trying to decode the key matrix.  The diodes just stop current from flowing the wrong way through cross-connections cause by holding down multiple keys.

In doing so, it stops the 4051s from being confused by multiple keypresses, allows some of the key combinations the 4051s are capable of detecting but the keyboard hardware was previously incapable of sending, and stops 'ghost' keypresses like Ctrl+L+9 from being misread as other keys like Break.

atari800xl_kbd_matrix.png.5f8df3a238a9f3b916f6e995314bf1c6.png

For those that aren't following along, (Not @_The Doctor__ I know he gets it.  But someone else may want to know about this later) holding Ctrl+L+9 connects pins 1, 5, 9, and 13 all together.  The system sees that pin 1 is (indirectly) connected to pin 9 through the green and red path and decided the Break key was pressed.

Pseudocode for what the key matrix polling does:

for row = 1 to 8
  enable row pin
  for col = 10 to 17 // 9 is a special case connected to the POKEY chip directly.
    enable col pin
    is row connected to col?
       //register a keypress.
    disable col pin
  next col
  disable row pin
next row

(there are more things that key polling does, like once it sees a valid keypress, waiting for the key to be released, but that's not important right now)

With diodes in place, current could not flow along the red line because it cannot flow backwards through the diodes in the Ctrl and L keys there, so it cannot detect the ghost Break key.  Instead, it can tell which of Ctrl or L or 9 was pressed first and react correctly, ignoring the extra key(s). 

Pin 1 is connected to pin 13 so we could detect a 9 key.
Pin 5 is connected to pin 9 so we could detect a Ctrl key (well, POKEY could)
Pin 5 is connected to pin 13 so we could detect an L key.
But pin 1 is not connected to pin 9, so we can't accidentally detect a Break key
 

Edited by Krenath
Link to comment
Share on other sites

  • 2 weeks later...

Multifarious, Nice work! looks great in the machine.  I have a couple of questions:

 

A- Krenath's experiments seemed to favor using diodes even though they are not on the original 800 system.  What do you think?  also I'm a bit of a newb to things electronic, but looking at the Cherry MX datasheets it seems to me the switches can be had with diodes internal to the switch? true?

https://www.cherrymx.de/_Resources/Persistent/1e6d4479ea3c692473ae8dd3f0b825bd568ecadb/EN_CHERRY_MX_CLEAR.pdf

 

B- I noticed some of the adapters you made for the 2U and 1.5U keycaps seem to be offset?  couldn't you move the switch on the pcb instead to keep the keycap centered on the switch? 

 

C- how did the overall finished height of the keyboard assembly compare to the original keyboard?  I thought i might have to cut about .200" off the keycap stems.

 

D- what software did you use to layout the PCB?  See newb here...

 

E- what do you think about mounting the switches to a plate to keep things sturdy?  is that needed?

 

Thanks,

 Sorry if these are newb q's

 

Bob

Link to comment
Share on other sites

8 minutes ago, Bob Langelius said:

it seems to me the switches can be had with diodes internal to the switch? true?

I wish I had noticed that beforehand.  It would have saved me a good pit of soldering.  But it did let me test with and without diodes.  Both seem to work fine for normal usage.  It is, however, fun to write code that can detect keycodes that everything else says can't be detected.
 

Quote

C- how did the overall finished height of the keyboard assembly compare to the original keyboard?  I thought i might have to cut about .200" off the keycap stems.

I'm thinking about creating a new board layout where everything is mounted on a backplate with standoffs so the height of the keys can be adjusted.  Soldering the switches directly to the same board as is screwed to the case doesn't leave a lot of room for adjustment. 

 

Quote

D- what software did you use to layout the PCB?  See newb here...

 

I used EasyEDA after watching some tutorials from a youtube channel by a guy named Ruthsarian.  
 

Quote

E- what do you think about mounting the switches to a plate to keep things sturdy?  is that needed?

I'm beginning to think it's required.  the PCB alone wiggles quite a lot.  There needs to be a strong support to keep the center of the keyboard from flexing and there really ought to be a place to snap the switches into to keep them aligned properly.  I was thinking of a triple layer of switch mounting plate, PCB, then support plate, but with some creative metalwork, it might be possible to use the mounting plate for the switches as the backplate and give it mounting ears to screw into the Atari case.

Edited by Krenath
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...