1 
Final Written Report 
Cylinderella Story 
5/31/2014 
   
 
   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 
Table of Contents
      i.    List of Figures………………………………………………………. 
      ii.   List of Tables…………………………………………………. 
      iii.  List of Equations…………………………………………………..  
1. Introduction…………………………………………………….. 
2. Engine Concept…………………………………………………. 
3. Engine Detailed Engineering & Development………………………. 
a. Strength of Materials Calculations………………………….. 
b. Engine Imbalance Study…………………………………………... 
c. Stiffness of Crankshaft Analysis……………………………………… 
d. Tolerance Stack Up……………………………………… 
4. Thermodynamic Energy and Fluid Flow Models……………………………………… 
a. Calculations and PV Diagrams……………………………………… 
b. Discharge Coefficient Valves……………………………………… 
5. Strategy, Software Coding for Valve Control, Physical Circuitry……………… 
a. Strategy……………………………………… 
b. Software Coding for Valve Control……………………………………… 
i. Power vs. Efficiency……………………………………… 
ii. One­Cylinder Engine Tests……………………………………… 
iii. Static Delay of Valves……………………………………… 
iv. Intake Valve Cutoff Point……………………………………… 
v. RPM Advance……………………………………… 
vi. Tank Pressure Influence on Cutoff Point……………………… 
vii. Additional Tuning……………………………………… 
c. Physical Circuitry……………………………………… 
6. Engine Fabrication and Manufacturing……………………………………… 
a. Manufacturing Plan……………………………………… 
b. Design for Manufacturing, Machining, and Assembly………………………… 
c. Bill of Materials……………………………………… 
d. Cylinder to Piston Sealing……………………………………… 
e. Crankshaft Design……………………………………… 
7. Mechanical and Valve Timing Testing……………………………………… 
 
3 
a. Mechanical Testing……………………………………… 
b. Valve Timing Testing: ……………………………………… 
8. Testing Day Results……………………………………… 
9. Team……………………………………… 
a. Dominic…………………………………………………………………………… 
b. Brad……………………………………… 
c. Forrest……………………………………… 
d. Wenbo……………………………………… 
e. Yuting……………………………………… 
f. Sejun……………………………………… 
10. Lessons Learned……………………………………… 
a. Dominic……………………………………… 
b. Brad……………………………………… 
c. Forrest……………………………………… 
d. Wenbo……………………………………… 
e. Yuting……………………………………… 
f. Sejun……………………………………… 
11. Course Improvements……………………………………… 
a. Dominic……………………………………… 
b. Brad……………………………………… 
c. Forrest……………………………………… 
d. Wenbo……………………………………… 
e. Yuting……………………………………… 
f. Sejun……………………………………… 
12. Appendices……………………………………… 
a. Appendix A:Detailed Drawings……………………………………… 
b. Appendix B: Budget: ……………………………………… 
i. Parts……………………………………… 
ii. Machining Time……………………………………… 
c. Appendix C: Digilent Code……………………………………… 
d. Appendix D: Thermodynamics Calculations………………………………… 
 
 
4 
i ‐ List of Figures
Figure 1: Team Photo…………………………………………………….. 
Figure 2: Engine Overview………………………………………….. 
Figure 3: Crankshaft Overview……………………………………. 
Figure 4: Loads on piston………………… 
Figure 5: Side view of piston………………………… 
Figure 6: Top view of piston………………………………….. 
Figure 7: Loads on the piston pin………………………….. 
Figure 8: Loads on the connecting rod……………….. 
Figure 9: Crankshaft Free Body Diagram…………………………………………... 
Figure 10: Simplified Crankshaft Free Body Diagram…………………... 
Figure 11: Crankshaft Shear and Moment Diagrams………………………….. 
Figure 12: Loads on bearing.…………………………... 
Figure 13: Basic model of single cylinder engine.…………………………. 
Figure 14: Typical polar plot of imbalance forces in single cylinder engine.…………… 
Figure 15: Imbalance plot of one cylinder of the Cylinderella Story engine.…………… 
Figure 16: Basic model of single cylinder engine with balance mass.…………… 
Figure 17: Imbalance plot of the Cylinderella Story engine with a balance…………………. 
mass.…………………………….. 
Figure 18: Imbalance plot for the Cylinderella Story engine with balance mass of 
B = .463lb.…………… 
Figure 19: Crankshaft model used for testing torsional stiffness….. 
Figure 20: Results of torsional stiffness analysis….. 
Figure 21: Sketch used to find angle of deformation….. 
Figure 22: Crankshaft model used for testing bending stiffness…. 
Figure 23: Results of bending stiffness analysis…. 
Figure 24: ​Tolerance stack up sketch…………... 
Figure 25: Power and efficiency curves for 1 cylinder using parameters specified……... 
Figure 26: Revised efficiency curve using actual clearance volume……….. 
Figure 27: P­V diagram for when line pressure fills just Vc.  The intake is then turned off and 
the air is expanded………………. 
 
5 
Figure 28: P­V diagram for when intake valve closes when the piston is 20% of the distance 
away from TDC…………... 
Figure 29: P­V diagram for when intake valve closes when the piston is 40% of the distance 
away from TDC…………………... 
Figure 30: P­V diagram for when intake valve closes when the piston is 60% of the distance 
away from TDC………………………... 
Figure 31: P­V diagram for when intake valve closes when the piston is 80% of the distance 
away from TDC……………………. 
Figure 32: P­V diagram for when intake valve is open until the piston is at BDC.. 
Figure 33: Programming Flow Chart……... 
Figure 34: Delay vs. Air pressure diagram………………... 
Figure 35: Power circuit & encoder diagram……………………... 
Figure 36: Photo of the actual power circuit………... 
Figure 37: Photo of encoder wiring and wire harness rail…………. 
Figure 38: Valve & LED circuit Diagram 
Figure 39: Photo of actual valves & LED circuit Diagram 
Figure 40: Button Circuit Diagram 
Figure 41: Photo of rail used for wiring harness 
Figure 42: Photo of finalized version electronic box & engine wiring 
Figure 43: Air pressure in the tank after complete stop 
Figure 44: Weight balancing stance for the least friction on rear tires 
 
Figure A1: Crank Block………………………... 
Figure A2: Crank Bar A……………………………………… 
Figure A3: Crank Bar B……………………………………… 
Figure A4: Crank Bar C……………………………………… 
Figure A5: Crank Bar D……………………………………… 
Figure A6: Hexagonal Stock……………………………………… 
Figure A7: Side Plate……………………………………… 
Figure A8: Bearing Support……………………………………… 
Figure A9: Base Plate……………………………………… 
Figure A10: Middle Plate……………………………………… 
Figure A11: Top Plate……………………………………… 
 
6 
Figure A12: Cylinder……………………………………… 
Figure A13: Piston……………………………………… 
Figure A14: Connecting Rod……………………………………… 
Figure A15: Assembly guide for crankshaft.…………………………… 
Figure A16: Crankshaft bill of materials.…………………………… 
Figure A17: Assembly guide for engine.…………………………… 
Figure A18: Engine bill of materials.…………………………… 
 
ii ‐ List of Tables
Table 1: Simplified Free Body Diagram Forces…………………………… 
Table 2: Results of Thermodynamic Analysis 1.……………………… 
Table 3: Results of Thermodynamic Analysis  2………….. 
Table 4: Machined Parts Bill of Materials…………………….. 
Table 5: Standard Parts Bill of Materials…………… 
 
Table B1:​ ​Purchased Parts and Materials……….. 
Table B2: Machined Parts Bill of Materials……………………………………… 
Table B3: Standard Parts Bill of Materials……………………………………… 
iii ‐ List of Equations
Equation 1: Piston head area…………………… 
Equation 2: Piston tensile safety factor………………………………… 
Equation 3: Maximum force on piston head………………………………….. 
Equation 4: Shear stress on piston head……. 
Equation 5: Piston shear safety factor……………………………… 
Equation 6: Pin shear safety factor…………………… 
Equation 7: Pin tensile stress………… 
Equation 8: Pin bending moment………... 
Equation 9: Pin moment of inertia……….. 
Equation 10: Pin tensile safety factor……. 
Equation 11: Connecting rod hole area…… 
Equation 12: Connection rod axial pressure…. 
 
7 
Equation 13: Connecting rod axial yielding safety factor…….. 
Equation 14: Connecting rod hole tear­our stress……. 
Equation 15: Connecting rod hole tear­out safety factor……. 
Equation 16: Connecting rod buckling moment of inertia……. 
Equation 17: Connecting rod buckling critical force……… 
Equation 18: Connecting rod buckling safety factor……….. 
Equation 19: Crankshaft transverse shear stress for d = 0.25 in………. 
Equation 20: Crankshaft transverse shear stress for d = 0.3125 in………….. 
Equation 21: Crankshaft transverse shear stress for d = 0.375 in…………….. 
Equation 22: Crankshaft torque shear stress for d = 0.25 in………. 
Equation 23: Crankshaft torque shear stress for d = 0.3125 in………….. 
Equation 24: Crankshaft torque shear stress for d = 0.375 in…………….. 
Equation 25: Maximum crankshaft shear stress for d = 0.25 in 
Equation 26: Maximum crankshaft shear stress for d = 0.3125 in 
Equation 27: Maximum crankshaft shear stress for d = 0.375 in 
Equation 28: Load capability of bushing with h = 0.25 in 
Equation 29: Load capability of bushing with h = 0.375 in 
Equation 30: Load capability of bushing with h = 0.5 in 
Equation 31: Sliding velocity at bearing 
Equation 32: Product of pressure and sliding velocity with h = 0.25 in 
Equation 33: Product of pressure and sliding velocity with h = 0.375 in 
Equation 34: Product of pressure and sliding velocity with h = 0.5 in 
Equation 35: Tensile strength of fastener 
Equation 36: Shear strength of fastener 
Equation 37: Primary engine imbalance force…………. 
Equation 38: Secondary engine imbalance force…………. 
Equation 39: Moment arm length………………. 
Equation 40: Crankshaft axial moment…………… 
Equation 41: Crankshaft torsional spring constant…………. 
Equation 42: Crankshaft bending spring constant……… 
Equation 43: Adiabatic expansion work………. 
Equation 44: Gas expansion work lost…………. 
Equation 45: Isothermal energy expended…………. 
 
8 
Equation 46: Thermodynamic efficiency………… 
Equation 47: Engine power prediction………… 
Equation 48: Ideal gas pressure………………. 
Equation 49: Thermodynamic mass………………….. 
Equation 50: Ideal gas temperature……………. 
Equation 51: Modified ideal gas pressure………………. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9 
1 ‐ Introduction
The engine design and build project presented a unique combination of challenges.  The 
engine was required to run efficiently, as well as produce high power.  It had to fit within weight 
and size constraints, while also staying under a predetermined budget.  Furthermore, the engine 
design had to be simple enough that inexperienced machinists could create it.  All of these 
constraints had to be met under a tight time schedule. 
A three cylinder, in­line engine was chosen as the best available option to meet the 
project requirements.  Thorough engineering analysis was incorporated into making design 
decisions, including strength of materials calculations, crankshaft strength calculations, and 
thermodynamic calculations.   
The cylinders were made from extruded aluminum piping.  Bronze pistons were used, 
with U­cup seals to seal the piston to the cylinder wall.  Steel connecting rods connected the 
pistons to the crankshaft.  The bore to stroke ratio for the engine was approximately 1.5, with a 
bore diameter of 1.000”.  The crankshaft was made from a combination of machined rectangular 
cross section steel “crank blocks” and precision ground three eighths inch diameter steel rod. 
These parts were connected using spring pins.  The crankshaft was supported with four steel 
support blocks.  Each support block contained a press­fitted bronze bushing.  The cylinders 
were held in place between two plates.  These plates were clamped together using socket head 
cap screws to keep the cylinders in place.  Pressure was maintained between the top plate and 
the cylinder using rectangular cross section O­rings.   
 
Figure 1:​ Team Photo 
 
10 
Several design choices distinguish this engine from other inline three cylinder engine 
designs.  First, U­cup seals were used to seal the pistons to the cylinder walls.  These seals 
provide an incredibly tight seal, and mean almost no leakage between the piston and the 
cylinder.  This also meant blow­down ports were not a viable option, because the ports would 
likely damage the seal.  Second, only one top plate was used for all three cylinders, rather than 
one top plate for each cylinder.  The single piece was designed to be connected with only eight 
socket head cap screws, while a minimum of twelve socket head cap screws would be required 
if three separate top plates were used.  The single piece design was intended to simplify 
assembly and machining.  Finally, the entire engine support structure was manufactured from 
steel.  Though more difficult to machine, steel provides more strength, and therefore rigidity. 
This rigidity limits vibrational losses within the engine.  The rigidity also provides 
All told, the engine design described in this report meets and exceeds the project 
requirements, and has advantages that other inline three cylinder engines do not have.  Though 
design difficulties were encountered throughout the course of this project, a well designed, well 
performing engine was conceived, constructed, and tested to surpass expectations. 
2 ‐ Engine Concept
At the beginning of the project, a meeting was held to decide the basic geometry of the 
engine.  Several possible alternatives were discussed, including inline, boxer, and radial 
orientations of the cylinders.  After the experience of ME 2900, the radial engine was a natural 
first choice, but was eventually vetoed due to alignment concerns.  LIkewise, a two­cylinder 
boxer was attractive option due to its lack of need for a crankshaft, but was passed on because 
of a perceived lack of power.   
In the end, it was agreed upon to go forward with the design of an inline engine. 
Additionally, a three­cylinder setup was selected, since it would provide the power that a 
two­cylinder engine lacks, but is considerably simpler to manufacture than a four­cylinder 
arrangement.  An isometric drawing of the engine is shown below in Figure 1. 
 
11 
 
Figure 2​: Engine overview 
For ease of manufacturing, as well as for stiffness, it was desired to design and build a 
single­piece crankshaft.  Since no casting or forging methods were available, a single­piece 
construction would mean bending a stock shaft into a crank shape.  Joe West had an apparatus 
capable of doing such a thing, but only for a ¼” shaft.  Since our strength of materials 
analysis­­shown in Section 3a­­showed that ¼” would not be capable of withstanding the 
necessary loads, we needed to look to other designs. 
Eventually, it was decided to use a built­up crankshaft, consisting of 13 machined parts 
held together by spring pins.  While not as easy to machine, this method allowed for the use of 
⅜” rods for a sturdier design.  The crankshaft is discussed in further detail in Section 6e, and an 
isometric drawing is shown below in Figure 2.  The left end of the crank was connected to a 
provided piece of hexagonal stock that was compatible with the competition cart.  The right end 
was turned down so that it could fit through the opening of the encoder, used for valve timing. 
Orthographic drawings of the individual parts used to make the crankshaft are shown in Figures 
A1 to A6 in Appendix A. 
 
12 
 
Figure 3​: Crankshaft overview. 
The crankshaft is supported by bearings in four places: two pieces called Side Plates, 
and two called Bearing Supports.  These parts are made from ½” thick 1018 steel, and each 
have aligned holes for use with ½” outer diameter bronze bushings.  These parts all have holes 
tapped into the bottom face, so that they can be secured to countersunk holes that were put in 
the provided Base Plate.  Orthographic drawings of the Side Plate, Bearing Support, and Base 
Plate can be found in Figures A7 through A9 in Appendix A.  
Sitting on top of the side plate is the Middle Plate.  The Middle Plate is made from ⅜” 
thick 1018 steel. The Middle Plate has a total of 15 holes­­eight clearance holes for use with 
bolts, four tapped holes for attaching to the Side Plates, and three large holes to allow the 
cylinders to vent to atmosphere and for the connecting rods to move.  Fortunately, due to the 
complicated nature of this part, Chad Bivens offered to make it using the CNC machine in the 
first floor machine shop.  An orthographic drawing of the Middle Plate is shown in Figure A10 in 
Appendix A. 
Very similar to the Middle Plate, the Top Plate serves as the end cap for all three 
cylinders.  The Top Plate is also made from ⅜” thick 1018 steel.  The Top Plate has four 
clearance holes, four tapped holes for bolts, and three countersunk, NPT tapped holes­­the 
countersinks serve to locate the cylinders, and the threads enable the use of NPT pipe fittings. 
Like the Middle Plate, the Top Plate was complicated enough to call for the use of Chad’s CNC 
machine.  An orthographic drawing of the Top Plate is found in Figure A11 in Appendix A. 
 
13 
Following a recommendation from Dr. Luscher and Walter Green, the cylinders were 
designed from standard 1” bore aluminum structural piping, which required relatively little 
modifications.  The bore was reamed so that it was truly 1”, and a shoulder was cut into the top 
of the cylinders for use with a square o­ring.  An orthographic drawing of the cylinders is 
available in Figure A12 in Appendix A. 
Pistons were designed to be manufactured from a bronze rod turned down to size.  The 
pistons were designed to have a relatively loose fit with the cylinder, since it was decided to 
implement U­cup seals mounted on top of the piston.  These seals also necessitated a boss for 
seating and a tapped hole on the top for securing with a washer.  The pistons were designed for 
use with ¼” diameter pins and ¼” thick connecting rods, and, accordingly, have a hole and a 
slot for use with these parts.  An orthographic drawing of the piston is available in Figure A13 in 
Appendix A. 
Finally, the connecting rods were designed from ¼” thick 1018 steel.  A relatively simple 
part, the connecting rod has one hole for attachment to the crankshaft and one hole for 
attachment to the piston pin.  The top hole needed to close to the end to provide clearance with 
the top of the piston slot without compromising stroke length.  An orthographic drawing of the 
connecting rod is located in Figure A14 in Appendix A.  
3 ‐ Engine Detailed Engineering & Development
a.) Strength of Materials Calculations 
In order to choose what size the engine components needed to be, some strength of 
materials calculations were required.  For the strength of materials analysis, the minimum target 
Factor of Safety (FOS) was taken to be 4.  This high FOS was necessary since the analysis was 
not perfect, miss­fires and kart dynamics were predicted to cause higher than normal loads, and 
displacement needed to be allowed for. 
i. Slider Crank Engine Elements 
Piston 
Material: Brass 
Ultimate Tensile Strength: 469Mpa, 68000psi 
Yield Tensile Strength: 310Mpa, 45000psi 
Modulus of Elasticity: 97Gpa,14100ksi 
 
14 
Poisson’s Ration: 0.31 
 
Figure 4​: Loads on piston 
Piston Tensile Failure Calculations 
The maximum air pressure is 110 psi.  Equation 1 contains a calculation for piston head 
area.  Equation 2 contains an equation for safety factor for tensile loading. 
  0.5 inr =    
(Equation 1)  π   0.7698 inA =   * r2 =   2  
 (Equation 2).F.      109  4S =  P
Sy
=   110
45000 =   >    
 
 
 
15 
 
 
 
Figure 5​: Side view of piston 
Piston Shear Failure Calculations 
Equation 3 contains a calculation for maximum force on the piston head.  Equation 4 
contains an equation for shear stress in the piston.  Equation 5 contains an equation for safety 
factor for piston shear failure. 
 (Equation 3)  P  A  110 psi  0.7698 in   84.678 lbF =   *   =   *   2 =    
  F/2  2.339 lb Fshear =   = 4  
.04948 inAshear = π * rpin
2 = 0 2  
   
 
16 
Figure 6​: Top view of piston 
 (Equation 4)      855.68 psiτ =  Ashear
Fshear
=   42.339
0.04948 =    
 (Equation 5).F.    52.59S =  45000
855.68 =    
Pin Shear Failure Calculations 
   
Figure 7​: Loads on the piston pin 
   
   
 
18­8 Stainless Steel pin 
Minimum Yield Strength: 45000psi 
Minimum tensile   strength: 80000psi 
For the direct shear it should be same as piston as 855.68 psi 
So the safety factor is: 
 
17 
S.F = 45000/855.68=52.59 (Equation 6)   
52.59>4 
The total force is still 84.678lb for the bending stress: 
σ=My/I (Equation 7)   
M=L/2*F/2=0.448/2*84.678/2=9.483936lb*in (Equation 8) 
y=D/2=0.15625   
I for circular cross section: 
I =π*r^4/4=0.00046813 (Equation 9) 
so the bending stress is: 
σ=3165.5psi 
The safety factor is  
S.F. = 45000/3165.5=14.21 (Equation 10) 
14.21>4 
 ​ ​Connecting Rod Failure 
F=P*A=84.678lb     
Material low carbon steel: 5800psi 
a. Axial yielding in center section 
 
18 
   
Figure 8:​ Loads on the connecting rod 
A=0.25*0.625=0.15625in^2 (Equation 11) 
P_axial = P/A=541.93psi (Equation 12) 
S.F. = 5800psi/541.93psi=10.702 (Equation 13) 
10.702>4 
b. Hole tear­out 
L=0.3125(distance from the top edge of the hole to the top of the connecting rod) 
t=0.25 
τ=p/2Lt=84.678/ (2*0.3125*0.25) =541.9392psi (Equation 14) 
S.F. = 5800psi/541.93psi=10.702 (Equation 15) 
10.702>4 
 
19 
c. Buckling of rod sideways E=70GPa= 70*10^6Gpa 
F= maximum of the critical force 
E= Young’s modulus   
I =area moment of the inertia 
L=unsupported length of rod 
L=3.5 
So L=1.6 in 
I=bh^3/12=0.0008138 (Equation 16) 
 Critical Force equation:  
F=π^2*E*I/(k*L) ^2=π^2*70*10^6*0.0008138/3.5^2=45896.5lb (Equation 17) 
S.F.=45896.47lb/86.394=531.24 (Equation 18) 
531.24>4  
ii.  Crankshaft 
  
A crankshaft was designed for a three cylinder air engine.  The crankshaft is 
designed to be a single piece bent rod. No bolts or pins are required in this crankshaft 
design that need to be analyzed for strength.  Figure 1 contains a free body diagram of 
the crankshaft, subjected to the maximum piston force, Fp, at the location each piston 
connecting rod attaches to the crankshaft.  Four reaction forces are also shown, which 
correspond to the support forces at the bearings.  The outer two bearing forces (Fo) are 
assumed to be identical due to symmetry.  The inner two bearing forces (Fi) are also 
assumed to be identical due to symmetry.   
 
 
 
20 
 
 
Figure 9​: Crankshaft Free Body Diagram 
 
  
To calculate the reaction forces on the beam, a simplified free body diagram of 
the crankshaft was used.  To calculate the reaction forces, the crankshaft was modeled 
as a straight beam rather than a bent crankshaft.  Figure 2 shows the simplified free 
body diagram.  Figure 2 was generated using a tool on​ ​www.sopromat.org​. 
 
 
 
21 
 
 
Figure 10​: Simplified Crankshaft Free Body Diagram 
  
Using the simplified beam free body diagram, reaction forces were calculated.  The 
simplified beam problem is statically indeterminate; the reaction forces cannot be calculated 
with a simple static analysis.  More complex methods involving strain energy or superposition 
are required to solve for the reaction forces.  A calculator found on​ ​www.sopromat.org​ solved for 
the reaction forces in the specific scenario for the simplified crankshaft problem, using the 
principles of strain energy.  The reaction forces are reported in Table 1. 
  
Table 1​: Simplified Free Body Diagram Forces 
Location  Force (lbs) 
Rya = Ryg =Fo  30.24 
Ryc=Rye = Fi  99.36 
Py(b) = Py(d) = Py(f) = Fp  86.40 
 
Based upon these reaction forces, shear and moment diagrams were created for the 
simplified free body diagram.  These diagrams were created using a tool found on 
www.sopromat.org​.  Figure 3 shows the shear and moment diagrams created for the crankshaft. 
 
22 
 
 
 
 
Figure 11​: Crankshaft Shear and Moment Diagrams 
  
 
23 
Based upon the calculated reaction loads and shear and moment diagrams, maximum 
shear stress and axial stress can be calculated.  The maximum shear experienced by the 
crankshaft is a combination of transverse shear and torque shear. The maximum transverse 
shear occurs at the centerline of the rod, and is based upon the shear experienced in the rod 
(as shown by the shear diagram).  The maximum torque shear occurs at the outside diameter of 
the rod, and is based upon the torque the rod is subjected to.  The maximum torque 
experienced by the rod is equal to the maximum piston force multiplied by the length of the 
crankshaft throw.  This value was used to calculate maximum torque shear.  The maximum axial 
stress occurs at the top or the bottom of the rod, depending upon the sign of the bending 
moment.  The bending stress is dependent upon the bending moment experienced in the rod 
(as shown by the moment diagram 
Maximum shear stress and maximum axial stress were calculated for a variety of 
crankshaft rod diameters (¼”, 5/16”, ⅜”). Once maximum shear stress and axial stress were 
calculated for each diameter, the stress values were compared to strength properties of A36 
steel, a common low carbon steel.  A factor of safety was obtained by dividing the material 
strength by the stress experienced in the crankshaft.  A minimum factor of safety of 4 was 
required to give the material a “pass” grade, and move forward with that material for engine 
fabrication. 
 
Transverse shear 
 
For d = 0.25 in 
 (Equation 19)    1500 psiτmax−tran = 3A
4P =   4 56.16*
3π 0.125*
2 =    
 
For d = 0.3125 in 
 (Equation 20)    1000  psiτmax−tran = 3A
4P =   4 56.16*
3π 0.15625*
2 =    
 
 
For d = 0.375 in 
 
24 
 (Equation 21)    700 psiτmax−tran = 3A
4P =   4 56.16*
3π 0.1875*
2 =    
 
Torque Shear 
 
in  F .75 in  4.8 lbsTmax =   p * 0 = 6  
 
For d = 0.25 in 
(Equation 22)        21000 psiτmax−Torque =  T
Q =  2 T*
π r* 3 =   2   64.8 lbs*
π   (0.125 in)*
3 =    
 
For d = 0.3125 in 
(Equation 23)        10800 psiτmax−Torque =  T
Q =  2 T*
π r* 3 =   2   64.8 lbs*
π   (0.15625 in)*
3 =    
 
For d = 0.375 in 
(Equation 24)        6300 psiτmax−Torque =  T
Q =  2 T*
π r* 3 =   2   64.8 lbs*
π   (0.1875 in)*
3 =    
 
Maximum Shear 
 
+ τmax =   τmax−tran τmax−Torque  
 
For d = 0.25 in 
(Equation 25)  1500 psi  21000 psi  22600 psiτmax =   +   =    
 
For d = 0.3125 in 
(Equation 26)  1000 psi  10800 psi  11800 psiτmax =   +   =    
 
For d = 0.375 in 
(Equation 27)  700 psi  6300 psi  000 psiτmax =   +   = 7  
 
Shear Failure 
 
For ASTM A36 Steel: 
 
 (from Solidworks)8000 psiSu  = 5  
 
  0.6 4800 psiSu−shear =   * Su = 3  
 
For d = 0.25 in 
 (fails)    1.54nd−shear = τmax
Su−shear
=  22600
34800 =    
 
For d = 0.3125 in 
 (fails)    2.95nd−shear = τmax
Su−shear
=  11800
34800 =    
 
25 
 
For d = 0.375 in 
 (passes)    5.02nd−shear = τmax
Su−shear
=   7000
34800 =    
 
Bending Stress 
 
   σmax =   I
M cmax
= πd3
 32Mmax
 
 
For d = 0.25 in 
    13800 psiσmax =   πd3
 32Mmax
= π 0.25*
3
 32 21.168* =    
 
For d = 0.3125 in 
    7100 psiσmax =   πd3
 32Mmax
= π 0.3125*
2
 32 21.168* =    
 
For d = 0.375 in 
 
    4100 psiσmax =   πd3
 32Mmax
= π 0.375*
3
 32 21.168* =    
 
Axial Failure ​(due to axial compressive stress in the vertical portion of the crankshaft) 
 
For d = 0.25 in 
      4.20 (passes)nd−bending =   Su
σmax
=  13800
58000 =    
 
For d = 0.3125 in 
      8.21 (passes)nd−bending =   Su
σmax
=   7100
58000 =    
 
For d = 0.375 in 
      14.18 (passes)nd−bending =   Su
σmax
=   4100
58000 =    
 
Based upon the strength analysis, the ¼” and 5/16” crankshaft rods both failed the shear 
stress test.  Only the ⅜” crankshaft rod passed both the shear and axial failure tests with a 
factor of safety of 4.0 or greater.  Therefore, ⅜” A36 rod will be used to fabricate the crankshaft.   
 
 
Bushing Failure 
 
 
26 
  
 Let Shaft Load = F 
 
From crankshaft analysis: F = Fi = 99.36lb 
                                         d = ⅜” = .375 in 
 
Load Capability 
 
P = FA = F / (h d) 
for h = .25”:  P = 99.36lb(.25 in) / (.375 in) = 1059psi (Equation 28) 
for h = .375”: P = 99.36lb(.375 in) / (.375 in) = 707psi (Equation 29) 
for h = .50”: P = 99.36lb(.50 in) / (.375 in) = 529psi (Equation 30) 
Going into this exercise, we had been hoping to use UHMW as the material for our 
bearings.  After performing these calculations, however, it is clear that the static load P is far too 
close to rated strength of UHMW, which is around 750 psi (maximum FS = 1.4).  Thus, we will 
instead opt for bronze bushings, which McMaster­Carr rates at 4000 psi. 
for h = .25”:  FS = Pmax/P = (4000psi) / 1059psi = 3.77 
for h = .375”: FS = Pmax/P = (4000psi) / 707psi = 5.66 
for h = .50”: FS = Pmax/P = (4000psi) / 529psi = 7.56 
So far, both the ⅜” and ½” pass the FOS > 4 test. 
 
 
27 
Sliding Velocity 
v = (π d n ) / 12  where n = rotational velocity in rpm.  For this analysis, let n = 1200rpm. 
v = (π * .375in * 1200rpm) / (12in/ft) = 118ft/min (Equation 31) 
According to McMaster Carr, the bearings we have tentatively selected are rated at 750ft/min 
FS  = (750 ft/min) / (118 ft/min) = 6.36 
These bearings pass the sliding velocity test. 
 
Product (PV) 
for h = .25”:  PV = 1059psi * 118 ft/min = 124962psi ft/min (Equation 32) 
for h = .375”: P = 707psi * 118 ft/min =83426 psi ft/min (Equation 33) 
for h = .50”: P = 529psi * 118 ft/min =62422 psi ft/min (Equation 34) 
 
These numbers for PV were very high, with even the lowest load producing 62,422 
psi­ft/min, which is actually higher than the maximum PV for the bronze bearings we had 
tentatively selected (50,000psi­ft/min).  A quick browse of McMaster’s bushing offerings results 
in very few, very expensive options capable of withstanding such a high PV.  According to the 
Machine Elements textbook assigned for ME3671, however, PV “serves mainly as an index to 
temperature rise at the sliding interface.”  Since the bearings on McMaster are rated up to 450 
degrees Fahrenheit and our engine will generally not operate for long durations of time, we do 
not this that PV will be a big problem, and will proceed with the design calling for the bronze 
bushings.  Furthermore, since the ½” long bearings do not provide a major advantage over the 
⅜” bearing, and the ⅜” ones fit better with the overall design of the engine frame, we will select 
the ⅜” option. 
iv.   Fasteners: 
 We use 8 long ¼­20 fasteners (from machine shop) to fix the middle and upper plate. 
 
28 
According to calculations above, fasteners were applied a tensile force of about 100lb, 
which means each fastener bear 12.5lb tensile force. 
Minor diameter d=0.1959 inch. Thread pitch=1/20=0.05 inch. Effective number of 
threads in the engagement zone that carry the bolt load F,  n​e​ = 4. 
Tensile strength:  σ = (4F) / (π d​2​
) = 414.7 psi (Equation 35) 
Shear strength: τmax = (3F) / (π d p  n​e​ ) = 304.7 psi (Equation 36) 
I do not know what Grade Specifications for the ¼­20 fasteners we used in machine 
shop, so according ME3670 textbook page 493, table 13.3, I regard the fasteners made of 
materials with smallest yield strength in the table, which is 36 ksi. 
Safety factor for tensile strength=36ksi/414.7psi=86.8, which is much larger than 4. 
Safety factor for shear strength=36ksi*0.4/304.7psi=47.2, which is much larger than 4. 
Taking all above into considerations, the  8 ¼­20 fasteners works in our engine. 
b.) Engine Imbalance Study 
GOAL​:  Estimate the magnitude of the engine imbalance forces. Many engine types cannot be 
perfectly balanced in primary and secondary in both translation and moments. 
  
BACKGROUND​: 
Review the two documents posted online which show how to analyze the amount of engine 
imbalance. Consider only a single cylinder of your engine. 
  
i.   Determine the primary and secondary imbalance forces produced by the engine. 
From the slides post on Carmen, the basic model for a single cylinder is like figures below . 
 
29 
 
 
Figure 13​: Basic model of single cylinder engine 
According to the Solidworks model, 
 
30 
 
Assume w=800rpm=83.776rads/s 
primary imbalance force: 
    (Equation 37) 
secondary imbalance force:  
(Equation 38) 
ii.    Create a polar plot of the imbalance forces which are produced by a single cylinder 
of your engine. A typical plot is shown below. Use the actual masses that are associated with 
your engine components. Be sure to show and explain your work 
 
Figure 14​: Typical polar plot of imbalance forces in single cylinder engine. 
 
 
31 
Use Matlab code below, I get the plot. I don’t know how to add vectors in polar plot, so I plot it 
normally. In the code, I decompose ​f​c​ in x and y direction, add ​f​p​ in y direction and compose 
them up. The inner cycle is ​f​c​, the outer cycle is ​f​c​+  ​f​p​. 
x=0:pi/100:pi*2; 
R=0.75;L=3.5; 
w=83.776;​%500­800rpm 
Fp=3.61*(cos(x)+R/L*cos(2*x)); 
Fc=2.7; 
%Fx=Fp; 
Fx=Fc*cos(x)+Fp; 
Fy=Fc*sin(x); 
axis ​equal 
figure(1) 
plot(Fx,Fy) 
hold ​on 
plot(Fc*cos(x),Fy) 
 
Figure 15:​ Imbalance plot of one cylinder of the Cylinderella Story engine. 
From the plot, we can get the maximum force f​max​ = 7.084lbf occurs when the piston is at top 
dead center. 
 
32 
iii.    Investigate the use of a balance mass that can be placed on the crankshaft as 
shown below.  Recreate the polar plot with the addition of the balance mass. You may have to 
go through several iterations of mass to determine the best amount of mass in your engine. Be 
sure to show and explain your work. 
 
Figure 16​: Basic model of single cylinder engine with balance mass. 
Use equation cmr=Bb. From previous questions, m=Mc + Mc’ + Mc’’ =0.1981 lb; r=R=0.75 inch. 
We set b=0.75 inch, B=0.1 lb. The force from the balance was calculated using the same 
equation as ​f​b​ = BRω​2​
 =1.36lb. The code and plots are as follows. ​f​max​ is reduced to 5.724lbf. 
 
clc 
x=0:pi/100:pi*2; 
R=0.75;L=3.5; 
w=83.776;​%500­800rpm 
Fp=3.61*(cos(x)+R/L*cos(2*x)); 
Fc=2.7; 
Fb=1.36; 
%Fx=Fp; 
Fx=(Fc­Fb)*cos(x)+Fp; 
Fy=(Fc­Fb)*sin(x); 
axis ​equal 
figure(1) 
plot(Fx,Fy) 
hold ​on 
plot(Fc*cos(x),Fc*sin(x)) 
 
33 
 
Figure 17​: Imbalance plot of the Cylinderella Story engine with a balance mass. 
Then using same method, I try to set B=0.25lb, and f​max​ =3.684lbf ; B=0.3lb, f​max​  = 3.004lbf; 
B=0.35lb, and f​max​ = 2.324; B=0.4lb, and f​max​ = 1.644lbf; B=0.45lb, and f​max​ = .9634 ; B=0.463lb, 
and f​max​ = .7826lbf. Then with B increases, f​max​  will also increase, so we choose B= 0.463lb, f​max 
reduced by 88.9%! 
 
 
34 
Figure 18:​ Imbalance plot for the Cylinderella Story engine with balance mass of  
B = .463lb. 
 
c.) Stiffness of Crankshaft Analysis 
Our crankshaft design calls for several small pieces to be connected by spring pins to 
form a modular assembly.  In order to analyze its flexibility with Solidworks, however, a part file 
needed to be created so that all of the elements were treated as a single piece.  An isometric of 
this part is shown below. 
 
Figure 19​: Crankshaft model used for testing torsional stiffness. 
Torsional Model and Analysis 
For the torsional model, a constraint was applied to fix one end in all directions.  On the 
other end, a torsional moment was applied through a couple.  So that forces could be applied 
normal to a surface, two small, flat surfaces were added to the end of the shaft (shown on the 
left end of the above picture). 
 
A force of F = 100 lbf was then applied to both surfaces, creating a moment, M​axial​, about 
the centerline of the crank.  The material was chosen to be plain carbon steel.  This material is 
not a direct match for the steel that we used in our actual engine, but since we were not doing a 
plastic analysis, the only material properties that were important were Young’s Modulus and 
Poisson’s Ratio, both of which are relatively constant across different types of steel.  After 
running the test, the results were shown by the following picture. 
 
35 
 
Figure 20​: Results of torsional stiffness analysis. 
Since this study is only an approximation, it was deemed unnecessary to obtain the 
exact displacement at the free end.  Instead, from the displacement picture, the free end was 
observed to have a maximum displacement in the blue region, or approximately 0.023mm = 
0.00090551in.   
To find the angle, a new Solidworks sketch was created (shown below).  After placing a 
point at the correct maximum displacement, it was found that the displacement angle was Θ = 
0.28°. 
 
36 
 
Figure 21​: Sketch used to find angle of deformation. 
Since the couple was applied at the centerline of the flat surface on the shaft , the 
moment arm r​M​ was calculated to be 
r​M​ = r​shaft​ ­ (hf​ace​ / 2) = 0.1875in ­ (0.05in / 2) (Equation 39) 
r​M​ = 0.1625in 
So the moment M​axial​ could be calculated as 
M​axial​ = F * r​M​ = (100 lbf) * (0.1625in) (Equation 40) 
M​axial​ = 16.25 in­lb 
And the torsional spring constant was found to be 
k​torsional​ = (M​axial​) / Θ = (16.25in­lb) / (0.28°) (Equation 41) 
k​torsional​ = 58.0 in­lb/degree 
 
Bending Model and Analysis 
For the bending model, a similar, single piece model of the crankshaft was used.  The 
difference, in this case, was where the flat surfaces were placed.  For analyzing bending, the 
important force is from the piston, and which is transmitted through the connecting rod to the 
crankshaft.  To model this force, again taken to be F = 100 lbf, flat faces were placed on the 
 
37 
bars of the crankshaft that hold the connecting rod.  It is important to note that these faces will 
cause the part to deform more than it would in reality, so this analysis will be a conservative 
estimate.  An isometric is shown below. 
 
Figure 22​: Crankshaft model used for testing bending stiffness 
For the bending analysis, fixed boundary conditions were applied on the crankshaft to 
model the bearings on the actual engine.   The force was assumed to act from only one cylinder 
at a time and in a straight down direction. The simulation was run, and the results are shown in 
the picture below. 
 
 
38 
Figure 23​: Results of bending stiffness analysis. 
Here, it was observed that the maximum deflection  (dark red) was taking place in the 
point of interest, so ᵯ = 0.0008956mm = 0.00003504in.  Thus, the bending spring constant was 
found to be 
k​bending​ = F / ᵯ = (100 lbf) / (.00003504in) (Equation 42) 
k​bending​ = 2.85 * 10​6​
 lbf/in 
 
d.) Tolerance Stack Up 
Tolerance stack­up for gap at top of piston and for crankshaft 
 
 
39 
 
 
40 
Figure 24:​ Tolerance stack up sketch 
 
41 
4‐ Thermodynamic Energy and Fluid Flow Models
Two assignments were completed in order to gain a better understanding of the 
thermodynamics taking place inside the engine.  Both assignments performed calculations for 
only 1 cylinder, and the main goal of each was to investigate the relationship between how far 
the piston is away from TDC when the intake valve is closed (as a percentage of the total 
distance from TDC to BDC) and the power and efficiency of the cycle. 
The first assignment assumes a constant temperature of 293K, a bore of 1”, and an 
oversquare stroke of 1.5”.  The 1” figure for the bore was chosen since it corresponded to the 
largest available size of aluminum tubing.  An oversquare stroke of 1.5x the bore was chosen as 
a starting point based on a recommendation from Dr. Luscher.  Calculations also assume an 
adiabatic process, venting to atmosphere, infinite flow rate, and a rotational speed of 200rpm. 
As an initial estimate, the clearance volume was taken to be a perfect hemisphere with a 
diameter equal to the bore diameter.  MATLAB code used for the assignment is shown below, 
with results following. 
Since the expansion was taken to be adiabatic, the work done by the expansion was 
found with the equation 
 
We = ((( ­Pi * Vi/ (n­1)) * ((( Vi / Vf ) ^ (( n­1 )))­ 1)) + (Pi * Le * Vd )) /12 ​(Equation 43) 
where  
We = work of expansion (ft­lb) 
Pi = tank pressure (psia) 
Vi = initial volume (in^3) 
n = 1.4 
Vf = final volume (in^3) 
Le = intake length (position of piston at time of intake valve closing, as fraction of 
length from TDC to BDC) 
Vd = displacement volume (in^3) 
12 is a constant used to get the We quantity in terms of ft­lb 
 
The work lost (Wl) in expanding the gas to atmosphere is given by  
 
Wl = (Pa .* Vd)/12 ​(Equation 44) 
 
42 
 
where 
Wl = work lost (ft­lb) 
Pa = atmospheric pressure, 14.7psia 
 
Assuming it is an isothermal process, the energy expended in pressurizing the tank is 
given by  
 
Ei = ((­Pi) .* Vi .* log(Pa./Pi))/12 ​(Equation 45) 
 
where 
Ei = energy in the tank (ft­lb) 
 
With these three quantities, We, Wl, and Ei, it is possible to find the efficiency (η) of the 
cycle:  
 
η = (We ­ Wl) ./ Ei​ (Equation 46) 
 
Likewise, it is also simple now to find the power of the engine with the relationship 
 
P = (N * We)./5252 ​(Equation 47) 
 
where 
P = power in hp 
N = engine speed in RPM 
5252 is a constant 
 
Below are the results of the calculations.  The full MATLAB code can be found in 
Appendix D. 
 
Table 2​: Results of Thermodynamic Analysis 1 
    Pure Efficiency  Power (hp) 
 
43 
1  Line pressure fills just Vc.  The intake is then 
turned off and the air is expanded. 
33.0%  0.128 
2  Intake valve closes when the piston is 35% 
of the distance away from TDC. 
49.6%  0.338 
3  Intake valve closes when the piston is 65% 
of the distance away from TDC. 
43.3%  0.431 
4  Intake valve is open until the piston is at 
BDC. 
33.8%  0.466 
 
 
Figure 25​: Power (red) and efficiency (blue) curves for 1 cylinder using parameters specified. 
 
From the results of this exercise, it was gleaned that the engine operates most efficiently 
when the intake valve is closed when the piston is about 35% of the way from TDC to BDC, and 
most powerfully when the intake valve is left open until the piston reaches BDC. 
The second thermodynamics analysis was performed after the team had a more 
concrete design.  For this reason, the clearance volume could be updated to better reflect the 
thermodynamics actually taking place in the engine.  From Solidworks, the clearance volume 
was found to be 0.184 in​3​
, which was somewhat smaller than the value assumed for the first 
assignment.  The engine speed was this time taken as 800rpm.  Bore and stroke remained the 
 
44 
same.  Before any other changes were made to the assumptions, the first assignment was 
redone, this time with a smooth curve plotting the efficiency of the 1 cylinder of the engine. 
 
Figure 26:​ Revised efficiency curve using actual clearance volume. 
 
As seen on the curve, this setup is potentially more efficient than the original.  The 
reduced clearance volume helps to cut down on wasted power, and the higher speed improves 
efficiency for short intake lengths. 
Following these calculations, further measures were taken to help improve the accuracy 
of the figures.  First, the increase in temperature resulting from compressing the air was taken 
into account.  Additionally, rather than assuming an infinite flow rate, a finite flow rate was 
obtained from the electronics team, who had run experiments on the valves to determine the 
flow rates under different pressures.  For this report, a copy of the instructor’s solution 
spreadsheet was used with some values (such as clearance volume and connecting rod length) 
changed to match those of the Cylinderella Story engine.  These calculations assume no 
leakdown, and thus constant mass of air during expansion. 
In MS Excel, volume was calculated incrementally with counting variable j, ranging from j 
= 1 to j = 204.  V​1​ was set equal to the clearance volume.  The incremental volumes, V​j​, were 
 
45 
then spaced linearly between V​1​ and the final volume.  Pressure was then calculated 
incrementally with thermodynamic ideal gas relationships.  For V​j​ < V @ intake closure, 
 
P​j​ = (m​j​ * R * T​j­1​ ) / ( V​j​ * (P​j­1 ​^ (n­1 / n) ) ^ n) ​(Equation 48) 
 
where  
P​1​ = Pa = 14.7psi 
m​j​ = mass, given by 
 
m​j​ = m​dot​ * V​n​ / ( R * T​1​)​ (Equation 49) 
 
where 
m​dot​ = mass transfer rate.  Taken as 0.06 lb/s 
R = universal gas constant.  1155.7 (in­lbf)/(lb­K) 
T​1​ = Ti = 293 K 
T​j​ = temperature (K), given by 
 
T​j​ = T​j­1​ * ( P​j​ / P​j­1​) ^ (( n­1) / n) * (m​j­1​ / (m​j ​­ m​j­1​)) ​(Equation 50) 
 
When Vj = V @ intake closure, the gas begins to expand at constant mass, and so the 
formula changes to 
 
P​j​ = P​j­1​ * (V​j­1​/V​j​) ^ n (Equation 51) 
 
The P­V diagrams were then generated and are presented below. 
 
46 
 
Figure 27​: P­V diagram for when line pressure fills just Vc.  The intake is then turned off and the 
air is expanded. 
 
 
47 
 
Figure 28​: P­V diagram for when intake valve closes when the piston is 20% of the distance 
away from TDC. 
 
48 
 
Figure 29​: P­V diagram for when intake valve closes when the piston is 40% of the distance 
away from TDC. 
 
 
 
49 
 
Figure 30​: P­V diagram for when intake valve closes when the piston is 60% of the distance 
away from TDC. 
 
 
50 
 
Figure 31​: P­V diagram for when intake valve closes when the piston is 80% of the distance 
away from TDC. 
 
 
 
51 
 
Figure 32​: P­V diagram for when intake valve is open until the piston is at BDC. 
 
From these P­V diagrams, work of expansion, previously We, was calculated by 
integrating numerically. 
 
We =  (V​j​ ­ V​j­1​) * ((P​j­1​ + P​j  ​) / 2) ​(Equation 52)∑
204 
j = 1
 
 
Once work was known, the power and efficiency could be calculated as in the first 
assignment.  The results of the calculations are available in the table below.  A screenshot of a 
sample spreadsheet is shown in Appendix D. 
 
Table 3: ​Results of​ Thermodynamic Analysis 2 
    Pure Efficiency  Power (hp) 
 
52 
1  Line pressure fills just Vc.  The intake is then 
turned off and the air is expanded. 
49.6%  0.030 
2  Intake valve closes when the piston is 20% 
of the distance away from TDC. 
73.4%  0.101 
3  Intake valve closes when the piston is 40% 
of the distance away from TDC. 
68.4%  0.153 
4  Intake valve closes when the piston is 60% 
of the distance away from TDC. 
59.4%  0.189 
5  Intake valve closes when the piston is 80% 
of the distance away from TDC. 
48.6%  0.210 
6  Intake valve is open until the piston is at 
BDC. 
35.7%  0.218 
 
The efficiency numbers for these calculations are much higher than in the first 
assignment.  It is important to note that these efficiency figures do not take into account any 
friction effects, leaks, or cart dynamics, and are therefore higher than the actual efficiency one 
will observe when testing the engine. 
Again, however, it is apparent that the most efficient intake closure point is somewhere 
in the 20­30% range.  Likewise, more power can be developed if the intake is left open longer, 
though the increase in power begins to level out as the intake length approaches 100%. 
 
   
 
53 
5 ‐ Strategy, Software Coding for Valve Control, Physical
Circuitry
a.) Strategy 
The overall strategy we developed for winning each event was pretty simple. For the 
efficiency event, we wanted to use as little air as possible. So the amount of time that the intake 
valve is open, also known as the intake length, should be as small as we can possibly get it, 
while still having the engine turn at a smooth pace. For the power run, we wanted to find the 
fastest RPM we could possibly get out of our engine, which meant slowly increasing the intake 
length and testing each value until we found the optimal point. Conserving air was of no concern 
in the power run, so we used this optimum intake length, even though it ended up being quite 
large in comparison to the efficiency run. 
 
b.) Software Coding for Valve Control 
With respect to power versus efficiency, the basic code is practically identical. The only 
aspect that really varies between the codes is the rates at which the intake length and the valve 
opening delay are iterated. Therefore, both the power and efficiency code follow the following 
flow chart with respect to actuating the valves.  
As we can see, the code decides whether or not to actuate the valves based on which of 
the three possible ranges the encoder is in. During the intake range, the intake valve is open, 
and the exhaust valve is closed. This allows air to flow into the cylinder, and to force the piston 
downwards. During the expansion range, both the intake and exhausts are closed. The 
momentum of the piston from the intake cycle carries the piston downwards until it reaches 
bottom dead center. At bottom dead center, the exhaust cycle begins. The intake valve is kept 
closed, while the exhaust valve is opened, to allow air to exit as the piston begins traveling back 
upwards to top dead center. The encoder lets us know the position of the shaft, and thus allows 
to know at any given moment where in this cycle each cylinder is. The code references this 
encoder position to know what to tell each valve to do and when. 
 
54 
   
Figure 33:​ Programming Flow Chart 
Before coding the three­cylinder engine, we first had to get the one­cylinder engine in 
the electronics lab to properly function. This taught us how to optimize our code to find the 
maximum power and efficiency from the engine, a process that would be nearly identical when 
we upgraded to our three­cylinder engine. Using the one­cylinder engine also taught us how to 
read the pressure from the tank provided on the test, and gave us an opportunity to optimize our 
code based on the decreasing pressure in the tank. 
 
55 
In the coding for both the power and the efficiency code, the intake length changes as 
the code progresses. This is because the pressure in the tank decreases as the test goes on. If 
we were to try to stick with one intake length the entire test, we could not reach the best 
possible efficiency or power. Thus, in both the power and efficiency code, we read the pressure 
in the tank every revolution. We do this via  pressure sensor that relays a voltage to the arduino 
device. Since we know the transfer function for the pressure sensor, we can calculate the 
pressure in the device from this value.  
As the pressure in the tank decreases, we must increase the intake length. This is to get 
the same amount of force as we were getting previously, with a smaller pressure. As the 
pressure decreases, the intake length decreases. Note that in the efficiency code, we ended up 
making this section of the code manual. Instead of the intake length increasing based on the 
pressure in the tank, we ended up getting better results by manually increasing the intake length 
via a button on the steering wheel. Given more time to optimize the code, I’m sure automatically 
increasing it would’ve been much more efficient. 
Due to the way the valves functioned, there is a slight delay between sending a signal 
for the valves to open, and them actually opening enough to allow air to flow through. In a 
steady­state flow experiment, we found an estimate of this delay. We also found that this delay 
is a function of the pressure in the hose connected to the valve. The data we collected during 
this experiment is as follows. 
 
56 
 
Figure 34:​ Delay vs. Air pressure diagram 
As we can plainly see, this delay increases as the pressure increases. We used this 
information in our code in order to get the valves to open up at the perfect moment. If we want 
the valve to open up exactly at top dead center, we actually need to open it up slightly early, in 
order to allow the valve to be fully open at the precise moment we need it to be. If we were to 
not incorporate the delay, the valves would actually be opening a few degrees late. 
However, we found that these static results didn’t actually work very well in a spinning 
engine. The actual delay time we found, which we found by iterating the delay until we found an 
ideal point, was actually a bit larger than these values. Because the value of the delay 
decreases with decreasing pressure, we created a function that decreases the delay as the 
pressure in the tank decreased. These equations are as follows. 
For 0<psi<45, ΔT = 0.04(psi)+5 (Equation 53) 
For 45<psi<65, ΔT = ­0.00017(psi)^2 + 0.3126(psi) ­ 3.84 (Equation 54) 
 
 
57 
For 65<psi<80, ΔT = 0.04(psi)+6.6 (Equation 55) 
 
However, the intake valve timing is not based on time, it is based on the encoder, which 
gives the location in divisions. The encoder divides the 360 degrees of the shaft rotation into 
1024 parts. So we needed to turn something like a 17 millisecond delay into units of divisions 
instead. We do this by factoring in the RPM of the shaft. We used the following equation to do 
so. 
 
deltaBit = RPM*deltaT*1024/60000 (Equation 56) 
 
In this equation, deltaBit is the delay in parts per division and deltaT is the delay in 
milliseconds. We can see that it varies with the RPM. Since deltaT varies with pressure, this 
equation technically varies with both pressure and RPM. Since the value of the RPM is usually 
significantly higher than the time delay of the valves, the delay in parts per division almost 
always increases with RPM. 
Once the engine was completed, we proceeded to optimize the code for the power and 
efficiency runs. For the efficiency code, this simply meant increasing the intake length until we 
found the shortest one that would get the engine to run smoothly. For the power code, we do 
the same, but we want to find the intake length that results in the largest RPM. 
 
 
 
c.) Physical Circuitry 
i) Power Circuit & Encoder 
We designed valve control circuit via using transistor and arduino coding. The 
valves are connected to the collector of transistors in parallel with diodes which prevents 
current flow through the base to chipKit. Then control input voltage control from chipKit 
to the base of NPN transistors restricts and allows the voltage drop across the 
transistors. LEDs were included in each valve’s circuit to confirm the valve opening 
actions. The circuit was soldered on the circuit board with careful execution to minimize 
the mistake. Input control from chipKit to encoder and output from encoders are directly 
connected between chipKit and encoder without any additional circuit. Output wires from 
the encoder  
 
58 
 
Figure 35:​ Power circuit & encoder diagram 
 
Figure 36:​ Photo of the actual power circuit 
 
59 
 
Figure 37:​ Photo of encoder wiring and wire harness rail 
 
ii) Valve & LEDS 
In addition to the valve power circuits shown above, LEDs had been set up 
outside of the box right on top of each valve. By having LEDs, easy confirmation on 
valves’ operation problem was made. LEDs have voltage source of 12volts and 
connected in parallel with valves and in series with 10k ohm resistors. 
 
60 
 
Figure 38:​ Valve & LED circuit Diagram 
 
Figure 39:​ Photo of actual valves & LED circuit Diagram 
 
ii) Steering wheel buttons 
 
61 
Logic circuit for left button and right button on the steering wheels are made to 
able to manipulate them the way we want to have an option of adjusting the vehicle 
performance while it’s running on the track. Many different options were suggested but 
only few of them were viable.In efficiency run, we used the right button to increase intake 
open length to boost the horsepower when the engine seems to run slow based on the 
driver’s decision. In power run, we used the right button to decrease the delay of the 
valve timing. 
 
Figure 40:​ Button Circuit Diagram 
 
62 
 
Figure 41: Photo of rail used for wiring harness 
 
Figure 42:​ Photo of finalized version electronic box & engine wiring 
 
63 
 
64 
6 ‐ Engine Fabrication and Manufacturing
a.) Manufacturing Plan 
The engine manufacturing plan developed iteratively as the engine design was refined. 
Ease of manufacture was a consideration throughout as the initial design was created, and then 
progressively improved.  From the beginning of the design process, manufacture was a key 
consideration.  An initial choice was made to use a single piece, bent crankshaft.  The key 
reason for this decision was ease of manufacture.  Though this design was eventually discarded 
due to unforeseen complications, that decision well represents the design philosophy behind the 
engine.  Several promising designs were passed by because of manufacturing difficulty. 
Examples of this include the use of single piece cylinders with no top caps, two piece 
connecting rods, and very tight piston­to­cylinder tolerances.  Each of these design choices 
have significant upside for engine performance, but were deemed overly complex to 
manufacture.  One of the chief criteria when evaluating a possible design was simplicity of 
manufacture, and whether another design could perform the same function with less difficult 
machining Many design choices were made on the basis of ease of manufacture, and they are 
addressed in the “Design for Manufacturing, Machining, and Assembly” section.   
Once the design was finalized, the actual manufacturing plan for the engine was 
relatively simple.  First, the support structure would be manufactured.  The design on these 
parts was deemed least likely to change, so they were assigned to be made first.  If any flaws in 
the design became apparent as the engine was being manufactured, other parts could be 
modified to account for the design flaw.  Once the support structure was made, the plan was to 
make the cylinders.  Two of the cylinders were made in this order, but then a reamer jammed in 
the mill and the machining of the final cylinder was delayed until a later date. Next, the pistons 
were manufactured, with the exception of the hole for the connecting rod.  After that, the 
crankshaft blocks and rods were manufactured. Finally, the connecting rods were made and the 
hole was cut in the piston.  Once all the parts were made, the crankshaft was assembled. 
Following some tweaking to limit crankshaft binding, the whole engine was assembled.   
 
b.) Design for Manufacturing, Machining and Assembly 
 
Several considerations were taken into account to simplify manufacturing and assembly 
of the engine.  First of all, an alternative crankshaft manufacturing method was pursued to save 
 
65 
machining time.  Rather than creating a machined crankshaft, significant enquiry was taken into 
the possibility of creating a bent crankshaft.  A bent crankshaft could be manufactured in 
significantly less time than a traditionally machined crankshaft.  It would save the time of 
creation of 13 individual machined parts for a crankshaft for a three cylinder engine, as well as 
the time to assemble those parts.  Solidworks drawings were created and strength analysis was 
performed to analyze whether the bent crankshaft method was feasible.  The strength analysis 
yielded a minimum crankshaft diameter of 5/16 inches.  The fixture to bend the shafts was only 
capable of bending ¼ inch rod, so this DFMA method had to be dropped.  
Other design decisions were actually included in the final design and implemented to 
simplify manufacturing and assembly.  One of these design decisions was that the main engine 
components were specified to be standard sized parts, to limit the amount of machining 
required.  The main engine supports and the crankshaft rods were both made from standard 
size parts.  A second decision to simplify machining was using through holes rather than tapped 
holes where possible.  To connect the cylinders, through holes with bolts were used rather than 
threaded holes.  A third choice was to use standard size aluminum piping, and ream the inner 
diameter to create the cylinders.  This saved time from creating a custom drilled and machined 
part from a solid piece of material.  A final design choice to simplify machining was to use a 
single plate rather than 3 separate plates to seal the top of the cylinder.  By doing this, only one 
piece needed to be sized and faced, as opposed to three, saving machining time. 
In hindsight, several other design decisions could have been made to further simplify 
machining and assembly.  First of all, aluminum should have been used for the majority of the 
engine support structure rather than steel.  Aluminum is significantly less time consuming to 
machine, and generally less difficult to work with.  This alone would have saved a huge amount 
of machining time.  Second, counterbores should have been placed in the plates that hold the 
cylinders to ensure the cylinders are located in the correct position.  With no counterbores, it is 
very time consuming to assemble the engine so the pistons are located in the exactly correct 
location.  Finally, a design review between the design and the manufacturing team would have 
saved time and limited mistakes.  Several mistakes were made that slowed and complicated 
machining.  In two places on the design, there was part interference that went undetected until 
manufacturing was actually underway. Manufacturing had to be stopped so the design could be 
fixed.  Also, wrong seals and pins were ordered that complicated machining.  Furthermore, 
changing designs throughout the manufacturing process made it so two already completed 
parts were made obsolete and not used.   
 
66 
 
c.) Bill of Materials 
 
Table4 contains a bill of materials for machined parts created for the engine.  Included in 
the table is the quantity of each part made, a description of the material removed from each 
part, the holding method used for machining, the number of surfaces machined while making 
the part, the number of holes machined in the part, and any notes about the machining of the 
part. 
 
Table 4: Machined Parts Bill of Materials 
Part  Quantity  Material Removed 
Holding 
Method 
Surfaces 
Machined 
Holes 
Machined 
Notes 
Baseplate  1 
8 x counterbored thru 
holes for ø 1/4"­20 
bolts 
mill vice  0  8 
machined base plate 
given to team 
Bushing 
Support 
2 
6 sides lightly faced; 
1 x ø 0.501" thru 
hole; 2 x ø 1/4"­20 ↧ 
0.75" tapped holes 
mill vice; 
angle 
plates 
6  3 
 
Connecting 
Rod 
3 
1 side faced; 1 side 
milled to length; 1 x ø 
0.251" thru hole; 1 x 
ø 0.376" thru hole 
vice  2  2 
stock material width and 
thickness already 
undersized; only 
machined two faces 
Crank Rod ­ A  2 
2 x ø 0.1885" thru 
hole; 1 side sanded 
to approximate 
length 
mill rotary 
chuck 
0  2 
sanded to approximate 
length because length 
not critical 
Crank Rod ­ B  3 
2 x ø 0.1885" thru 
hole; 1 side sanded 
to approximate 
length 
mill rotary 
chuck 
0  2 
sanded to approximate 
length because length 
not critical 
 
67 
Crank Rod ­ C  1 
2 x ø 0.1885" thru 
hole; 1 side sanded 
to approximate 
length 
mill rotary 
chuck 
0  2 
sanded to approximate 
length because length 
not critical 
Crank Rod ­ D  1 
1 x ø 0.1885" thru 
hole; 1 x ø 0.249" ↧ 
0.375" hole; 1 side 
faced; 1 side milled 
to length 
mill rotary 
chuck; 
rotary table 
vice 
2  2 
1/4" ground rod press fit 
into ø 0.249" hole for 
encoder shaft 
Crank Block  6 
3 sides faced; 3 
sides milled to 
dimension; 2 x ø 
0.376" thru hole; 1 x 
ø 0.1885" thru hole 
mill vice  6  3 
 
Cylinder  3 
1 side faced; 1 side 
turned to length; 
0.05" long slot cut; 
1.000" thru hole 
lathe chuck  3  1 
one cylinder remade 
due to reamer getting 
stuck in cylinder while 
reaming 
Middle Plate  1  CNC  CNC  NA  NA 
part made on CNC by 
Chad 
Output Shaft  1 
1 x ø 0.1885" thru 
hole; 1 x ø 0.376" ↧ 
1.000" hole 
lathe 
chuck; mill 
vice 
0  2 
hexagonal output shaft 
given to team 
Piston  3 
1 side faced; 1 side 
milled to length; OD 
turned to diameter; 
seal positioning slot 
turned to diameter; 3 
connecting rod slots 
milled; 1 x ø 1/4"­20 
tapped thru hole; 1 x 
ø 0.251" thru hole 
lathe 
chuck; 
rotary table 
vice; mill 
vice 
7  1 
ø 0.251" thru hole 
needed to be 
perpindicular to 
connecting rod slots; 
perpindicular located 
using dial indicator 
 
68 
Side Upper 
Plate 
2 
5 sides lightly faced; 
1 side milled to 
length; 2 x thru hole 
for ø 1/4"­20 bolts 
mill vice; 
angle 
plates 
6  2 
part made but not used 
in final design 
Side Plate  2 
5 sides lightly faced; 
1 side milled to 
length;1 x ø 0.501" 
thru hole; 4 x ø 
1/4"­20 ↧ 0.75" 
tapped holes 
mill vice; 
angle 
plates 
6  5 
 
Top Plate  1  CNC  CNC  NA  NA 
part made on CNC by 
Chad 
 
Table 5 contains a bill of materials for standard parts used in the engine.  Included in the 
table is quantity used, quantity ordered, information on the part used, the McMaster­Carr part 
number, and the price paid for the parts. 
 
Table 5: Standard Parts Bill of Materials 
Part 
Quantity 
Used 
Quantity 
Ordered 
Notes 
McMaster Part 
Number 
Price 
Square O­Ring  3  100 
OD 1 5/16"; ID 1 3/16"; 
thickness 0.070" 
4061T13  $10.32 
U­Cup Seal  3  5  OD 1"; ID 1/2"  9691K53  $4.23 
Grooved Clevis Pin 
w/ Retaining Ring 
3  5  diameter 1/4"; length 3/4"  92735A220  $7.05 
Slotted Spring Pin 
(1.5" long) 
6  25  diameter 3/16"; length 1 1/2"  92373A261  $8.98 
Slotted Spring Pin 
(1" long) 
1  given  diameter 3/16"; length 1"  NA  NA 
ø 1/4"­20 SHCS 
(0.5" long) 
3  given  NA  NA  NA 
 
69 
ø 1/4"­20 SHCS 
(0.75" long) 
8  given  NA  NA  NA 
ø 1/4"­20 SHCS (1" 
long) 
4  given  NA  NA  NA 
ø 1/4"­20 SHCS (4" 
long) 
8  given  NA  NA  NA 
ø 1/4"­20 Nut  4  given  NA  NA  NA 
5/8" OD Washer  3  given  NA  NA  NA 
TIP Transistor  6  given  NA  NA  NA 
Diode  6  given  NA  NA  NA 
LED  6  pre­owned  NA  NA  NA 
Valve  6  given  NA  NA  NA 
Wire  NA  given  NA  NA  NA 
Wire Harness Rail  1  given  NA  NA  NA 
Resistor  6  given  200k, 10k, 20k ohm  NA  NA 
Circuit Board  1  given  NA  NA  NA 
Battery  2  given  9v  NA  NA 
ChipKit  1  pre­owned  Controller  NA  NA 
Encoder  1  given  Run by chipkit  NA  NA 
VGA Cable Set  1  given  Used for encoder  NA  NA 
Ports and Plugs  14  given  NA  NA  NA 
Velcro Patches  NA  given  NA  NA  NA 
Plastic Box  1  given  Electronic Control Box  NA  NA 
Wiring Harness 
Tube 
NA  given 
Used to package multiple 
wires 
NA  NA 
 
d.) Cylinder to Piston Sealing 
Many methods were considered for piston to cylinder sealing.  Three considerations 
were evaluated beyond a cursory level.  These considerations were a U­cup “bicycle pump” 
 
70 
seal, an O­ring seal on the piston outer diameter, and pistons machined to tight tolerance with 
the cylinder.   The tight tolerance cylinder was quickly removed as an option because of leakage 
and machining drawbacks.  Even with a 0.001 inch tolerance, significant leakage would occur 
between the pressurized cylinder and the surroundings, limiting performance.  Also, machining 
the cylinder and the piston to that tolerance would be very difficult, and any machining mistakes 
would further limit performance.  Both the O­ring method and the U­cup method were seen as 
preferable because they provide a tight seal between the cylinder and the piston, with little to no 
leakage.  Ultimately, the U­cup seal method was selected because machining a piston for a 
U­cup seal is simpler than machining a piston for an O­ring.  For an O­ring, a very precise slot 
has to be cut into the side of the piston.  For the U­cup, material has to machined from the top of 
the piston.  Because machining material from the top of the piston is simpler, the U­cup method 
was chosen.  Further benefits of the U­cup seal is that it provides a tighter seal than the O­ring, 
and has less chance of slipping out of place because it is anchored with a bolt.  One 
disadvantage of the U­cup seal is that the tightness of the seal limits performance.  Because the 
U­cup seal seals so well to the edge, it causes a high amount of friction between the cylinder 
wall and the piston, which the engine has to overcome.  This limits the performance of the 
engine.  This was not recognized as a drawback until after the pistons and cylinders had been 
machined, and the engine assembled.   
The U­cup seal leakdown is almost nonexistent.  The seal is incredibly tight, which keeps 
any air from being lost.  A drawback is the friction caused by the seal.  Even when the seal and 
cylinder is well lubricated, significant friction is developed between the seal and cylinder wall, 
which causes losses in the engine. 
 
e.) Crankshaft Design 
 
Two categories of crankshaft designs were analysed for use in a three cylinder 
compressed air engine, a bent crankshaft and a machined crankshaft.  Two variants of the 
machined crankshaft were evaluated, a crankshaft made from rectangular cross section crank 
“blocks”, and a crankshaft made from circular cross section crank “disks”.  Initially, the bent 
crankshaft was chosen due to the machining time savings that could be realized with this 
method.  After further investigation, though, it was discovered that this method of manufacturing 
a crankshaft was not feasible.  The fixture available to bend steel rod was not durable enough to 
bend rod of the required diameter.  Also, it has become clear since design decisions were made 
 
71 
that it would have been incredibly difficult to bend a crankshaft to fit the tolerances necessary 
without causing the bushings or bearings to bind.  The fixture used for bending the material was 
fairly rough and didn’t allow for the required accuracy of angles and length measurements 
needed for the engine.  Though the bent crankshaft option is an attractive one theoretically 
because of the time savings it could provide, the fixture in place could not provide the required 
precision or durability needed.  The two other options, rectangular crank “blocks” and circular 
crank “disks”, are very similar to one another, the only difference being the method for locating 
the crankshaft throws.   The discrepancy between the blocks and disks in terms of actual engine 
performance is the slight increase in reciprocating mass with the disks, as well as slightly 
different engine rotating imbalances.  These differences were considered negligible in the 
decision making process. Ultimately, crank blocks were chosen over crank disks because of the 
material available.  Leftovers from the material used to create the engine support structure 
provided enough material to manufacture the crank blocks.  Additional material would have 
been needed to make the disks.  On the sheer basis of availability, the blocks were chosen.   
The crankshaft was made in two major steps.  The first step was to create six identical 
crank blocks.  Material was cut to general sized and squared.  Then, each crank block was 
milled to the required size.  Three holes were drilled into each crank block.  Two holes were 
drilled for crank rods, and one hole was drilled for the spring pin that would connect the crank 
rods to the crank blocks. The crank block piece was then carefully deburred.   
The second major step was to create seven crank rods.  There were four variations of 
the crank blocks.  The first variation has a smaller diameter at one end than the other, with a 
hole in the larger diameter end for the spring pin.  The smaller diameter was required so the 
shaft could fit into the electronic encoder.  Only one of this variety was made.  The second 
variation has two holes for spring pins that lay in the same plane as one another.  This variety 
was used for the crank throws, which the piston connecting rods attach to.  Three of this part 
were made.  The third variation has two holes for spring pins, but these holes are offset 120° 
from one another.  The offset creates the desired firing pattern for the pistons.  This part slides 
through the crankshaft supports and transmits the engine load to the support structure.  Two of 
this part were made.  The final variety is longer than the others, and has two holes for springs 
pins that lay in the same plane as one another.  This rod serves to connect the crankshaft to the 
output shaft.  One of this part was made.   
Each of the four varieties of crank rods were made from precision ground, ⅜” diameter 
steel rod.  The process for machining each part was similar.  The stock rod was choked in the 
 
72 
rotary vice.  After edges were found, the required holes were drilled and reamed into the rod. 
The rotary vice allowed the 120° offset to be drilled in the third variety rod a high degree of 
precision.  After the holes were drilled, the stock was removed and cut to general size with the 
band saw.  Then, the end of the rod was sanded with a belt sander until it was within 0.020 
inches of the nominal size.   
The crank was then assembled using a press.  First, the crankshaft was laid out on the 
table to ensure all parts were correct.  Then, the crankshaft blocks were attached to the rods 
using spring pins.  The springs pins were installed using a press. The connecting rods and 
crankshaft supports were placed on the crank rods as the crank rods were being fastened to the 
crank blocks.  This fastened them on the crankshaft.  Finally, the output shaft was attached to 
the crankshaft with a spring pin to complete the crankshaft assembly.   
7 ‐ Mechanical and Valve Timing Testing
When our motor was first assembled and run, there was a massive amount of internal 
resistance. For the first day, we struggled to even get the motor to run over 200 rotations per 
minute, even after breaking the engine in for about two hours. We also had severe issues with 
the motor grinding to a halt very suddenly. After seeking help from Joe West, we realized that 
we had severe binding in the rods, where they connected to the crank shaft. Joe recommended 
we try using spacers to keep the rods from shifting over to areas where they were binding. 
Doing so, allowed us to get up to around 450 rpm, but there was still a large amount of internal 
resistance. 
We decided to get the motor running as fast as possible, and then break it in for a few 
hours. We actually ended up running the engine for about 7 hours straight. After doing so, we 
noticed significant improvement in the performance of our engine. We were able to get the 
motor running at about 850 rpm. 
When consulting with Joe West once again, he recommended loosening the support 
plates in between the different sections of the crank shaft. Doing this didn’t really help us get the 
motor running any faster, but it fixed the severe stalling issues we were having. Every once in a 
while, one of the rods would bind up so badly that the motor would just grind to a halt. 
Loosening the vertical support plates actually stopped this problem from happening entirely. 
It should be noted that if we had included a flywheel in the design, much of this could 
have been avoided. The momentum provided by the flywheel could have prevented stalling by 
carrying the motor past the binding points, instead of the motor grinding to a halt at those points. 
 
73 
This was especially noticeable when we ran the motor on the dynamometer. The large flywheel 
of the dynamometer smoothed out our engine to an incredibly extent. We were able to achieve 
rpms we were never able to achieve during table testing, and we had zero stalling. The torque 
we recorded on the dynamometer during the pre­test was 9.5 in*lb with a horsepower of 0.045. 
Our minimum torque we were looking for was 7.0 in*lb, so these results were satisfactory. 
For the actual test, we had to choose which gear ratio we wanted to use on the cart. We 
decided to start both the power and efficiency tests in fifth gear, since we had an adequate 
amount of torque to do so. Doing so let us get the most distance/speed possible out of our 
engine.. For the efficiency test, we ended up shifting down into 3rd near the end of the course, 
and then into 1st when it felt like the motor was going to stall in 3rd. When it came to shifting, 
our motor had severe issues. Due to the lack of a flywheel, shifting caused enough of a stall in 
our motor to sometimes stall the motor entirely at lower pressures. This actually led us to not 
hitting the rail on the final test.   
During our final optimization before the actual test, we were getting average values of 
about 120 feet for the efficiency test, and 16.5 seconds for the power test. However, we decided 
to give the air regulator a try, since we had extra time, which improved our efficiency results to 
an extreme extent. We ended up hitting the rail about four times during our testing, which is a 
distance of 212 feet. However, on average, we made it about 205 feet. 
 
 
 
 
74 
8 ‐ Testing Day Results
a) Efficiency Run (207.5 ft) 
During our optimization, we concluded that it is most efficient to regulate the air 
pressure around 26 psi ­ 30 psi. After numerous tests, we realized that the cart’s 
performance was the most effective, but very unreliable, at 26 psi. In other words, it 
either performed very well by travelling far, and sometimes hitting the rail, or it stopped 
prematurely, usually a few feet from the rail. Regulating the air at 30 psi resulted in very 
reliable performance throughout the distance of the track, but wasn’t nearly as efficient 
as 26 psi (short of 30 ft in average of the well­performed 26 psi run). 
The bottom line is that regulating at 28 psi was safe bet. It was fairly efficient and 
quite reliable, and that was the choice we made for use in the final testing. Just as in our 
practice runs, it performed very well for about 150 ft in fifth gear, and allowed us to safely 
shift down to fourth gear. 
Shifting, however, had some flaws. This matter was very tricky because the 
driver has to bet on either safe additional feet by shifting down a little earlier, or shifting 
down as late as possible to squeeze every distance out of the engine power by staying 
on high gear as long as possible, which may cause premature stop. This time, we made 
a decision to shift down early, and expectedly, the driver was able to safely go on 4th 
gear for about 40 additional feet without any unexpected stop or jerking motion of the 
cart. However, this obviously caused much faster air consumption and resulted in 
shifting failure to 3rd gear due to much less angular momentum. Hindsight is that maybe 
we could’ve shifted 2 gears down to 2nd gear directly, which worked successfully to add 
a few more feet in the practice runs. 
 
75 
 
Figure 43: Air pressure in the tank after complete stop 
As shown above, the air pressure reading in the tank was 25 psi. Given that the 
cart usually stopped around 22psi in practice runs, this is a good indication that the cart 
could’ve travelled further if proper shifting was made. 
 
b) Power Run (15.6 sec) 
For maximizing the horsepower, we did not regulate air pressure at all. With the 
given decision, it was challenging to initiate safe launch of the engine during the practice 
run and optimization. Without flywheel, the momentum created by the expansion of the 
first cylinder was not smoothly transferred to another cycle of second cylinder and 
caused the engine to make only half rotation. Therefore, we could not use longer intake 
opening to increase the time of direct expansion as long as we want it to be. We 
managed to safely launch the cart relatively fast by using 300 parts per divisions for 
intake opening which takes a little less than ⅓ of full rotation with delay ranging from 40 
 
76 
to 140 parts per divisions increased by increments of 20 parts per divisions as rpm 
increases and hit the max angular speed. 
 
Figure 44: Weight balancing stance for the least friction on rear tires 
What we did not expect before was that how much effect the driver’s stance 
affects the acceleration on the ramp and the track. Besides negligible air drag, the 
performance was greatly damaged by weight unbalance on each tires. Rear tires are 
pneumatic which means that they deform during the rotation. Energy is wasted on this 
deformation during the rotation. However, the front wheels are hard wheels and have 
much less rotating resistance. Therefore, the driver practiced on sitting on the cart as 
forward as possible but still managed to steer the cart. This manner was also executed 
during the final testing. 
Our group spend much more amount of time on optimizing efficiency run than 
power run because our cart consistently travelled around 200 ft and that made it hard to 
give up on squeezing out a little more distance to finally reach the rail which will get us 
grade A. We thus had not enough time to optimize power run perfectly. With limited 
amount of time, we decided not to spend too much time on it and use reliable but easy 
coding to save time and avoid risk. The driver’s stance was fairly consistent throughout 
the track and achieve to set the fastest run in the final testing. 
 
c) If more time was given... 
 
77 
If given additional time, we could’ve optimized the coding better, especially for 
the power run on which we had the least amount of time due to long optimization on 
efficiency run. Although it was relatively satisfying outcome to have 15.6 seconds, we 
believe that we could shorten the time a little more if we had a flywheel for our engine. 
Most of the energy loss came from the slight crank shaft imbalance due to 
imperfection in the machining dimensioning. The second steel bar that was holding up 
the engine body and act as a bearing support of the crankshaft was located off by a few 
thousandth of inches. This played in negative role in keeping the shaft as straight as 
possible and made the output shaft wobble during rotation. Also, this created 
unexpected friction which later was eventually was minimized by long engine run. 
However, we realized that, by loosening the bolts that are used to mount the bar on the 
base, we could allow a slight movement of the bar and further minimize the friction. The 
advantage was easily noticeable. The rpm rating was much higher constantly. The only 
downside was that it was causing more vibration and probably energy loss due to the 
vibration.  
Our group definitely would have machined flywheel to smooth out the shifting and 
the launch of the power run if more time was given. As mentioned above, lots of stops 
happen during shift down due to the inability of smoothing out the angular momentum at 
gear changes. If we ran with flywheel, we might have not caused the stop at the 4th ­> 
3rd gear shift. 
 
 
 
 
78 
9 ‐ Team
a.) Dominic 
Since I coordinated many of the team meetings during the catapult project, I was chosen 
by my teammates as the team leader for the engine project.  As team leader, I again 
coordinated meeting times and agendas, distributed tasks among the group members, 
attempted to keep everyone on track, and wrote both the analysis and manufacturing sections 
of our team’s weekly reports.  I headed efforts on several of the analysis assignments, including 
both thermodynamics analyses and the crankshaft FEA analysis.  I was responsible for creating 
all Solidworks models, checking the drawings with Walter, updating them, and distributing them 
to our manufacturing team. I provided some support to the manufacturing team, particularly 
during the final assembly, and to the electronics team during the wiring and testing phases. 
Finally, I assisted Forrest and Sejun during much of the final testing of our engine on the carts. 
Communication was not overwhelmingly successful within the group.  Mostly intragroup 
communication took place over group text, which, while quick and potentially useful, is easily 
ignored and lacks detail and emotion.  I think we would have been better served by having more 
face to face meetings.  
Decisions were made mostly by individuals heading a group.  Thus I made most of the 
design decisions, Brad made most of the manufacturing decisions, and Forrest made most (or 
all) of the coding decisions.  This method was effective in getting a decision made in a timely 
fashion, but we could have been more successful had we involved more people in large 
decisions. 
If the opportunity presented itself to structure the team differently, I would have 
recommended that we make a more absolute division between the analysis team and the 
manufacturing team.  As it happened, four people floated between the analysis and 
manufacturing tasks, which worked great at the beginning of the semester when there was not 
much manufacturing work to do, but came back to haunt us later in the form  of confusion and 
bad communication.  Better divisions would have helped us to focus on our particular part of the 
project, and perhaps would have led to increased overall productivity. 
 
b.) Brad 
 
 
79 
My main role within the group was manufacturing.  I made over 90% of the parts for the 
engine. I also contributed heavily to initial engine design, as well as some of the analysis 
assignments, like crankshaft strength analysis.  I also contributed to thermodynamic assignment 
work.   
Communication within the team was in general poor, which led to delays and unclear 
expectations on different group members.  Improvement was definitely needed coordinating 
between the manufacturing and analysis teams.  Poor communication here led to numerous 
delays in manufacturing.  I did appreciate in our team a general willingness to help out others 
when they needed it, especially from Dominic.  Our team worked really hard and ended up 
creating a successful engine.  The electronics guys did some great work in a really short time 
frame, and were working through the night on multiple occasions. I appreciate that hard work. 
Also, analysis guys were getting assignments done which allowed me to focus solely on 
machining.   Our communication problems made everything a little more difficult than it should 
have been, but all in all I think the team did some great work.  
 
c.) Forrest 
My role within the group was to work on the programming, and to organize the testing of 
the engine. I was responsible for writing the programming, optimizing the engine, and basically 
direct and improve the testing process for the engine.  
Communication within our group wasn’t always the best. The electronics and 
manufacturing sides of the team especially had almost no communication during most of the 
project, which led to a few frustrating experiences during the final testing. Better communication, 
and weekly meetings would’ve solved a lot of these problems, and if we were able to redo this 
project, we would definitely institute those. 
However, near the end of this project, we all pulled together, and began meeting 
frequently. Our progress picked up quite a bit when this happened, and our last two weeks were 
probably more productive than the rest of the time on this project. It was especially helpful to 
have manufacturing people on hand during the final testing, when we ran into quite a few 
mechanical issues that needed fixing. 
Overall, I wish we had more face­to­face contact, since most of our communication was 
through texting and emails, better communication within the different sections of our team, and 
generally worked together more often. 
 
 
80 
d.) Wenbo 
Since manufacture need lots of work and relates closely to design and analysis, we 
decided to let 4 members do the manufacture, design and analysis together. I make the very 
first CAD model according to our discussion, do the tolerance stack up and engine balance 
tasks, material ordering as well as some machining staff. 
The communication in our group is mainly based on email, group text and google doc 
since we have so different schedule for each other. I think it works well. Dominic and Brad make 
most of design and manufacture decisions, and Forrest make most of electronic decisions. we 
discuss about the idea they come up with before realize it. I think we are efficient enough once 
we start the work, but sometimes we start too late so we are behind schedule. I don’t think we 
need to restructure my team. 
 
e.) Yuting 
Wenbo, me, Dominic, Brad working on the manufacture, design and analysis, and Sejun 
and Forest working on the electric part.Dominic as our team leader did many job on basically 
every part, Wenbo did many CAD graph and engine analysis assignment and Brad did most of 
the manufacturing and also engine analysis. I was working on the material strength, and 
material choose for the engine, I also working some part of engine balance and part of material 
ordering.I also did some help on the engine manufacturing. 
For the communication we didn’t have many face to face meeting since the 
manufacturing member and electronic member are doing the completely different work. So most 
of the communication are working by text, email . It actually working well because every 
member are respond the message at first time.And it also save many time. And the main 
decision is usually made by Brad and Dominic. The efficiency of our time is really great, we 
always can finish our goal in short time, and everyone was in same page most of the time. the 
only problem is we usually start working every assignment really late, but is also improve our 
efficiency.I don’t think we need  team restructure. 
 
f.) Sejun 
I did all the tasks regarding designing the circuit board, designing the electronics box, 
installing valves, and wiring between the electronics box and the engine. Since I lost the track of 
the coding modification, there wasn’t much to help Forrest in that aspect. To better distribute the 
work, Forrest focused on coding while I focused almost entirely on wiring. In the beginning, it 
 
81 
didn’t require much time to design and build the circuit box but required lots of constant 
maintenance throughout the project due to the failure of some of the transistors. I was merely 
waiting on the manufacturing team to finish the engine at one point in the project, and was not 
doing much. However, when the engine manufacturing was completed, it was only few days 
before the final testing. Given very short time, we basically had to optimize from A to Z, which 
forced us to stay the whole day in the lab. 
Nevertheless, thanks to our concentrated effort to get every result from every minute, we 
somehow found the best optimization for our engine and managed to execute fairly well in the 
final testing. 
With respect to team communication, some of us asked for information that was already 
announced and learned in the class or carmen posts to other team members. This also wasted 
effort and time by having to keep each other posted numerous times. It would’ve been nicer if 
this possibility of miscommunication was warned in the beginning of the class so that everybody 
can be aware of it and prevent such problems. 
10 ‐ Lessons Learned
 
a.) Dominic 
i)​    ​The biggest things that I learned about design in this project were the value of 
attention to detail, and the importance of doing things right the first time.  Since the time of the 
project was cut by a week due to adverse weather, deadlines at the beginning of the project 
were very close together.  Additionally, that was a busy period in the other classes that I was 
taking, so I did not have much free time to work towards these deadlines.  Under these 
circumstances, I fell into the trap of making just a quick, sloppy effort so that I could be done 
with it and have something to turn in before the deadline. 
As is so often the case with such a strategy, I ended up costing myself far more time in 
the end than had I done it right the first time.  I ended up having to go back and redo nearly 
everything, all while dealing with the low grade I had gotten for the first attempt.  On top of that, I 
had basically gotten myself back into the same position as before, since I was now far behind 
where I needed to be and had to rush to catch up. 
The errors I made while rushing to catch up, however, could have been negated had I 
spent the necessary time and effort to check over my completed work for accuracy.  Instead, the 
errors were exacerbated by my inattention to detail.  Twice I ordered incorrect parts from 
 
82 
McMaster, both of which set our manufacturing team back from the necessary timeline while 
they were waiting for the correct parts to arrive.  Additionally, I neglected to call for locating 
shoulders to be machined on the cylinders, which caused hours’ worth of complications in 
assembly, as well as reduced performance of the engine. 
It is said that we learn more from our shortcomings than our successes, and I certainly 
agree with that saying in the project.  Blaming my mistakes on a rushed timeline is not going to 
get me anywhere, since in industry it is very rare to be operating under a timeline that is not 
rushed.  Operating with limited time, though, is best done by taking the necessary time to do it 
right from the outset, which will end up providing me and my teammates with more time for 
modifications and tweaking down the road.  To put that thought in terms of a design philosophy, 
I think that it is key to get a design on paper early, but only if you put in time and care to check 
the details right away.  If you make a sloppy effort and pass it down the line, either it is going to 
come back to you or the project will have a sloppy outcome.  Or, probably, both. 
           ii) This project was a real challenge as far as professional skills go.  Our team 
struggled at times will all professional skills, but particularly with communication, planning, and 
time management.  Many of the problems stem from poor attendance at lectures and at team 
meeting.  It is much easier to communicate and to figure out what everybody needs to succeed 
when meeting face to face, and there were very few times that all six of us got together to 
discuss progress.  Likewise, it would have been easier for me as team leader to see where 
everyone was with their respective tasks, and I could have stressed to them the importance of 
not falling behind or assigned someone who did not have much to do at the time to help them. 
Beyond problems with communication and delegation of tasks, everyone seemed to 
struggle with keeping up with the project schedule.  As noted above, I was not immune to this 
issue, but it seemed like everyone was always waiting until just before the deadline to begin 
work on a task, even if they had had some free time beforehand.  This strategy precluded 
asking others for help if a snag was hit, and led to errors on the assignment which had a 
tendency to snowball down the line, causing other, more significant errors. 
If I had it to do again, as team leader, I would make more of an effort to set up team 
meetings, and make their attendance more of a big deal.  These wouldn’t need to be very long 
meeting, just a quick update on where everyone is, and also to keep everyone’s focus on the 
project by ensuring that they are at least thinking about it every day.  Additionally, I should have 
taken the time at the beginning of the semester to sit down and write out an actual schedule that 
everyone would be encouraged to stick to.  I think a schedule with deadlines would have helped 
 
83 
my teammates to see just how little time we actually had, which would hopefully encourage 
them to stick to a steady, incremental approach to finishing in plenty of time. 
iii)   ​  ​Although I had been introduced to tolerancing freshman year, I learned a lot more 
about it during this project.  Both from Dr. Luscher’s lecture on the same topic, and in talking 
with Walter, I improved my understanding of how to dimension and tolerance drawings, namely 
by what is important on the part, how accurate it needs to be, and by how accurate the 
machines doing the work are.  This is certainly a skill that I will be able to take with me into the 
workplace 
Otherwise, there are just a few tidbits that I learned or that were stressed to me again. For 
example, whenever possible, avoid calling for steel to be machined if the same part can be 
made from aluminum.  The slightly higher material cost will be far offset by the reduced 
machining time.  Again, I need to remember to take my time and do your homework during the 
design phase, as this too will pay off with reduced machining time.  And finally, remember to 
communicate with the machinist.  Had I asked Brad to look over the drawings in advance, we 
may have been able to avoid some of my errors that cost him time and set us behind schedule. 
iv)​     ​I was not involved much with the programming and electronics team, and so I did 
not learn a great deal of technical information about these topics.  Rather, I was reminded of a 
few simple concepts that I remember from other projects and classes when I had to do the 
coding and the wiring.  First of all, it is difficult and it is frustrating.  The smallest error in coding 
or wiring can have a devastating effect on the outcome of the program, and trying to find the 
error is incredibly annoying.  The same goes for the wiring—a misplaced wire can completely 
derail the machine, and it can be hard to find the wire if the work is not done neatly. 
Relatedly, optimizing the code takes a long time.  It requires many tests and tweaks of 
the code, and can again be a frustrating process.  Thus, it is important to remember to write 
code that can be easily modified, especially if the code is being written before the thing to be 
controlled (in this project, the engine) is ready to be tested.  And, seen from the other side, it is 
important to remember as a manufacturing specialist that the engine needs to be done as early 
as possible so that the electronics team has sufficient time to test it. 
 
b.) Brad 
I learned several major lessons over the course of this project. I’ll spend time addressing 
what I consider the three most major areas of learning: communication; planning; and seeking 
help. 
 
84 
For large periods of time during the design and manufacture of the engine, 
communication was lacking between team members.  This was apparent between the 
electronics subteam and the analysis/manufacturing subteams.  For the majority of the capstone 
design sequence, I was unaware of the progress of the electronics team.  Our team captain was 
in contact between the two sides, but I was completely in the dark.  This led to some delays as 
the engine wasn’t completely manufactured by the time the electronics team needed it for wiring 
and testing.  Communication issues between the members of the manufacturing/analysis teams 
also led to issues.  I took the lead on machining, and personally machined well over 90% of the 
parts for the engine.  Poor communication about the assistance I needed actually led to more 
delays, because some material was damaged and couldn’t be reused.  More parts had to be 
ordered, which took two days to come in and put us two days behind.  Other less major 
communication issues led to shorter delays.  These experiences showed me the importance of 
regular team meetings when working on teams.  I also learned that I should ensure instructions 
are clearly understood, rather than assuming others know what they are doing.   
A second major lesson was about planning.  I recently interviewed with a project 
management firm, and they showed me some project management tools they use involving 
Critical Path Method, which allows you to plan the priority of tasks based upon when they need 
to be finished.  Something like that would have been helpful in finishing machining on time. 
Also, a final design review was not performed as a group.  As the person who did nearly all of 
the machining, I played less of a role in finalizing the engine design.  I knew and helped with the 
initial designs, but was less familiar with the final design.  When I was given the final design 
drawings, I went straight to machining.  There were actually some problems in the design that 
needed to be fixed over the course of machining.  These led to some lost time.  Luckily, these 
late design changes only led to two finished parts being wasted.  I credit luck more than good 
design that more parts weren’t wasted.  If more planning and communication had occurred in 
regard to the design, the whole design and manufacture process would have been much 
smoother and much more efficient. 
A final lesson learned was about seeking help.  As I worked to machine our engine, I 
intermittently talked to Walter about alternative design options.  He showed me design choices 
that would have improved our engine, as well as saved time.  Rather than machining a complex 
piston from bronze stock with U­cup seals, precision ground rod could have been used.  Rather 
than using a flat middle plate, a countersink should have been placed in the plate to help locate 
the cylinders.  Rather than using low carbon steel, leaded steel should have been used for 
 
85 
simpler machining.  These and many other improvements could have been incorporated into our 
design if help had been sought from experts earlier.  Assuming that others (especially those with 
experience) have valuable input is a great way to approach design work, and something I want 
to do more in the future 
 
c.) Forrest 
My biggest takeaway from this project is to complete tasks ahead of time, if possible, in 
order to compensate for possible setbacks in the future. The electronics team got behind by 
about two weeks at one point, due to illness (one which included a hospital visit), and we never 
really recovered from that setback until a few days before the final testing. If I were to do this 
project again, I would definitely try to be at least a week ahead of schedule at any given 
moment. If we had done this, we would be able to more easily compensate for issues we ran 
into later in the project, and setbacks would not be as devastating to the schedule. 
Another lesson I learned, specifically with respect to programming, is to try to keep the 
code as simple as possible. It’s also best to keep each section of the code as 
compartmentalized as possible, so that if something breaks down, it’s easier to find the section 
of code that is to blame. Doing so probably saved me hours when it came to tweaking and 
optimizing the code for the engine, and it is a practice I will keep with me for the rest of my 
career. 
I also learned the importance of communication within a team. If we had weekly 
meetings and had kept each other up to date on what each section of the team was doing, we 
definitely could’ve shaved a few days off our project. This would’ve bought us more time when it 
came to testing, and would’ve caused us to have better results on the final test. It would’ve been 
nice to not have to only have two or three days to actually optimize the motor on the cart. It was 
a frustrating experience I’d rather not have to go through again. 
 
d.) Wenbo 
For the analysis work, I finished the engine balance task right before the due date, so 
even we can reduce the maximum shaking force by 89% with the balance mass according to 
our calculation, we don’t have time to add it in our engine. also for the tolerance stack up task, I 
didn’t think about the size of gap between the piston and top plate. Fortunately our design fulfill 
the requirement for the gap, or we may meet big problem in real test. Next time we should finish 
the analysis work before machining so we could take all the analysis into consideration. I 
 
86 
learned the tolerance stack up method and the idea and calculation of engine imbalance, which 
are never learned before. 
For design and manufacturing, I realize that drawing CAD in solidworks is not the same 
as design. We can draw everything freely in solidworks, but for real design, the model may not 
machined because of it’s strange geometry and strength of material issues. I think that’s the 
most important thing I learned from design and manufacturing. For instance, we planned to 
make a bent crankshaft before but after calculation and getting suggestion from Water, we have 
to redesign it. Also, when we mark the size of model for manufacturing, we should mark them 
from proper datum base rather than mark them randomly, which can make it clearly for us to 
read the drawing when machining. As for ordering materials, we should order a little more 
materials to deal with the situation that we may broke some parts in machining. Actually, we 
break some material for crank bars, as a result, we don’t have enough material to machine it 
and have to wait one day to finish our engine. Working in machine shop reminds me lots of 
memory about machining in ME2900, I relearn many of the machine skills in this project. 
watching other groups’ presentation and getting advice from Prof. Luscher and Mr. Water Green 
also benefits our engine a lot. 
 
e.) Yuting 
The whole class of the 4901 was a great experience for me, as a mechanical 
engineering major student, I am really interested in car and the concept of the car.From 4901, I 
learn many things from make a workable engine with teammate . 
  From the design part, I learned how the engine cylinder works and design, the main 
structure of the whole engine, the different locating place for the different kinds of engine and 
also how the function of the every compose of the engine.Though the power of our engine is air 
pressure, but the working concept is still really similar to the gasoline engine. From the engine 
design part,I also learned that when you don’t familiar with some design and assignment  do the 
most simple and traditional way, because we changed many times of our engine design, the 
crankshaft and crank plate is completely different between the initial and final design. Our initial 
design is really innovative but is really difficult to manufacturing in just three weeks and finally 
we change our design to the most traditional way. 
For the professional skills, I think the 4901, give me many chance to communicate with 
teammate, since I am an international student, I didn’t have many chance to communicate with 
native English speakers during the other ME class. And working with 5 teammate for the whole 
 
87 
spring semester and May session really help me improve the speaking skills a lot ,and the 
whole class also have many presentations which also helps  improve my speaking ability. 
From the Manufacturing, I also did some help with Brad and Wenbo, it help me review 
the use of lathe and familiar with milling, facing and drilling, though I have learned that in 2900 
before, but it has been two years, so during the manufacturing. I learned the method to us many 
kinds of lathe. 
And from the engine analysis, It also help me review many knowledge and machine 
concept from the ME 3670 and 3671. And for the engine balance part I also learn some graph 
technique use matlab.The engine analysis is basically the comprehensive review to the 
knowledge of the ME class before. 
  
f.) Sejun 
Throughout the project, I have learned a lot of design techniques and engineering 
knowledge but it’s hard to list them all in this section therefore I would like to focus more on 
what I learned in terms of self management, engineering discipline my teamwork interaction as 
to contributing for a better teamwork. 
Right after the second session of Capstone project started, I had to go to ER and 
undergo surgery to remove gall bladder which was causing constant stomach pain and 
heartburn (I even had to skip first presentation in the first Capstone session due to major 
heartburn). As a result, I skipped whole two weeks of the second session and later joined as a 
electronic group of our team. This made it challenging for me to follow the class schedule. I had 
to go over the whole carmen posts and hope to understand what’s going on exactly in every 
way possible. 
Due to frequent miscommunication, caused by very different each other’s schedule, we 
were not able to exchange the news and what was learned, I also had hard time understanding 
programming strategy in controlling valves. I finally was able to download some of the major 
coding files but it was still hard to make a real application specifically designed for our 3­cylinder 
due to lack of experience. The biggest hindsight is that I should have managed the time better 
to be able to to both study the codings done by my team member and prepare for the final 
exams. 
In designing an electronic box consisting of valve power circuit & transducer & button 
circuit, careful pre­planning should’ve been better performed. Many times, I jumped into 
breadboard circuiting without carefully understanding circuit diagram. As a result, I made many 
 
88 
mistakes caused from lack of understanding of circuit system causing me to waste unnecessary 
time on the part. Therefore, I was more careful about pre­planning of circuit soldering by fully 
understanding every aspect of the breadboard circuit. This positively influenced the circuit board 
quality especially on correctness of the circuit. For this reason, I did not have to waste 
unnecessary amount of effort and time to fix and relocate the parts. The only unexpected 
accident is when we had transistor for intake valve 1 blown out, but neither this can be easily 
prevented nor there is a ultimate way to prevent soldering error. We easily replaced the parts 
and were able to keep on going our optimization. I recalled the process I’ve taken as an 
improvement of my engineering discipline. 
As to team communication, we exchanged major news fairly well. But when it comes to 
exchanging details, we failed to do so because it became our habit that we were using cell 
phone text most of the time. Some of information that requires you to read it carefully was sent 
from one to another by email but it was never received and reviewed by peers at the right time. 
Not being able to keep each other posted resulted in confusion and miscommunication between 
members and caused us to waste unnecessary time. Therefore, I learned that exchanging the 
information in a timely manner actually saves lots of effort and time. 
 
11 ‐ Course Improvements
 
a.) Dominic 
While this project can be stressful and frustrating at times, overall it has been a good 
experience.  I learned more about real world skills than in any standard lecture/homework based 
class.  
  As far as improvements to the course, however, first, I would have preferred to have 
more time on the engine project, in order to go further in depth with the project and to allow 
more time for testing and optimization.  Accordingly, I believe it would be better to reduce the 
time allowed for the catapult project and add the resulting time to the engine project.  I 
understand that the goal of the catapult project is to get students prepared for the engine project 
and to give them an opportunity to fail when the stakes are low, but I think that most people 
would end up getting much more out of the class if they spent less time painting their Rube 
Goldberg device and more time analyzing and building their air engine. 
 
89 
Additionally, I would say that the lecture format could be changed up a little.  I am 
probably in the minority here, but personally I would have preferred if lecture attendance was 
take and used as part of the grade.  I get the goal to give students flexibility, and I certainly 
appreciate that, but I think that it can sometimes unfairly punish the students who do choose to 
go to lecture.  As the ones who go to lecture, they obviously know the most about how to do the 
assignments and about how the professor would like to see the assignment done.  Thus, when 
it comes time to divide up tasks, the student has a choice: do I do it myself and do it how I know 
I am supposed to do it, or do I ask someone who was not a lecture to do it and risk having my 
grade suffer because he did not do it correctly. 
Perhaps in the end I would advise that there be one weekly mandatory lecture for the 
manufacturing/analysis people, one weekly mandatory lecture for the electronics people, and 
one weekly mandatory Maymester­style meeting with Dr. Luscher.  I would keep that schedule 
consistent throughout both winter semester and Maymester.  I would also not give the students 
two weeks off for exams, since work effectively ceases during that time, which I don’t think was 
your plan. 
It may be a logistical nightmare, and thus not feasible, but it would be cool if this project 
were a cross disciplinary class, where all the wiring and coding is done by electrical engineering 
majors.  That way the code and wiring would be impeccable (and maybe capable of things 
beyond what we’re doing this year), and none of the mechanical engineers get stuck doing 
coding, since most would prefer design or manufacturing roles. 
Finally, I also think there might be a way to make the analysis assignments more 
valuable.  As it is, only two of the assignments (strength of materials and thermodynamics) play 
a real role in the design of the engine.  Would it be possible to structure the assignment due 
dates to have the FEA, engine balance, and tolerance assignments all due prior to the start of 
manufacturing?  This might cause trouble by pushing the manufacturing schedule back, but I 
think it would make the analysis team a more valuable asset. 
b.) Brad 
In general, I really liked this course.  I appreciated the “just go do it” mentality.  The 
flexibility to work as we saw fit was awesome, and something I really enjoyed throughout the 
course.  One suggestion I have is to have a face to face engine design review directly prior to 
machining beginning.  Walter did look through the drawings, but an actual discussion of each 
drawing with the team would have been even more helpful.  This would smooth the machining 
process.  Also, I would recommend a quick 2900 style introduction to the machines and basic 
 
90 
operations that is mandatory for manufacturing teams to attend.  I picked the machining stuff up 
pretty quickly, but some of my teammates had no idea how to use them, which limited their 
ability to help with manufacturing and putting a much heavier burden on me to get the 
machining done on a tight timeframe.   
I agree with Dominic that the analysis assignments should be front loaded so they can 
actually be used for the engine design.  It seems silly that a lot of the assignments were 
completed late in the semester after the engine design was already finalized.  Maybe have a 
four person “engine” team and a two person “electronics” team.   The engine team does all the 
analysis work at the beginning of the semester, then transitions to building.  This would be 
preferable to separate analysis and manufacturing teams.   
I would also prefer a weekly meeting with Dr. Luscher or a GTA rather than the weekly 
team reflections.  This meetings were very helpful, and gave us more information on what 
progress actually looked like, rather than us having to blindly assess our own progress. 
 
c.) Forrest 
To be completely honest, this is the best class I’ve experienced in my entire Mechanical 
Engineering major. I feel like I’ve learned more from this class than most of my other classes 
combined. I love that this class focuses on application of the ideas we’ve learned, instead of 
being strictly theoretical. It was really cool to do the thermodynamics assignment, which was full 
of material we learned in several different classes, and used it to actually optimize a motor we 
physically built, and successfully as well. I was honestly a little blown away when we calculated 
a 20% intake length as the most efficient via mathematical models, and then through 
experimentation found it to be 18%. It was a very cool experience. 
As per improving the course, I felt like it would be nice to impose more accountability on 
the teams. Often, we were behind, but didn’t feel very much external pressure to catch up in a 
timely manner. I honestly think the meetings with Dr. Luscher were a great idea, and was a little 
disappointed that they were never really carried out that much. We only ever had one meeting. I 
think if those meetings started much earlier, and had very clear and strict materials that were 
required to be brought to each meeting (for example, an initial sketch of the motor design, or a 
CAD file of the motor, or even a few parts of the motor we’ve built) it would help keep you 
informed on who is behind, and help put some external pressure on people and maybe keep 
them from falling behind.  
 
91 
However, that has a drawback. A big part of this project seemed to be to learn how to 
properly regulate a group, and to keep up with the deadlines. If there is too much external 
pressure to keep up, I think it’s possible students would take less away from this class. But to be 
honest, talking to other groups, I feel like a lot of us on the electronics team were frustrated by 
how long it took the manufacturing teams to actually get us the finalized motors. It didn’t seem 
very fair that they were so far behind, forcing us to pull several all­nighters in a row just to keep 
up. The last few days of the project, I got a general feeling of overwhelming frustration from the 
other groups I was working with in the lab. 
 
d.) Wenbo 
I think everything is good in this course except that the number of carts to test our engine 
is only two. we have more than ten group totally and every group needs tens of hours to test it, 
sometimes we have to wait till night to get a cart for testing. While ,even we have the third cart, 
room for testing is another problem, I don’t have any idea to solve this problem now. We donate 
our engine to college. The engine carries our good memory and hard sweat, and I hope the our 
engine can contribute to the teaching or something else.  
e.) Yuting 
Is a really good experience to make a movable car engine,is much more fun than the 
other mechanical engineering class I take in OSU. And I think the improvement of this class we 
need is first, the engine capstone class have two sections, the first section is the engine design 
part during second half spring semester. And the second section is the engine manufacturing 
during may session. The time is really tight during the engine manufacturing part because May 
session only have less than 3 weeks for the engine manufacturing, and during the engine 
design section, we actually don’t have so many works to do. So I suggest move more time to 
the manufacturing section from the design section will be much better. 
And during this class the machine group and electronic group were nearly completely 
separate during the class, so it make student only familiar with one part of the engine concept. 
So I think the class should give us more chance to let machine and electronic groups work 
together more and let every group member to understand the whole concept of the engine. 
f.) Sejun 
I would like to first thank all the TAs, Dr. Luscher, Joe, and Walter for helping us build the 
such an awesome engine. I literally never had a chance to build such a complex mechanical 
device in my life. It was quite tough and challenging sometimes but overall, I recall it as a 
 
92 
valuable opportunity in practicing mechanical engineering. Although I very much appreciate the 
willingness of TA’s to teach us with lots of enthusiasm, I still have some suggestions to help 
them improve the teaching experience of students.  
First of all, it would’ve been much efficient if the lab was better organized to effectively 
able to find all the tools and parts. The lab has been very chaotic throughout the entire time of 
the project. I know they are busy helping students but maybe it was possible for TAs to organize 
the parts at the end of the day. 
In terms of learning experience, I nearly had any problem in asking questions to TAs, 
Joe and getting desired answers from them. Overall, I am very satisfied in that aspect. 
 
 
 
 
93 
12 ‐ Appendices
Appendix A: Detailed Drawings
 
Figure A1​: Crank block.  Six pieces of this part were used in making crankshaft. 
 
 
94 
 
Figure A2​: Crank Bar A.  Two pieces of this part were used in making the crankshaft, and 
served to connect blocks through the supports. 
 
 
95 
 
Figure A3​: Crank Bar B.  Three pieces of this part were used in making up the crankshaft, and 
served to hold the connecting rods.  
 
 
96 
 
Figure A4​: Crank Bar C.  One piece of this part was used in making up the crankshaft to 
connect to the output hexagonal stock. 
 
 
97 
 
Figure A5​: Crank Bar D.  One piece of this part was used in making up the crankshaft, and was 
compatible with the encoder. 
 
 
98 
 
Figure A6​: Hexagonal stock.  Modifications were made to the provided hexagonal stock. 
Attached to Crank Bar C. 
 
 
99 
 
Figure A7​: Side Plate.  Two pieces of this part were used to support the crankshaft and the 
upper structure.  Lower tapped holes were used to attach the Side Plates to the Base Plate. 
 
 
100 
 
 
Figure A8​: Bearing Support.  Two pieces of this part were used to support the crankshaft. 
Lower tapped holes were used to attach the Bearing Supports to the Base Plate. 
 
 
101 
 
Figure A9​: Base Plate. Modifications were made to the provided Base Plate so that th Side 
Plates and Bearing Supports could be attached. 
 
 
102 
 
Figure A10​: Middle Plate.  One piece of this part was used to hold cylinders from below. 
 
 
103 
 
Figure A11​: Top Plate.  One piece of this part was used to hold the cylinders from above.  The 
NPT tapped holes were for use with the pipe fittings. 
 
 
104 
 
Figure A12​: Cylinder.  Three of these parts were used in the engine.  The shoulder was for use 
with a square o­ring. 
 
 
105 
 
 
Figure A13​: Piston.  Three pieces of this part were used to transmit the power from the 
expansion of the compressed air to the connecting rods.  The boss was for seating the U­cup 
seal, and the tapped hole was for securing it. 
 
 
106 
 
 
Figure A14​: Connecting rod.  Three pieces of this part were used to connect the pistons to the 
crankshaft.  The top hole was located close to the edge to increase the clearance between the 
connecting rod and the top of the piston slot. 
 
 
 
 
107 
 
Figure A15​: Assembly guide for crankshaft. 
 
Figure A16​: Crankshaft assembly bill of materials. 
 
Crankshaft Assembly 
 
108 
Due to the difficulty of inserting the spring pins, it is easier to assemble the crankshaft in 
with the bearing supports and connecting rods already in the correct positions. 
1. Insert a Crank Bar B into a Connecting Rod.  Put two Crank Blocks on either end of the 
Connecting Rod and secure to the Crank Bar B with two spring pins. 
2. Insert both pieces of Crank Bar A into each of the Crank Blocks from Step 1.  Secure 
each with a spring pin. 
3. Press a bronze bearing into each of the Bearing Supports.  Slide the Bearing supports 
over each Crank Bar A. 
4. Insert a Crank Bar B into a Connecting Rod.  Put two Crank Blocks on either end of the 
Connecting Rod and secure to the Crank Bar B with two spring pins. 
5. Slide a Crank Block from the assembly from Step 4 over one of the pieces of Crank Bar 
A.  Secure with a spring pin.  Slide Crank Bar C into the other Crank Block and secure 
with a spring pin. 
6. Insert a Crank Bar B into a Connecting Rod.  Put two Crank Blocks on either end of the 
Connecting Rod and secure to the Crank Bar B with two spring pins. 
7. Slide a Crank Block from the assembly from Step 6 over one of the pieces of Crank Bar 
A.  Secure with a spring pin.  Slide Crank Bar D into the other Crank Block and secure 
with a spring pin. 
 
 
109 
 
Figure A17​: Assembly guide engine. 
 
110 
 
Figure A18​: Engine bill of materials. 
Crankshaft Assembly 
1. Press fit the bronze bearings into the holes of the Side Plates.  Slide one Side Plate over 
each end of the Crankshaft Assembly. 
2. Place the Side Plates and Bearing Supports over the appropriate holes in the Base 
Plate.  Secure to the Base Plate with eight ¼­20x1 SHCS. 
3. Slide the Output Stock over the Crank Bar A and secure with a spring pin. 
4. Slide each of the Pistons over a Connecting Rod.  Secure by inserting a Piston Pin 
through the holes in the piston, and clipping with the Piston Pin Clip. 
5. Slip the Pistons through the holes in the Middle Plate. Secure the Middle Plate to the 
Side Plate with four ¼­20x1 SCHS. 
 
111 
6. Slide the Cylinders over the Pistons. 
7. Place the Top Plate over the Cylinders, ensuring that each Cylinder fits into one of the 
counter bores in the Top Plate. 
8. Secure the Top Plate the Middle Plate with eight ¼­20x3.25 SCHS.  The four corner 
screws connect to the tapped holes Middle Plate, while the four middle screws need to 
be secured with the ¼­20 hexnuts. 
Appendix B: Budget
Estimate of machining time: 55 hours 
Table B1:​ ​Purchased Parts and Materials 
Part 
Quantity 
Ordered 
Notes 
McMaster Part 
Number 
Price 
Square O­Ring  100 
OD 1 5/16"; ID 1 3/16"; 
thickness 0.070" 
4061T13  $10.32 
U­Cup Seal  5  OD 1"; ID 1/2"  9691K53  $4.23 
Grooved Clevis Pin 
w/ Retaining Ring 
5  diameter 1/4"; length 3/4"  92735A220  $7.05 
Slotted Spring Pin 
(1.5" long) 
25  diameter 3/16"; length 1 1/2"  92373A261  $8.98 
Low Carbon Steel 
Bar 
2’ length  ⅜” thick, 2” width  8910K659  $19.38 
Low Carbon Steel 
Rectangular Bar 
3’ length  ½” thick, 2” width  8910K949  $32.04 
Low Carbon Steel 
Rectangular Bar 
2’ Length  ¼” thick, ⅝” width  8910K269  $5.81 
Steel Drive Shaft  1’ Length  ⅜” OD  1346K11  $6.76 
Bearing Bronze, 
Oversize Rod 
6 ½” 
Length 
1” Diameter  8914K736  $26.29 
Low Carbon Steel 
Bar 
6” Length  ⅜” Thick, ¾” Width  8910K388  $2.76 
 
112 
Graphite SAE 841 
Bronze Flange 
Bearing 
4 
⅜” Thick, ¾” Width, 
 ½” Length 
9440T17  $5.76 
Total        $129.38 
 
 
Table B2: Machined Parts Bill of Materials 
Part 
Quantit
y 
Material Removed 
Holding 
Method 
Surfaces 
Machine
d 
Holes 
Machine
d 
Notes 
Baseplate  1 
8 x counterbored 
thru holes for ø 
1/4"­20 bolts 
mill vice  0  8 
machined base plate 
given to team 
Bushing 
Support 
2 
6 sides lightly faced; 
1 x ø 0.501" thru 
hole; 2 x ø 1/4"­20 ↧ 
0.75" tapped holes 
mill vice; 
angle 
plates 
6  3 
 
Connecting 
Rod 
3 
1 side faced; 1 side 
milled to length; 1 x 
ø 0.251" thru hole; 1 
x ø 0.376" thru hole 
vice  2  2 
stock material width 
and thickness already 
undersized; only 
machined two faces 
Crank Rod ­ 
A 
2 
2 x ø 0.1885" thru 
hole; 1 side sanded 
to approximate 
length 
mill rotary 
chuck 
0  2 
sanded to approximate 
length because length 
not critical 
Crank Rod ­ 
B 
3 
2 x ø 0.1885" thru 
hole; 1 side sanded 
to approximate 
length 
mill rotary 
chuck 
0  2 
sanded to approximate 
length because length 
not critical 
Crank Rod ­ 
C 
1 
2 x ø 0.1885" thru 
hole; 1 side sanded 
to approximate 
length 
mill rotary 
chuck 
0  2 
sanded to approximate 
length because length 
not critical 
 
113 
Crank Rod ­ 
D 
1 
1 x ø 0.1885" thru 
hole; 1 x ø 0.249" ↧ 
0.375" hole; 1 side 
faced; 1 side milled 
to length 
mill rotary 
chuck; 
rotary 
table vice 
2  2 
1/4" ground rod press 
fit into ø 0.249" hole for 
encoder shaft 
Crank Block  6 
3 sides faced; 3 
sides milled to 
dimension; 2 x ø 
0.376" thru hole; 1 x 
ø 0.1885" thru hole 
mill vice  6  3 
 
Cylinder  3 
1 side faced; 1 side 
turned to length; 
0.05" long slot cut; 
1.000" thru hole 
lathe 
chuck 
3  1 
one cylinder remade 
due to reamer getting 
stuck in cylinder while 
reaming 
Middle Plate  1  CNC  CNC  NA  NA 
part made on CNC by 
Chad 
Output Shaft  1 
1 x ø 0.1885" thru 
hole; 1 x ø 0.376" ↧ 
1.000" hole 
lathe 
chuck; mill 
vice 
0  2 
hexagonal output shaft 
given to team 
Piston  3 
1 side faced; 1 side 
milled to length; OD 
turned to diameter; 
seal positioning slot 
turned to diameter; 3 
connecting rod slots 
milled; 1 x ø 1/4"­20 
tapped thru hole; 1 x 
ø 0.251" thru hole 
lathe 
chuck; 
rotary 
table vice; 
mill vice 
7  1 
ø 0.251" thru hole 
needed to be 
perpindicular to 
connecting rod slots; 
perpindicular located 
using dial indicator 
Side Upper 
Plate 
2 
5 sides lightly faced; 
1 side milled to 
length; 2 x thru hole 
for ø 1/4"­20 bolts 
mill vice; 
angle 
plates 
6  2 
part made but not used 
in final design 
 
114 
Side Plate  2 
5 sides lightly faced; 
1 side milled to 
length;1 x ø 0.501" 
thru hole; 4 x ø 
1/4"­20 ↧ 0.75" 
tapped holes 
mill vice; 
angle 
plates 
6  5 
 
Top Plate  1  CNC  CNC  NA  NA 
part made on CNC by 
Chad 
 
Table B3 contains a bill of materials for standard parts used in the engine.  Included in 
the table is quantity used, quantity ordered, information on the part used, the McMaster­Carr 
part number, and the price paid for the parts. 
 
Table B3: Standard Parts Bill of Materials 
Part 
Quantity 
Used 
Quantity 
Ordered 
Notes 
McMaster Part 
Number 
Price 
Square O­Ring  3  100 
OD 1 5/16"; ID 1 3/16"; 
thickness 0.070" 
4061T13  $10.32 
U­Cup Seal  3  5  OD 1"; ID 1/2"  9691K53  $4.23 
Grooved Clevis Pin 
w/ Retaining Ring 
3  5  diameter 1/4"; length 3/4"  92735A220  $7.05 
Slotted Spring Pin 
(1.5" long) 
6  25  diameter 3/16"; length 1 1/2"  92373A261  $8.98 
Slotted Spring Pin 
(1" long) 
1  given  diameter 3/16"; length 1"  NA  NA 
ø 1/4"­20 SHCS 
(0.5" long) 
3  given  NA  NA  NA 
ø 1/4"­20 SHCS 
(0.75" long) 
8  given  NA  NA  NA 
ø 1/4"­20 SHCS 
(1" long) 
4  given  NA  NA  NA 
 
115 
ø 1/4"­20 SHCS 
(4" long) 
8  given  NA  NA  NA 
ø 1/4"­20 Nut  4  given  NA  NA  NA 
5/8" OD Washer  3  given  NA  NA  NA 
TIP Transistor  6  given  NA  NA  NA 
Diode  6  given  NA  NA  NA 
LED  6  pre­owned  NA  NA  NA 
Valve  6  given  NA  NA  NA 
Wire  NA  given  NA  NA  NA 
Wire Harness Rail  1  given  NA  NA  NA 
Resistor  6  given  200k, 10k, 20k ohm  NA  NA 
Circuit Board  1  given  NA  NA  NA 
Battery  2  given  9v  NA  NA 
ChipKit  1  pre­owned  Controller  NA  NA 
Encoder  1  given  Run by chipkit  NA  NA 
VGA Cable Set  1  given  Used for encoder  NA  NA 
Ports and Plugs  14  given  NA  NA  NA 
Velcro Patches  NA  given  NA  NA  NA 
Plastic Box  1  given  Electronic Control Box  NA  NA 
Wiring Harness 
Tube 
NA  given 
Used to package multiple 
wires 
NA  NA 
 
 
 
116 
Appendix C: Digilent Code
Efficiency Code ­ Went 205 feet during the final test 
  
//Sets the points where the intake begins 
int valve1intake = 0; 
int valve3intake = 341.3; 
int valve2intake = 682.6; 
//the initial pressure in the tank 
int pressure = 90; 
int manualvalue = ­10;  
//Setting the points where the intake length ends and expansion 
begins 
int initialendofstroke = 120; 
int endofstroke = initialendofstroke + manualvalue; 
//Setting the pointos where exhaust begins for each of the cylinders 
int valve1endexpansion = 512; 
int valve3endexpansion = 853.3; 
int valve2endexpansion = 170.6; 
int valve1endstroke = valve1intake + endofstroke;   
int valve3endstroke = valve3intake + endofstroke;   
int valve2endstroke = valve2intake + endofstroke; 
//Setting the pins for each of the valves   
int intake1 = 4; 
int exhaust1 = 7; 
int intake2 = 8; 
int exhaust2 = 11; 
int intake3 = 12; 
int exhaust3 = 13; 
//Initializing the encoder location for each of the three cylinders 
int location1 = 0; 
int location2 = 0; 
int location3 = 0; 
 
117 
int revolution = 0; 
float RPM = 0; 
long time1 = 0; 
long timedifference = 0; 
//Initializing the delay in parts per division. Initially 60, but 
decreases as the cart goes off of the ramp, and the RPM slows. 
int deltaBit = 60; 
int counter = 0; 
int othercounter = 30; 
int loopvariable = 0; 
int buttonstate1 = 0; 
int buttonpin1 = 41; 
int buttonpower = 20; 
int buttonvariable1 = 1; 
int buttonvariable2 = 0; 
  
void setup() 
{ 
  attachInterrupt(0, positionfunction, RISING); 
  attachInterrupt(1, rpmfunction, RISING); 
  Serial.begin(9600); 
//Setting up each pin as an output. The button is set up as an 
input, since it works by reading a voltage. 
  pinMode(intake1, OUTPUT); 
  pinMode(exhaust1, OUTPUT); 
  pinMode(intake2, OUTPUT); 
  pinMode(exhaust2, OUTPUT); 
  pinMode(intake3, OUTPUT); 
  pinMode(exhaust3, OUTPUT); 
  pinMode(buttonpin1, INPUT); 
  pinMode(buttonpower, OUTPUT);  
} 
  
 
118 
void loop() 
{  
  ​//This begins reading the state of the button 
  buttonstate1 = digitalRead(buttonpin1); 
  
  ​This decreases the delay to 40 PPD after 30 revolutions 
  if(counter == 30) 
  { 
deltaBit = 40; 
  } 
   
  //Calculates and returns the RPM every revolution 
  if(revolution==1) 
  { 
RPM = 1 * (60000/(millis()­time1)); //If revolution = 1 
time1 = millis(); 
revolution = 0; 
Serial.print("RPM: ");   
    Serial.println(RPM); 
  } 
  
//When the button is low, this increases the intake length by 10 
parts per division. The variable ensures it only goes through the 
loop once. 
 
  if(buttonstate1 == LOW & buttonvariable1 == 1) 
  { 
delay(20); 
buttonstate1 = digitalRead(buttonpin1); 
if(buttonstate1 == LOW) 
{ 
  manualvalue = manualvalue + 10; 
  endofstroke = initialendofstroke + manualvalue; 
 
119 
  buttonvariable1 = buttonvariable1 ­ 1; 
  buttonvariable2 = buttonvariable2 + 1; 
  Serial.print("Endofstroke: ");   
      Serial.println(endofstroke); 
} 
  } 
  
//When the button is high, this increases the intake length by 10 
parts per division. The variable ensures it only goes through the 
loop once. 
 
  if(buttonstate1 == HIGH & buttonvariable2 == 1) 
  { 
delay(20); 
buttonstate1 = digitalRead(buttonpin1); 
if(buttonstate1 == HIGH) 
{ 
   
      manualvalue = manualvalue + 10; 
  endofstroke = initialendofstroke + manualvalue; 
  buttonvariable2 = buttonvariable2 ­ 1; 
  buttonvariable1 = buttonvariable1 + 1; 
  Serial.print("Endofstroke: ");   
      Serial.println(endofstroke); 
} 
  } 
  
//Each cylinder is given its own range for the intake, expansion, and 
exhaust. Basically the same code for all three. 
 
  if(location1 < valve1endstroke ­ deltaBit) 
  { 
//Valve 1 INTAKE 
 
120 
digitalWrite(intake1, HIGH); 
digitalWrite(exhaust1, LOW); 
  } 
  
  else if(location1 < valve1endexpansion ­ deltaBit) 
  { 
//Valve 1 EXPANSION 
digitalWrite(intake1, LOW); 
digitalWrite(exhaust1, LOW); 
  }   
   
  else if(location1 < (1024 ­ deltaBit)) 
  { 
//Valve 1 EXHAUST 
digitalWrite(intake1, LOW); 
digitalWrite(exhaust1, HIGH); 
  } 
  
  else 
  { 
//Valve 1 ADVANCE 
digitalWrite(exhaust1, LOW); 
digitalWrite(intake1, HIGH); 
  } 
  
  //Valve 3 code 
  
  if(location3 < valve3intake ­ deltaBit) 
  { 
//Valve 3 exhaust 
digitalWrite(exhaust3, HIGH); 
digitalWrite(intake3, LOW); 
  } 
 
121 
  
  else if(location3 < valve3endstroke ­ deltaBit) 
  { 
//Valve 3 intake 
digitalWrite(intake3, HIGH); 
digitalWrite(exhaust3, LOW); 
  } 
  
  else if(location3 < valve3endexpansion ­ deltaBit) 
  { 
//Valve 3 expansion 
digitalWrite(intake3, LOW); 
digitalWrite(exhaust3, LOW); 
  } 
  
  else 
  { 
    //Valve 3 advance exhaust 
digitalWrite(intake3, LOW); 
digitalWrite(exhaust3, HIGH); 
  } 
  
  //Valve 2 code 
  
  if(location2 < valve2endexpansion ­ deltaBit) 
  { 
//Valve 2 expansion 
digitalWrite(intake2, LOW); 
digitalWrite(exhaust2, LOW); 
  } 
  
  else if(location2 < valve2intake ­ deltaBit) 
  { 
 
122 
//Valve 2 exhaust 
digitalWrite(intake2, LOW); 
digitalWrite(exhaust2, HIGH); 
  } 
  
  else if(location2 < valve2endstroke ­ deltaBit) 
  { 
//Valve 2 intake 
digitalWrite(intake2, HIGH); 
digitalWrite(exhaust2, LOW); 
  } 
  
  else 
  { 
//Valve 2 advance expansion 
digitalWrite(intake2, LOW); 
digitalWrite(exhaust2, LOW); 
  }   
} 
 
//Returns the position of the encoder 
   
void positionfunction() 
{ 
  location1 ++; 
  location2 ++; 
  location3 ++; 
} 
  
//Iterates each value every revolution, to keep track of the number 
of revolutions. 
 
void rpmfunction() 
 
123 
{ 
  revolution++; 
  counter++; 
  location1 = 0; 
  location2 = 0; 
  location3 = 0; 
} 
 
 
   
 
124 
Power Code: Performed Power Test in 15.6 Seconds 
 
//Initializing encoder ranges 
int valve1intake = 0; 
int valve3intake = 341.3; 
int valve2intake = 682.6; 
int pressure = 90; 
int endofstroke = 300; 
int valve1endexpansion = 512; 
int valve3endexpansion = 853.3; 
int valve2endexpansion = 170.6; 
int valve1endstroke = valve1intake + endofstroke;   
int valve3endstroke = valve3intake + endofstroke;  
int valve2endstroke = valve2intake + endofstroke;   
//Initializing pins for teh valves 
int intake1 = 4; 
int exhaust1 = 7; 
int intake2 = 8; 
int exhaust2 = 11; 
int intake3 = 12; 
int exhaust3 = 13; 
//Initializing coder location values 
int location1 = 0; 
int location2 = 0; 
int location3 = 0; 
int revolution = 0; 
float RPM = 0; 
long time1 = 0; 
long timedifference = 0; 
int deltaBit = 40; 
int counter = 0; 
int othercounter = 2; 
int loopvariable = 0; 
 
125 
int buttonstate1 = 0; 
int buttonpin1 = 41; 
int buttonpower = 20; 
int buttonvariable1 = 1; 
int buttonvariable2 = 0; 
  
void setup() 
{ 
  attachInterrupt(0, positionfunction, RISING); 
  attachInterrupt(1, rpmfunction, RISING); 
  Serial.begin(9600); 
  //Initializing pins as input and outputs 
  pinMode(intake1, OUTPUT); 
  pinMode(exhaust1, OUTPUT); 
  pinMode(intake2, OUTPUT); 
  pinMode(exhaust2, OUTPUT); 
  pinMode(intake3, OUTPUT); 
  pinMode(exhaust3, OUTPUT); 
  pinMode(buttonpin1, INPUT); 
  pinMode(buttonpower, OUTPUT);  
} 
  
void loop() 
{  
   
  //Reading the state of the button 
  buttonstate1 = digitalRead(buttonpin1); 
  
  ​//Calculating the RPM every revolution  
  if(revolution==1) 
  { 
RPM = 1 * (60000/(millis()­time1)); //If revolution = 1 
time1 = millis(); 
 
126 
revolution = 0; 
Serial.print("RPM: ");   
     Serial.println(RPM); 
  } 
  
  ​//Ramping up the delay every few revolutions. Honed via testing. 
Reaches a maximum value of 120. 
  if(counter == othercounter & loopvariable == 0) 
  { 
deltaBit = deltaBit + 20; 
othercounter = othercounter + 1; 
Serial.println(deltaBit); 
counter = 0; 
if(deltaBit > 120) 
{ 
  loopvariable = loopvariable + 1; 
} 
  }  
   
//The following two segments of code allows the driver to lower the 
delay by pressing the button. The code detects a change in the button 
state, which results in the delay being lowered by 20 each time. 
  if(buttonstate1 == LOW & buttonvariable1 == 1) 
  { 
delay(20); 
buttonstate1 = digitalRead(buttonpin1); 
if(buttonstate1 == LOW) 
{ 
  deltaBit = deltaBit ­ 20; 
  buttonvariable1 = buttonvariable1 ­ 1; 
  buttonvariable2 = buttonvariable2 + 1; 
  Serial.print("Delay: ");   
      Serial.println(deltaBit); 
 
127 
} 
  } 
  
  if(buttonstate1 == HIGH & buttonvariable2 == 1) 
  { 
delay(20); 
buttonstate1 = digitalRead(buttonpin1); 
if(buttonstate1 == HIGH) 
{ 
   
      deltaBit = deltaBit ­ 20; 
  buttonvariable2 = buttonvariable2 ­ 1; 
  buttonvariable1 = buttonvariable1 + 1; 
  Serial.print("Delay: ");   
      Serial.println(deltaBit); 
} 
  } 
  
//Based on the encoder position, and the ranges for the strokes 
initialized in the beginning of the code, the code fires different 
valves. 
  if(location1 < valve1endstroke ­ deltaBit) 
  { 
//Valve 1 INTAKE 
digitalWrite(intake1, HIGH); 
digitalWrite(exhaust1, LOW); 
  } 
  
  else if(location1 < valve1endexpansion ­ deltaBit) 
  { 
//Valve 1 EXPANSION 
digitalWrite(intake1, LOW); 
digitalWrite(exhaust1, LOW); 
 
128 
  }   
   
  else if(location1 < (1024 ­ deltaBit)) 
  { 
//Valve 1 EXHAUST 
digitalWrite(intake1, LOW); 
digitalWrite(exhaust1, HIGH); 
  } 
  
  else 
  { 
//Valve 1 ADVANCE 
digitalWrite(exhaust1, LOW); 
digitalWrite(intake1, HIGH); 
  } 
  
  //Valve 3 code 
  
  if(location3 < valve3intake ­ deltaBit) 
  { 
//Valve 3 exhaust 
digitalWrite(exhaust3, HIGH); 
digitalWrite(intake3, LOW); 
  } 
  
  else if(location3 < valve3endstroke ­ deltaBit) 
  { 
//Valve 3 intake 
digitalWrite(intake3, HIGH); 
digitalWrite(exhaust3, LOW); 
  } 
  
  else if(location3 < valve3endexpansion ­ deltaBit) 
 
129 
  { 
//Valve 3 expansion 
digitalWrite(intake3, LOW); 
digitalWrite(exhaust3, LOW); 
  } 
  
  else 
  { 
//Valve 3 advance exhaust 
digitalWrite(intake3, LOW); 
digitalWrite(exhaust3, HIGH); 
  } 
  
  //Valve 2 code 
  
  if(location2 < valve2endexpansion ­ deltaBit) 
  { 
//Valve 2 expansion 
digitalWrite(intake2, LOW); 
digitalWrite(exhaust2, LOW); 
  } 
  
  else if(location2 < valve2intake ­ deltaBit) 
  { 
//Valve 2 exhaust 
digitalWrite(intake2, LOW); 
digitalWrite(exhaust2, HIGH); 
  } 
  
  else if(location2 < valve2endstroke ­ deltaBit) 
  { 
//Valve 2 intake 
digitalWrite(intake2, HIGH); 
 
130 
digitalWrite(exhaust2, LOW); 
  } 
  
  else 
  { 
//Valve 2 advance expansion 
digitalWrite(intake2, LOW); 
digitalWrite(exhaust2, LOW); 
  }   
} 
   
//Iterates the encoder position 
 
void positionfunction() 
{ 
  location1 ++; 
  location2 ++; 
  location3 ++; 
} 
  
//Iterates the number of revolutions each turn. 
 
void rpmfunction() 
{ 
  revolution++; 
  counter++; 
  location1 = 0; 
  location2 = 0; 
  location3 = 0; 
} 
 
 
 
 
131 
 
 
 
 
 
 
 
 
 
 
 
 
 
132 
Appendix D: Thermodynamics Calculations
 
Assignment 1 Code: 
Pi = 124.7; ​%Tank Pressure 
Ti = 293; 
Pa = 14.7; 
n = 1.4; 
B = 1.; ​%Bore 
S = 1.5*B; ​%Stroke 
N = 200; ​%RPM 
Le = [0,.35,.65,1]; ​%intake length 
%Le = 0:.01:1; %intake length 
Vc = (pi/12)* B.^3; ​%Clearance Volume 
Vd = (pi/4) * (B.^2) .* S; ​%Displacement Volume 
Vi = Vc + (Le .* Vd); ​%Initial Volume 
Vf = Vc + Vd; ​%Final Volume 
Ei = ((­Pi) .* Vi .* log(Pa./Pi))/12; ​%Energy in 
We = (((­Pi .* Vi ./(n­1)) .* (((Vi./Vf).^((n­1))) ­ 1)) + (Pi .* Le 
.* Vd ))/12; ​% 
Work done by expansion 
Wl = (Pa .* Vd)/12; ​%Work lost 
eff_part_a = We ./ Ei ​%Efficiency (part A) 
eff_part_b = (We ­ Wl) ./ Ei ​%Efficiency (part B) 
P_hp = (N * We)./5252 ​%Power in hp 
 
133 
 
 

More Related Content

PDF
CODE OF POINTS-GR- 2013 2016 ENGLISH
PDF
Rg co p 2013 2016-v2
PDF
Rg co p 2013 2016- version sept. 19-e final
PDF
Offshore book 2014
PDF
Reverse engineering for_beginners-en
PDF
đồ áN chi tiết máy thiết kế hệ dẫn động thùng trộn gồm có hộp giảm tốc bánh r...
PDF
Furey-Chad-MSc-ENGM-December-2015
CODE OF POINTS-GR- 2013 2016 ENGLISH
Rg co p 2013 2016-v2
Rg co p 2013 2016- version sept. 19-e final
Offshore book 2014
Reverse engineering for_beginners-en
đồ áN chi tiết máy thiết kế hệ dẫn động thùng trộn gồm có hộp giảm tốc bánh r...
Furey-Chad-MSc-ENGM-December-2015

What's hot (17)

DOCX
A2 OCR Biology - Unit 2 - Module 1 Revision Quiz
PDF
K Project final report
PDF
Offshore structures
PDF
Optimization of an Energy-Generating Turnstile
PDF
SAFETEA LU SECTION 157 IS BAD LEGISLATION
PDF
DOC
Oraciones rephrasing 2ºBTO
PDF
Stretching and flexibility
PDF
Fatawa on time, stars and skies
PDF
2007PSU_TechnionUndergrad1 (1)
PDF
[Sapienza] Development of the Flight Dynamics Model of a Flying Wing Aircraft
PDF
Lecture notes on hybrid systems
PDF
Design of proposed_earth_dam_pdf
PDF
AuthorCopy
PDF
10.1.1.652.4894
PDF
affTA00 - 10 Daftar Isi
PDF
Sap2000 basic
A2 OCR Biology - Unit 2 - Module 1 Revision Quiz
K Project final report
Offshore structures
Optimization of an Energy-Generating Turnstile
SAFETEA LU SECTION 157 IS BAD LEGISLATION
Oraciones rephrasing 2ºBTO
Stretching and flexibility
Fatawa on time, stars and skies
2007PSU_TechnionUndergrad1 (1)
[Sapienza] Development of the Flight Dynamics Model of a Flying Wing Aircraft
Lecture notes on hybrid systems
Design of proposed_earth_dam_pdf
AuthorCopy
10.1.1.652.4894
affTA00 - 10 Daftar Isi
Sap2000 basic
Ad

Viewers also liked (20)

PPTX
Presentacion taller 11
PDF
PDF
Dan Washburn in the Press Enterprise, Bloomsburg, Pa., January 2, 2010
PPTX
Audience profile
PDF
Arbonne: Pure, Safe, Beneficial for all the family
PPTX
TUTORIAL ACTION
PDF
Independent Autodesk Building Performance Analysis Certificate_nickol_77 (1)
PPT
л6 элементы ориентирования снимков
PPS
PDF
Contoh simpangan.1
PDF
Labour Day Deadlines 2013
PPT
Educación a distancia y educación presencial. E-learning
PPS
Maternal Instinct
DOCX
l’état de la société civile en Tunisie Premier trimestre 2016
PDF
2 soal latihan ukuran pemusatan data 2016
PDF
Defis fantastiques 57 la revanche du vampire
PDF
Wenbo_thesis_A Numerical Study of Catalytic Light-Off Response
PDF
PTC_Integrity_Certificate_Adrian_Rosian
PDF
5 soal latihan normalitas 2016a
Presentacion taller 11
Dan Washburn in the Press Enterprise, Bloomsburg, Pa., January 2, 2010
Audience profile
Arbonne: Pure, Safe, Beneficial for all the family
TUTORIAL ACTION
Independent Autodesk Building Performance Analysis Certificate_nickol_77 (1)
л6 элементы ориентирования снимков
Contoh simpangan.1
Labour Day Deadlines 2013
Educación a distancia y educación presencial. E-learning
Maternal Instinct
l’état de la société civile en Tunisie Premier trimestre 2016
2 soal latihan ukuran pemusatan data 2016
Defis fantastiques 57 la revanche du vampire
Wenbo_thesis_A Numerical Study of Catalytic Light-Off Response
PTC_Integrity_Certificate_Adrian_Rosian
5 soal latihan normalitas 2016a
Ad

Similar to EngineFinalReport (20)

DOCX
DOC
Table of contents
DOCX
electrical_project_chandresh_report on laser Transmitter and Receiver_table o...
PDF
Cop2013
PDF
Capstone project
PDF
4 contents
DOC
4 contents
PDF
Materi ajar 1
PDF
Network Management of Bashundhara Toggi Service Limited
DOCX
PDF
Rg co p 2013 2016- version sept. 19-e final
PDF
Temp Monitoring
PDF
Meen 442 Journal Final Pdf V2
DOCX
Final Graduation Project.
PDF
Martin_Ness_Bachelor_Thesis
PDF
Microsoft Word - Class XI
PDF
Group technology.docx
PDF
All in one present
PDF
Off_Road_Chassis_Spring_Final_Report
Table of contents
electrical_project_chandresh_report on laser Transmitter and Receiver_table o...
Cop2013
Capstone project
4 contents
4 contents
Materi ajar 1
Network Management of Bashundhara Toggi Service Limited
Rg co p 2013 2016- version sept. 19-e final
Temp Monitoring
Meen 442 Journal Final Pdf V2
Final Graduation Project.
Martin_Ness_Bachelor_Thesis
Microsoft Word - Class XI
Group technology.docx
All in one present
Off_Road_Chassis_Spring_Final_Report

EngineFinalReport