Introduction: O Scale Model Railroad Tornado

About: I am a retired Railroad Executive after 45 years in the industry. Now working on model railroading at my home in Nebraska.

I am sure every person has seen a Tornado in videos. But have you seen one operating in full animation on an O Scale Model Railroad? Well we don't have it installed on the railroad yet, because it is part of a complete sound and animation system. But when completed, it should be an attraction.

This project takes you through the steps to build an operating animation from CNC hardware, motor drives, and Arduino controls

Step 1: What Will This Animation Look Like?

In order to understand what we are building, a 3D model was created and a simulation produced.

Step 2: Building the Basic Panel

This project consists of a Z Axis Panel, a X Axis Panel, Arduino micro controllers, stepper motors, H bridge drives, micro step drives, and the Tornado itself. The first thing to do is to collect the bill of materials for the Basic Panel. Both axis panels are similar so the building process for one panel is the same for the other panel.

BILL OF MATERIALS – Sourced from Banggood.Com/ lumber store

X Axis

· (1) T8 500 mm long feed screw assembly

· (1) 12 volt 200 step 4 wire NEMA 17 Type stepper motor

· (2) 500 mm support rods with end mounts and sliders

(1) Limit Switch with Cable

(1) Stepper Motor Mounting Bracket

1/2 inch Birch plywood base cut to 6-1/2 x 24 inches

standard 1/8" thick paint stir sticks

assorted screws M3, M4, M5

Step 3: Assemble the Parts on the Panel

The stepper motor bracket is the first piece to be mounted on one end of the 1/2 x 6-1/2 x 24 inch base. This bracket is mounted on the centerline of the base and be sure it is square to the long edge. Mount the stepper motor onto this bracket and install the drive coupling. You will find that the centerline of the stepper motor drive is sufficiently high from the base, that the feed screw bearing housings must be mounted on wood planks to bring the assembly to level. A 1/2" piece of the Birch plywood is a good starting point. Then add a shim board that brings the centerline of the feed screw bearing housings all in line.

Now using a paint stir stick, drill holes matching the feed screw flange and mount with M3 screws and lock washers. Using Locktite on these parts now will prevent them coming apart later. Now thread this assembly onto the feed screw. Install one end of the feed screw into the bearing housing at the stepper motor end. Now place the other bearing housing at the other end of the base, install the feed screw, and secure the housing to the base with the board planks and shims. BE SURE this assembly is parallel to the edge of the base.

Now arrange the support rods with their end support housings onto the board planks used to support the bearing housings.. It is critical to get all these parts square and parallel. So, do not mount the parts to the base until all parts arranged on the base. At this point paint stir sticks or 1/4" hardwood plywood works well and can be cut to the width desired and drilled with mounting holes to match the support rod sliders. Assemble the cross straps to the sliders loosely and slide them to each end of the support rods to establish the support rod end housings in place. Once these positions are established screw them in place. At this point you should have the feed screw flange with paint stick sandwiched between the sliders.

The last step is to place securement straps for the slider cross planks. Squeeze the sliders together sandwiching the flanged stir stick and screw support planks in place. The paint stir stick can now be cut off flush with the straps just applied. Now the assembly is complete and allows movement of the flange within the securement planks. You can test this assembly by rotating the feed screw by hand to make sure everything moves freely with no binding.

Step 4: Install Limit Switch

The limit switch is mounted on both panels near the motor end. It is used as a homing position sensor to set both axes at a start position when the power is connected to the Control Panel. The exact mounting is user preference, but we tested 2 designs; one which had a paddle hung down from the carriage to hit the switch, and the other used the brass flange nut stir stick as the contact point. It does not matter how this switch is mounted, as long as the switch is activated BEFORE the carriage reaches the end of its travel at the motor end.

Step 5: Z Axis Panel Assembly

The Z Axis panel is identical to the X Axis panel, except we substituted a different feed screw with a 2mm lead to make the motion quicker.

(1) T8 Feed Screw with 2mm lead and brass flange nut

All other steps are the same, so build this panel now.

Step 6: Assemble X and Z Axes Together

Assembly of the 2 axes together is very straight forward. First we added a 6-1/2 x 5" piece of 1/2" Birch plywood to the X Axis Carriage assembly. Then we screwed the Z Axis panel onto this board. The location of the Z axis relative to the X Axis is user preference. In our prototype, we set the motor end about 8 inches away from the center of the X Axis carriage assembly. The Control Panel will sit below the X Axis when mounted, so this space seemed appropriate. Remember the X and Z Axis panels have been shown flat for assembly, but when mounted on the model railroad layout, the X Axis is positioned 90 degrees to the railroad surface.

Step 7: Building the Tornado

Tornado Design

The tornado will be constructed with a 12vdc motor, a ¼” wooden dowel, a flex coupler for the motor to shaft connection, and will be controlled by an Arduino driven L298N H bridge motor controller.

This is the motor assembly: 12 vdc 25 rpm gearcase motor

The funnel is batting found at craft stores. We used thin batting sheets from Walmart.

The funnel will require some artistic work to get the look you want. The most important part is to design and build the Z Axis carriage assembly to accommodate the motor and coupling. The height from the carriage will determine the maximum diameter of the funnel. Anytime you want to change the funnel, it is just a matter of removing the dowel rod from the coupling. This can be done at any time once the system is installed. So if you want to experiment with different funnels, it is easy to do.

But at this point in the build process, just determine the height above the carriage and build a motor mount to support the motor and gearbox. There is a commercially made mounting bracket: Motor Mount

The lead time to get the metal bracket was too long, so we decided to build a mounting arrangement for the Tornado Rotation drive assembly out of small pieces of wood. In these photos, the mount is designed to clear a 5 inch diameter top of the funnel cloud. in the event that this arrangement is unsatisfactory, we mounted the assembly to the carriage tie straps. If this arrangement does not fit our needs for some reason, the assembly can be removed with just 4 Allen head screws.

The motor connections are small and fragile, so the leads are soldered to the motor and we used screws and washers to secure the leads. The travelling harness will be soldered to this connection.

Step 8: Controlling the Animation

Now that we have built the 2 axis panels and mounted them together, how do we make this animation work? The video is an update from testing performed during the build of the prototype system. So how did we make this animation? The answer is we used 2 Arduino micro controllers to control the action. The next steps will detail the Control Panel build, the equipment used, the wiring diagrams,and the programming code.

Step 9: Using Arduino Micro Controllers to Animate the Movement

Tornado Motion Design

In order to control the Tornado, we first define how we want it to work:

1. Turn on the motor for the Tornado rotation.

2. Start the Z axis movement with a stepper motor driving a feed screw vertically downward. This moves the rotating Tornado down from its hidden position down to the table surface.

3. Start the X axis movement with a stepper motor driving a feed screw and platform. This will move the tornado from right to left the full distance of the feed screw.

4. Start the Z axis stepper motor to raise rotating Tornado back to the top out of view. Turn off the power to the Z axis stepper motor.

5. Start the X axis stepper motor to return to the right start position. Turn off the power to the X axis stepper motor.

6. Turn off the power to the Rotating Tornado motor.

Essentially, we are creating a CNC 2 axis router machine. The Tornado rotation is the router and the other 2 axes are for horizontal and vertical movement. To accomplish this we will need to use 1 Arduino MEGA (named “MOVEMENT CONTROLLER”) programmed to operate (2) TB6600 Micro Stepper driver boards to control 2 stepper motors. We will also use 1 Arduino UNO (named “MASTER CONTROLLER”) to control the rotation of the Tornado and initiate the MOVEMENT CONTROLLER. The system control will be provided by an off/on switch for the 12 volt dc power for the system. A momentary switch will be located near the Tornado position on the layout to initiate a latching power relay circuit. This momentary switch control will power up the system and the MASTER CONTROLLER will power up, and the gear driven DC motor will start rotating the Tornado, and then provide power to the MOVEMENT CONTROLLER for the movement sequence.

Step 10: Equipment Required for the Control Panel

Control System Bill of Materials

(1) Arduino UNO & (1) Arduino Mega micro controllers

(1) L298N Module H bridge modular board for Tornado drive·

(2) TB6600 Stepper Motor Micro Step Driver Boards for Z and X axis panel

(1) 12 volt dc power supply

(1) Panel mounted SPDT toggle switch

(2) 5 volt dc relay for Arduino·

Miscellaneous wiring with a green LED and resistors

Terminal Strips

Mounting boards and hardware

Step 11: Mounting Equipment Onto a Control Panel

First select a Control Panel material. We used a 1/4 inch thick piece of hardwood plywood. We started with a 2 foot by 2 foot piece to organize the equipment. There is no secret to this panel, just mount everything in a place that makes for short wire runs and accessibility for 12 volt power, motor leads and limit switch wiring from the Axis panels.

Step 12: Wiring the Master Controller Equipment

The schematic shown for the Master Controller may not be totally accurate due to the lack of part libraries for the L298N module and the 5 volt signal controlled relay. The rest of the circuit is accurate for connections to the Arduino Uno and the Arduino Mega.

For accurate wiring of the L298N, we need to refer to the image that shows the wire connections with terminal numbers shown. The second image shows only the terminals used on this Project.

For accurate wiring of the 5 volt relay for Arduino, we need to refer to that image above.

When in doubt, always refer to the Arduino IDE for the Master Controller for pin connections.

Step 13: Wiring the Movement Controller

The Arduino Mega is used as the Movement Controller. It interfaces the micro stepper drives and the stepper motors. The Vin connection is not shown since it is shown on the Master Controller schematic.

Step 14: System Power Latching Circuit

To control power to the system and allow for automatic shutdown when the animation is completed, a latching circuit is employed with a momentary switch across the 12 volt power NO relay contacts . The 5 volt relay controlled by Arduino signals latches the circuit. When the signal goes LOW, the system power shuts down. A separate LED is used to show the system is latched.

Step 15: Arduino Code

Since this is not an Instructable in how to write Arduino code, we have attached the Master and Movement files for your viewing and/or download.

Step 16: Building the Mounting Frame

The system support frame is built from simple lumber. It is a 3 leg support that has the X-Axis panel attached to establish the proper location for the Tornado on the layout surface. The control panel is mounted behind the X-Axis panel to allow free movement of the Movable Z-Axis panel. The entire assembly could be secured to the wall or left free standing for easy removal if necessary.