LEGO and Controls
The time has come to order and test the question, can we mount arcade controls into LEGO® bricks WITHOUT modifying the bricks? Likely it’s possible, but really what this will tell me is what difficulties I’ll end up potentially facing and if I need to rethink my strategy about the LEGO and controls.
Ordering the Controls
As I mentioned in my Research and Figuring Out Design post, I chose to use the Ultimarc branded solutions. In all, I will be ordering the following equipment:
- 2x I-PAC Ultimate I/O interface boards with 4.8 and 2.8mm switch connectors
- 4x Ultimarc ServoStik joysticks with a red ball top and 4-way to 8-way powered restrictor
- 2x ServoStik Control Boards
- 26x GoldLeaf RGB Illuminated Push buttons
- 1x U-Trak FlushMount Arcade Trackball in pearl translucent with USB connector board
- 1x U-Trak RGB LED Illumination Kit
- 2x 200mm 4-way M-F Wiring Extensions for extra wiring length
- 1x Extension Harness Pack for just in case
For now, I need to test that this equipment will even work for me, so I ordered only just 1 I-PAC Ultimate I/O interface board, 1 ServoStick, 1 ServoStik Control Board, 6 GoldLeaf RGB Push buttons, and the U-Trak FlushMount Arcade Trackball with Illumination Kit.
An eternity later, the box arrives!
I might be more excited than I ought to be, but this was the first physical component of the arcade cabinet! Very anxious to get this box opened and see what’s inside.
Queue the Awkward Elevator Music
As I mentioned earlier, I’m backtracking this blog a little bit, and while writing this now, I just realized that I never actually took photos of the unboxing. So I’ll have to skip that exciting moment (queue elevator music while unboxing commences).
Building the Prototype of the Prototype
Now that I have all of the parts out and I can see what I have to work with, it’s time to quickly build a chassis around the parts. This will hopefully start confirming the ideas that I had on how to attach this hardware to LEGO® brick, or give me new ideas.
The joystick is a little challenging because not only does it have this mechanism at the bottom (as shown in the photo below) that needs to be able to freely rotate in order to lock the device to 4-directional control vs 8-directional movement, but it also has the motor that controls that mechanism and a control board to control the motor. Plus the joystick is fairly hefty. Can I wrap this in LEGO® brick and will the bricks hold together for us gamers who like to really get rough with the controls? We’ll see I suppose!
After digging through a bunch of my old brick, I was able to Frankenstein something together and test it out!
It was really awesome to see this stuff work and play a couple games quickly while resting my hands on top of the torture table, but the stability was severely lacking. The joystick wobbled a lot because the dimensions of the brick and the ServoStik just didn’t line up. And the buttons were easy to push through their holes that were 4 studs by 4 studs wide, while the buttons were larger than 3 studs by 3 studs wide.
The dilemma, each stud is 8mm x 8mm wide, so how do tighten the button holes to 3.5 studs without modifying the brick? Ultimately, this is the dilemma of the entire project. The ServoStik, the trackball, the buttons, they aren’t going to fit perfectly between bricks that a constant size, so I how do customize the size of the brick without modifying the bricks themselves?
Building with 3.1415926 Studs
To build a hole smaller than 4 studs wide but larger than 3 is going to require some fancy brick building. Sadly, I don’t have the extra brick laying around to really try a bunch of different approaches to do this; so, how should I proceed?
I ended up reaching out a local group of LEGO hobbyists, collectors, fanatics, and I got invited to try building some solutions there with their brick. As you can see in the background of the next photo, there is a TON of bricks here!
Challenge 1: The Buttons
The first thing I attempted to work on was building a smaller hole for the buttons to sit in and I started to rely on a technique known as SNOT to accomplish this goal. SNOT stands for Studs Not On Top, for those that don’t know. With the help of another LEGO® enthusiast, I was able to build a really solid space for the button to attach.
The view from the back shows that I was able to use some other bricks with studs on the side that hold the button steady within the hole, so that it doesn’t slide around.
A few bricks later and ta-da! You’re looking at the flipper on left, player-1 side of the arcade cabinet. Note, this is a prototype as I’m using somebody else’s bricks, but this is the first time I’m seeing something more real come together!
Challenge 2: The Curves in the Front
Next, I started working a bit on the curve that I want in the front of the control panel leading over to player 3 and player 4 controls. Curves and angles with LEGO® brick is difficult, and I want the bricks to be interlocking for better stability and durability. So, I toyed around with a few different options to achieve a nice interlocking curve with the other bricks.
Option 1, nice, but not very curvy.
Option 2, better, but a lot of light coming through the spacing, I want something a bit tighter.
Option 3, my favorite, and the one I’m going to move forward with on the design.
Challenge 3: The Joystick
Now for the joystick, how am I going to mount this so that it remains secured and stable?
As you can see in the pictures below, the metal frame around the joystick (not to mention the motor), don’t quite line up where I can just slap bricks around it to hold it tightly in place. The keyword there is tightly.
Again, I consulted with another enthusiast there at the time and together we came up with the idea of building a mini-chassis around the whole joystick assembly. Doing that I was able to get more creative with how I used pieces to fill in the gaps between the metal frame and the bricks to hold the joystick tightly in place so that it didn’t slide around at all.
Simply speaking, I turned the joystick into an enormous LEGO brick that will be able to just “plug” in!
Here’s an underside view to show I was able to synch up the spacings and hold that thing in place.
The prototype everybody!
Yes, there were things left undone here, but I simply ran out of time. What you just saw took me about 9 hours worth of work to figure out. First, I realize that I didn’t build out anything for the buttons on the top of the control panel, but I’ll be covering that ordeal in a future blog post. Secondly, I didn’t include the motor in my prototype design, this was a huge deal at the time I thought and so I left it out for the time being. Third, I never mounted the trackball, again time didn’t allow for it. And lastly, I didn’t mount any of the circuit boards to the chassis. This I’ll cover in a future post as well.
Overall, I was very happy with the progress I made this day, it allowed me the comfort I needed to update the original design and begin ordering parts.
What do you all say we start actually building this thing for real now!