Introduction: Arcade1Up Mod With LED Marquee and Sub-Displays

About: Al is a wearable tech entrepreneur and creator of a line of smart phone controlled LED handbags http://catclutch.com With 22 years of experience in the IT industry, Al is currently Senior Director of Inform…

****April 2020 Update // Software support added for virtual pinball, more at http://pixelcade.org ****

An Arcade1Up arcade cabinet modded with an LED marquee and additional smaller, sub-displays that show game information like game title, year, manufacturer, genre, and rating.

Parts

Arcade1Up Mortal Kombat Cabinet Amazon or Arcade1Up Mortal Kombat at Walmart

Pixelcade LED Marquee Kit for Arcade1Up

Pixelcade Sub-Display Kit (Includes Seeeduino, 1 Mini-OLED, 1 Max7219 Dot Matrix, and 1 Max7219 7Segment all with soldered vertical headers)

Dell OptiPlex 9020 Small Form Factor Computer (Refurbished)

LED Buttons, Joysticks, 2 USB Encoders, & Cables

LCD Controller Board (Adds HDMI to Arcade1Up Monitor)

Ultimarc Spinner with USB

4 TB SATA Internal Hard Drive

IoT Relay Power Strip

Display Port to HDMI Cable

7 Port Powered USB Hub (a non-powered USB hub will not work)

LogiTech K400 Wireless Keyboard and Mouse

Wireless Network Card (Wi-Fi)

Finish Washers

Kintel MA170 12V Audio Amp

Double Sided Tape

Pixelcade Software - Free

LEDBlinky Software - $25

Misc Hardware (Various Sized M2 and M3 screws)

Optional

1 1/8" Drill Bit to Drill Arcade Button Holes

DISCLAIMER: I am the creator and sell the Pixelcade LED marquee http://pixelcade.org. Some of the above product links are affiliate links which means I’ll receive a small commission at no extra cost to you.

Step 1: Assemble Arcade1Up Stock

It takes a little over an hour to assemble the Arcade1Up stock and the instructions are intuitive. You can save yourself some time if you don't install the Arcade1Up marquee but do install the small marquee bracket as shown in the pics.

Step 2: Dis-Assemble Arcade1Up Marquee and Assemble Pixelcade Marquee

Dis-assemble the current Arcade1Up marquee, assemble the Pixelcade LED Marquee, and then install.

Step 3: Add HDMI Input to Arcade1Up Monitor

Add an HDMI input to the current Arcade1Up monitor allowing you to connect your PC to the monitor.

Step 4: Sub-Displays & Control Panel Mod

Modding the Arcade1Up control which includes the sub-displays and spinner.

The architecture diagram shows how the Pixelcade software communicates with the LED marquee via the PIXEL board and sub-displays connecting via an Arduino.

Arduino Sketch (note in the sketch the additional libraries you'll need to install too)

https://github.com/alinke/PIXEL/blob/master/max721...

Required Libraries

  1. https://github.com/MajicDesigns/MD_MAX72XX
  2. https://github.com/MajicDesigns/MD_Parola
  3. https://github.com/greiman/SSD1306Ascii
  4. https://www.arduinolibraries.info/libraries/led-control

Here are the Arduino pins used:

Max7219 Single Color LED Dot Matrix

  • CLK_PIN 13
  • DATA_PIN 11
  • CS_PIN 10

Max7219 7 Segment

  • CLK 7
  • CS 8
  • DIN 9

Mini OLED

  • SDA - A4
  • SCL - A5

You can use jumper wires to connect or as I did, make a custom cable using Du Pont connectors. If you are using jumper wires, I'd recommend to use Kapton or similar tape to secure the jumpers to the Arduino headers so they don't fall out.

In this installation, we're daisy chaining two Max7219 Dot Matrix Displays and two Max7219 7Segment Displays. The Mini OLED displays are I2C devices and have the same address. This means the same output will be displayed on each display. You can however de-solder a resistor jumper and change the address and then will be able to display something different on the second OLED display.

Step 5: Speaker Panel Mods

Laser cut files for speaker panel and speaker grill ==> https://github.com/alinke/pixelcade/tree/master/Laser%20SVG%20Files/LED-Panel-Mounts/Arcade1Up%20Speaker%20Panel

I ended up laser cutting the original Arcade1Up panel for this speaker panel portion. However, this piece is not laser cutter friendly and took 7 passes to cut and had a high flame too. I'd recommend not using the original Arcade1Up panel and rather get a laser cutter friendly black piece of acrylic or wood that is 3/8" thick.

Step 6: PC On/Off Momentary Switch and Power Switch Relay

My goal was to have one master switch that turns on and off the arcade system including all components not powered by the PC (LED marquee, speaker amp, etc.). The IoT relay power switch fits the bill nicely. When a low voltage power signal is detected by the IoT relay power switch, it trips the relay turning on the 120 VAC power. Wiring up a custom USB to 5V cable does the trick. When the PC is turned on, the USB ports output 5V and trips the relay. Likewise, when the PC is turned off (via the momentary switch), USB power goes off and hence the relay cuts off 120 VAC power.

Note I made a mistake purchasing the Dell OptiPlex 9020 Mini Tower which turned out to be too tall for the Arcade1Up. And hence I had to remove it from the case and re-mount resulting in extra work. You won't need to do that if you get the Dell OptiPlex 9020 SFF (small form factor) case or a similar one.

Step 7: Final Assembly

Now time to put everything together. Once you're confident the connections and wiring is correct, use some hot glue to secure the connections to the sub-displays.

Step 8: Software Installation (LEDBlinky, Pixelcade, HyperSpin)

I used HyperSpin as my arcade front end but be warned, HyperSpin is a pain to setup and configure. Other front ends like GameEx and LaunchBox don't look quite as nice but are easier to setup.

Either way, you'll also need a third party piece of software called LEDBlinky enables the Pixelcade LED marquee and sub-displays to update while you're scrolling through games from the arcade front end. Pixelcade will also work without LEDBlinky but the marquee will just update when a game is launched as opposed to while scrolling through the arcade front end and during game launches.

Software Install Steps:

1. Install LEDBlinky software

2. Install Pixelcade LED Marquee software

LEDBlinky Setup Guide for Pixelcade ==>https://pixelcade.org/ledblinky/

3. Configure arcade front end to use LEDBlinky (LEDBlinky supports most if not all arcade front ends)

Step 9: Taking It Further With the Pixelcade API

Can you code?

Take things farther with the open source and REST based Pixelcade API and create additional use cases. Use the Queue feature for example to combine and cascade multiple GIF animation, still images, and scrolling text events.

A Pixelcade Listener called pixelweb.exe (Windows) or pixelweb.jar (for Raspberry Pi and Mac) runs in the background and listens for REST URL calls. Note these are local REST calls to localhost so an Internet connection is not required. However if your host (PC or Raspberry Pi) is reachable via the Internet, then you can make these calls remote too. You can interact with the API by making REST URL calls directly or use pixelcade.exe (Windows) or pixelcade.jar (for Raspberry Pi & Mac). If integrating from a third party application, it will be significantly faster to make the REST URL calls direct from your application vs. using the command line interface. LEDBlinky for example makes REST URL calls to the Pixelcade listener to accomplish dynamic front end scrolling marquee updates.

This REST call

http://localhost:8080/text?t=Hello%20World&c=green

will scroll the text "Hello World" in green

This REST call

http://localhost:8080/animations/stream/0rain

will stream the 0rain.gif file in the <your Pixelcade install path>/animations folder indefinitely

The API also has a queue feature enabling you to queue up several events (scrolling text, GIF animations, or still images) and each event will play after the previous one has completed.

These sequence of REST calls

http://localhost:8080/text?t=Game%20Playing%20Pacm...
http://localhost:8080/arcade/stream/mame/pacman.pn... http://localhost:8080/arcade/stream/mame/pacghost...

will scroll “Game Playing Pacman” in blue one time, then displays pacman.png for 3 seconds, and then loops the pacghost.gif animation two times, and then clears the display blank.

The full Pixelcade REST API is documented here

API Source Code https://github.com/alinke/PIXEL