# Tortfeeder candidate engineering design

Revision 2 — 14 October 2026. This document specifies a candidate mechanism and the mathematical model used to study it. It is not a fabrication release or an approved shopping list.

## Requirement and design choice

Two independently selectable fresh-food banks each hold seven prepared portions. A dry pellet channel and a pumped-water channel join their output at one removable plate. The device sits in shade with household AC and an outage battery. A larger footprint is acceptable; reliability takes priority.

The original concept of compact stacked tipping trays was incomplete: the rotation of a loaded tray can intersect adjacent shelves. The candidate resolves that by translating one tray completely into a clear front corridor before tipping it. This increases depth, actuator count and refrigeration volume. A shallow funnel beneath the corridor also fails the gravity-flow assumption, so chute drop is explicitly included in the geometry.

## Coordinate system and baseline

All geometry uses millimeters: x points forward, y spans the banks, z points upward. Each tray rotates clockwise in the x-z plane about its rear-bottom pivot. The initial pivot is x = 0. Translation moves that pivot forward by the configured stroke.

Baseline inputs:

- 7 tiers per bank, 2 banks.
- Tray envelope 220 W × 260 D × 65 H mm; 125 mm vertical pitch.
- 390 mm translation stroke; 110° tip; 20 mm clearance target.
- 360 mm internal chute drop.
- 50 mm insulation allowance and 40 mm McMaster four-slot frame members.
- 0.45 kg food plus 0.30 kg tray/cradle per loaded tray.
- 80 kgf·cm advertised actuator stall torque; assume only 35% usable working torque.
- Load design factor 2; assumed pivot friction 0.10 N·m.

These are selectable engineering inputs, not measured portions, selected parts or manufacturer guarantees. The tray/cradle envelope excludes actuator housings, drawer-slide sections, harnesses and lid mechanisms. Their space must be included in later mechanical CAD.

Current generated dimensions and bill of materials are saved in `designs/reliable-design.json`. The cold enclosure is sized around both the storage bank and the entire translation/rotation/fall corridor. Its gross modeled volume is much larger than the food volume. A small 80 L refrigerator is not a validated fit for this architecture.

## Fresh-food mechanism

Each tray needs:

1. A removable food-contact liner and a rigid cradle.
2. A transverse rear pivot supported on two bearings/bushings.
3. Two purchased MGN12 linear rails with MGN12H reference blocks, installed outside the tray/food footprint. Finite rail length, block length and end allowances limit travel.
4. A purchased NEMA17 stepper/GT2 belt carriage drive meeting the generated working-force requirement, with a printed belt clamp and purchased pulley/idler.
5. A geared rotation drive meeting the generated working torque and travel.
6. A home support/latch carrying the parked tray load independently of servo holding torque.
7. Home and extended feedback, plus upright/tip feedback appropriate to the chosen drive.

The tray rotates only after its carriage is fully extended. It returns upright before retracting. Only one fresh-food carriage may occupy the fall corridor at a time. The farthest backward corner at over-vertical angles determines the necessary translation, not just the initial tray depth.

The present envelope is a rectangular loaded tray. Food movement, wall height, removable covers, opening action and retention during translation need prototype development. A cover cannot simply remain closed while the tray tips. Select a linked opening mechanism only after demonstrating that leaves release and the cover does not interfere with the carriage or neighboring tiers. Daily removal for cleaning must not require disassembling the bearing or wiring.

## Internal chute and outlet

The modeled internal chute spans from the front of the rack to the front of the cold enclosure, with the configured vertical drop. Its slope is calculated from that horizontal run. The lowest tray elevation is raised to leave room for the chute and full rotation envelope. A solid triangular section beneath the chute is included as a collision obstacle in the two-dimensional sweep test.

A short external chute leads from the low front hatch to the plate. Its rendered drop is 100 mm over 90 mm of horizontal travel (approximately 48°). This is a schematic removable sheet, not a finished chute drawing or a validated food-release surface. Both banks share a broad, unobstructed outlet; no narrow neck is assumed.

Use smooth food-contact surfaces, radiused edges and tool-free removal. Keep actuators and lubricant away from food. Condensate must drain without reaching the electrical enclosure or introducing standing water into the food path.

The outlet needs insulation, a mechanical restraint, closed/open feedback and obstruction detection. The simulated hatch state does not define its detailed hinge, panel sweep, gasket or actuator. Those remain separate CAD tasks.

## Pellet mechanism

Use an upper gate, a dose chamber and a lower gate with a physical mutual-exclusion interlock. The electrical sequence alone is insufficient protection against simultaneous opening. The upper gate fills the chamber while the lower gate is closed. Verify upper closure, then release the chamber into a removable hydration cup. Close the lower gate, meter water, wait for a recipe validated with the actual pellets, then tip the cup to the common plate.

The baseline chamber is a 65 mm diameter × 70 mm tall cylinder, roughly 232 mL. At an assumed bulk density of 0.45 g/mL that corresponds to about 105 g. Real pellet density, gate dead space and bridging must be measured. The simulator does not model individual pellets or determine a correct dietary portion.

Stored pellets remain dry. Zoo Med grassland pellets need moistening before feeding; Mazuri directions depend on the formula. Do not store a week's worth of wet pellets in the preparation cup. Its cleaning interval is part of operation.

## Water mechanism

Use a removable opaque reservoir, a pump with calibrated flow, drinking-water-rated wetted components, and an air gap at the nozzle. Provide verified anti-siphon geometry and a separate hardware maximum run-time cutoff. Pump output and the pellet hydration route can use a valve or a separate nozzle; final valve and tubing arrangement must be selected after required volumes are known.

The model estimates dosing water only. It does not supply a clean drinking/soaking dish or account for cleaning water. Repeatedly adding water cannot clean contaminated food residue.

## ESP32 control architecture

Candidate electrical organization:

- Fused 12 V supply bus to slide drivers, pump driver and other 12 V devices.
- Separately fused regulated actuator supply at the selected servos' specified voltage; do not power actuators through the ESP32 board.
- Regulated logic supply for ESP32 and sensor interfaces.
- Shared signal reference or properly isolated drivers, as required by the selected hardware.
- The original PWM-servo architecture is superseded by procurement R1: 29 stepper axes, two UART bus gate servos, one DC hatch actuator and one pump. PCA9685 boards are not appropriate for the selected serial servos. Detailed wiring, current budgeting and actuator mounting are pending.
- Fourteen slide drives need their own reversing/enable drivers; a PCA9685 is not a motor power driver.
- Sensor expansion, RTC, independent temperature probes and a hardware actuator-enable line.

No GPIO assignment or driver current rating is frozen before hardware selection. Default all enables to off during boot and brownout. Use a physical stop/service mode and remove power from motion while loading/cleaning. A home latch prevents gravity movement on loss of actuator power.

Release state sequence:

`VALIDATE → OPEN_HATCH → EXTEND_SELECTED → TIP → DRAIN → UPRIGHT → RETRACT/LATCH → CLOSE_HATCH → RECORD_RESULT`

Every real movement needs feedback and a timeout. Do not infer success solely from a servo command or elapsed time. Persist command identity and dispense state in nonvolatile storage. A reboot during uncertain delivery inhibits automatic retry and automatic homing until inspected. A previously stored schedule may run without Wi-Fi, while new remote commands remain unavailable.

The simulator's fault scenarios are scripted examples of these desired behaviors. They do not emulate MCU brownout circuits, timing jitter, sensor noise or network protocols. Manual timeline scrubbing intentionally allows geometry inspection beyond a scenario halt.

## Equations and limitations

For a tray-local point (u,v), rear pivot (x,z), and clockwise angle θ:

`x' = x + u cos θ + v sin θ`

`z' = z - u sin θ + v cos θ`

The rectangle's four transformed corners define its rigid envelope. The model checks solid-envelope overlap against neighboring loaded trays using the separating axis theorem. Positive SAT separation is a conservative projected gap, not an exact Euclidean distance. Translation is sampled at 1 mm and rotation at 1°. A sampled pass is not a proof of continuous swept clearance with manufacturing tolerances.

A conservative stroke criterion for angles up to 180° is:

`stroke ≥ depth × (1 − cos θ_max) + clearance`

This ensures the rearward-moving corner remains beyond the rack face; it may be more restrictive than the sampled collision result.

Uniform-load gravity moment:

`gravity moment = (food mass + tray/cradle mass) × g × depth / 2`

Convert depth to meters. Required torque is `(gravity moment + assumed pivot friction) × design factor`. Available torque is `advertised stall kgf·cm × 0.0980665 × assumed working fraction`. Stall torque is not a continuous working rating. Neither equation includes a detailed COM shift, acceleration, gearbox efficiency, linkage advantage or temperature effect.

Slide working force uses assumed rolling/sliding friction, combined carriage mass, a design factor and a 5 N allowance. It does not model rail cantilever deflection, installation misalignment or motor startup transients.

Idealized food slide tendency uses `m g sin θ − μ m g max(0, cos θ) − assumed adhesion`. At over-vertical angles the model sets normal loading to zero. This is a sensitivity estimate, not a leaf/contact simulation. The chute slope check requires `atan(assumed μ) + 5°`; adhesion and particle bridging remain empirical even if it passes.

Thermal load is `effective U × six-face area × temperature difference + extra thermal allowance`. Average electrical power is `thermal load / assumed COP + controls allowance`. Outage runtime is `battery Wh × usable fraction / average electrical W`. Insulation thickness changes the frame envelope; U is an independent assumption, not derived from thickness. Door openings, food pull-down, compressor operating limits and actual duty cycles require measurements.

Static overturning compares `assumed grounded mass × g × half the smaller frame dimension` against `assumed horizontal push × push height`. The design still needs anchors and verification of extended moving loads, actual center of gravity, wind, joints and frame deflection. No FEA is performed.

## Frame cut convention

Four full-height 40 mm posts support three rectangular rings. Ring rails butt between posts: cut width/depth crossmembers equal the respective outer dimension minus two post widths. Six of each outer crossmember and four posts yield sixteen outer frame pieces. Add four internal rack posts, three full guide-support rails per tier and two rack crossmembers per tier, yielding 55 rail pieces for the seven-tier candidate. Guide-support rails cantilever beyond the rack; validate their stiffness and joints.

The stock allocator places descending lengths into the tightest fitting stick, charging one selected kerf per cut. It assumes no end trim and does not prove minimum stock. Braces, panel rails, trays' support subframes and appliance-specific mounts are not included. Revalidate the finished frame and a complete cutting convention before any cut-to-length order.

## Procurement gate

The generated BOM is a requirements list. McMaster rail 6575N406, corner bracket 5537T937 and M6 drop-in nut 6000N207 are identified catalog references. Rail purchase lengths use 2.5 mm increments. Procurement R1 now identifies motor and cooling candidates with seller links; final fit, working torque, cooling compatibility and several exact hardware sizes remain unresolved. Before ordering, the next useful physical build is a single tray/cradle/slide prototype and a removable chute, followed by actual cold-food release and force measurements. Full-system procurement follows the measured geometry, final mechanism drawings and a refrigeration layout that fits them.

Manufacturer reference links are embedded in the simulator. Use live manufacturer drawings to verify mounting patterns, slide travel, working loads, environmental ratings and electrical requirements before selecting exact parts.

## User-approved size ceiling and revised large-portion preset

The screenshot establishes an approximately 1030 W × 1390 D × 2660 H mm frame ceiling. The plate and accessory protrusions are additional, as the screenshot labels. The original screenshot configuration is retained as an interference study rather than treated as validated.

The **Large portions / fits your ceiling** preset keeps 340 × 400 × 110 mm tray envelopes, changes pitch to 170 mm, uses 650 mm translation on an 800 mm reference guide, tips 110°, assumes a 120 kgf·cm stall-rated servo with 35% working allowance, and uses 550 mm chute drop. The corresponding frame is 1030 × 1390 × 2490 mm. The tray-volume estimate remains 11.22 L per tray at 75% fill, not an expected food weight. The preset's cold gross envelope is very large; refrigeration selection is an unresolved design decision.

## Purchased frame and allowed fabrication routes

- McMaster **6575N406**: silver, hollow 40 × 40 mm four-slot rail, 8 mm slots, 12.2 mm nominal slot depth; cut-to-length per cm in 2.5 mm increments. Manufacturer exterior dimensions are used; the SVG is not a detailed downloaded extrusion CAD model.
- McMaster **5537T937**: 40 mm corner bracket, includes mounting hardware and requires no rail machining according to the catalog. Inspect joint layout and supplier drawings before release.
- McMaster **6000N207**: M6 drop-in nut cataloged for 40 mm rail; confirm slot and screw-stack fit before order.
- Reference **MGN12H** block geometry comes from HIWIN: 45.4 × 27 × 13 mm and a 20 × 20 mm M3 mounting pattern. A purchased Amazon-compatible kit must be checked against its own drawings; it is not assumed to be genuine HIWIN.
- Fresh-food liners, bearings, shafts, collars, motors, pulleys, belts, sensors, gaskets, insulation, cooling package and electronics are purchased from Amazon or McMaster. They do not require custom metal welding/machining.
- Bearing carriers, belt clamps, cradle corners, linkage/guard mounts and gaskets' retainers are printed prototypes. The wetted containers are purchased food-contact items, not printed reservoirs.
- Carriage interfaces, guard panels, cabinet skins and slide-gate panels use laser-cut **6.35 mm (1/4 inch)** or **3.175 mm (1/8 inch)** acrylic. Acrylic is supported by metal framing; its mounting/load resistance still needs testing.

Prototype SCAD and SVG interfaces live in `fabrication/`. They are measurable starting parts, not production-certified components. Servo mounts, pan-lip captures, guards, hatch and gaskets need final selected-product fits; these are disclosed rather than assigned invented vendor mounting patterns.

## Standing-water pellet soaking pan

Use a purchased **Winco SPJP-604** stainless pan (Amazon candidate; exact seller availability not established), with manufacturer reference exterior dimensions 177.8 × 165.1 × 104.9 mm. It has no drain hole. A removable printed cradle supports the pan without drilling it. Purchased 608 bearings and an 8 mm shaft carry a tipping linkage; the actuator returns it upright after dumping.

The model assumes an interior of 145 × 135 × 85 mm, a taper factor of 0.8 and 70% operating fill. Those unmeasured values give approximately 932 mL working capacity. Water alone pools to roughly 13 mm depth at a 200 mL dose. It compares working volume against a conservative mixture allowance of dry chamber volume × assumed expansion plus all dose water. This intentionally allocates space for both softened pellets and water; it does not calculate water absorption or softening time. The default 600-second wait is a recipe assumption to test.

Pan actuator torque includes pan/cradle, dry pellet mass and all dose water. The prep station is separate from the large common plate and tips the soaked mixture onto that plate only after the wait. It remains removable for daily cleaning.

## Belt-drive force allowance

The slide calculation now limits force by assumed **working motor torque**, a 20-tooth GT2 pulley (40 mm belt travel per revolution), 80% drivetrain efficiency and the separately assumed guide/belt limit. Default 0.20 N·m working torque yields approximately 25 N of belt force; it is not a selected NEMA17 motor's guaranteed torque at operating speed. Purchased holding-torque labels cannot replace a working torque/speed curve.
