News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

6128 compatible, mechanical keyboard with n-key rollover (KCC plus)

Started by Benedikt, 20:36, 13 May 24

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Benedikt

This is a spin-off topic for the KCC plus' keyboard assembly. See also the main thread for the KCC plus.

What is it?

A mechanical keyboard design with MX switches, diodes for n-key rollover and a form factor that is (largely) CPC6128 compatible.
It is meant to be used with modern XDA keycaps.

What is it for?

It is primarily intended for the (still hypothetical) KCC plus, but also fits in a CPC6128 and (presumably) a 6128 Plus.

Shortcomings for CPC users

If you want to use it in a CPC, you either have to solder wires to the system board or use tiny adapter PCBs.
The PCB also has to be 1.6 mm thick for stability reasons, while the CPC6128's keyboard's sheet metal frame is only 1.0 mm thick.
You therefore have to either live with a 0.6 mm gap or remove 0.6 mm of material either from the two mounting posts in the lower case shell or from matching areas on the back side of the keyboard PCB.

Pictures or it didn't happen! / How do I get one?

All design files are on GitHub. Pictures of the complete keyboard assembly can be found in the relevant section of the README document.

eto

I really love that. I have actually no idea how/where to order keys and switches.

What do I need to consider when ordering those? 

Do you have a recommendation/example of what works well?

Bryce

If similar switches can still be found, the best ones I know of, where the ones used on the BBC Master and Acorn. They can fail when there's a lot of dirt build-up, but they are extremely easy to fix and beating on them doesn't damage the mechanical parts or switching surfaces.

Bryce.

Benedikt

Quote from: eto on 09:15, 14 May 24I really love that. I have actually no idea how/where to order keys and switches.

What do I need to consider when ordering those?

Do you have a recommendation/example of what works well?
Key switches

The PCB design is compatible with arbitrary full-size Cherry MX or compatible key switches.
The 5-pin variant with its pair of alignment pins is preferred over the 3-pin variant, because this keyboard has a PCB-only design without mounting plate for the switches.

I have empirically determined that 3-pin switches work, too, but I have also empirically determined that keeping them aligned for soldering is a bit of a pain.
My reason for using the 3-pin variant was that I had already ordered a bag of switches before I settled on the plate-less design.

The Cherry switches' characteristics are typically color coded.
My personal recommendation is MX Brown, because they are tactile, but quiet, i.e. not deliberately noisy like the "clicky" MX Blue switches.
The linear MX Red switches are also quiet, but haptically not quite as much of an upgrade compared to the original 6128 keyboard.

Considering our use case, I figured that original Cherry switches would be a waste of money and ordered generic brand MX Brown switches by Outemu instead.
Other alternatives are e.g. Gateron or Kailh.

Keycap sets

You need keycaps with a profile that is the same for every row of keys, e.g the XDA profile, because the keycaps have to be rearranged a bit.
You also need both, the ISO and the ANSI "enter" key and two 1.5U wide keys, e.g. "command" keys, for the bottom row.

I picked a universal ANSI+ISO XDA keycap set for contemporary English Apple keyboards.
The included 142 or 144 keycaps are a bit excessive, considering that we only need 76, but it is still way cheaper than a bespoke keycap set.
This type of keycap set is apparently available for contemporary English, German, Spanish and French keyboard layouts, which gives us additional flexibility.

This is a list of matching AliExpress offerings by various sellers (May, 2024):


P.S.: You also need 75 diodes (I used cheap 1N 4448 diodes), the angled 2x10 pin header and a set of stabilizers for the wide keys.

Bread80

I find the idea of rearranging the layout to use standard keycaps ingenious. I take it the ROM will also need updating to reflect the layout (if I'm not mistaken the lookup table is in RAM, so should also be run-time patchable, eg. via a sideways ROM).

When you talk about adapter boards is that just the boards to go into the ribbon cable sockets? Ie. other than that the pinout it the same? If so I'm due to design up such a board shortly for my own use. The keyboard end would be able to use a standard IDC ribbon cable connector.

Benedikt

Yes. The adapter PCBs are just for the ribbon cable sockets. You can ask @eto for a PCB design that is already half-suitable.
However, I found out that a pair of flat cables with 2.54 mm pitch is not flexible enough and ends up being too thick.
You might be able to make it work with a single flat cable with 1.27 mm pitch, but the column lines are rotated 180° compared to the row lines.
The pinout on the keyboard side is the one that makes the most sense for the system board I eventually want to build.

Ideally, just use a bunch of wire-wrap wires, solder the adapter PCBs to one end and crimp the connector to the other.
The row and column lines are labeled next to the pin header on the keyboard assembly.

And yes, the firmware has to be (made) aware of the keyboard layout.

eto

The adapter PCBs will fit into the keyboard connector of the CPC. I made them when I wanted to make a keyboard extension. For this project a modified version needs to be done that has only a single row.

Fessor

Nice, but why the big backspace key? The keycaps should have some in order to be able to keep the CLR and DEL keys from the CPC. It would also be advisable to use UK ISO instead of US ISO so that the @, " and pound symbols remain in the correct places. Cherry profile keycaps aren't a problem as long as you don't mind the fact that the f4-f9 differ slightly in height from the top two rows of keys. For my keyboard, I went the route with plate-mounted switches.

You cannot view this attachment.

Bryce

Quote from: Fessor on 09:02, 15 May 24Nice, but why the big backspace key? The keycaps should have some in order to be able to keep the CLR and DEL keys from the CPC. It would also be advisable to use UK ISO instead of US ISO so that the @, " and pound symbols remain in the correct places. Cherry profile keycaps aren't a problem as long as you don't mind the fact that the f4-f9 differ slightly in height from the top two rows of keys. For my keyboard, I went the route with plate-mounted switches.

You cannot view this attachment.

I like your backplate, but it's probably a bit too flexible to survive long? I'm sure that could be stamped in light steel for a reasonable price.

Bryce. 

andycadley


Quote from: Benedikt on 18:43, 14 May 24And yes, the firmware has to be (made) aware of the keyboard layout.

The one problem I'd forsee with that is that very little software uses the firmware routines. It might be alright as long as all the "major" keys still end up with the same underlying key numbers.

Fessor

Quote from: Bryce on 09:29, 15 May 24I like your backplate, but it's probably a bit too flexible to survive long? I'm sure that could be stamped in light steel for a reasonable price.

Bryce. 

Surprisingly little for a keyboard of this length; I specifically took the dimensions off the original keyboard in order to have as much material as possible in the frame so that it doesn't become too flexible. All DIY sites recommend that keyboards should have a little flexibility, otherwise the keystrokes would be too "hard" and could put strain on the ligaments.

Bryce

Yes, but you seem to have used some sort of thin compressed paper or wood (Pressholzplatte), so the stiffness will most likely degrade over time, especially in humid conditions. That's why sheet metal or even a resin board may be better over time.

Bryce.

Fessor

Must be the reflection of the Desk. Its 1,5mm Aluminum.

Benedikt

Quote from: Fessor on 09:02, 15 May 24Nice, but why the big backspace key? The keycaps should have some in order to be able to keep the CLR and DEL keys from the CPC. It would also be advisable to use UK ISO instead of US ISO so that the @, " and pound symbols remain in the correct places. Cherry profile keycaps aren't a problem as long as you don't mind the fact that the f4-f9 differ slightly in height from the top two rows of keys. For my keyboard, I went the route with plate-mounted switches.
I had no intention to copy the CPC's narrow backspace key. In my opinion, the tiny backspace keys on keyboards of the late 1970s and early 1980s were a relic from the era of electric typewriters, on which you really did not want to use the backspace key.
On a computer keyboard, where the backspace key is substantially more useful, making it bigger makes it more ergonomic.
Even the KC compact's backspace key was 1.5U wide.

The layout I based mine on actually is a British ISO layout, but the variant used by Apple machines, which apparently sell well enough without Pound key.
Other than that, a Pound key is actually nothing I ever had or ever missed in my life.

When it comes to plate-mounted vs. PCB-mounted, I can now say that the variant with PCB-mounted switches is definitely solid enough, even with 3-pin switches.
It also makes the whole design more accessible, and of course more affordable.

Quote from: andycadley on 09:37, 15 May 24
Quote from: Benedikt on 18:43, 14 May 24And yes, the firmware has to be (made) aware of the keyboard layout.

The one problem I'd forsee with that is that very little software uses the firmware routines. It might be alright as long as all the "major" keys still end up with the same underlying key numbers.
All alphanumeric glyphs and about a dozen special characters are in the exact same spot as on an English CPC keyboard.
However, I would say that any piece of software that cares about the glyph on a key in any way, has to use the firmware routines or at least its tables.
Otherwise, it is broken and always has been, considering that Amstrad's own machines came with English, French, Spanish and Danish keyboards.

PulkoMandy

For the connector, I was thinking of using flexible PCB, something like this: https://oliver.st/blog/flexible-pcb-connections/

Not sure if there is a place where these can be ordered at a reasonable price (maybe with a large order, it's possible).

Benedikt

Quote from: PulkoMandy on 13:05, 17 May 24For the connector, I was thinking of using flexible PCB, something like this: https://oliver.st/blog/flexible-pcb-connections/

Not sure if there is a place where these can be ordered at a reasonable price (maybe with a large order, it's possible).
I see no good reason to take that route. The solution with rigid 0.4 mm adapter PCBs and a bunch of wires is much cheaper and at the same time hard to break and easy to fix.
You could also try to find an off-the-shelf Flat-Flex cable. They are usually metric, but a 20 conductor cable with 1.25 mm pitch might fit just well enough.

Ultimately, I am going to use flat cable and normal IDC connectors for my own system board, which is why the keyboard has the pin header for an IDC cable.

Powered by SMFPacks Menu Editor Mod