Ready, Aim, Fire!

Arduino Controlled Meccano Rocket Launcher

Johnny “Meccano”

Issue 42, January 2021

This article includes additional downloadable resources.
Please log in to access.

Log in

A bright young maker shows us how you can combine Meccano with Arduino and electronics to make fun mechatronic projects.

Meccano has been inspiring curious minds for well over a hundred years now. The reusable metal strips, plates, wheels, axles, gears, and nuts and bolts have enabled young and old to construct all kinds of toys, structures, and working models.

Thanks to the popularity of Meccano and the wide range of models and parts released throughout the years, many enthusiasts still use and collect Meccano. One such enthusiast is Johnny, a 14-year-old from country Victoria. With help from his Dad and the online maker community, Johnny has been able to make an Arduino-based rocket launcher, which was originally inspired by our XY Laser project back in Issue 33.

We got in touch with Johnny to find out more about his project.

Thank you for speaking with us to share your Meccano build Johnny. What first got you interested in Meccano, and can you tell our readers not familiar with Meccano what it's all about?

Meccano was always around as I grew up. I can't remember ever being without Meccano and it’s something Dad plays with too. It's about building with nuts, bolts and gears.

We imagine you have a large collection if your Dad was also into Meccano. What is your favourite set?

We have heaps. My favourite is the Ten Set. We have 3 of them. Every Meccanoboy dreams of having a Ten Set.

Wow! That’s an impressive collection. Those number 10 sets in their wooden drawer chests must be well sought after by the collectors. Where can our readers learn more about Meccano and should non-genuine brands be avoided?

There are Facebook groups and a forum called Rust Bucket. Plus there's the Online Parts Museum which is pretty good for learning stuff: http://www.nzmeccano.com/Parts.php

Knock offs are alright. Meccano is mainly plastic these days so I've been building a lot with Steel World. It's smaller than Meccano and is stainless steel which looks great.

We’re pleased to see that you were able to re-mix our XY Laser project from Issue 33 with your Meccano collection. What first got you interested in electronics and coding?

Dad has always mucked around with electronics. He just gave me the DIYODE magazine and said "Here, build this." so I did, which was that XY laser pointer, but I have been able to solder since I was little.

A big shout out to your Dad for introducing you to electronics, and our mag. Tell us more about your build.

We got a 2501 Space outfit at the Meccano club meeting. It still had both rockets which is unusual as the rockets generally end up behind a couch or under a wardrobe. When I finished the XY laser pointer I thought it would be a good idea to use the rockets in the Space outfit instead of the laser.

It has a motor to make it rotate right and left, and it’s got limit switches so when it gets to the end it stops. It has a servo to make it go up and down and you can lock it in place with the joystick. A red light comes on when it is locked.

It has another servo to launch the rocket.

What design challenges did you need to overcome?

I had to try and merge different bits of code from DIYODE Magazine and Arduino tutorials from toptechboy.com for the motor control. While I have no trouble with the electronics, I was really struggling to understand the code.

Usually you can get by with using an Arduino sketch that's already been written and in fact that's what I did with the 1st prototype which was just 2 servos and a joystick to control the XY axis. The difficulty came when I decided to use an N20 motor for the x axis, a servo for the y axis and an extra servo that was activated by a button press for the firing mechanism.

I was very grateful to have Dr Paul Dale help me with the code. Thanks Pauli.

We are so fortunate that there is a community willing to lend their time and knowledge to other makers. If you were to start over, would you design it differently?

Yes. I don't think the code for the joystick servo control is perfect. It jitters a bit and if you go as high or as low as it goes then it jams and suddenly goes back to horizontal. The DC motor works ok though.

Is there anything else we haven’t covered that our readers should know about?

Don't stress if you haven't got the rockets as I'm sure the local $2 shop or pound shop has something that can be substituted. You just need a rocket with fins and you can drill a 5mm hole in it. Then the rocket pushes onto a 4mm rod with a compression spring and the tail fin locks in behind anything to lock it. The trick is to twist the rocket to release the tail fin from the stopper.

I also have a video to demonstrate the project.

Great. We'll put the video on our website for readers to watch. What are you working on next?

Whatever comes to mind that hasn't been done before. I don't like building from a plan. I like to think of new stuff. One of my favourite quotes from Albert Einstein is “Imagination is more important than knowledge”.

Nice quote. Sets like Meccano and LEGO really help young engineers use their imagination. We look forward to seeing what you make in the future. Thanks again for sharing your build with our readers.

Meccano Parts Required:Part Number
2 x Strip 1½"6a
2 x Angle Girder 5½"9
5 x Fishplate10
1 x Angle Bracket12
2 x Angle Bracket 1" x 1/2"12b
1 x Obtuse Angle Bracket12c
1 x Rod 1"18b
5 x Rubber Pulley 3/8"23c
2 x Bush Wheel 8 hole24
1 x Pinion 19 teeth26
1 x Gear Wheel 57 teeth27a
4 x Plastic Spacer large38a
1 x Plastic Spacer small38b
1 x Double Angle Strip 3 1/2"48b
1 x Flat Plate 5½"x3½"52a
1 x Trunnion126
2 x Channel Bearing160
1 x Narrow Strip 5 hole235
1 x Rocket491
1 x Rocket Holder493
4 x Plastic Spacer small38b
1 x Double Bent Strip45
2 x Flanged Plate 1 1/2" x 2 1/2"51f
Nuts, Bolts, and Washers (as req.)
JaycarAltronicsCore Electronics
ELECTRONIC Parts Required:XC4422Z6363ADA512
1 x Joystick with Tactile SwitchXC4410Z6240018-UNO-R3
1 x Arduino Uno or Compatible BoardYM2800J0054FIT0579
1 x N20 Motor (6V, 50RPM)YM2758Z6392SER0043
2 x SG90 ServosZK8880Z2900ADA807
1 x H Bridge L293D ICSP0710S1060BCE05249
1 x Normally Open Momentary Action PushbuttonSM1038S3265POLOLU-1403
2 x MicroswitchesZR1014Z0115CE05129
2 x 1N5404 3A Diodes*ZD0100Z0700POLOLU-1070
1 x 3mm Clear Red LED*HP1100H1547-
1 x 4mm Mount LED Bezel/Clip*RR0588R7574COM-10969
1 x 4.7KΩ Resistor*PS0519P0534PRT-07938
1 x 2.1mm DC Socket

ELECTRONIC Parts Required:XC4422
1 x Joystick with Tactile SwitchXC4410
1 x Arduino Uno or Compatible BoardYM2800
1 x N20 Motor (6V, 50RPM)YM2758
2 x SG90 ServosZK8880
1 x H Bridge L293D ICSP0710
1 x Normally Open Momentary Action PushbuttonSM1038
2 x MicroswitchesZR1014
2 x 1N5404 3A Diodes*ZD0100
1 x 3mm Clear Red LED*HP1100
1 x 4mm Mount LED Bezel/Clip*RR0588
1 x 4.7KΩ Resistor*PS0519
OPTIONAL PARTS FOR PCB VERSION:JaycarAltronicsCore Electronics
1 x 16 Pin IC SocketPI6456P0534PRT-07938
1 x Veroboard or similarHP9542H0714- See text


* Quantity shown, may be sold in packs. You’ll also need a breadboard and prototyping hardware.

The Build:

Arduino Uno Wiring

Mounting the Servos

The 9G servos used in this project fit beautifully inside a part 160 Channel Bearing. To get bolts through you have to file just a tiny bit (less than 1mm) under the flange of the servo. There is also room under the servo for a bolt. Another bit of good luck is the drive shaft lines up exactly halfway between holes so you put a 5 hole Narrow Strip along the base of the Channel Bearing using small Spacers to allow a Pivot Bolt to fit into the 1/4" spaced hole. Now the Pivot Bolt is lined up with the servo shaft.

Limit Switches

The microswitches are used as limit switches. The Pivot Bolt on the Gear Wheel contacts the levers to prevent the rocket launcher from too far left or right also this is to stop the kids turning it 180 degrees and shooting themselves in the face!

Note: Get the limit switches working properly before you connect it to the H bridge or you'll get confused like me!

The Pivot Bolt is held in place by the 5 hole Narrow Strip. The 1/4" spacing allows alignment with the servo shaft.
The plastic cams and screws come with the servo.


The N20 motor is rated at 50RPM 6V and is mounted on a Fishplate using M1.6 bolts. It drives a 19t Pinion which in turn drives a 57t Gear Wheel attached to the 1" Rod that is locked to the top Bush Wheel. The bottom Bush Wheel is bolted to the Flat Plate with Washers underneath to allow for the peened ridge on the boss and also to raise the Bolts enough so that the Bolt ends are flush with the Nuts underneath. This allows the Gear Wheel to clear the Nuts.


The sketch (program) can be downloaded from http://www.nzmeccano.com/image-155023 or from the DIYODE website. You don't need to worry too much about C++ coding. Just copy paste the code into your Arduino IDE then download it to the Arduino Uno.


The best way to get this all working is to get a breadboard and start connecting jumpers. Only pins 1 to 8 are used on the L293D IC. If you're just starting out with Arduino it's best to buy a starter pack. These come with a breadboard and jumper leads for prototyping. If you don't start with a breadboard and go straight to soldering you're likely to end up with a mess!

Follow the wiring diagram and get it working first and then start thinking about building it on a circuit board.

Construction using a veroboard

You can buy pre-drilled boards with copper pads for only a few bucks.

To design my own board I started with a chip socket for the L293D. Never solder the IC into the board directly because you won't get it out if it fails. Also, it's better to put the IC in last AFTER you've checked and double checked your wiring.

I decided not to get my power from the Arduino Uno. Instead I soldered a 2.1mm DC socket onto the board and used a 6V regulated power supply. As the servos come with 2.54mm header sockets I soldered 3 way header pins onto the board and ran my power to the IC, the servo pins and the Vin of the Arduino Uno. Next I got some right angle header pins and cut off two lots of 7 because I've used 7 digital outputs on one side of the Uno and 6 plus a gap on the other side.

Connect the Arduino Uno pins to the home-made circuit board with ribbon cable soldered to right angle header pins. I remember seeing a neat trick of folding ribbon cable at right angles when I was pulling apart old printers to salvage parts. Old printers are a great source of tiny nuts and bolts!

The joystick has a length of old cat6 ethernet cable I had laying around in the shed and rather than connect it directly to the Arduino I terminated it into 6 holes on the home-made circuit board. It doesn't really matter what you use so long as it has at least 6 conductors and is multistrand. Solid conductor cable like telephone cable has a nasty habit of breaking if flexed too much. The 6 wires from the Arduino to the joystick are Ground, 5V, X axis, Y axis, Tactile Switch and Fire Button.

Work methodically to connect each Arduino pin to the circuit board and use the colours of the ribbon cable to help you.

After plugging the header pins into the digital side I followed my prototype breadboard and progressed one pin at a time. Pin 1 goes to the Fire Button and white is pin 1 so I soldered the white wire from pin 1 into the hole adjacent to the corresponding wire from the joystick. Then pin 2 goes to the Fire Servo control and grey is pin 2 so I soldered the grey wire from pin 2 to the hole adjacent to the control wire on the Fire Servo header pin.

You can see in the photo that I wrote FIRE with a black fineline permanent marker pen. Next was pin 3 which was purple, so it went to pin 7 of the L293D and so on. Of course your colours may differ but just do one at a time checking and copying from your prototype breadboard. Don't put the L293D into the chip socket until you're absolutely sure everything is correct.

Mounting the Arduino Uno

I've used four Rubber Pulleys bolted onto Fishplates. It's important to use locknuts or the Rubber Pulleys will squash. The slots in the Fishplates allow you to adjust the position so the Arduino Uno board is held in nice and snug.

I've used the Double Angle Strip to hold the ribbon cable away from the Bolt that activates the limit switches.

Lock LED

As an afterthought I added a 3mm LED to indicate when the joystick tactile switch has locked the up/down servo. I noticed the LED on the Uno lit up when it was locked and then I discovered that pin 13 also goes high. You do need a current limiting resistor though. The LED was a high brightness waterclear and it nearly blinded me! It turns out the LED on the Uno has its own resistor but pin 13 does not. I ended having to use a 4.8k resistor to keep the brightness low enough so as not to be a distraction. I discovered a long time ago that the plastic bezels for 3mm LEDs require a 4mm mounting hole which just happens to be close enough to Meccano hole size.

LED in its bezel, and two threaded pins to store the rockets.


Up/Down is controlled by a servo. Push the joystick forward to go down and pull back to go up. If you release the joystick it returns to centre resulting in the servo snapping back to centre. The joystick has a tactile switch and when you push it the servo locks into its current position and the LED lights up.

Left/Right is controlled by the N20 motor. Push the joystick left to go left and right to go right. It stops when it reaches the limits set by the microswitches underneath. If you release the joystick it returns to centre but the motor stays in position until you move the joystick again.

The Fire Button connects pin 1 to Ground and causes the fire servo to rotate 90 degrees. When you release the button the servo returns to zero degrees. The white plastic cam on the fire servo pushes the rocket fin away from the diecast rocket holder thereby releasing it.

With the genuine Meccano Compression Spring supplied with the rocket it travels about 5 metres. You could increase or decrease this by using different springs.

Mounting the Joystick

The joystick can be mounted any way you like but I've used a Flanged Plate and 1/4" spaced Narrow Strips to line up with the mounting holes. I chose to solder the 6 wires directly to the PCB rather than use the header pins.

Fixing the Rocketman

I used a hex nut to fix the rocketman to the bracket.

Using Veroboard

I've used Vero Board Cat. HP9542 from Jaycar as it has the copper tracks between the holes but you can also use the Universal Pre-Punched Experimenters board Cat. HP9552. If you go with the Vero board, make sure you have the copper tracks in the desired direction before cutting it to size. To cut the copper tracks I used a Stanley knife and scraped away the unwanted sections.

Note: Use the audible continuity tester on your multimeter to make sure none of those solder blobs bridge across the tracks.

I also ran the Stanley knife between the tracks just to make sure.

Johnny “Meccano”

Johnny “Meccano”

14 year old student and Meccano builder.