We’ll check out the hardware involved from the outside-in. An official parts list will be put up here once I’ve started locking in on what components I’m actually going to use.
- The console body will be made mostly of good quality 1/4″ birch plywood, with 1″x 1″ chunks used to provide structural integrity around the joints.
- The faceplate will be composed of semi-opaque white plexiglass, with a printed clear vinyl overlay for the graphics.
- The whole body may be covered in plastic textured laminate to give it that professional molded look.
A very simple design, they are cheaper versions of the controls you’ll see in an arcade cabinet game. Though they come in different colors, I will have all of mine as white, because of another feature I’m planning. You see those bulbs in white collars in the triangle button photo? Those are LEDs. Now, the distributor will put in simple white LEDs, or maybe even colored ones that match the button cap’s color. I say why not have more flexibility?
So I got these:
Yes, it’s an LED, but it’s not one of those common everyday LEDs. This is a WS2812 in a 5050 (5mm) form factor. To many, that’s just gibberish, but for electronics nerds like myself, it’s pure sexiness in an itty-bitty package.
This is a RGB LED, meaning it can display almost any color you wish, but more importantly, it is addressable. What that means is that when you have a long chain of them, you can program the controller to address individual lights and do things with them, regardless of where they are in the hookup chain. If you have 1,000 of these, you can arbitrarily make bulb #233 turn turquoise and flash or fade or whatever.
These will go into the arcade buttons, allowing my normally bleh white caps to take on any (or even no) color, as needed.
However, the buttons won’t be the only source of light! The faceplate of the control panel will also have some lighting effects as well.
Ignore the square holes, if you would. First, those will actually be round. I cheated a bit with the Sketchup model for the sake of demonstration here.
The semi-translucent white plastic sheet will form the top plate of the console and provide a mounting point for the buttons. The “interface” design will be applied with clear vinyl sheets that have the design printed with a laser printer. The colored lines in this image will actually be left untouched by the printer, presenting a clear window through which the player will see the white faceplate underneath, which will in turn be colored by the strip lights. Speaking of which…
This is a close-up of the strips I intend to be using for the backlights. Nothing incredibly special about these, you’ve probably run across them on your jaunts through eBay or Amazon. And to run them…
I have an Arduino Leonardo on the way, but I’m already doubting if it will be up to the task of running all of these lights, on top of handling code to watch the buttons and memorize their states, in addition to watching for triggers coming back from the PC to notify about game-issued events. The real problem here is the limited storage space the available for “sketches”, which is another word for a program.
I’ll know more for certain once the board arrives, but in the meantime, to hedge my bets and ensure I have a good fallback plan (or in this case leap-forward plan), I’m watching the Teensy 3.2.
With tons of program storage and an even faster processor, this little guy could easily do everything I’m planning to ask. Why bother with the Arduino then? Well, as I was starting the planning stage, I knew that these boards were the most flexible Arduino boards capable of acting like a HID, or Human Input Device (keyboard, mouse, joystick) for the connected computer. Since I’m planning to have the CommandrStation issuing signals that the computer will interpret as keyboard typing, this is a critical feature. I didn’t realize I could very well be asking a bit too much of the Leonardo until after I’d ordered one and did some more in-depth research into the code required to do the things I wanted the console to do.
No biggie. One can never have too many Arduinos laying around the place, right?