Raspberry Pi Arcade Machine – MAME

Today, I thought I would write about a fairly old project of mine – A raspberry pi based desktop arcade machine capable of running MAME.  I started this project at the end of November last year, having seen similar projects on-line, and quickly went through a process of building a small prototype, then moving into a full CNC’d case, which would be able to stand up to quite a bit of abuse!


When I built the project, It was based on Shea Silverman’s MAME binary for the Raspberry Pi.  However, since then, there have been many developments… more specifically by the same person over at pimame.org.  This (as I understand) is a whole raspberry pi OS with all of the most popular emulators pre-installed.


This shows the machine powered up, with Super Mario running on it!

I also decided to build a small little interface which would run on boot.  This used a simple bash script with ‘Whiptail’, into which I then built all of the commands to launch each game in the library.  This gives users an easy way of navigating between, and choosing different games on the Raspberry Pi Arcade.


This photo shows the bash / Whiptail based interface for choosing games.


This was probably the most challenging part of the build.  In order to create a small, cheap controller for the arcade buttons, I decided to use this arcade controller, developed specifically for MAME, and Based of the V-USB code.  In order to create a board that would fit inside the case, I Used the Atmega-8 based version, and started by generating G-code files which I would be able to process and cut using my home-made CNC machine.  This circuit board was then populated and soldered up, using leaded solder  .  I then tested this out on both my PC and the raspberry PI using a few random buttons I had lying around.


A front view of the USB joystick controller board


Here you can see the rear of the circuit board which I etched on my CNC

Currently I only have 1 player buttons on the arcade machine as its small space doesn’t leave a lot of room for a second player.  However I don’t see why you couldn’t create another small add-on module perhaps using a 15 pin D-Type connector to allow a few more games to be played, giving yourself a 2 player Raspberry Pi Arcade.


This shows the view from inside the box, looking at all of the arcade buttons


This shows a view of the Raspberry Pi Arcade buttons and joystick, mounted on dibond

That controller also has support for certain common keyboard commands when a ‘shift’ button is pressed.  This is brought out to a small switch mounted inside the unit along with a switch for credit.  These are quite easily accessible using a paper-clip through a small hole drilled directly above each button in the outer case.  This served as a nice easy way to stop people other than me giving out credits when I was showing it around.


The case was designed using adobe illustrator, as it is a package that I am very familiar with.  I started with a profile, then added on some extra panels, and lugs to connect the different plates together.  I also had to split the side and back panels, As they were larger than my CNCs maximum build dimensions.  The outlines of these Raspberry Pi Arcade parts were then printed out, and cut from cardboard by hand.  This was then assembled to create a small prototype, and gave me the confidence to start up my CNC without worrying about the parts not fitting.  I decided to make the Case mainly out of Aluminium Di-bond, as at the time I had not quite got the knack of cutting acrylic with my CNC.  Since then I have upgraded the machine to include a blue tinted acrylic side.  This was cut using a 1.5mm single flute carbide cutter, with cast acrylic.  This lets people see exactly how the machine is working, and makes an interesting starting point for conversation.


This shows the profile of the MAME arcade, and a view through the perspex side.


Here you can see the clear style of the arcade machine, with the classical overhang


This Image shows the rear view, with all of the bolts used for mounting the variuous parts – battery and Raspberry Pi. There is also a small access hole for charging the battery.


Here you can see the Buttons, both on top of and inside the machine, as well as the Battery at the rear on the right hand side.


This is the basis of the design files. If you would like me to pout up the whole set of illustrator files, please contact me. I am sure I could convert them as well if required.

All of the buttons are standard arcade style, and are arranged in a fairly ergonomic fashion.  There is also the joystick which I have configured in the 8 way setting, to give the most flexibility in terms of possible games.

One of the most important parts of the machine has to me the monitor – it would be useless without that!  In order to keep cost down I chose to use a fairly cheap monitor, aimed at car users for a reversing camera system.  As such it does not have a very high resolution, but it is sill enough to play most games I have tried.  Here is a link to the display… 7 inch TFT LCD.

Another important point is power.  I decided to use the old version of this Rechargeable USB battery from Anker, as I had it lying around the house. There is a drawback of the new one however, which is its lack of a 12v output.  I guess you could try to find one with a higher voltage output somewhere else on the web, or maybe just have a wired arcade machine.  It is no hassle to set up a small  12 – 5v voltage regulator based on something like the 7805 v-reg.  Alternatively, If you are confident with tinkering, you may be able to find a way of running the monitor of 5v, which would be the best solution.

Finally, for speakers I chose to use the cheapest available option.  I bought a small cheap unit from E-Bay which I took apart, connected up the battery terminals to the Pi’s regulated 5v output, and placed each speaker abouve the grill in the overhang.


This is the easiest part of the whole thing – putting it together!  I started by setting up the Pi, buttons, joystick etc. outside the case (which I had already built leaving off one side and the back).  Once I had everything tested and any issues ironed out, I popped it all into the case, screwed on the side and booted it up…    Surprisingly It all worked!


Please contact me if you have any questions or suggestions, or need help building your own Raspberry Pi Arcade.  Thanks

toroCam – A Camera Remote Control, Update

I have finally spared  the time to write about the toroCam, and there has been an unbelievable amount of progress since the last update.  Not only do we now have an updated Android app, but also an IPhone app, which only has a few things left to sort out.  On my side – the hardware, we have developed several revisions of the mini, which the bulk of the focus has been on, making it as small as possible, incorporating the Bluetooth module directly soldered to the board, and using a micro USB connector for the rechargeable battery.  Since then, I have totally redesigned the pro board layout to use almost entirely surface mount components, with the mini as a basis.  This has enabled me to get its size down to something that is much easier to fit into your pocket.  I am now awaiting some 3D printed case prototypes for the Pro board, which should be here within the next week or so.

The toroCam Mini

Since my last update this is where much of the work was focused, I started from scratch, incorporating only the parts most essential to the toroCam.  Besides the IC and Bluetooth module, this included a single jack for the camera, an IR LED, and a micro USB port for power.  I soon followed this up with another revision, which included several more additions, such as support for the much smaller surface mount Bluetooth module, a 2032 coin cell holder, and the ‘Smart Power’ system, similar to that on the toroCam Pro.  Finally, I created a version which had support for a rechargeable battery.  I chose to go down this route, as the extra component cost was minimal, yet it allowed me to totally disregard accessibility to the battery.  On the latest version, the battery can either be a rechargeable coin cell, or any other 3.7v lion battery, which can be easily attached via two 0.1″ pitch connectors.  This is the stage which the toroCam Mini is currently at, it is also shaped to fit into a small ABS enclosure.

toroCam Pro

PCB Design

After spending much of my time focusing on the design of the toroCam Mini, I then decided to turn my attention back to the Pro.  When I went back to the Pro, I realized I had really left its design behind, so I decided that my best option would be to completely start over on the pro.  I took the toroCam Mini board design as a basis, before adding in all of the parts that are unique too the Pro.  I also tried to use all surface mount components, this helps maximize the about of work that could be automated, in order to help reduce production time and cost.  This also resulted in a toroCam Pro model which was over 50% smaller than the previous version.


this image shows the a rear view of the toroCam Pro, with the Bluetooth module visible


this image shows the a front view of the toroCam Pro, with the various input and output ports visible


Since creating the much smaller toroCam Pro I have been scouring the internet for different cases which I could adapt the design to fit into.  However, there was nothing suitable that I could find.  With this in mind I decided to create my own case.  I started by drawing out all of the internal dimensions onto a piece of paper, making sure everything was correct to the nearest 0.1mm.  This then enablled me to create a 3D model of the case in AutoCAD.  I then designed some clips, as well as a series of Icons to help identify the functions of each port, which were inset into the outside of the case design in AutoCAD.


This image shows the toroCam Pro case, being designed within AutoCAD, the case has a detachable hot-shoe mount on the bottom which is not visible.

It seems to be a perfect fit, and makes the toroCam much more usable, as it is now in a much more convenient package.


This image shows the toroCam Pro in its case.

toroCam Website

I have also made some rather significant changes to the toroCam Website since my last update.  This includes a new color scheme, and a newly optimized mobile format.  I hope to make a few more changes in the near future as well, following the updated circuit boards.

Marquee Letter and Floor Lamp – Industrial Design

Over the past few months I have been off enjoying the summer holidays, and taking this time to start or finish many projects that I have been wanting to work on for a while.  This has included a flight control board, as well as a couple of lighting projects, and designing a 3D model for a new CNC.  But anyway, more on the lighting; doing some research around the web, and thinking back to my day out at design junction in London last year, I decided I wanted to make a few industrial looking light installations for my room.  The first of these would be an old fashioned marquee letter, and secondly, a floor lamp made from galvanised conduit.

Marquee Letter

This was a fairly simple project, all be it a rather time consuming one!  I started by drawing out the letter on the piece of 700×500 Chipboard I had cut to size.  This outline was then cut out by hand using the jigsaw.  I then finalised where all of the light bulbs would go, using a 28mm flat drill bit to cut out all of the holes.  once this step was done, I then took to the back garden, and gave the front of the letter a few light coats of white spray paint.  The next step, was to prepare the edging strip.  For this, I used a garden lawn edging strip, this came in a galvanised finish that would match the floor lamp perfectly., but there was one main issue… The roll was wavy, and crimped along its length.  This led to some gruelling hours hammering out the waves, and bending the strip back to a straight flat one.  Once this was done, I used a piece of scrap wood as a template and draw on a offset centre line that would be used to ensure nothing was wonky – this was aligned with the back if the chipboard when pinning it onto the letter shape.  I used small 25mm nails to attach the sheet, having one about every 25mm to give a nice almost riveted effect.  To finish off with, I placed the lights through the oles, using some sticky foam pads to give them some adhesion in the holes.  Then all that was left to do was to turn it on!


Here is a photo of the letter lit up.


Here is a photo of the marquee letter lit up, from the floor.

Floor Lamp

for this aspect, I wanted to again bring an industrial feel.  I started by making a square mould for the base, which would be filled with concrete (well, just cement and water) and a three way 20mm galvanised conduit box sunk into it.  This was aligned with one edge, giving a route for the cable to exit.  Once this had cured, and was released from the mould, I cut some 20mm conduit into 2 lengths of ~1000mm and 1200mm.  these were then threaded, and the longer one bent 180deg. this provided an arch for the pendant to hang from.  The next step was to get the lamp fixture ready.  I decided I wanted a festoon cage design, but the lack of and price of a metal cage in the UK made this difficult.  Therefore, I decided just to buy a cheap plastic one, which was then [painted in black and white spray paint,  I finished off with a patchy coat of black paint to leave some texture showing through.  I also painted the light fixture itself in this way.  Finally, I wired up the whole unit, making sure the main steel body was correctly earthed, and using some red braided flex I had made.  All it needs now is for the ‘Antique’ squirrel cage bulb I have ordered to arrive!


A photo of the top half of the lamp, with a squirrel cage bulb fitted.


A photo of the top half of the lamp, including the lamp cage


A photo of the Lamp base including red flex cable