A Tale of Two Tails
It has been a few months since I last wrote a piece on the “Making of the Next”.
On June 23rd, Kickstarter update #48 was published and it revealed a significant change in direction for the keyboard membrane. Since work began on the membrane many moons ago, it has been through a number of iterations. From its original Spectrum 48K+ ideal, that three layer membrane, through the split contacts (several variations on this) and now the expanding of the flex tail paths.
We were locked into a singular approach without any concern at the time. Why would a three layer membrane be problematic? It had been done before and we’re 30+ years on from those original designs. We have modern methods and modern materials, what could go wrong?
As you will know from previous updates, the pressure required to activate all three layers was deemed too significant to make for a decent typing experience. Things were thinned out and a new three layer membrane was created that was as thin as things could go.
From our keyboard partner…
- Active force for the membrane (without scissor and keycap): >200g force
- Active force for the membrane (with scissor and keycap): >200g force
- Our general force (active force) is about 45g-50g force, 200g force to activate the key signal is too high and results in hard to press key caps due to the pressure required. This is all due to the 3 layer Membrane.
Still it required too much pressure to activate the contacts and as such the thinking turned towards a dual layer membrane.
The difference with this approach was the addition of split contacts in one of the layers. Each split contact would be two hemispheres and the plan was that the key hammer would contact the rubber dome which would then contact both layers, activating the single contact and both split contacts simultaneously, or at least within a very tight threshold which could be compensated for in the firmware (a few ms perhaps).
These composite keys as they were termed were like ordinary keys, but with the addition of an extra key, Shift. Shift would be on the left hemisphere and would ideally be activated first if there was to be any possible case of asynchronicity between the two split contacts. Biasing the shift could take many forms, either a slightly raised contact on its hemisphere, adjustment to the hammer angle (slightly offset angle of attack to favour the shift), or in the firmware, registering a keypress and waiting to see if a shift is recorded. Of course too much of a wait would affect the overall experience with the machine.
At the time, the refining of this approach was what we felt to be our best way forwards and with some more work and a number of iterations of the design, we believed that the labour would bear the required fruit. Whilst Kickstarter updates tend to focus on the way forwards, there is a lot of other work that goes on, other angles which are evaluated and considered.
I’ll give a few examples.
A keyboard controller between the standard membrane and the motherboard. The standard membrane signals would be converted by the controller to the key matrix requirement and will require power from the motherboard.
We know you specify that you want an 8 pin connector and a 5 pin connector, but is there any way at all that the 5pin connector could be an 8pin connector instead? If this was at all possible we could then use a 2 layer membrane instead of a 3.
Of course these ideas were always located in the recesses of our minds, and in hindsight perhaps we did not refocus quickly enough. The problem with the split contact membrane was the lengthy turn around in creating prototypes. It could take 2-3 weeks to produce a single iteration, which is then tested in China, then shipped over to the UK for more detailed testing. Ten iterations and you have lost 6 months and what do you have to show for it? Because we both (ourselves and our keyboard partners) believed the split contact set up could be made to work, it was beaten again and again.
The shiny Issue 2B boards had been now been manufactured and were sitting in racks at SMS. We were highly averse to even contemplate changing our approach to something that may necessitate a board tweak and possible a case tweak. Potentially a very costly exercise, and as the board had not been designed for this approach, we needed to avoid something that looked ill conceived or for lack of a better word, crap.
The constant failure of the split contact membranes in all of its forms was taking its toll though, the general mood of the team was fairly sombre and drastic ideas had to be explored. So in Facebook land, in a keyboard chat group far far way, the idea of extra paths was floated once more. This time I decided to approach Henrique with the high level steps required to implement an additional two paths on the keyboard matrix.
The plan looked valid and there is a certain degree of fluke that makes it possible with what I would term minimal disruption to the board and zero disruption to the case. More on that later.
J15 (Next GPIO) was sitting there, unpopulated, and it just happened to have three spare pins which were unassigned. The positioning of these spare pins meant that we could select either a North/South orientation or an East/West in terms of a new connector. The final choice would be determined by the most optimal route for the new two way flex tail connector and its approach direction to J15.
18th June 2019 – Henrique agrees for me to approach SMS, our keyboard partner and industrial designer to discuss the feasibility of the proposal and the associated costs.
19th June 2019 – One meeting with SMS and one with our industrial designer Phil Candy. Cost estimates were provided by SMS to be followed up with actuals. The connector type was discussed and a two way flex tail connector was selected. SMS determined that the connector would be soldered at Next assembly time. Phil was to investigate the routing of the new flex tail connector and ensure that there were no case clearance issues.
Another meeting this time with our keyboard partner to describe the proposal and to get them thinking about the new membrane design requirements. This involved ensuring that the extra 16 key functions were all presented on the two new paths in order that a single Next core would be compatible with both 8+5 and 8+7 keyboard arrangements. Also how the new flex tail could be routed out of the membrane to minimise any changes to the case. It was described to them thusly (thanks to Allen Albright).
The keyboard membrane is connected to the 2B board via two separate ribbons, one with 8 conductors (the “rows”) and one with 5 (the “columns”). The 5-conductor columns are connected to J1. The plan is to replace this with a 7-conductor column with 2 of those columns split from the 5 which would still connect to J1. The two conductors split off would have a connector to the GPIO J15.
J15 has three signals routed from the FPGA that are unused (M15, M16, N16). Two of these can be taken by the two extra columns.
So the solution will involve adding a 2-conductor connector to the 5-wide column conductor coming from the membrane, running a connection from that 2-conductor to J15 where they would be connected to two pins on GPIO J15. The FPGA core will scan the new 8 x 7 matrix and simulate multiple keypresses for the extra 16 keys in its internal representation of the 8 x 5 matrix presented to the software.
The Next GPIO (J15) highlighted with J5 (8-wide row keyboard connector) to its left
M16 – Pin 4 N16 – Pin 5 M15 – Pin 17
Image of board to show required connector placement.
20th June 2019 – A proposed matrix assignment for these two new paths was sent to our keyboard partner for review.
– bit 6 bit 5
– row 0 BREAK EDIT
– row 1 DELETE TRUE VIDEO
– row 2 INV VIDEO CAPS LOCK
– row 3 GRAPH EXTEND MODE
– row 4 ; “
– row 5 , .
– row 6 UP DOWN
– row 7 LEFT RIGHT
And matrix designs bounced back to us.
Their initial preference was to have three distinct flex tails (5, 8 and 2) going straight out the back of the matrix. This however would require an extension to the 8 way flex tail slot located on the case itself. They also confirmed that the additional 16 functions could be made to operate exclusively on the two new flex tail paths. This was important for compatibility as I mentioned before. A single Next core with a single keyboard scanning routine which could operate on a developer board with an 8×5 arrangement, or on a cased Next with an 8×7 arrangement. This would leave the matrix representing the original Spectrum 40 key arrangement completely intact in its functionality. On a developer board, the two extra pins on J15 are not populated and so no signals would ever be sent over them (admittedly there is some DIY potential there for those good with a soldering iron).
The low tech approach to start with. Sticking some bits together to get a feel for things.
I just want to mention that at this point in the proceedings, I sensed a huge surge of positivity coming from our keyboard partner. We had all felt mired in a seemingly endless process of revision, failure and bin. Things were now moving more quickly than ever. Ideas were flowing.
24th June 2019 – Reduce the pitch of the of the 8 tracks when it exits the membrane and reinstate it when it approaches the flex tail connector. This approach is aiming towards the avoidance of changes to the case slot width.
Then there is the requirement to shift the additional flex tail to the right to line it up with the required part of J15.
A rough drawing then followed.
Industrial design is an exact science most of the time. When modelling a flex tail connector though, it can be difficult at the CAD stage to reflect accurately the composition of the material, and its geometry in terms of the bend, flex and tension and how it is affected by case elements such as the upper case, or bosses or indeed high sitting components on the board.
In order to give a better feel in the real world, more low tech approaches are used.
This helps to inform the design process. It will behave similarly and will also indicate how this dual flex tail connector would have to be manipulated for it to pass through the case slot. If too much manipulation is required then there is risk that constant insertion and removal may damage the connector. We’re mimicking here though, it is not meant to be 100% representative example of a real world flex tail connector.
25th June 2019 – A new approach to the membrane design emerges. The 8 pin membrane layer is at the top and the 5 + 2 layer is at the bottom. The 8 pin flex tail connector can be maintained at its current dimensions and the new two pin flex tail connector can sit directly below it. This means that there is no requirement to make adjustments to the case.
The proposed matrix arrangement is then sent to us for final validation.
26th June 2019 – The updated matrix is approved and confirmation sent back. Not long after, we receive an updated membrane design for the 5 + 2 layer.
28th June 2019 – In order that the new flex tail can be presented to the new connector accurately, it is necessary to provide exact measurements for the new pin locations. This is where I learned another thing about Industrial Design. Asking if a designer can just simply measure the position of the pins using a physical Issue 2B board was met with a brief silence. Perhaps a few expletives. This is not how they work.
Long ago, a diagram was produced which showed the precise delta measurements from origin for the major components. This of course factored in the locations of the 8 way and 5 way flex tail connectors but not the location of the required pins on J15. It was back to the Gerber files and a quick bit of measuring with Cuprum on my Mac to identify the new locations deltas.
Passing this data back allowed precise calculations for the flex tail geometry, and also for the case CAD, it enabled the marrying up of both flex tail and case structure in order to determine any issues with routing in the CAD world. Once these numbers were digested, we received something back from Phil which constituted a design.
This design was quickly fired off to China to be made. We hope to see this new prototype membrane shipping from the Far East around the middle of this month. Actually there are two membranes. One for functional testing and one for the Industrial Design process. What if all goes well, how long does it take to make some actual keyboards?
Things tend to happen in phases. Phase 1 is normally a limited run to get confidence. Phase 2 is the full blown 3000 units. Still, I feel we’re in a massively better position than we were a few weeks ago.
Thanks for reading!
Special thanks to Allen, Garry, Phoebus, Jim and Henrique. Thanks to all of the team currently working on the Next who are such a pleasure to work with. Dedicated, passionate and they rarely ever complain!
Disclaimer, some sequences shortened, some steps removed, some ideas and directions not included in this text. All images are the property of SpecNext Ltd.
This blog exists in the hope that people get enjoyment out of reading about the journey of the Next. It is not a replacement for Kickstarter updates but as a backer myself, I know that if I were not in the position I’m in, that I would want to know all this stuff. I enjoy writing this up, it is meant to be fun. I do not always check for typo’s or grammar. My fingers move faster than my brain does sometimes. Cheers!
This is great stuff, Mike. I understood pretty much all of it. Fascinating to see all the tiny details that go into making something like this. The Next is going to be quite the computer.