Our inspired idea, using washers which drop into place and are attracted to a magnet embedded in the base of each playing piece (effectively breaking the connection on the pcb) seemed like the perfect solution to requiring super-strong magnets to pull the pieces down onto a custom keypad membrane.
Using our single straight corridor pcb as a base, this time we created a couple of corner sections for the board. Starting with the PCBs, we laser cut a top section from 3mm mdf and mounted the components on the underside.
With the mdf top layer in place, we can simply drop our (8mm diameter) washers into the (9mm diameter) holes. This makes assembling the boards pretty straight forward!
The boards are connected using single-inline (SIL) sockets with pins at right angles to the board. We've reduced the pin count down to 3 (power, ground, data transmit) and duplicated these as a mirror image on the connector. So the connector goes, from pin 1:
The idea behind making each socket mirrored is that board sections can now be rotated, and any board section can be connected to any other board section (a limitation we hadn't solved in our earlier four-pin design)
Strictly speaking, only three of the five pins need to be plugged in, so long as they are 1,2,3 or 3,4,5 (you can, of course, connect 1,2,3,4 or 2,3,4,5 as well as the full set of 1,2,3,4,5 and the boards will still work)
Just for good measure, we made two of these corner sections, so that we could test the connections when either (or both) boards were rotated a number of different ways
With the washers in place, it was time to stick on the top layer and try out the board section(s)!
With the board sections cut to shape, the miniatures looked really good on the corridor sections, and fit in really well with the style of artwork. In this example, we forgot to add in an extra bit along the edges, for the walls, but we'll make sure they are put into the final version!
The playing pieces moved really well on the board sections.
We had to use only the smallest magnet in the base of each piece (using a large magnet caused a number of washers to "jump up" when a piece was picked up and moved around too closely to the playing surface). With the appropriate magnet in place, the pieces automatically settled into the centre of each square - the magnet being attracted to the steel of the washer helps the playing piece to "lock" into each square.
The playing pieces can be picked up (an audible click accompanies this as the washer falls back down) and moved into a new space (which is accompanied by a satisfying clunk and the next washer is pulled up by the magnet) or they can slide from one square to the next. Because of the "auto-centring" effect of the magnet, this is a particularly satisfying way to move the playing pieces.
Everything seemed to be working fine, so we coded up some simple firmware to report the state of each washer/square on the board, so we could monitor the inputs being triggered and released and the pieces moved about the board. And that's where things started to go awry!
It turns out that resting a washer across two parts of a contact doesn't provide enough conductivity - the washer needs to be pushed down to get continuity across the two parts of the contact. This is almost the opposite of our earlier problem: now we don't need to push the playing piece down onto the contacts to register a playing piece, but we need to push the washer down to indicate no playing piece is in place (since the magnet in the playing piece causes the washer to break the contact when it is present).
It may be the conductivity of the steel, or the weight of the washers (we tried replacing the M4 washers with much heavier M5 and M6 bolts during testing, but had a similar problem, and inconsistent triggering) but without actively pushing the washer down onto the contacts, there's still no difference on the microcontroller input, whether a playing piece is present or no.
To prove this theory, we made a simple rig out of vero board and placed a washer on top of some pcb pins. We then put a magnet on the underside of this arrangement, so that the washer was actually being pulled down onto the pcb pins
Even with the washer being pulled onto the pcb pins on the vero board by a magnet, there's no continuity between the two pins
But pressing the washer down onto the pins created the continuity we're after
So it seems that our "drop-washers-in-and-pull-them-up-with-magnets" idea isn't going to work either. Which is a shame - because the action of the miniature playing pieces moving around the board sections felt really nice and responsive.
We're not quite back at square one, but it seems that this thing is going to take a little more thinking about.....