x0x, keyboard one more time
About a month ago, I resumed with the x0x (relaxing summer break <3) only to find myself in a constant keyboard “fault loop”. I would fix one fault just to end up being stuck with another shortly after. As this rather effectively halted further progress, I figured I’ll just toss the current design as “too unstable” and make a new one around switches that will be soldered directly to the mainboard. Changing switches of course impacts the top panel as well, so I have a chance to make the design more compact :)
I still wanted to retain the LEDs within the button frame, so after a while investigating options I chose the Omron B3J series. They are basically the standard 12x12mm switches with a hinged button and a LED added on one end. They’re also available in various colours, (‘piano keyboard’, yay) and have the same pin spacing as the x0x keyboard switches (TL1100 series by E-Switch). So, seemingly a no-brainer in this sense. Any other issues, I figured I’ll just sort them out on the fly.
After receiving a set of B3Js, the first problem I bumped into was their overall height. Because of my double panel structure, the buttons didn’t go anywhere near the surface of the top panel. The idea with the double panel is that all the UI controls which are not installable directly to the mainboard, are mounted to a secondary sub panel. This is fastened to the mainboard and the resulting stack is installed inside the final enclosure, effectively hiding the fastening nuts and bolts (switches, potentiometers etc). Anyway.. To work around the height difference between the top panel and buttons, I made risers under each switch from stacks of PCB pieces. This required also extendeding the feet of all the switches to the x0x mainboard.
Besides helping to level the actuators during installing, the riser stacks also give support to the switch frame. I doubt the plain extended feet could’ve provided continued support when the switch is in use.
A more advanced option working around the problem would’ve been to make a “step”. That is, shape the top panel to an angle so that the part covering the keyboard would move closer to the mainboard than what it is around the potentiometers. This angle could also be a smoother curve if a bit of design would be called for.. Anyway, adding this to the panel sounded too much of a plan requiring CAD, so I chose a leveled top panel and switch riser stacks instead.
The switch LEDs weren’t even close to the pads on the x0x board. The pin configuration was also reversed. To nail both issues at once, I chose to bend the feet extensions to correct orientation. It would’ve been possible to open the switch casing and turn the LED to correct position. But for the sake of clarity, when/if replacing these switches later, the bending method seemed more appropriate as the feet needed to be extended anyway.
This way, the modification is also clearly indicated: Whoever might replace the switches at a later date has, without further documentation required, a visible indicator that the LEDs should be checked for correct orientation and/or “warned” that modification is required.. Besides wondering something like “WTF is this shit?!” :)
Whilst soldering the LEDs, I managed to sweep the soldering iron incautiously and hit one of the white buttons. This left a nice reminder on it:
The switch placement might need slight adjustment, but this is easily accomplished when I have the final enclosure sorted out. The ultimate workaround to these problems created by using a out-of-spec switch would’ve of course been to design the mainboard to use B3Js instead.
Despite the burn mark and all workarounds, I think these B3Js will turn out more stylish than what the original x0x buttons / LEDs are or my initial design would’ve been.