Friday, 18 September 2015

Arcade Button Modifications, Monkey likes Shiny

Illuminated arcade buttons seem to be the popular choice for machine builds of late and for good reason! For my latest arcade machine build I wanted go with a more subdued look with a black and silver grey palette.

Whilst I could have gone with black buttons, I preferred the idea of the machine seemingly coming alive when turned on. Not happy with the supplied single colour LED I decided to investigate a few modification options, one being the use of the WS2812B or Neopixel, addressable through a small micro-controller.

Having only a mounting depth of  60mm, illuminated button selections were limited. Whilst there were some available options with a low profile, they tended to a be clip in panel mount design rather than the screw type, which is a lot more flexible.

The Seimitsu PS-14-KN were an option but the panel depth has a maximum of 9mm also the price was twice as much, plus a custom PCB would also be needed.

I did find and universal adaptor called the Pele Ring but unfortunately these are unobtainable in the UK.

Ultracabs   very kindly sent us some of their  28mm white illuminated arcade buttons for the build.
Although based in the UK, Ultracabs  ship to most countries in the EU and to the USA.


The first part of the article will involve investigating various options to modify the buttons.
Disassembly was relatively straight forward, using a screwdriver push the button top side clip...

I found it easier to separate the two parts of the switch and button by pushing a small thin flat screwdriver between the two mating surfaces and easing them apart.

Here, we can see the two white nylon parts of the switch and button insert assemblies separated.

The whole button top assembly can now be separated with ease.

Inside the housing, we can see the LED PCB featuring 2 surface mount LEDs plus, a single resistor with a value of 470 ohms this, gives these particular buttons a rating for 12v operation at full intensity.

On the rear of the button, we can see the connector contacts for both illumination and the actual switch.  These accept a 2.8mm sub miniature female spade.

Whilst they can be removed by de soldering from the inside of the housing, the risk of melting the
sides is high.

The LED PCB connection tabs are barbed from the underside.

I found the better option was to use some parallel pliers to force the PCB out by pushing the tabs towards the housing.


As an experiment I removed the stock white LEDS and replaced them with RED.

Below we can see the stock white illumination at 5v


One of the great features of these cheap buttons is the fact you can place a button graphic between the two top button assemblies.

Unfortunately I didn't have a 28mm flat bit. Also, the hole cutter I had was eccentric, to watch it rotate in the drill it appeared much like a Hula dancer! The result was a hole size more akin to a 30mm hole saw.To compensate, I used a ring of heat shrink to make up the difference and to keep the button centred.

Monkey likes shiny...

At this point, I decided to take modifications further and attempt to retro fit a WS2812B or Neopixel addressable LED.

If you are not familiar with the more commonly called Neopixels, Neopixel is a term Adafruit uses to describe a mounted  WS2812B in their products.

Think of it as a Red, Green and Blue pixel that you can send a colour code, it will then show that colour spectrum until otherwise instructed.

Each LED has a data in and a data out pin, when a string of pixels are linked in series, any individual LED can be addressed individually, anywhere in the string. 

Another advantage of this flexibility is, the ability to generate animations using just one wire connection. The downsize, is the need for a micro controller to send the colour information and generate any changes.

Lamp Holder...

After some trial and error it became obvious that the internal fitting of the WS2812B LED was not going to be possible, due to size and mechanical restrictions.

At this point, I decided the best option was to make a type of lamp holder design which allowed for mounting the string of LEDS . (The lamp holder was formed from the plastic from a soda/pop bottle.)
The old LED PCB was removed to allow as much light as possible to filter through the housing.

Making the string...

Using ribbon cable ,recycled from old hardrives,  each PCB mounted LED  was connected in series.
The top is 5v, middle data in and out and the bottom ground.

One important consideration is strain relief. Using heat shrink, plus an off cut of ribbon cable, a bridge was formed to support the joints.

 Once the string had been formed, the lamp holder could be attached with hot glue.

Controlling the WS2812B's...

With an already growing number of  PCB's inside the arcade machine and space being at a premium, in my compact build I decided to create a design which would directly connect to the bottom of the joystick. 

The PCB contains the ATtiny84 microcontroller with an Arduino bootloader installed also, the connections for the joystick outputs. Later I would like to also include the Game controller into this design.

Although I could have used an 8 Pin ATtiny85 in this design, I elected to choose the ATtiny84.  My reasoning behind this decision was that, I may wish to use the extra five spare pins in the future, for button sensing to activate various animations.

Here you can see the PCB mounted above the joystick gate plate and screws into the joystick bottom plate.

Who knew that Bruce Lee left a microswitch legacy :)

A quick test with a NeoPixel ring and we are golden...

Installation and results...

 The lamp holder chain can now be installed...

Night Shot...

Daytime Shot...


Stay tuned for the DellCade arcade machine build log!