Jon Thysell

Father. Engineer. Retro games. Ukuleles. Nerd.

Tag: arcade machine

Building the Picade Mini Part V, final touches

In Part I I put together the cabinet, in Part II I got the main electronics installed, in Part III I created a custom rear jack panel, and in Part IV I got everything up and running 95% how I wanted.

After that last post, I took the machine to work to show off. Got lots of people to try it out, and the biggest bit of feedback was people wanted their MAME games. I also really wanted to play six-button Sega Genesis games. So I spent some time updating my secondary RetroPie build to the latest version, which gave me a much more functional Genesis emulator, including save state support and six-button controls. Then I switched to mame4all-pi, and put the correct MAME roms on the box, which finally gave me working MAME games.

Once I was sure the update would improve things without breaking my Picade, I went ahead and switched back to that build. I updated the Picade, and when that was done, it turns out I was using the wrong resolution before. The Picade Mini has a 4:3 screen, and I was outputting widescreen before. Once I fixed that, I changed the splashscreen to use the official Picade art from the Kickstarter.

The last bit of work was getting MAME working. It involved making all of the requisite folders mame4all-pi needs to save configs and high scores. Once that was done, I spent the time to go into MAME and reconfigure all of the controls to use what I have on my joystick. Everything I’ve done is in the updated configs file I’ve attached at the bottom of this post.

Here’s an updated video of the build in action:

And the original video if you missed it:

Enjoy!

/jon

My Picade Configs [184k ZIP] Updated 02-JUL-2014

I’ve configured my build to use as much screen real estate as possible without compromising on aspect ratios. The buttons are set up such 1-6 on the top map to playing buttons (Y X L B A R), the front are for Start and Select, and the side buttons are Escape and Control. Holding the right side button while I hit another button performs various emulator commands:

  • Left side – exit the emulator and return to the menu
  • B (bottom row, first button) – lower volume
  • A (bottom row, 2nd button) – raise volume
  • R (bottom row, last button) – hits Ctrl+C to forcefully exit any game
  • Y (top row, first button) – load state
  • X (top row, 2nd button) – save state
  • Select – bring up emulator menu

Includes configs for all of the RetroArch emulators, and for mame4all-pi. Feel free to change the configs to support your own needs.

Building the Picade Mini Part IV, let’s finish this up!

In Part I of this build, I put together the main parts of the cabinet. In Part II I got the main kit’s electronics installed and tested. In Part III I created a custom rear jack panel.

Next step was to finally install the rear door. The included hinges and latch worked perfectly.

Rear panel attached Rear panel open

With the rear door in place, it was time to install the Raspberry Pi and put into effect my grand wiring scheme.

The goal has always been a single power supply with a single power switch to get me into a ready to play system. With that in mind I installed a single throw, double pole switch.

The first pole is responsible for powering the monitor and customized USB hub directly. For the monitor I used the cut off the barrel-end of the included power supply. For the USB hub I severed the power leads for the host plug (so that it would never draw power from the Raspberry PI itself) and ran new power lines straight out the side. Simple enough, and both devices power up as soon as I hit the switch.

Rear panel wired 2Now for the Raspberry Pi itself, I need something else. If I run power straight from the switch to the Pi, then killing the power threatens corrupting the Pi’s SD card and killing the machine.

Since it’s a common enough problem, and since I didn’t want to reinvent the wheel, I simply used a Mausberry shutdown circuit. In concert with a small script that runs on the Pi itself, what the shutdown circuit does is uses a pair of GPIO pins on the Pi to monitor when the Pi is running. When the switch is thrown, the circuit tells the script to tell the Pi to perform a clean shutdown. After the shutdown occurs (killing the script), the circuit finally cuts power to the Pi.

So essentially I wire power straight from my jack to the shutdown circuit, and attach the second pole of my switch to the designated spots on the shutdown circuit. (There’s also room for an emergency swtich to reset the Mausberry circuit itself, but I didn’t bother).

Rear panel wired 1Sum total is that when the power switch is turned on, everything is powered on. When the switch is turned off, power is cut immediately to the monitor and USB hub, and a signal is sent to the Pi to shutdown cleanly. About 2-3 seconds later, the Pi shuts down and power is cut to the Pi.

So as long as I don’t physically pull out the jack, I can safely hit the power switch to power off the machine, even in the middle of a game, as long as I wait for a few seconds before pulling the actual plug. The speakers pop when the Pi loses power, so I know I’m safe to unplug.

The last bit of hardware setup was to connect the Pi in to everything. I connected the shutdown circuit and Ethernet jack to the Pi and both the rear USB jacks and the Picade controller to the USB hub (I’ll explain why later). I connected the HDMI from the monitor to the PI and the audio out from the Pi to the Picade board.

Finally, time to start playing with the software!

My first attempt at building an emulator rig with Raspberry Pi used the wonderful RetroPie Project. Since I had already gotten that up and running on another build, (with lots of games working) I decided to take a shortcut and clone that SD card as my starting point for my Picade.

First I tweaked the config.txt to optimize the display for the Mini’s screen (I’ll attach my config at the end of the post). Then I configured the Picade joystick as the new (and only) device. Again, I ended up needing to reprogram the Picade controller, as the default key selections, while great for MAME, actually caused all kinds of problems with RetroArch, which is the framework a lot of my emulators were using. (Again, I’ll add my configs to the end of the post).

The last real configuration (and it still needs some work) was for audio. By default, if you have HDMI connected, the Pi won’t output audio from the 3.5mm jack. I fixed that with the Raspberry Pi sound troubleshooting guide. (Hint, it’s amixer -c 0 cset numid=3 1).

The only audio hiccup I still have is that by default the sound is at max volume at boot. And it is LOUD. Even worse, it seems like potentially something is shorting on the Picade board- such that if the Picade board is wired directly to the Pi, and a loud sound plays, the controls straight up die. The solution I found for the controls was to connect the Picade controller board to the USB hub instead. As for the loud sound, my current workaround is to go in and out of the settings for Emulation Station (the front-end UI for the emulators) after boot. For some reason this resets the audio to regular ranges until I reset or power down.

After figuring that out, the box pretty much runs the way I want it to. I can play NES, SNES, GB, GBC, and GBA without any problems. Master System doesn’t work too well. Genesis works but the emulator (Picodrive) for some reason is locked to 3 button mode only. I haven’t gotten MAME to work yet- none of my roms are the right version it seems.

At this point the project is basically done. I might add a headphones jack, but the joystick itself is super loud anyway. The whole thing fits comfortably on my lap to play, but the front edge is sharp on the wrists so I might grind that down a bit.

Anyway, hope you enjoyed following my build!

/jon

My Picade Configs [184k ZIP] Updated 02-JUL-2014

I’ve configured my build to use as much screen real estate as possible without compromising on aspect ratios. The buttons are set up such 1-6 on the top map to playing buttons (Y X L B A R), the front are for Start and Select, and the side buttons are Escape and Control. Holding the right side button while I hit another button performs various emulator commands:

  • Left side – exit the emulator and return to the menu
  • B (bottom row, first button) – lower volume
  • A (bottom row, 2nd button) – raise volume
  • R (bottom row, last button) – hits Ctrl+C to forcefully exit any game
  • Y (top row, first button) – load state
  • X (top row, 2nd button) – save state
  • Select – bring up emulator menu

Feel free to change the configs to support your own needs.

Update: See the video: Picade Mini build running RetroPie.

Update: Part V is up.

Building the Picade Mini Part III, with a custom rear jack panel!!!

Time for another Picade Mini update! In Part I of this build, I put together the main parts of the cabinet. In Part II I got the screen’s faulty driver board replaced and the screen and control electronics tested.

Now, according to the instructions, my last construction steps are to install the rear door and mount my computer. Then I should be good to start setting up the software. But, you don’t own something until you’ve modify it, so let’s modify this cabinet.

Starting pieces for a jack panel

I wanted to have a cleaner rear interface than just a bunch of cables sticking out the pre-cut slots in the bottom of the rear door. My idea was to install some jacks, so my first step was to create a template of the jacks that I want- 2 USB, 1 power, 1 Ethernet, and a nice power switch.

Template board Port layout on the template

At first I saw two choices: cut individual ports directly into the rear door, or cut one large hole and make a separate jack panel to mount there. Either way I’d need a template, so I did just that with a thin sheet of wood with graph paper glued to it. Then I traced out and labeled the jacks where I wanted them on the graph paper.

Drilling the power jack with the drill press Filing out hoels for the jacks

I used a drill press to cut the hole for the power jack and for the screws of the other jacks. Then I used a jigsaw and file to make the holes for the jacks themselves.

The jacks successfully mounted to the template front The jacks successfully mounted to the template back

All in all, I was pretty happy with the template. It was a nice compact arrangement of everything I wanted. Next it was time to decide whether to start cutting holes in that rear door, or make a separate panel. Given the thickness of the rear door, I chose to make the separate panel.

The next question was what material to use? My first idea was to use a thin sheet of metal, or even to use another thin panel of wood. Instead my future father-in-law (whose workshop and tools I was using for this part of the project) suggested I try plastic, specifically a light switch blank. He thought it’d be easier for me to work with and look better than what I could make out of wood or metal.

Sizing up a light switch panel to the rear door Drilling ports into the panel

Home Depot carried them in black for $0.89, so we picked up two and I got to work. He was right; the panel was really easy to work with. I transfered the template design onto it like a stencil with an awl and cut away. I’ll have to keep light switch blanks in mind when I’m working on electronic enclosures in the future.

Sizing the completed panel to the rear door Drilled holes in the door to cut out with a jigsaw

After cutting out the holes and making sure everything fit, it was time to  figure out where I wanted to mount it on the rear door. I chose the center bottom as the place to give me the most room inside the cabinet.

A hole in the door!

It was time to cut a hole in that beautiful rear door. I drilled holes to mount the panel and drilled out the corners so I could take the jigsaw to it. I cut out the smallest square I needed, and then for the moment of truth…

Finished jack panel front Finished jack panel rear

Viola! My custom jack panel installed perfectly, and looks way better than I expected! I realize it’s a little dirty in the pic- it got some glue stuck to the panel and I was too excited to take a photo to clean it off first. Now all I have left for the physical part of this build is to wire everything up and get that rear door installed onto the cabinet.

Stay tuned for the next part when I do just that!

/jon

Update (03/05/14): Part IV is up!

Update (03/05/14): See the video: Picade Mini build running RetroPie.

Building the Picade Mini Part II, new screen!!!

In the first part of this build, I got the majority of the main cabinet together, but I stalled out when the LCD refused to output correctly. The guys at Pimoroni finally identified that the LCD driver board had a bad firmware on it. A few emails later and a new board was on its way.

Testing the Picade Mini's new LCd driver boardThe hardest thing was getting the new driver board in place in the tiny space of the cabinet. I ended up removing the whole screen assembly from the cabinet to make life easier.

Installing the new LCD driver boardReplacing the board involved popping off the old one (pinching the little plastic pins that held it to the back of the screen) and disconnecting two ribbon cables- one large one for the screen’s control panel, and one tiny one that connected the board to the screen itself. Then I replaced the old board with the new one, reconnected the cables and powered up the screen.

A couple things to note. First, the thin ribbon cable from the board to the screen has to be in perfectly or the screen won’t work. You can’t just jam the cable in there (as I tried). There are two tiny little tabs on the edges of the board’s connector that must be pulled out so that the cable goes in easily, then pushed back in to pinch the cable in place. Secondly, by default the screen is set to go to sleep after 15 seconds of no signal, and you must have a signal in order to use the OSD menu. So if you want to play around with the screen’s settings at this point in the build, you’ll need something to display connected.

Installing the marqueeAfter I’d tested and reinstalled the screen, the next step was to go back and finish off the top of the cabinet, namely the marquee. This began probably the longest part of the evening because all of the tabs and slots for the top of the cabinet didn’t fit together nicely- I had to take sandpaper and a file to everything and still ended up forcing some bits in.

Testing the joystickOnce I got the marquee on and the top bolted shut, the build finally started to feel solid. Next was to fasten down the main control panel, but since I’d popped it in and out so many times while fixing the screen (and to clean out sawdust), I first decided to power up the controls and verify that everything was still working as expected.

Installing the control panelInstalling the control panel was much a repeat of the marquee, ie. none of the tabs fit quite right. It’s expected that you have to squeeze the cabinet a little to get the control panel on- you don’t want anything popping off in the middle of a game, but it was still more work than I expected.

Testing the controlsAfter getting the controls bolted on, it was back to testing. Namely I connected the Picade PCB direct to my laptop and verified that all of the buttons reported correctly and reliably.

Testing the connections againConfident that the buttons were ready to perform, I skipped ahead and installed the LCD’s control panel onto the side of the cabinet. I don’t intend to actually use it much- I want the screen to come on right when I hit the main power, and stay on until I shut down the machine. I don’t want to fiddle with any screen settings on this any more than I want to on any other device.

Testing the screen controls with the screen onA word on the screen buttons themselves- clever idea, with the acrylic buttons on top of the little buttons, but in my testing there was an inconsistent feel to them. I connected the screen to my test RasPi and while the power and input select buttons give a good solid click, the others feel mushy. I might need to fiddle with them a little more, but as I said, since I don’t plan on using them much anyway, it’s not my top priority.

Well, that’s it for this stage of the build. Picade Mini, looking good from the frontI have what’s amounting to a pretty nifty little arcade machine going on here, and as far as what the kit offered, I’m just about done. According to the kit all that’s left is installing the rear door, which I’ve skipped for now, and connecting up a RasPi. So now is where the fun really begins – though I still intend to mount my RasPi to the back door, I also want to make some major usability modifications first. Namely I want to install externally facing USB, Ethernet, headphone, and power jacks into the door, as well as a single physical power switch.

A single power switch with a single power supply means a more creative wiring system than hiding a bunch of wall-warts inside the cabinet. I also plan on adding a powered USB hub in there, which I’ve already rewired in advance to not draw power from the little RasPi. Basically I think I have all the pieces I need and I know how to wire it up- the main issue now is deciding where and how to mount everything.

But we’ll have to save that for next time. Stay tuned!

/jon

P.S. Big thanks to Jon at Pimoroni for getting me that replacement board so quickly. Despite all the nervousness one might have about the Kickstarter model, I’ve been thoroughly impressed by the turnout of this kit.

Update (02/10/14): Part III is up!

Update (03/05/14): See the video: Picade Mini build running RetroPie.

Building the Picade Mini Part I

It was over a year since the Picade Kickstarter ended that I finally got my Picade Mini kit in the mail. Others have reported some issues with these early kits, but with the holidays I wasn’t able to crack open my box until this weekend.

Picade Mini PanelsFirst up let’s take a look at the instructions. We have a bunch of very nice wood panels and a system of plastic wedges (fixed joints) with bolts and nuts to hold everything together.

Picade Mini BottomHere’s what the bottom looks like with the plastic wedges bolted on. Notice the edges of the board, which feature a jigsaw puzzle-like pattern for connecting them to the other boards.

Picade Mini Bottom and SidesNext I’ve attached the side and front panels, and it’s starting to look like an arcade machine already! This is going to be a quick build at this rate.

Picade Mini with the screenThe instructions call next for the screen, so I go ahead and pop that in. But before I get ahead of myself, I know that others have had problems with their screens, so I go ahead and plug it in to see what’s what. And sure enough, my screen outputs double- the whole of the input is mashed up at the top of the screen, with it repeated at the bottom. Damn.

Undeterred, I continue forward with the instructions and decide it’s high time to build the controls. I pick out the design to go under the acrylic and install the joystick and buttons to the control board. Everything pops in pretty easy, and now it’s time to see how this thing mounts to the rest of the cabinet.

Dremeling away the fixed cornerHere I run into my next issue: there’s another set of plastic wedges for securing the controls, but as other builder have discovered, the right-most buttons interfere with the placement of the wedge. So, looks like I need to grind down that wedge a bit- what better a time to test out the new Dremel I got for Christmas.

Reshared wedge under the control boardI make a couple quick marks on the wedge with a pencil, then out on my patio in the rain (hey, it’s Seattle) and away we grind. Not ten minutes later, and the modified wedge fits perfectly!

Picade Mini control panelFlip the panel over, and it looks great. There’s a variety of colored buttons in the kit, two each of red, blue, green, and yellow, along with four black, and a red ball on the joystick. At first I can’t decide on a scheme I like, but then I dig into my stash of joystick parts, and come up with a white joystick ball and decide to mimic the Xbox 360 controller with my layout (I am an Xbox guy after all).

Picade Mini with the control panel onSince the screen will probably need replacing, I can’t bolt it in permanently, and I can’t finish up the top marquee just yet. But even without it, it looks good with the controls and the other cabinet buttons installed.

I move on to the wiring, which is a pretty straight forward affair of connecting all of the buttons and the joystick to the Picade’s custom PCB, and installing the speakers on the inside of the cabinet. Others have reported problems with the wiring looms, and to be sure I test them all first, and end up fixing just one crimped connector in the whole set.

Picade Mini broken screen 2Then I plug the PCB into my laptop, and sure enough, it appears as an USB keyboard. By default the joystick reports as arrow keys and the buttons as the default controls for MAME. Unfortunately this means unnecessarily using the Control, Alt, and Shift keys, and I don’t want to enter some command by mistake (on the full-size Picade, you can hit Control+C by hitting two buttons at once, which would be an annoying surprise in the middle of a game). So following the instructions of others, I fire up the Arduino IDE and reprogram the buttons to my liking.

Picade Mini broken screen 1 But now I’m little stymied. I could go forward on several fronts, but it’s already getting a little cramped in the cabinet and with the broken screen I don’t want to put too much in the way before I replace it. Once the double screen gets fixed though, the cabinet should be easy to finish off. I just need to attach the control board, the top marquee, and finally the back door.

After that, I can start focusing on the brains of the machine, and the further customizations I have in mind. Stay tuned!

/jon

P.S. Since the creators of the Picade got lots of extra backing money, I think they overgeneralized the design- great for folks who don’t want to actually use a Raspberry Pi themselves, but not so great for those who do. Namely, they don’t address the Pi’s missing power switch, which in my experience with emulators means that without a keyboard on hand, if a game freezes and you hard power down, the Pi’s SD card gets corrupt and you can’t boot anymore.

There’re plenty of 3rd-party hardware solutions to this well-known problem, and it’s a little disappointing that the Picade guys didn’t integrate one into their design. Also, you have a power supply for the monitor alone, with the expectation (in the instructions) that you need to add a separate power supply for the Pi, then inelegantly run two power lines out the back, or hide a power strip inside. That’s another thing- by default you either have to run out any cables (say network and USB) out slots in the back, or keep opening the back door to access anything.

With all that in mind, I’m going to install my own Ethernet and USB ports, as well as a power jack and an actual power switch, a single one for a single power supply that powers the whole cabinet. Overall, I think I’ll end up with a pretty sweet machine if I can get the screen replaced, but this project is definitely not the “just supply the Raspberry Pi” weekend project I thought it’d be.

Update (01/23/14): Part II is up!

Update (03/05/14): See the video: Picade Mini build running RetroPie.