The online store has finally opened – the first product we have for sale is the model M1 – Mini NES with controller.

Visit the online store to buy your mini NES here.


Set up a tumblr for Rabbit Engineering. It is updated daily with pictures from the workshop and design studio.

You can get to it via the Gallery link on RabbitEngineering.com, or directly via rabbitengineering.tumblr.com

I decided to buy the RabbitEngineering.com domain to showcase (and perhaps sell?) future projects. You can have a look at some build photos there, and pick up some merch (t-shirts and whatnot).

The B’s in the logo are supposed to look like two sets of rabbit ears sideways (see it?) in honour of the bunnies. The typography was designed so that it works as a positive and negative space (i.e. it can be cut from a shape as well as printed).

A larger project I want to complete as a RabbitEngineering.com milestone is a standalone computer, in 1980s style – complete with external storage, controller and screen. Top priority for this project is innovative and appealing design. I decided to begin with the controller (mouse replacement).

I decided to not use a mouse or trackball – those are not innovative enough; instead, I decided to model my controller on a well-established interface that is not used in computing, but popular in some areas of aviation – the HOTAS throttle. This is an example, from the McDonnell Douglas F-15 fighter:

The throttle is used to control the thrust of the engines by moving it forwards and backwards, but in the 1960s cockpit designers, realizing that a pilot’s hand needed to rest on the throttle for most of a flight, began to add controls for common functions – RADAR settings, the air brake, radio selectors, etc. This was done by adding first buttons to the throttle, and later 4 and even 5 way digital joysticks, in places where the fingers rested naturally.

I decided to use the throttle as the basis of my design. I wanted to keep the physical design minimalist and geometric, so I first settled on a simple cylinder with a flattened base. I 3D printed out test form in white PLA, and marked with sharpies where my fingers rested (this is a good technique for noting required adjustments to 3D printed parts).

Immediately a problem became apparent – the top part, where the fingers curl around the form, was too wide, leading the hand to be overextended and uncomfortable. Back to OpenSCAD. The tube was at least not wasted – I now use it as a pencil holder on my workbench.

For the next form, I narrowed the top, but kept the base wide for stability – in essence, the new form is a triangular prism with spheres for vertices. Again, I printed in white PLA and marked where the fingers naturally lay using sharpies.

Front view:

Left view (where the thumb rests, and the control for the mouse cursor will be):

Right view:

Once that was done, it was time to measure the locations of all the buttons and transfer them into OpenSCAD to begin modelling the complete shape. The final controller would have the following electronic components:

  • A two-axis analog joystick to control the cursor (for compactness, I used the part used in the Nintendo PSP, which is available at Adafruit). Controlled by the thumb.
  • A 5-way digital joystick for left click (depress the joystick), mouse wheel up and down, and scroll page left and right (also from Adafruit). Controlled by the index finger.
  • 6mm tact switch for middle click. Controlled by the middle finger (from Adafruit)
  • 6mm tact switch for right click. Controller by the ring finger (from Adafruit)
  • A TeensyUSB 2.0 programmed as a USB keyboard and mouse as the HID interface. The teensy can be programmed with Arduino libraries, but is much more compact and has better USB device emulation (you can also get these from Adafruit).

A new technique I wanted to try on this project was to have plywood inlays in plastic parts. On the Nespoise I had mixed black PLA and plywood to a very nice effect, but I wanted to try and hide the edge of the plywood this time. Because OpenSCAD lets me export to STL which is consumed by both Makerware (for printing PLA) and CamBam (for CnC cutting), I thought it would be fairly straightforward to do. Here is the shell from the outside (minus buttons):

The shell consists of an upper and a lower half, joined by two #6 imperial screws. The top half is the complex part, with the buttons/joystick openings, screw posts, and hinges:

Internally it’s more compact that any other project I’ve worked on – to ensure all the parts deconflict correctly, I rendered a number of strange cross sections (OpenSCAD makes this very easy). Here are some of the more interesting ones:

I had never worked with hinges and only had limited experience with moving parts like d-pads, so I decided to make test prints of just these areas. Turned out this was a good idea, as the tight tolerances I originally put in caused annoying sticking of the parts.




 Once all the bugs in the top half were resolved, it was time to print the complete shell. This required the use of supports which I don’t often use, and I ended up with some untidy/incomplete areas in the print (for example, one screw post only printed halfway before breaking down). Given it was a 5 hour print, I decided I could live with the bugs, especially given they were all inside the body (the external surface was smooth). I then glued/screwed the switches and joysticks in, and got ready to wire them in place.

I then spent some time programming the firmware for the Teensy. It’s better to do the bulk of this before final assembly, because you might discover short circuits, bad switches, or other hardware related bugs during programming, and you want to avoid having to disassemble the project to resolve those.

Here are all the plastic parts (with most of the electronics) ready to test.

I then cut the plywood inlays and they snapped nicely into place, and I added a little superglue to ensure they stayed in place. Time to add the remaining electronics before further testing. Here are some views of the top half ready to close – it is a tight fit.

Here are all the parts labelled. For the power light, I used the “natural PLA lens with logo bezel” trick I invented for the NESPo and used in the NESPoise, this time with the Rabbit Engineering logo.

On the bottom half I added two 1 Oz fishing weights, to make the controller feel more solid on the table. I wanted to avoid users from mistakenly moving it around as they would a mouse. The extra weight plus rubber non-slip feet makes it adhere to the table surface nicely.

Time for final assembly – here it is next to the second form:

Now to test it for usability. I found the cursor speed needed some tweaking, so I made some changes to the firmware. Teensy makes this a simple and painless process.

Here are some views of the completed controller, showing the power light illuminated:

Here it is in use, to give an idea of how the hand fits:

You can grab all the files to make your own at Thingiverse.




When the Xbox team launched the Xbox One, they all got a special edition of the Xbox One which was white and stated “I MADE THIS”. Here’s your chance to say you also made an Xbox One! And you won’t have to fork out $3000 on EBay either.

Download the files to print your own from Thingiverse.


I recently picked up an Atari 1200XL from a guy at work, and got into the mood to return to new mini machines. Instead of the 1200XL (which was a bit of a bomb), I decided to do the far more popular 800XL. And of course you need some media, so I did the Atari 1050 disk drive also.

As usual, you can pick up the files to print your own at Thingiverse.


20 Mini NES for SRGE

I’ve been working on a great early registration incentive for the Seattle Retro Gaming Expo (SRGE2014). Folks who register early stand a chance to win one of 20 mini NES machines. I’ve never mass produced any of the minis (the most I did was two each of the Xbox One and C-64), so it was bound to be a new experience.

It was a slog – people often ask if I sell my minis, and this experience did not make me want to start. Well, it did a little I guess. But it took a very long time to make just 20 of these. Here are some photos of the journey.

And so we begin printing…

At one point I ran out of white PLA. There was this much left on the spool after ending a five hour print. If I had run out before finishing the print, all those hours would have been wasted. Phew!

And then the spraying. One advantage of this project is that I got lots of spraying practice – I’m pretty good at that now. But my lungs are probably the colour of retro computer plastic by now.

Each mini NES has 9 parts, so the batch of 20 needed printing close to 200 pieces. Here are a batch of parts sprayed and ready to assemble:

Gluing together some controllers. Doing the buttons (not pictured here) took a lot of tweezer work.

Gluing and clamping…

Here is a little pile of them…



Once all done, they are ready to bag. I decided to put a little insert into the bag with the SRGE logo and some info on the machine.

Here is a baggie, ready to go.

And here are the baggies, ready to go!

And on April 30 we will pull the winners from our virtual hat! If you’d like a chance to win one of these, register for a weekend pass for SRGE2014 before April 30!