Introduction: Linear Inductive Engine 3d Printed

Taking inspiration from model stationary motor (steam, pneumatic etc.), I wanted to create something in a similar vein but at the same time a little different.

This project details the creation of an electronically controlled mainly 3d printed stationary linear engine, powered by 2 coils and a magnetic piston.

The piston via a connecting rod and crank turns a wheel, demonstrating linear to rotary motion.

Build is simplified by 3d printing, the addition of a PCB and off the shelf USB power.

Powered at 5V/170mA via a USB adapter.

Size: 81(H) x 100(W) x 140(L) mm

Weight: 401g

Supplies

3D printer filament PETG Yellow (Or any colour that suits personal preference).

Neodymium magnets N42, 0.91Kg pull, 5(dia) x 8.47(L) mm - Qty 4

Enamelled Copper Wire 35AWG/0.15(dia) mm

Hookup Wire 30AWG 1/0.2mm (multiple colours to aid connection identification)

USB C breakout

M2 x 10mm machine screws - Qty 6

M2 x 10mm self tapping screws - Qty 4

M2 x 10mm countersunk machine screws - Qty 4

M2 X 10mm knurled pillar (internal thread)

M2 x 20mm knurled pillar (internal thread) - Qty 4

M3 x 10mm countersunk machine screw - Qty 6

M3 X 10mm hex pillar - Qty 6

Stainless Steel tube 65(L) x 6(dia) mm

Brass tubing 2.5(dia) mm

Aluminium, Copper or Brass tubing - 8(OD) x 5(ID) mm

Flanged Ball Bearing 6x12x4mm - Qty 2

Black Acrylic sheet 5(H) x 100(W) x 140(L) mm

Container (opaque lid with transparent base) 62(H) x 100(W) x 140(L) mm


IC Timer (TLC551), Oscillator

BS270 NFET - Qty 3

1N4148 diode - Qty 4

TLC551 or TLC555

10uF/16V electrolytic capacitor - Qty 2

220uF/16V electrolytic capacitor

1k resistor

100k resistor - Qty 3

100nF ceramic - Qty 4

47k potentiometer SIL pinout - Qty 2

DIL IC socket 8pin

All componenets listed are through hole types.


May prove more cost effective to buy a range of values rather than individual values unless you already have them available. Some components may also have a MOL greater than the quantity specified in the component list.

No affiliation to any of the suppliers, feel free to obtain the supplies from your preferred supplier if applicatble.

Links valid at the time of publication.


Tools

3D Printer

Saw

Needle files

Sanding paper

Craft knife

Soldering Iron

Solder

Wire cutters

Screwdriver

Pencil

Marker

Awl

Drill

Drill bit 1.5mm

Drill bit 2mm

Drill bit 2.5mm

Drill bit 3mm

Drill bit 3.2mm

Drill bit 4mm

Drill bit 5mm

Drill bit 6mm

Drill bit 8mm

Long nose pliers

Plastic Adhesive.

Red paint/varnish.


Know your tools and follow the recommended operational procedures and be sure to wear the appropriate PPE.

Step 1: Background

The method of operation is based on a solenoid (a helical coil wound on a cylindrical bobbin which in the centre has a movable plunger).

Voltage is applied current flows with the result being a magnetic field proportional to the number of turns which expels the plunger.

An estimation of the magnetic flux density (B), in the bobbin centre excluding the plunger can be calculated:

B = (μ0*N*I)/L

Where:μ0 = 1.25664E−6 T⋅m/A vacuum permeability, N = number of turns, I = current, L = solenoid length

For the bobbin used B = (1.25664E−6 * 800 * 170mA)/9mm = 18.98mT

An estimation of the solenoid force can be derived from the magnetic field.

F = (B*I*L)/(2*μ0) = (18.98mT*170mA*0.009)/(2*1.25664E−6) = 11.55N = (0.101972kp*11.55N) = 1.178 kgf

Where:μ0 = 1.25664E−6 T⋅m/A vacuum permeability, B = magnetic flux density, I = current, L = solenoid length

However, as solenoids are operated with a plunger of some magnetically influenced material (i.e. ferromagnetic), this increases the magnetic flux density and hence the force.

Where a typical solenoid uses one coil to move the plunger and a spring for the return this application utilised two coils similar to a Bistable solenoid without a latching position.

These two coils are driven in anti phase whereby when one coil is off the other is on.

The energised coil forcing the rod in towards or away from the centre.

The coils field in relation to the magnetic field can be orientated to attract or repel the magnets.

Driven from one common clock source with adjustable frequency and duty cycle enabling speed adjustment and coil/plunger compensation.

Step 2: CAD Design

The 3D printed elements were designed using BlocksCAD, sliced using Cura 4.5.0 and printed on a Labists ET4.

Motor base

Motor block

Coil form - Qty 4

Coil holder - Qty 2

Plunger

Fly arm

Crank

Perforated wheel - Qty 2

Washer

Step 3: 3D Printing

Print details:

Layer Height: 0.15mm

Infill Density: 100%

Shell, Wall thickness 2mm

Build Adhesion: Skirt

It is recommened to print the elements with PETG or some other high temperature filament due to the generation of elevated temperture ~40 degC (measured), in particular at the core of the engine body and plunger when in use for extended periods.

This is less than the glass transition temperature (Tg), of PLA which is ~55 to 65C (subject to supplier), whereas the (Tg), of PETG is ~80 to 85C being significantly less impacted by the generated heat. Thereby, not as susceptible to warping and distortion should the environment also be warm.

Step 4: Post Processing

Some post processing may be required to remove aberrations in the cavities and around the edges in addition to smoothing the holes in the engine body, coil former, coil holder & plunger.

Use a needle file and/or sanding paper to smooth the parts in areas were they come together.

Step 5: Timer IC Drive Circuit

This version of the drive circuit uses a 551 timer (or equivalent), this allows the control of both frequency and duty cycle allowing optimisation of the motor action.

The output is connected to the potentiometer which controls the duty cycle with the output high one diode is forward biased charging the capacitor whilst the other potentiometer is disabled as the other diode is reverse biased.

When the capacitor charges to 66% of Vcc the output switches low and discharges via the forward biased diode and the duty cycle and frequency potentiometers with the other diode being reverse biased until the capacitor voltage reaches 33% of Vcc and the output switched high.

The single output is split into two anti phase outputs accomplished with NFET's which drive the coils.

The active pulse width and frequency can be calculated from known component values, although actual results will be infuenced by component tolerances.

However, for optimisation and ease of setup variable resistors for both frequency and duty cycle are used.

Trim potentiometers are used to control the engine however, these could be substituted for full size potentiometers mounted on the upper part of the housing to ease setup and adjustment.

Pulse Width = 0.693*R9*C1 [0.693* 1k * 10u = 6.93mS, 0.693 * 47k * 10u = 326mS]

~7mS is the lower operational pulse width.

Duty cycle = 1.75% to 82.5%

Frequency = 1/(0.693(R9 +R10)C1) [1/(0.693*(1k+47k)*10u) = 3.00Hz, 1/(0.693*(47k+47k)*10u) = 1.535Hz]

Carefully, assembly the circuit.

Visually check to ensure the components are in the correct locations and correctly orientated.

Without power check across the supply pins with a DMM on resistance to ensure no shorts exist.

Find and eliminate any shorts if identified.

Apply power ensuring the correct voltage (5V), and polarity.

Set the potentiometers to the mid points.

Verify the outputs switch with a 220R resistor monitored either with a DVM or Scope or visually with a LED and 220R series resistor.

Step 6: Coils

The coil is made of ~800 hand wound turns of 35AWG wire on to the coil former with measured values of 30R, 4.2mH & 5 grams, although hand would coils will have some variance due to the likelyhood of miscounted turns and wire length due to non uniform winding.

Some variation is expected which can be compensated within the drive circuit.

The inductance (L) can be calculated from the following:

L = (μ0*N^2*csa)/length

Where:μ0 = 1.25664E−6 T⋅m/A vacuum permeability, N = number of turns, csa = cross sectional area (PI()*R^2), length = solenoid length

L = (1.25664E−6 * 800^2 * (PI*(8/2)^2))/9mm = ~4.4912uH (turns proportional to inductance).

The power dissipation (Watts), of the coil can be calculated.

W = (i^2)*R [I =current, R = resistance]

W = (170mA^2)*30R = 867mW

The temperature rise of the coil can be calculated.

dTemp = ((W *dTime)/M)/SHC

Where: W = Watts, dTime = Time to dTime in seconds, M = mass in grams, SHC = Specific Heat Capacity for Copper 0.385J/gK

dTemp = ((0.867*80)/5)/0.358 = 36.03 degC above ambient.

These are worst case calculations under steady state conditions the influences of environmental cooling, change in coil resistance due to heating, duty cycle and thermal conductivity of filament etc. have not been individually included.

Stick the two halves of the coil former together and once stuck together, file off any excess ensuring the centre hole is smooth and clear of aberrations.

Pass an 8mm drill bit through the centre of the coil former to make sure the hole is the correct diameter and uniform.

Measure a length of ~120mm of wire and tape the opposite of the free end to the outside of the former.

Slide the centre of the former on to a dowel or rod that creates a snug fit to prevent it sliding or spinning.

Wrap the wire around the former keeping the coils tights but not so tight at to snap the wire or separate the two halves of the coil former, keep winding until the coil diameter is just short of the coil former diameter. Keeping the coil within the diameter of the former help prevents the windings being scuffed during insertion into the coil holder which may result in shorted windings.

Hold down the tail end of the winding to the side of the coil former with tape and measure a free length of ~120mm and cut the wire.

Apply clear laquer to the windings around the circumference and let it dry.

Carefully remove the tape holding the wire to the side of the coil former.

Tin the ends of the two free wires with a soldering iron.

Feed the wire through the hole in the coil holder, align the notch in the coil former with the pip in the coil holder and push the coil former down into the coil holder.

Repeat the process for the 2nd coil.

Step 7: Supporting Base

The engine is fitted to a firm base plate to prevent movement when the engine is running and to house the electronics.

This firm base consists of 4mm plywood attached to a container lid which in turn is attached to a block of wood containing the electronics and a piece of acrylic to cap it off.

In this case the plywood base plate is 90(W) x 130(L) mm with rounded edges to fit the lid.

Using the template or the details below measure and mark the fixing points to be drilled to mount the engine on the plywood base.

With the base plate orientated with its longer length horizontally, measure up from the bottom 33mm and draw a horizontal line. This is the centre reference line for the engine base.

Measure from the left hand edge 67.5mm and draw a vertical line down passing through the line previously drawn this is one of two fixing points for the engine base, the other fixing point is at the opposite end of the engine base.

At these fixing points drill 1.5mm holes for 2 x M2 self tapping screws.

From the vertical reference line at 67.5mm measure 35mm horizontally and draw a vertical line down to the edge of the base plate. Measure up along this vertical line 36mm and make a mark.

This is the first reference point for the driven wheel.

From this first reference measure vertically up 16mm and make a mark from there measure vertically up 16mm and make another mark.

At these fixing points drill 1.5mm holes for 3 x M2 self tapping screws.

Measure in 6mm from the apex of each corner and drill 4 x 3mm holes.


Cut the wooden block to the following dimensions 92(W) x 132(L) mm and round the edges to fit the lid.

Place the driver PCB on the wooden block in the corner above the engine and draw around the PCB, cut out this section of the block.

Fit the block in the lid and draw around the edge of the lid were it aligns with the block

Position the USB PCB at the centre back of the wooden block below the edge line and cut a recess to accomodate the PCB, drill two 1.5mm holes to accomodate fixing screws.

Fit the wooden block into the underside of the lid and with the plywood base as a template drill 4 x 3mm holes coincident with the 4 corner holes in the plywood base.

Press 4 x M2 x 20mm knurled pillars into the holes.

With the driver PCB in the recess mark the fixing holes with a permanent marker.

Drill the driver PCB fixing holes with a 3mm drill bit.

Fit 4 x M3 x 10mm countersunk machine screws in each hole and apply heat with a soldering iron to recess the heads.

Remove any build up of plastic that forms around the screw head with a scalpel/file to give a level bed on which to sit the plywood base.

Step 8: Engine Body

The main part of the engine body comprises the block and the base.

Orientate the base such that its longer length is placed horizontally

Position the block on the base aligning the three holes in the base with the three holes in the block.

These can be attached together with a suitable plastic adhesive or alternatively can be screwed together up through the bottom of the base and into the block with 2 x M2 x 6mm brass screws.

With a 2mm diameter brass tube verify that the slot in the block is uniform and the tube can traverse the full length of the slot. Open up any tight spots with a file.

Fit the engine body to the plywood base at the designated points (4.5(x) x 33(y)mm the left most fixing point).

The coils are fitted by pushing the rectangular section into the slot in the base and with the main body butting up to the side of the block, hold in place with an M2 x 12mm passing through the hole in the base and the rectangular section.

Check the alignment of the hole for the plunger by sight and insertion of the plunger .

If the plunger rubs on the inside of the block and/or coil holder, adjust the coil holder or lightly file any high points in the coil holder or block

The large vertical hole in the engine block serves as a chimney sucking air through the slot and aiding with cooling .

Step 9: Plunger

Lightly smooth the outer surface of the plunger with fine sanding paper to reduce the ridges imparted by the printing process as the ridges will impact the smooth transition of the plunger through the solenoid.

Carefully open up the centre hole in the plunger with a 5 mm drill bit.

Using a 2.5mm drill bit open up the hole for the retaining pin and the push rod.

Insert into the plunger 4 x 5(dia)mm cylinder magnets, two either side of the retaining pin all orientated the same way ideally the tolerance should be such that the magnets stay separated either side of the hole.

However, if the magnets come together to block the hole adopt the following method.

Orientate, the plunger with the crank hole to the right and insert two magnets into the opposite end.

As a permanent solution adhesive can be applied to the magnets or inside the tube.

Insert the plunger into the engine block.

Align the 2.5mm hole in the plunger body with the slot in the engine body and inset the brass retaining pin (2.5(dia) x 12(L) mm).

The stroke (distance the plunger moves), is 10mm.

The main aim was to build a predominately 3d printed engine however, in doing so there are some limitations.

Do to the poor thermal conductivity of plastic compared to metal an alternative plunger using copper, brass or aluminium can be substituted to improve heat dissipation.

A metal plunger will be the same length as the 3D printed plunger 55mm, 8(OD) x 5(ID) mm, with 2.5mm holes at 3.5mm and 37mm from the front of the plunger.

Cut a vertical slot along the diameter at the front of the plunger 8(L) x 3.5(W)mm, enabling the brass tube to pass through the plunger and the crank, creating a pivot point for the crank.

Step 10: Driven Wheel

The wheel is driven by the action of the piston.

Once the 65(L) x 6(dia) mm tube is sawn and deburred with a file, threaded inserts are fitted in each end.

Prepare a chrome plated M3 x 10mm hollow standoff by filing the edges on one end to create a shallow taper.

(The chrome plated M3 standoffs were a little wider for a snug fit compared to the non plated brass standoff, this may simply be down to supplier variations).

The taper is to allow the standoff to just fit into the inner edge of the steel tube without falling out.

Fit one standoff in each end of the steel tube and place it on the flat top surface of a vice or wooden block. Lightly tap the standoff with a hammer to drive the standoff into the tube.

If necessary rotate the tube and repeat the process if the standoff on the other end still protudes.

On one end slide on a flanged bearing ensuring the flange is ~6mm from the end subject to tolerances of the bearing and tube, filing of the tube may be required to enable the bearing to slide on but not too lose that it slides off.

Fix the fly arm support to the plywood at the designated location (35(y) x 3(x)mm from the rightmost screw hole of the motor base), with 3 x M2 x 8mm self tapping screws.

Insert one flange bearing into the fly arm in the hole furthest from the motor.

Push the tube complete with flanged bearing into the free hole and push through until the flange bearings are flush with the surface of the fly arm.

Prepare the perforated wheel by pressing a countersunk M3 x 10mm machine screw in the centre hole on the opposite side to the tube retaining flange with a soldering iron until the screw head is flush with the surface of the wheel.

Remove any build up of plastic that forms around the screw head with a scalpel/file to give a level surface.

Into one of the holes around the perimeter of the screw head drill a 3mm hole.

Into the hole just made around the perimeter of the screw head press fit a 10mm knurled standoff with internal M2 thread. The knurled standoff is were the crank attaches.

Attach the perforated wheel to the tube closest to the motor by the M3 screw.

Similarly prepare the other perforated wheel excluding the knurled standoff and attached to the other side of the tube.


Step 11: Crank

The crank connects the piston to the driven wheel.

Using a 3.2mm drill bit widen the holes at each end of the crank.

Connect the crank to the piston using a 2(dia) x 10(L) mm brass tube passing through the hole at the front of the piston and the hole at the end of the crank. For added security a M2 x 12mm screw can be passed through the tube and secured with a washer and nut.

Push the other end of the crank over the knurled standoff and secure on place with an M2 x 10mm screw and washer

Step 12: Wiring

Prior to fixing the PCB in place.

Conect one of the coils to a pin header pair and with the plunger in place apply power and observe whether the plunger is pushed in or pushed out of the engine block.

Its required that the plunger is pushed in by each coil alternately.

Once you have identified the correct wiring orientation for the coil mark the wire that connects to the supply with red varnish or paint.

The wires from the coils are taken through 2 x 2mm holes drilled in the corners behind the engine base.

These holes come out in the cavity behind the driver PCB.

Feed the wires from the coils through the holes and attach each to an output pin pair.

Connect the USB socket to the supply pins by two short lengths of wire.

Fix the PCB in place with 4 x M3 x 10mm hex pillars.

Power up and test the motor adjusting the the frequency and duty cycle trim pots. for a consistant action.

Step 13: Base Cover

The base cover serves to protect the electronics as well as forming the base on which the project will sit.

Cut an acrylic sheet to the following dimensions.140(L) x 102(W) mm and round the corners to match the rest of the build.

Align the base with the upper part of the housing, apply masking tape to hold it in place and using the knurled inserts as a guide. Pass a 1.5mm drill bit down through the insert to make a hole in the acrylic, repeat for the other 3 holes.

At the bottom of the base counter sink the holes and open up them up with a 2mm drill bit

Attach the base with 4 x M2 x 10mm countersunk screws.

Step 14: Operation

Identify a suitable location for the engine. (i.e. desk).

Insert a USB C lead into the socket at the back and into a power adapter.

The engine will start.

Simply remove the power to stop the engine.

The container used to mount the engine has a transparent body which can be used to both protect and cover the engine in use or purely on display. In either case the transparent body does not hinder the USB cable.

Step 15: Finally

Not all projects are one offs with a simple progression from start to finish.

A couple of protypes were constructed to evaluate different ideas, fixes, improvements and scaling up the design prior to this version.

Anyway, that all for now. Thanks for reading.