Six projects spanning manufacturing, controls, sensing, structural analysis, and reverse engineering — combining first-principles calculations, physical builds, computational analysis, and documented testing where appropriate.
Mazak INTEGREX i-200S | Capto C6 Tooling | CNC Design, CFD, FEA & Physics-Constrained ML
Redesigned a failure-prone through-spindle coolant interface into a serviceable dual-material assembly. The final design uses a permanently installed SS 316 threaded body and a replaceable 15-5 PH H1025 coolant tube, allowing the primary wear components to be serviced without repeatedly removing the M20×2 threaded interface from the tool holder.
This is the final redesign installed in the tool holder. The permanently installed SS 316 threaded body stays in the holder; routine service swaps only the replaceable 15-5 PH H1025 tube and its seals.
Everything below maps to this hardware: the architecture, the analysis, the machining, and the measured results.
Three observed problems with the OEM monolithic design on this configuration:
High breakaway torque during removal, combined with corrosion and galling risk, could damage the female tool-holder threads.
"The redesign goal was therefore not simply to make the nozzle stronger — it was to separate the permanent interface from the replaceable wear components."
McMaster 92602A310 — two-turn spiral retaining ring
0.5530 in = 14.0462 mm
0.5795 in = 14.7193 mm | Catalog groove diameter: 14.72 mm
0.029538 in = 0.75027 mm | Catalog groove width: 0.75 mm
(D_g − D_bore)/2 = (0.5795 − 0.5530)/2 = 0.01325 in = 0.3365 mm
0.0600 in = 1.524 mm
"The measured groove diameter and width essentially match the retaining-ring catalog geometry to the measurement resolution."
PREN was used as a comparative corrosion-screening metric alongside strength, machinability, cost, galvanic/interface considerations, and prototype service observations. Exact PREN depends on certified material chemistry and is not used here as a standalone service-life prediction.
"Separate role-specific matrices were used because the threaded body is corrosion-critical while the replaceable tube is primarily strength/fatigue-critical."
"At the same prescribed ~3 GPM condition, Darcy-Weisbach predicted a 0.2569 PSI pressure drop while SolidWorks Flow Simulation returned 0.2567 PSI. The agreement provides a strong analytical consistency check on the isolated-tube CFD result."
Monitored solver goals converged — solver-converged CFD.
Material: 15-5 PH H1025 | E = 196 GPa | ν = 0.272 | σ_y = 1000 MPa | σ_u ≈ 1070 MPa
The tube is sufficiently thick relative to its diameter that Lamé thick-wall-cylinder equations were used as a benchmark.
Lamé thick-wall cylinder equations applied to the tube cross-section under internal pressure. The analytical result of 6.062 MPa at 213 PSI serves as a first-principles benchmark against which the FEA result is compared. The difference (FEA: 8.679 MPa vs Lamé: 6.062 MPa) arises from flange/end geometry and realistic support effects not captured by the ideal cylinder model.
"213 PSI is treated as the machine/system nominal through-spindle coolant rating and a conservative structural pressure-containment load for the tube. It is not the CFD pressure drop across the isolated tube."
"The FEA maximum exceeded the ideal Lamé benchmark because the real CAD contains flange/end geometry and realistic support effects that the ideal cylinder does not."
Mesh sensitivity: 8.657 MPa → 8.679 MPa — a mesh-refinement sensitivity check changed peak stress by only 0.25%.
NOT a measured pressure spike or water-hammer transient.
"The applied-pressure and stress ratios agree almost exactly, confirming the expected linear-elastic model response."
Even at the 1.5× overpressure case, resultant displacement peaks at 0.2444 μm — negligible relative to the 0.938 mm wall and the runout budget. The tube is stiffness-dominated by a wide margin at both load cases.
Loading event: 0 → 213 → 0 PSI — zero-based loading
H1025 S-N reference data used (published unnotched longitudinal specimen data, not fatigue tests of the finished nozzle):
SolidWorks result: alternating stresses remained below the minimum stress represented by the entered S-N curve.
"To explore physics-constrained machine learning, I developed a reduced-order data-assisted PINN surrogate for the same isolated coolant tube. The network combines analytical turbulent-profile guidance with exact geometric boundary constraints, bulk-flow conservation, and reduced pressure-gradient physics."
Important clarification: "The PINN is an ML extension of the analytical model — not an independent turbulence solver."
"The analytical velocity guidance uses a regularized 1/7-power-law-like reference expressed in a symmetry-compatible radial coordinate. It is guidance data, not independent validation data."
Darcy-Weisbach: 1771.11 Pa = 0.25688 PSI | SolidWorks CFD: 1770.04 Pa = 0.25672 PSI | Difference: 0.061%
"At the same ~3 GPM condition as the SolidWorks CFD, the reduced-order Darcy pressure drop used by the PINN was 0.2569 PSI versus 0.2567 PSI in CFD. Because the PINN uses the same reduced Darcy physics, this close agreement demonstrates internal consistency rather than independent CFD validation."
Training-loss history over 1,200 epochs: Adam optimizer with StepLR decay, 600 profile-guidance points and 500 physics collocation points.
"A reduced-order data-assisted PINN surrogate was trained for the isolated coolant tube using exact wall/symmetry constraints, bulk-flow conservation, reduced Darcy pressure-gradient physics, and a regularized turbulent reference profile."
This was not a simulation-only project.
Prototype dimensional inspection was performed on five units using micrometers, depth measurement, pitch verification, runout inspection, and comparative surface-finish inspection. n = 5 is a prototype sample.
"Aggregate FMEA RPN decreased 86.1% within the project scoring model. RPN is an engineering prioritization metric, not a measured failure probability."
Final groove geometry was dimensionally verified against the McMaster 92602A310 catalog geometry.
Approximate OEM purchased nozzle: ~$150 | Redesign replacement service event: ~$12.70 | ($150 − $12.70) / $150 = 91.5%
$12.70 is a replacement/service-event estimate including tube/wear-component cost assumptions.
Final demonstrated tube replacement: ≈ 77 seconds
Assumption: 30% modeled probability of removal-related $1,500 tool-holder damage in the OEM maintenance scenario
Scenario: 10 replacement events per holder | 10 holders | 5-year projected fleet savings: $58,257.50
"Under the stated maintenance-frequency and risk assumptions."
"The redesign removes the recurring need to extract the threaded body during routine tube/seal service, eliminating that specific removal-related damage mechanism."
"The project evolved from a shop-floor maintenance problem into a complete mechanical design study spanning failure analysis, material selection, fluid mechanics, structural simulation, fatigue screening, physics-constrained machine learning, CNC manufacturing, metrology, and iterative testing. The final architecture shifts routine maintenance away from the high-value threaded tool-holder interface and into an inexpensive replaceable tube/seal module."
Five additional projects spanning control systems, biomedical sensing, structural analysis, precision manufacturing, and mechanical reverse engineering.
Built an Arduino-based optical sensing system around the MAX30102 to acquire Red/IR reflectance signals and explore heart-rate extraction, filtering, numerical differentiation, and comparison with reference readings.
The MAX30102 is an integrated heart-rate / pulse-oximetry biosensor with red and IR emitters. It was interfaced to an Arduino Uno over I2C, acquiring Red/IR reflectance channels for signal-processing experiments.
Header connections were soldered and continuity checked before powering. The breadboard platform allowed rapid iteration on sensor positioning and finger placement during testing.
The resting trace shows the raw Red/IR reflectance with a large DC baseline and visible drift. Heart-rate estimates were extracted from the moving-average-filtered signal using the derivative-based peak detector.
Project-recorded estimate: 72.4 BPM at rest.
After exercise the oscillation visibly speeds up while the raw trace retains the same DC-baseline and drift characteristics. Project-recorded estimate: 124.6 BPM post-exercise.
Formal HRV/PRV analysis was outside the scope of this short acquisition; robust HRV typically requires beat-to-beat interval analysis over a substantially longer record.
| Condition | Sensor Estimate | Reference | Abs. Difference |
|---|---|---|---|
| Resting | 72.4 BPM | 74 BPM | 1.6 BPM |
| Post-exercise | 124.6 BPM | 126 BPM | 1.4 BPM |
Single-session comparison; not a population-level accuracy validation.
The processing chain — acquire → filter → differentiate → threshold → count peaks — was implemented as a numerical exercise on the logged data.
Trapezoidal integration was applied as a numerical signal-area exercise. Because raw PPG amplitude depends strongly on sensor contact, optical geometry and tissue, the integral is not interpreted as cardiac work or cardiac output.
The project demonstrated embedded optical sensing, I2C acquisition, basic digital filtering, numerical signal processing, and the importance of validating analysis against the actual recorded dataset.
Analyzed the classical stress-concentration problem — a circular hole in a tensile plate — using the Kirsch analytical solution, a Python numerical evaluation of that solution over a computational grid, and a separate Arduino strain-sensor acquisition experiment.
Analyzed the classical stress-concentration problem — a circular hole in a tensile plate — using the Kirsch analytical solution, a Python numerical evaluation of that solution over a computational grid, and a separate Arduino strain-sensor acquisition experiment.
For an infinite plate with a circular hole under uniaxial remote tension, the Kirsch solution predicts a maximum hoop stress of 3σ∞ at the hole boundary at θ = ±90°:
Kt = σmax / σ∞ = 3 ANALYTICAL
Important limitation: the physical specimen had d/W = 12.5/50 = 0.25, so finite-width effects are not negligible. Kt = 3 is used as the classical infinite-plate reference, not asserted as the exact finite-specimen factor.
The maximum tensile hoop stress occurs at the hole boundary at points perpendicular to the applied loading axis (θ = ±90°) — the hole interrupts the load path and the material around it must redistribute that stress.
In the infinite-plate Kirsch field, the normalized stress falls below approximately 1.1 by r/a ≈ 2.7 — the concentration decays quickly away from the hole edge, though the exact decay on the finite specimen differs from the infinite-plate curve.
The analytical Kirsch equations were evaluated directly in Python (NumPy) over a 500×500 computational grid to visualize the full stress field — σr, σθ, τrθ — and derived quantities such as von Mises and principal stresses, all transformed from the same analytical solution.
This is a numerical evaluation of a closed-form solution, not a finite-element analysis. No mesh, no solver, no discretization error study — the grid simply samples the exact equations for plotting.
The Python script evaluates the Kirsch equations across the grid and outputs the computed stress field values. The von Mises stress is derived from the analytical stress components using the standard transformation:
σvm = √[ ½((σr − σθ)² + σr² + σθ² + 6τrθ²) ]
As a consistency check, the truncated Kirsch hoop stress at θ = 90° was integrated over the two ligaments of the finite-width section CALCULATED:
σθ(r) = σ∞ [ 1 + a²/(2r²) + 3a⁴/(2r⁴) ]
FK = 2 t σ∞ [ R − a²/(2R) − a⁴/(2R³) ]
With W = 50 mm, t = 3 mm, a = 6.25 mm, R = W/2 = 25 mm, and σ∞ = 0.029 N/mm²:
FK ≈ 4.21 N versus the gross far-field resultant F∞ = σ∞ W t = 4.35 N — about a 3.3% difference, illustrating the limitation of applying the infinite-plate solution at a nearby finite boundary. This is an analytical consistency check, not experimental validation.
An Arduino / Wheatstone-bridge experiment was built to acquire strain-sensor output near the hole. The strain gauge was bonded near the hole boundary at θ = ±90° where the Kirsch solution predicts maximum hoop stress.
The archived calibration implementation was not sufficient for a defensible absolute microstrain measurement, so the experiment is presented as a sensor-acquisition exercise rather than quantitative validation of the Kirsch SCF.
Raw ADC readings were logged during load application and compared against the expected strain signal direction. The gauge responded in the correct direction (tension at the predicted location), confirming sensor functionality and signal chain integrity PROJECT RECORD.
The lesson: instrumentation results must be verified against a sound calibration chain before they can be treated as measurement evidence.
The project demonstrates elasticity theory, coordinate stress transformation, numerical visualization, and experimental instrumentation — while also showing why computational and sensor methods must be independently validated before being treated as quantitative evidence.
Built and tuned a two-wheeled self-balancing robot using an Arduino Uno, MPU-6050 IMU, A4988 stepper drivers, and discrete PID control. The project focused on how proportional, integral, derivative, and sampling behavior affect stability in an inverted-pendulum system.
The system is conceptually related to other unstable attitude-control problems, although the actuator, dynamics, sensing, and control architecture are very different.
The control challenge is the classical inverted pendulum: an inherently unstable system that tips over without continuous corrective actuation.
Laser-cut plywood chassis with the component layout organized around the axle line. A CAD-based mass-distribution calculation placed the center of mass approximately 29.7 mm above the axle CALCULATED.
Battery placement and component stacking were chosen to shape the pendulum's response — a higher center of mass gives the controller more time to react before the robot falls.
u[k] = Kp e[k] + Ki Σ( e Δt ) + Kd ( e[k] − e[k−1] ) / Δt
Complementary-filter attitude estimate:
θ = α ( θprev + ω Δt ) + (1 − α) θaccel
Final tuning settled near Kp = 4, Ki = 0.08, Kd = 3 after qualitative iterative testing PROJECT RECORD. These gains are specific to this build and are not universal tuning values.
Archived firmware was used for iterative control testing; the portfolio focuses on the control architecture rather than claiming precise hard-real-time execution.
Tuning was performed through a serial command interface, allowing proportional, integral, and derivative gains to be adjusted during live balance testing without reflashing.
Arduino/logic power was separated from the higher-current stepper-motor power path to reduce coupling of motor noise into the sensor/control electronics.
Tuning was performed through a serial command interface, allowing proportional, integral, and derivative gains to be adjusted during live balance testing without reflashing firmware.
The tuning process involved:
Final tuning settled near Kp = 4, Ki = 0.08, Kd = 3 after qualitative iterative testing PROJECT RECORD. These gains are specific to this build and are not universal tuning values.
The step response shows how the robot recovers from an applied lateral disturbance. A well-tuned PID controller returns to equilibrium with minimal overshoot and no sustained oscillation.
Anti-windup / integral limiting was implemented to prevent integral accumulation from driving the steppers beyond their useful range during large tilt excursions.
Production machining experience at American Precision Machining producing tight-tolerance components for industrial and instrumentation applications. Original customer drawings and programs are omitted for confidentiality; the project focuses on manufactured hardware, process knowledge, and documented inspection examples.
Part A: Multi-threaded brass fitting with turned/threaded features, live-tool geometry, and cross drilling.
Part B: Stainless flanged hub with bolt-circle features, internal threading, and milled geometry.
Part C (most complex): Stainless manifold-style component with multi-face features, ports/passages, and O-ring-related geometry.
Part D: Thin-wall stainless cage/retainer with open windows requiring attention to deflection and concentricity.
Programming exposure: MAZATROL conversational, G-code, and GibbsCAM multi-axis CAM.
Project documentation records dimensional inspection using CMM and bench metrology including micrometers, calipers, thread gages, pin gages, optical comparison, and surface profilometry.
The project record contains 40 documented inspection characteristics reported within their stated limits with a 99% pass rate PROJECT RECORD.
Surface-finish acceptance is drawing- and function-specific; the documented measurements demonstrate experience with profilometry and machining-process effects — Ra 6.2–36.4 μin across measured features.
For ideal turning geometry, Ra ≈ f²/(32r) and the approximate peak-to-valley theoretical height Rt ≈ f²/(8r) CALCULATED. For the documented brass example (f = 0.003 in/rev, r = 1/32 in): Ratheory ≈ 9 μin versus project-recorded Ra ≈ 16.2 μin — real finish also depends on material, tool condition, vibration, built-up edge, cutting speed, and machine dynamics.
Worst-case and RSS (root-sum-square) tolerance-stack analysis was applied to assembly-critical dimension chains to understand how feature tolerances accumulate — a core manufacturing-design skill, since unnecessarily tight tolerances add cost without functional benefit.
Studied Cp/Cpk and SPC concepts as part of manufacturing-quality analysis; the available portfolio inspection set is not used to claim statistical process capability.
Complete reverse engineering of a commercial mortise lock — from systematic disassembly and precision measurement through parametric SolidWorks reconstruction and a functional FDM 3D-printed prototype.
Assembly mates preserved the real kinematics (concentric, coincident, limit mates); design intent was inferred from measurement clusters rather than simply copying geometry.
The commercial mortise lock shown here was systematically disassembled, measured with digital calipers, and reconstructed as parametric SolidWorks models. Each component was cataloged and individually modeled to preserve the full assembly kinematics.
Spring rate from the helical compression formula k = Gd⁴/(8D³Na) with d = 0.80 mm, D = 5.55 mm, Na = 6, and G = 79.3 GPa CALCULATED ASSUMPTION (material):
Shear modulus and material properties come from handbook values, not a material certificate for this specific spring.
A simplified eccentric-cam model reproduces the measured approximately 15.88-mm deadbolt throw over approximately 90° of key rotation CALCULATED:
s(θ) = e ( 1 − cos θ ), e = 15.88 mm
s(90°) = 15.88 mm
The model captures the displacement relationship as documented; no force-amplification claim is made without a defined input torque and lever geometry.
Under representative material-strength assumptions, the printed PLA deadbolt has approximately 21% of the modeled steel deadbolt shear capacity (6.2 kN vs 30.0 kN). This is an analytical material-substitution estimate, not a security rating or a destructive test ASSUMPTION.
Estimated assembly masses: steel ≈450 g, printed PLA ≈72 g — both estimates, not measured weights.
The PLA latch bevel was increased from 15° to 25° for self-retraction margin: the screening criterion tan(α) > μ was applied with representative PLA-on-steel friction used as a screening assumption, not measured on the printed surface. The final prototype was documented as functioning after post-processing.
With lever-arm ratio r2/r1 = 22.0/8.5 ≈ 2.59 and the maximum modeled spring force of 60.39 N CALCULATED:
Fhandle = Fspring × ( r1 / r2 ) ≈ 23.3 N
Simplified lever statics predicts approximately 23.3 N maximum handle force under the modeled spring load (and ≈1.28 N·m torque at the documented handle radius). This is a statics exercise, not ergonomic validation.
Observed dimensions in the documented sample fell within the project's ±0.30-mm prototype fit target, with documented deviations on the order of approximately ±0.25 mm PROJECT RECORD. This describes the documented sample only, not universal FDM process capability.
Holes and shaft fits were compensated (+0.2–0.4 mm) during print preparation to accommodate FDM shrinkage and layer artifacts.
This project demonstrates teardown-driven reverse engineering, parametric CAD reconstruction, mechanism analysis, material/process substitution, FDM tolerance compensation, and functional reassembly.
A cross-section of capabilities demonstrated across six projects — from CNC machining and CAD modeling to embedded systems and machine learning.