Lunar Lander Mk 2
It's over 10 years since I made my Mk1 attempt at a physical model of the arcade classic Lunar Lander. The machine was a monster of size and complexity which was both its strength (it looked impressive) and its downfall (it needed too much space, it was prone to problems). Lunar Lander Mk1 only had a short working life before being retired and dismantled.
Since then, I've wanted to do a Lunar Lander Mk 2 in a more compact, robust, and minimal format which might have more longevity. I was inspired by the arcade at Null Sector in EMF Camp 2018 to do actually start the project with a view to it being an installation for EMF Camp 2020.
These were the ideas I went in with:
- Use an X-Y frame built with V-Slot, similar to my 3D printer, to move the lander model horizontally and vertically (avoiding the need for the model to be suspended on fishing line which was one problem area for Mk 1).
- 3D print most of the mechanical and parts and scenery to see how 3D printing works in a functional application.
- Make the machine significantly smaller and more portable than Mk 1.
- Use a minimal aesthetic that mirrors the original for added geek-appeal.
- Learn from the experience with Mk 1 to improve reliability and maintainability.
The initial goal of prototyping was to test an X-Y frame built using V-Slot and see how 3D printed parts would work. I had got an Ender 3 for Christmas and wanted to see whether basic PLA prints could be made useful. The first question was how big to make the machine? It was hard to know, but I wanted a narrow cabinet that could easily slot into an arcade. Eventually I chose to make the basic machine 60cm wide. That way it could fit on top of the Ikea mobile unit next to my desk which was where I did most of the testing. Sometimes any reason is a good reason.
Designing the parts for 3D printing involved learning Fusion 360. It's got a learning curve, but as 3D software goes I would say it was more usable than most. I recommend a SpaceMouse to control the camera - that makes things much easier.
The prototype construction worked very well. I really like the V-Slot system and the 3D printed parts seemed robust and stable enough for the job. 3D Printing definitely has pros and cons for this type of application. If your printer is working well then you have pretty good control of the dimensions and you can make complicated shapes in one operation. The downsides include it being another thing that's done in front of a computer, difficulty in modifying parts without doing a new print, and long print times. One thing that I do to try and reduce the need for mods and reprints is to put lots of holes in the part design to allow for mounting of unexpected attachment or routing of cables.
The trickiest part of the prototype was how to detect when the lander hit the landscape. This was one area where Mk1 was weak. I tried various options before settling on a simple"V" shaped slot that the axle that holds the lander runs though. If the lander hits the landscape it will lift the axle out of the V triggering a microswitch. Of course, this mechanism isn't perfectly precise, but a bit of unpredictability and the chance to get out of a "scrape" unimpeded adds to the interest of the game.
As I was getting to the end of the prototyping, Covid-19 became a concern and EMF Camp 2020 was cancelled. Now I had what turned out to be more than 2 years to finish the project. Inevitably I used all that time!
With the prototype proving the basic concepts I could think about construction. For a long time I couldn't make up my mind how to design the landscape and how to print a wide landscape on my small printer. In the end I designed a two-colour, multi-part landscape that could be glued to make one piece. It was printed on the narrow edge and is a pretty elegant design IMHO. From the font the landscape looks like a suspended white strip, very similar to the vector line landscape in the original.
The software is a modified version of the Python program from Mk 1. For Mk 2 I ported it to a Raspberry Pi 4. With the improvements in Python performance over the last 10 years it runs better on the Pi than it did on a PC in Mk 1. In real arcades machines are often just powered-off with no shutdown so I used the Pi's Overlay File System for the production version to protect against disk corruption.
I wanted to go with a minimal and retro-looking display and I ended up using some 7 segment vacuum fluorescent displays from China. I couldn't resist adding some NeoPixel strips for lighting effects and to use as a speed indicator too though.
The user controls are off the shelf arcade buttons plus a 3D printed throttle control. We'll see how well that copes with the rough handling I expect it to get. The handle was sanded smooth to remove the rough 3D printed finish. Apart from that I've left the 3D prints as the came off the printer. I like that many people will recognize that they are made on a cheap home 3D printer - it gives the machine a kind-of authenticity.
The case is 12mm plywood covered in self-adhesive vinyl. Frankly, there is no case material I really like. They are all either too heavy, or expensive, or flexible, or hard to work with, or ugly, or .... well you get the drift. One thing I've done as an experiment is to split the case in two parts vertically to allow it to be transported in two pieces or to allow the top part (which holds the game) to be used on its own as a table-top installation.
It's certainly a lot more portable than Mk 1, but it's still heavier and harder to move than I would ideally like.
Lunar Lander at EMF Camp 2022
Lunar Lander was installed in the bar at EMF Camp 2022.
It was a great success and performed flawlessly and always had a crowd round it. There were may kind comments.
We also had an impressive high-score of 1005 set.
The main weakness I found (which I thought might be the case) is that the thrust control lacks the heft of the original. Something that I might change.