UPDATE 2: 9/19/2018 – Added information about the joystick installation (Requested).
UPDATE 1: 11/24/2016 – There have been some questions about how the touch sensor was wired to the encoder. Unfortunately I did not have the connections documented, so I had to take apart the control panel to check it. I have included the touch sensor wiring below in the How To section below.
A few years ago, my Dad gave me an iCade for Christmas. It was fun for a short time. However, after a while the lack of games and the Bluetooth controller latency started to bug me. I had always wanted to build one of those big Mame cabinets, so I thought, “why not mod the iCade and build a nice desktop arcade machine (bar top arcade machine ?) that can play all my favorite classic games?” The goal was to be able to play Mame, Game Boy Advanced, Daphane, and Sega Games.
The first thing I did was Google “iCade mods” and started reading about others modding the iCade. The more I read, the more convinced I became to rip apart the stock iCade and begin a ground up rebuild.
Parts List :
Raspberry Pi 3
iCade Cabinet
CanaKit 5V 2.5A Raspberry Pi 3 Power Supply
GeauxRobot 3PCS Raspberry Pi Copper Cooling Heat Sinks
Zebra Case
Easyget Zero Delay Arcade USB Encoder
Xinci XC-DG003 Portable Aluminum Ultra Bright USB LED
FlePow Portable Power Strip Surge Protector Travel Charger
ARCTIC S111 USB-Powered Portable Stereo Speakers
Tontec® 10.1 Inches 1280×800 IPS Raspberry Pi Screen
Aurum Ultra Series High Speed HDMI Cable
Adafruit Standalone Momentary Capacitive Touch Sensor
iPazzPort 2.4GHz Mini Wireless Fly Keyboard
Mag-Stik Plus
Gold Leaf Arcade Pushbuttons
Plexiglas (Cover Screen)
Misc Screws, Table, Cable ties, etc.
Software :
RetroPie
Photoshop to create graphics
How To :
I started by removing the controls and taking all the panels apart. I wanted the end result to look more like an actual arcade cabinet, so I built a new panels.
The top panel was extended. The middle panel was moved closer to the front of the cabinet. This moved the screen closer to the player and helped with the overall aesthetics. I also added a speaker and bottom panel to the cabinet. The only original panels used are the two side panels, which I stripped the black vinyl off of, and the plastic iCade control panel (because I wanted the 25 cent display).
Next, I started gathering the components needed to make this cabinet come to life. I decided on a 10.1 screen. Originally, the screen was going to be mounted in the portrait orientation, but later I converted it to landscape since it made playing scrolling games much better. (Example Metal Slug, The Simpsons, etc…). With the screen in landscape orientation, the portrait games are smaller, but in the end it looks good and I hardly notice it while playing.
The next big decision was the controls. It seems like everyone on the internet has an opinion about joysticks and buttons. I like to play games that work better with a 4 way joystick (Example Ms. Pacman), but I also like to play games like Gauntlet that require an 8 way joystick. Eventually I found the Mag-Stik Plus on ultimarc.com. This joystick allows you to switch “from 4 to 8 way mode from the top of the panel”. The Mag-Stik Plus seemed to fix my 4 way / 8 way joystick conundrum, however it is too big for the plastic iCade control panel. After a few minutes with my handy dandy Dremel, a nice hole was cut and the stick was installed.
During testing, I did not like how noisy the iCade buttons were. Wow are they noisy! When playing a game like Galaga, the loud click click click sound was too much. I decided to replace the buttons with some Gold Leaf Arcade Pushbuttons. These buttons are the same size as the stock iCade buttons, were simple to install, and are much quieter.
While I was reading about other iCade mods, I ran across this site. They took an momentary capacitive touch sensor and installed it behind the stock iCade 25 cent display. This allows you to simulate sliding endless quarters into the machine by swiping your finger over the sensor (Ingenious). It took some trial and error, but I finally figured out how to make it work on all my Mame games.
The joystick, the buttons, and the capacitive touch sensor were all hooked up to the Easyget Zero Delay Arcade USB Encoder.
Update 1: Touch Sensor wiring – I do not have access to Photoshop or Visio right now, so you are stuck with my awful MS Paint skills.
First, I spliced the touch sensor’s power (VDD) and ground (GND) into the USB cable that powers the USB joystick encoder. Second I connected the OUT on the sensor to the blue wire that usually connects a button to the encoder. The other wire was not needed so I used some electrical tape tie it down.
Once the wiring was complete and tested I used some super glue to secure the sensor in place. Finally a little more electrical tape was used to secure the wires inside the control panel.
End Update 1
Update 2: Joystick Mounting – The Mag-Stik Plus came with a metal mounting plate that lines up perfectly with the holes already in the plastic ION control panel.
The plate goes on the bottom of the control panel and 4 screws are used to fasten it from the top of the control panel.
For the joystick to to fit correctly I had to cut the bottom of the panel and rotated the joystick 90 degrees. I then mapped the controller directions in RetroPie to account for the rotation.
End Update 2
I painted the cabinet black and started looking for a solution for the sound. I found some cheap ARCTIC S111 USB-Powered Portable Stereo Speakers on Amazon, ripped them apart, and mounted them into the cabinet. The speakers have a built-in amp that I also mounted in the cabinet. I have read that the Raspberry Pi’s 3.5mm audio jack outputs 1v max. I can’t confirm this, but without the amp, the speakers were not loud enough.
Next, I started to assemble all the parts. The 10.1 screen and USB LED light are powered by the USB ports on the power strip. I had to run the Raspberry Pi 3 off a CanaKit 5V 2.5A Raspberry Pi 3 Power Supply plugged into an outlet on the power supply. When the Raspberry Pi was plugged into the USB ports on the power strip, it could not get enough power and caused random game issues.
I used a 12 inch HDMI cable to connect the Raspberry Pi HDMI port to the screen controller board. When powering on, the Raspberry Pi tries to boot before the screen is fully powered. This could be because the screen is plugged into the USB port on the power supply, so I had to edit /boot/config.txt file and set hdmi_force_hotplug=1. I will post my full config.txt file below.
Using Photoshop.. that I have installed on a work computer… Shhh, I made a template of the control panel top, control panel front, marquee, and both sides. My wife and I then scoured the internet looking for classic arcade artwork and came up with a theme to cover the cabinet. I will attach the Photoshop template files below.
Once the art was complete, I sent it to Game on Grafix for printing. They did a great job and I would recommend them for your projects.
Installing the vinyl was a little tricky. We ended up using Windex and a squeegee to help position the vinyl. I am super happy with how it turned out.
The Finished Project :
Photoshop Template Files :
iCade Photoshop Files
/boot/config.txt (For Raspberry Pi 3) :
WARNING I am not responsible if you mess your Raspberry Pi up by using this. Use this an an example only. It works for me but your mileage my vary
# For more options and information see # http://www.raspberrypi.org/documentation/configuration/config-txt.md # Some settings may impact device functionality. See link above for details</code> # uncomment if you get no picture on HDMI for a default "safe" mode #hdmi_safe=1 # uncomment this if your display has a black border of unused pixels visible # and your display can output without overscan disable_overscan=1 # uncomment the following to adjust overscan. Use positive numbers if console # goes off screen, and negative if there is too much border #overscan_left=16 #overscan_right=16 #overscan_top=16 #overscan_bottom=16 # uncomment to force a console size. By default it will be display's size minus # overscan. #framebuffer_width=1280 #framebuffer_height=800 # uncomment if hdmi display is not detected and composite is being output hdmi_force_hotplug=1 # uncomment to force a specific HDMI mode (this will force VGA) hdmi_group=1 hdmi_mode=4 # uncomment to force a HDMI mode rather than DVI. This can make audio work in # DMT (computer monitor) modes #hdmi_drive=2 # uncomment to increase signal to HDMI, if you have interference, blanking, or # no display #config_hdmi_boost=4 # uncomment for composite PAL #sdtv_mode=2 #uncomment to overclock the arm. 700 MHz is the default. #arm_freq=800 # Uncomment some or all of these to enable the optional hardware interfaces #dtparam=i2c_arm=on #dtparam=i2s=on #dtparam=spi=on # Uncomment this to enable the lirc-rpi module #dtoverlay=lirc-rpi # Additional overlays and parameters are documented /boot/overlays/README # Enable audio (loads snd_bcm2835) dtparam=audio=on gpu_mem_256=128 gpu_mem_512=256 gpu_mem_1024=256 overscan_scale=1 #gpu_mem=320 #RootDelay rootdelay=10 #Overclock Settings arm_freq=1300 over_voltage=6 temp_limit=80 core_freq=500 #GPU Based h264_freq=333 avoid_pwm_pll=1 gpu_mem=450 v3d_freq=500 #Ram Overclock sdram_freq=588 sdram_schmoo=0x02000020 over_voltage_sdram_p=6 over_voltage_sdram_i=4 over_voltage_sdram_c=4
Nice work! Really like the way your project turned out. I’m getting ready to start my project but I am using an ipad1 LCD. I like all of the customized changes to the case you made, although it seems you used very few original icade parts in the end. Did you design the vinyl decals in photoshop? If so, would you be willing to share your PSD design files?
Thank you. Yes, in the end really only the two sides (modded) and the main controller housing (also modded) were from the original iCade. I linked the iCade Photoshop files towards the bottom of the blog post. These are the files I used to build the art design.
Let me know how your project progresses. I thought about using an iPad screen but did not have easy access to one. I am interested to see how it works.
I hope this helps.
Sure I’ll share my progress. I saw the photoshop files but I meant the fully designed files with artwork. I thought it looked really good. Either way thanks again for sharing.
Dumb question – The power strip does not have mounting holes on the bottom. What was your solution to stably mounting it? Thanks and cool build!
Not a dumb question. I struggled with the layout and the mounting of the power strip. I ended up using some industrial strength Velcro I purchased from a local HomeDepot. Here is a link
That makes sense. Same for the pi case I would assume?
Sorry I did not see this comment. The Pi case is just sitting in the bottom cabinet (with no Velco). The case come with some rubber feet and seems to stay in place fine.
I was wondering if you could expand on how you got the touch sensor thing working? What you wired it to and the settings, etc? Thanks so much for this – I am hip deep in my first one and this seems like the perfect solution…
~t
I tried to find a picture of how I ended up wiring the touch sensor, but could not find it. It was trick and if I remember correctly I ran only one wire from USB Encoder to the touch sensor (this could be wrong). When I get home I will see if I can find an image and make a fast wiring diagram.
Thanks so much for all your help!
I took the control panel apart to see how I wired the touch sensor and updated the post above. I hope this helps :). If you have any issues after reading the update please let me know and I will try to help.
How do you power it down? External switch? Thanks.
The FlePow Portable Power Strip Surge Protector Travel Charger (linked in post) has a power switch on it. I used that switch to turn it off once RetroPi is shutdown.
What did you do to the “ION” logo on the button panel before applying the vinyl. Did you sand it down or just apply over it? Hard to tell from pics, looks smooth.
Great work BTW!
Thank you. It was a fun project.
Yes, I used a razor blade to shave most of the logo off (Be careful when doing this…) then sanded till smooth.
-Matt
Thanks for the tip,nearly at this stage of project.
Awesome. If you want to share some images / link to your project when done it would be great to see.
-Matt
How did you mount the joystick if the icade doesnt have a place to screw in the mounting bracket?
Did you get the same joystick I did? I had to mount the joystick sideways and map all the controller directions in the emulators. This allowed the joystick to use the existing mounting holes on the panel faceplate.
I am in Japan right now, but when I get home in a few weeks I can try to get some more pictures to help explain.
Pictures would be great. Not sure what you mean by mouthing sideways. I may get the joystick you have or a sanwa that I found. Similar form factor not sure how to mount though.
I have updated the post with some information about the joystick installation (with pictures). I hope this helps.
-Matt
I’m going to begin my
Project here in the next few days. For some reason I can’t find the screen you used for this build anywhere can you help ??
(I removed your email address so you don’t get more spam than you already do… -Matt)
Looks like it is out of stock. I would think any good 10 inch screen would work, as long as you have the driver board.
-Matt
I’m about to start my project I’ll be doing the same but I’m
Going to change the vinyl I’m going to use
Elecrow 10.1 Inch Raspberry Pi 1920X1080p Resolution HDMI VGA Display Monitor IPS PS3 PS4 Gaming Screen with Build-In Speakers for Raspberry Pi B+/2B/3B WiiU Xbox 360 Windows 7/8/10 https://www.amazon.com/dp/B076GZVCP2/ref=cm_sw_r_cp_api_7lPOBbBDAKTZN
Would this work ??
If you are using the ION iCade for the base of your build I am not sure it will fit without some modification.
I have not personally used that screen so I can not recommend from experience, however the reviews are mostly positive and if it fits your build better (With built-in speakers and driver board) you might want to try it.
-Matt
I’ll have to take Measurements and see what I come Up with. Your build Looks awesome.
I know it has been awhile since you posted this reply. Did you find a screen that would work in your iCade? I recently got another iCade and might start a new build.
Thank you,
-Matt
Awesome thanks for the photos Matt.
FYI I used a 1st gen old iPad screen I had sitting around. I found a controller board on eBay that works perfectly and it’s a 4:3 ratio perfect for retro games and the icade shape since it was made for the iPad.
The Photoshop templates, how do you get the layers working in Photoshop with them? I am pretty new to it so kinda having trouble.
What trouble are you having? I don’t have Photoshop loaded right now, My Creative Cloud is expired 🙁 ,but I might be able to help some.
Also check out this video. It is a little long but might help: https://www.youtube.com/watch?v=-Lm2HB7AzNQ
-Matt
Thank you, think I about got it now but is there a template for the marquee?
Came out great!! Very Helpful!!
How did you mount the monitor and plexiglass?
Thanks!
Danny
How did you fit a 10.1″ screen? The interior width is 8.8″ right? Did you widen it? thnx
Yes. I took the cabinet apart, used the parts as a template, and changed the width enough to fit the larger screen.