Hope it Really Works, LEGO and Controls

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:

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!

Photo of DHL box with arcade controls inside
First delivery of arcade controls arrive

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!

Photo showing a closeup of the mechanism that locks the joystick in 4-directional or 8-directional movement at the bottom of the joystick
Bottom of the joystick, I’ll need to make sure that LEGO brick doesn’t interfere with this mechanism

Look. Pretty.

After digging through a bunch of my old brick, I was able to Frankenstein something together and test it out!

Photo of LEGO and controls wrapped in a pish-posh of LEGO brick, functional, and RGB buttons lit up in red.
Fully functional, RGB buttons lit up in red, but not very sturdy … but enough for me to continue
Photo of LEGO and controls wrapped in a pish-posh of LEGO brick, functional, and RGB buttons lit up in white.
Another view with the RGB buttons lit up in white.

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!

Photo of a table with a few LEGO plates sitting on it and in the background, large buckets of brick, everywhere.
Lots of brick!

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.

Photo showing button cradled between LEGO bricks.
It’s REALLY tight, but that’s a good thing right?

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.

Photo showing the button being cradled from the back of the bricks.
Back view, see how the studs stick out on those yellow pieces, that should help hold the button in place better

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!

Photo of the button placed within a chassis
The left flipper ladies and gentlemen

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.

Photo of brick design 1, ridged and blocky
Very ridged and blocky

Option 2, better, but a lot of light coming through the spacing, I want something a bit tighter.

Photo of brick design 2, curvy, but lots of spacing between bricks
So much space between those bricks

Option 3, my favorite, and the one I’m going to move forward with on the design.

Photo of brick design 3, curved, but space tightened up.
Small gaps, nice curve, will proceed with this 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.

Photo showing side view of the joystick resting on top of the internal control panel structure.
You can see the metal plate overlapping a bit with the studs
Photo showing top-down view of the joystick resting on top of the internal control panel structure.
A better, top-down, view of how the plate overlaps with the studs

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!

Photo showing the joystick wrapped with LEGO brick
I present to you the joystick brick

Here’s an underside view to show I was able to synch up the spacings and hold that thing in place.

Photo showing the underside of the joystick wrapped in LEGO brick.
Underbelly of the joystick assembly

The prototype everybody!

Photo showing the prototype of the control panel with the button and joystick installed.
The prototype

Finished Prototype

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!