Skip to content

Auger swap end-effector study (#42): strategies, Onshape models, GIFs - #44

Open
jss265 wants to merge 17 commits into
mainfrom
claude/issue-42-20261026-0528
Open

jss265 wants to merge 17 commits into
mainfrom
claude/issue-42-20261026-0528

Conversation

@jss265

@jss265 jss265 commented Oct 26, 2026

Copy link
Copy Markdown
Member

Medium-fidelity study for #42, now with the compliant funnel clips on the powder doser:

  • CadQuery models: funnel clips, finger fixture, auger rack, bin, two custom PiPER tools (two servos; one servo with a crank + face-cam wheel), stock-gripper sleeves, and a tilt-lock pin
  • Onshape document (vcl-shared > 6DOF Robot Arm) with five Part Studios and four assemblies
  • GIFs of each strategy, with the PiPER posed by IK from the AgileX URDF
  • Clip snap-force estimate, the payload answer, and the ranking in end-effectors/auger-swap/README.md

Part of #42.

Generated with Claude Code

github-actions Bot and others added 3 commits October 26, 2026 05:59
…ipt (WIP)

Compliant funnel clip, finger fixture, rack, bin, two custom tools (two-servo,
one-servo wheel), stock-gripper sleeves and the tilt-lock pin, placed in the
powder doser's layout frame; PiPER posed from the AgileX URDF.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and ranking

Four strategies for swapping the powder doser's auger now that it sits in
compliant funnel clips: two custom tools (two servos; one servo with a
crank + face-cam wheel) whose legs react the snap force on the doser, and
the stock gripper with sleeves (with a tilt-lock pin, or with the doser's
tilt servos holding). GIFs pose the PiPER by IK from the AgileX URDF; the
doser is PR 170's STEP layout with the clamps swapped for clips.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Alternatives A and B lifted the old auger 50 mm before heading to the bin,
which ran J5 into its 70 deg limit (up to 4.6 mm off for six frames). Lift
30 mm instead; all four sequences now track within 0.5 mm.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jss265

jss265 commented Oct 26, 2026

Copy link
Copy Markdown
Member Author

@claude please redesign the finger fixture. It needs to have fingers thin enough to constrain the tap collar and thick enough to allow the auger to pass through on both sides so that the tap collar doesn't fall over on when replacing a new auger into the tap collar.

Then redesign the alternative with the pin. using a sleeve that prints with a main shell (blue) and fixturing shell (green) with 4 countersunk M3 screw holes, 2 at each red arrow. Keep in mind the exact geometry of the gripper finger including the slight curve (along the blue contour in photo) (which will lock the sleeves in place)
image

You can also remove the gripper fingers and potentially replace it with a custom gripper finger. Find the linear bear screw hole size and distances, find the linkage arm screw size and design a minimal size custom gripper for the end effector.
Image
Image
image
image

make all CAD designs high fidelity. Then make remove/replace gifs for each of the solutions with the pin that holds the doser i place.

Do the same CAD high fideglity model and GIF for the two servo replacing the gripper end effector option. And list recommended servose for purchase. these would be controlled by a raspberry pi mounted to the new custom end effector with the same HQ wide and Model 3 wide lenses as in #10.

@claude

claude Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Auger swap: high-fidelity redesign

I redesigned the finger fixture, redid Alternative A with the two-shell sleeve, designed minimal custom fingers, and made a high-fidelity Strategy 1 tool with the Pi 5 and both cameras from #10. Each has STEP files, Onshape assemblies and a remove/replace GIF. Strategy 2 is still the round-1 model, as before. Nothing has been printed yet.

PiPER gripper screw sizes and spacing

No AgileX document gives these, so I measured them from AgileX's own gripper STEP (the file #10 uses):

Linear bearing MGN7C carriage on an MGN7 rail, 4 × M2 tapped 2.5 mm deep on a 12 × 8 mm rectangle (12 across the rail, 8 along it). The finger has Ø2.4 clearance holes through 6 mm, so the screws are M2 × 8, and it sits in a 1 mm deep, 17.3 mm wide slot over the block
Linkage arm M3 shoulder screw, tapped Ø2.5, 5.5 mm deep in the finger, through a Ø9 × 4 mm spacer with a Ø4 bore. It sits 14.65 mm to the side of the carriage centre
Finger curve The grip face is flat for 36 mm, then bends (R51.5) into a 5.1° ramp and is flat again for the last 10 mm. So the tip half stands 2 mm closer to the other finger

AgileX's STEP is the 0–100 mm gripper. If the lab's unit is the older 0–70 mm one, check the hole pattern before printing.

Finger fixture

fixture

  • Forks on both faces of the collar. The gear-side fork is 8 mm thick and fits the 15.9 mm gap between the collar and the 44T gear (1 mm to the collar). The outlet-side fork is 6 mm.
  • U-slots. Both forks have 25.5 mm U-slots, so the Ø25 tube passes through both and the collar can't. Lead-ins guide the new auger's tip.
  • The collar can't fall over. The nest under it is cut from its own underside (collar and solenoid, from their STEP files), offset 0.25 mm and open upward. The collar drops in and lifts out, but can't tip or roll, and its bore sits on the slots' axis.

Alternative A with the pin: two ways

Two-shell sleeves on the stock fingers Custom fingers
alt a alt a cf
sleeve cf
  • Sleeves.
    • Blue main shell on the grip face. Its inner face is the pad itself, so the 2 mm ramp stops it sliding toward the tip, and a lip over the fingertip stops it sliding the other way.
    • Green fixing shell. Two bands go round the back at the two arrows, joined by a spine down the curved back that also drops into the back's channel.
    • Screws. 4 × M3 countersunk (2 at each arrow, beside the finger) go into heat-set inserts: M3 × 10 at the upper arrow, M3 × 12 at the lower one, whose heads sit inside the cradle.
    • Fit check. Both shells are cut from AgileX's real finger, and neither touches the finger, the other sleeve or the tube.
  • Custom fingers.
    • Each is a 32 × 35 × 38 mm block on the stock MGN7C carriage, held by the 4 stock M2 × 8 screws, with an M3 heat-set insert for the stock shoulder screw and spacer.
    • They hold the tube 19.5 mm from the finger plate, against 65.5 mm with the sleeves. Command 24 mm to grip and 60 mm to release, and never go below 22 mm.
  • Both grip 180° of the tube on each side, so the pull bears on the cradle wall instead of relying on friction.
  • Pin.
    • A Ø8 steel pin in a printed housing locks over the mounting-plate floor's edge. An M6 ball plunger holds it in or out.
    • The gripper pushes and pulls it by a Ø25 grab bar, which it grips exactly like the tube.

The custom-finger GIF hits every IK target exactly. The sleeve version holds the tube 46 mm further out, so from the assumed arm position it falls up to 5.8 mm short on some moves near the bin and the rack, and on two frames lining up on the fixture. Every move that touches the pin, doser, fixture or rack is exact. Alternative B uses the same sleeves.

Strategy 1, high fidelity

s1 s1 tool
  • Mount. An aluminium J6 adapter copies the stock flange (6 × M3 countersunk on a Ø27 circle). The frame is one PETG print with both legs.
  • Lift. The carriage runs on an MGN9H rail. An 18T m1 pinion and rack lift it 28 mm.
  • Hook. It turns on a Ø6 shaft in two F686ZZ bearings. The carriage's underside now also presses the new auger into the clips.
  • Electronics. A Pi 5, the HQ camera with the 6 mm lens, and a Camera Module 3 Wide, both aimed at the jaw. It is powered from J6's built-in 24 V / 2 A XT30 port, so no cable runs down the arm.
  • Checks. 0 interferences with the doser seated, lifted and with the hook open, and both legs land with a 0.000 mm gap.
  • Mass. ≈0.62 kg, or 0.7–0.8 kg with the auger.

Servos to buy

Part Qty Each
Lift + hook Feetech STS3215-C018 (12 V, 2.94 N·m stall; position, load and current feedback; 360°) 2 + 1 spare $21.99 (Waveshare)
Pi 5 → servos Waveshare Bus Servo Adapter (A), over USB-C 1 $4.99 (Waveshare)
Power Pololu D36V50F12 (24 → 12 V) and D36V50F5 (5 V for the Pi) 1 each $39.95 each
  • Lift. It needs 0.36 N·m at 40 N.
  • Hook. It needs a full STS3215: the pull pushes the hook open with 0.8 N·m, and the smaller STS3032 stalls at 0.44 N·m.
  • Why not PWM servos. One turn of the pinion takes 178° of the 180° a PWM servo has, and they give no load feedback.
  • Power limit. Cap the torque limit (lift 60 %, hook 40 %) so two stalled servos stay under J6's 2 A.

Files and Onshape

Check before building

  • J6's XT30 gender, and whether its 24 V stays on when the arm is disabled.
  • The 6 mm lens can't focus on the jaw. It focuses no closer than 0.2 m and the jaw is ≈60 mm away. Adjust the HQ camera's back focus, or let the CM3 Wide do the close-up.
  • The tap collar's bore is only 0.2 mm bigger than the tube on each side. A 1 mm chamfer on it in the doser repo would make re-threading much easier.
  • Three round-1 numbers were off; Strategy 1 uses the measured values. The NEMA 11 plate top is at z 61.35, not 61.2; the old hook's arm cut into the tube; and the old leg B was in the opening hook's path. geometry.py, which Strategy 2 still uses, is unchanged.

View job run · Branch claude/issue-42-20261026-0528

github-actions Bot and others added 5 commits October 26, 2026 21:15
…re (WIP)

AgileX's gripper STEP is fetched at run time (agilex.py); the two-shell
sleeve and the custom finger are cut from its finger and carriage.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… A parts

Renders use AgileX's gripper STEP (fetched at run time) instead of the URDF
meshes; committed STEPs hold only our parts.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, Onshape sync

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ADME

Two STS3215-C018 bus servos (lift via an m1 rack and pinion, hook coaxial
with its pivot), MGN9 guide, Pi 5 with the HQ camera + 6 mm lens and the
Camera Module 3 Wide from PR #10, powered from J6's 24 V port.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jss265

jss265 commented Oct 29, 2026

Copy link
Copy Markdown
Member Author

@claude from the flange down, what is the weight of the end effector? Please list every component on that same end effector. What voltage does the PiPER arm operate at? What is the pin-out on the connectors between each J-motor on the PiPER? Could You control the Feetech servos you listed above through these same connectors? If not, are there other motors we could attach to in serial to these connectors?
Limit response to a sentence per question.

@claude

claude Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Claude finished @jss265's task in 5m 36s —— View job


Strategy 1 tool and the PiPER's wiring

  • Weight from the flange down: about 0.62 kg as designed (679 g in CAD with every print solid, 0.7–0.8 kg while it carries an auger), under the PiPER's 1.5 kg payload.
  • Every component: an aluminium J6 adapter (6 × M3×8 countersunk into J6, 4 × M3×8 into the deck), a one-piece PETG frame, a 70 mm HIWIN MGNR9 rail with an MGN9H block (4 × M3×8, 4 × M3×10), two Feetech STS3215-C018 servos with horns, an 18T m1 pinion (4 × M2×8) and 40 mm m1 rack, a PETG carriage with a 3 mm stainless finger (2 × M3×8 countersunk) and two F686ZZ bearings, a PETG hook jaw on a 41.5 mm Ø6 h6 D-shaft with an aluminium horn hub, M3 set screw and DIN 6799 e-clip, a Raspberry Pi 5 + Active Cooler and a Waveshare Bus Servo Adapter (A) on M2.5×5 standoffs, a Pololu D36V50F5 (5 V), a Raspberry Pi HQ Camera with the 6 mm CS lens and a Camera Module 3 Wide on a PETG pod, plus, not yet in the CAD, a Pololu D36V50F12 (12 V), an Amass XT30PW(2+2) pigtail with a ≤2 A fuse, M3 heat-set inserts, two camera ribbons, and the servo and power leads.
  • Arm voltage: 24 V DC (AgileX allows 24–26 V), and J6's XT30 port gives out the same 24 V at up to 2 A.
  • Pin-out between the J-motors: AgileX publishes none for the joint-to-joint wiring inside the links (or for the base's J1J2 port), only for the two ends of that chain, both 24 V plus CAN: the base aviation plug is pin 4 +24 V, 5 GND, 6 CAN-H and 7 CAN-L, and J6's XT30(2+2), drawn with the key on the left, has +24 V top, GND bottom, CAN-H left and CAN-L right.
  • Feetech servos on those connectors: not for control, since the STS3215 talks Feetech's half-duplex TTL serial at 12 V and the arm's lines are 24 V and CAN, so J6's XT30 can only power them through the 24 → 12 V converter while the tool's Pi drives them over the USB bus adapter, as designed.
  • Other motors in series on them: not within AgileX's rules, since §2.9 of the manual allows only AgileX's own devices (such as the stock gripper) on that CAN; a 24 V servo with a built-in 1 Mbps CAN driver, like the Damiao DM-J4310-2EC (≈325 g), would work electrically but its messages could collide with the arm's, so I'd use the XT30 for power only.

Sources: the PiPER user manual (§2.1 for the base plug and J6 drawing, the spec table for voltage, §2.9 for the CAN rule), the mass table and parts lists in s1_tool.py, and a DM-J4310-2EC listing. No files changed.
· Branch claude/issue-42-20261026-0528

@jss265

jss265 commented Oct 29, 2026

Copy link
Copy Markdown
Member Author

@claude one sentence, does your weight estimation in indlude the weight of the feetech motors, the Pi, and the camera, as well as the printed brackets?

@claude

claude Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Claude finished @jss265's task in 2m 29s —— View job


Strategy 1 tool weight: what it includes

Yes: the 679 g CAD total includes both Feetech STS3215 servos (2 × 55 g, from Feetech's spec), the Pi 5 with its Active Cooler (69 g), the HQ Camera with its 6 mm lens (95 g) plus the Camera Module 3 Wide (4 g), and every printed part (the frame with its brackets, the carriage, camera pod, hook jaw and rack, 215 g if printed solid in PETG), and the ≈0.62 kg figure is the same parts with the prints at about 60 % of their solid weight, plus about 25 g of cables.

Source: the mass table in s1_tool.py, which I re-ran for this answer. No files changed.
· Branch claude/issue-42-20261026-0528

@jss265

jss265 commented Oct 29, 2026

Copy link
Copy Markdown
Member Author

@claude, the finger fixture seems unnecessarily tall. Please keep in mind clearances and maintain required strength, but try to minimize footprint of the print and material to print. Also, please add a compliant latch to the slider so that when the slider is not pinning down the doser hinge, it won't move due to vibrations. don't worry about latching the other slider state. Also minimize print footprint and print volume but maintain required strength, and I like that the shape of the nob matches the contour of the grippers/augers.

@claude

claude Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Finger fixture: 47 mm tall instead of 89; tilt-lock slider: compliant latch

The finger fixture is now 47 mm tall instead of 89, and it takes about a sixth of the material. The tilt-lock pin is now a printed slider in a printed guide. A compliant latch holds it pulled out, so the doser's vibration can't walk it back over the floor. It keeps a Ø25 knob that the cradles wrap like the auger tube. fit_check.py, a new script, finds 0 interferences in every pose below. All five GIFs, the STEP/STL files and the Onshape document are updated. Nothing has been printed yet.

Finger fixture

Before Now
Height 89 mm 47 mm
Footprint 80 × 49 mm 40.5 × 31 mm
Volume (solid) 155 cm³ 24.8 cm³
Tube axis above the board 75 mm 35 mm
Screws 4 × M4 in a flange 2 × M4, under where the collar sits
  • Why it was tall. Only Strategy 1's leg B needed the height: with the carriage up, it hangs 57 mm below the tube.
  • What changed. Strategy 1 now lowers its carriage over the fixture first, so the leg hangs only 29 mm below. Strategy 2 does the same with its wheel at 200°. The collar (16.75 mm) and the gear (23 mm) hanging below the tube keep it from going much lower.
  • Clearance to the board with the tube in the fixture:
    • Strategy 1: 5.75 mm
    • Strategy 2: 4.6 mm
    • Sleeves or custom fingers: 17.9 mm
  • Forks. Both are 6 mm, with 25.5 mm U-slots and 7.5 mm tines either side. F2 leaves 8.9 mm to the gear.
  • Nest. Instead of a solid block there are two 4.5 mm ledges, one on each fork, cut from the collar's own underside. That outline is the same along the whole collar, so the collar still can't roll. It sits 0.25 mm from the ledges.
  • Strength. If a jammed collar took the arm's full 40 N, the fork root would see about 2 MPa and the tines about 5 MPa, across the layers. PETG's interlayer strength is about 20 MPa.

Tilt-lock slider

Pushed in, over the floor Pulled out: the latch (section)
Before (pin) Now (slider)
Printed volume (solid) 50.4 cm³ 21.2 cm³ (guide 7.7, slider 13.5)
On the board 36 × 48 mm 380 mm² (a 6 mm web and two screw tabs)
Bought parts Ø8 steel shaft, M6 ball plunger, M3 screw and nut, 2 × M4 2 × M4 wood screws
Knob Ø25 bar, 75 mm up Ø25 hollow cup, 47 mm up
  • Latch.
    • A 20 × 8 × 2 mm cantilever cut into the bar carries a 1.3 mm bump.
    • Pulled out, the bump springs up into a window in the guide's roof. Its back face is undercut 15°, so pulling further only hooks it in deeper; that is also the out stop.
    • Pushing in, its 40° ramp bends the beam 1.05 mm, at 0.8 % strain. That takes ≈6.4 N from the gripper, against a 17 g slider. The pushed-in position is not latched, as you asked.
    • To remove the slider, press the bump through the window and pull it out.
  • Knob. It is still Ø25. Before, its post sat under the bar, inside the closed cradles, with 286 mm³ of overlap per finger. The cup is now held from its end, and the cradles close on its free 26 mm with 0.10 mm clearance.
  • Strength. A full 33 N from the floor puts 3 MPa in the bar, and 6.7 MPa where the latch slot thins it. Both stresses run along the print layers, where PETG is good for about 45 MPa.
  • Printing. The slider prints on its side, so the latch flexes along its layers; pin_slider.stl is already turned that way. The guide prints base-down. No supports.

GIFs

Alt A, custom fingers Strategy 1
  • IK. Strategy 1, Strategy 2 and Alt A custom fingers reach every frame exactly.
  • Sleeves (Alt A and B). Since the fixture is lower, they miss on 20 frames instead of 40, all at the bin, by up to 1.5 mm instead of 5.8.
  • Fixed in the old GIFs:
    • Strategy 1 and Strategy 2 landed the tool 28 mm too low on the doser, with the legs sunk into the floor and the hook closing under the tube. They now land, lower the carriage, hook and lift.
    • The pin GIFs showed the cradles closing through the bar's post. The new knob fixes that.

Files:

Check when printing:

  • Latch force. The ≈6.4 N is calculated, not measured. If the print is too stiff or too soft, change LATCH_T (2.0 mm) in hifi.py.
  • Sliding fit. The guide has 0.25 mm a side; some printers will need more.
  • Collar on the ledges. Drop the collar in by hand once to confirm it sits steady on the two ledges.

View job run · Branch claude/issue-42-20261026-0528

github-actions Bot and others added 2 commits October 29, 2026 19:59
… compliant latch (WIP)

Fixture axis 75 -> 35 mm (S1/S2 lower their carriage before the fixture),
two 6 mm forks, ledges cut from the collar's underside, screws under the collar.
Slider: printed bar + Ø25 knob in a printed guide; a cantilever in the bar
clicks into a roof window when pulled out.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
… fixture

S1/S2 lower their carriage over the fixture (legs 29 mm under the tube);
their removal now lands the legs on the doser (was 28 mm low). Knob 36 mm
long so both custom fingers clear the post. fit_check.py checks the fixture
with every tool and the slider with both grippers. New S1 GIF, STLs, Alt A STEPs.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
claude Bot pushed a commit that referenced this pull request Oct 29, 2026
…k-finger sleeves on one A1 mini plate

STLs from b9caa43 on claude/issue-42-20261026-0528. Black PLA Basic, 0.4 mm,
0.20mm Standard @bbl A1M; 3 walls/20 % for the slider, guide and fixture,
4 walls/40 % for the sleeve shells. Main shells stood on their -X end and
fixing shells on their split face (Bambu flags the README's orientations).
3 h 16 min, 98.81 g, 242 layers; GUI slice matches the CLI's.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
github-actions Bot and others added 3 commits October 29, 2026 20:38
…, README

Alt A sleeves: IK misses down to 20 bin frames, 1.5 mm (was 40, 5.8 mm).
S2 now lands on the doser and lowers its carriage (wheel 200 deg) at the fixture.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
…ow fixture and slider

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
@jss265

jss265 commented Oct 29, 2026

Copy link
Copy Markdown
Member Author

@claude, well done. I want two more changes. To the sliders I see how the plane where the slider member interfaces with the nob was lowered to the print be to eliminate supports. Please move the slider member to the middle of the nob - in this case supports are fine. Also, add some thin support as drawn in red below to both sides of the finger fixture. Ensure there is ample clearance for any moving parts. Add a bevel, 45 deg from flat, to the opening hole of the fixture so that a slight mis-alignment of the arm can be compensated for.
image

@claude

claude Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Slider post at the knob's middle, fixture side webs, 45° lead-ins

The slider is now a T: its post meets the knob at the knob's middle. The fixture has a thin web in each side window, and its slot mouths open at 45°. fit_check.py finds 0 interferences in every pose. All five GIFs, the STEP/STL files and the Onshape document are updated. Nothing has been printed yet.

Tilt-lock slider: a T, with notched jaws

T-knob, pushed in Custom fingers on the knob
  • Knob. It is a 40 mm Ø25 tube centred on the bar. A 6 × 6 mm post rises from the bar into a solid hub at the knob's middle.
    • The gripper now pushes and pulls in the bar's own centre plane.
    • Round 3's knob stuck out 28 mm to one side, so every push also twisted the bar in its guide (0.25 mm a side).
  • The jaws needed a notch. A post under the knob's middle sits exactly where the two cradles' jaws meet, which is why round 3 held the knob from its end. Each jaw now has a 10 mm relief notch in its middle, on both the custom fingers and the sleeves (right image, from below).
    • Clearance. 1.5 mm to the post across the knob and 2 mm along it, so the gripper can be ±2 mm off along the knob.
    • Grip. The cradle wraps 155° at the notch instead of 171°. On the auger tube the notch faces down.
    • Fingers. The notch is centred on the J6 axis, so both fingers are still the same print.
  • Knob 3 mm higher (axis at 50 mm). With the gripper centred on the slider, the custom-finger gripper's finger plate passed only 0.2 mm above the 44T gear. It is now 3.2 mm above it.
  • Printing. It still stands on the knob's end, so the latch beam flexes along its layers. The bar is now 16 mm off the bed and prints on supports, as you allowed. The hub bridges the knob's Ø19 bore.
  • Strength. The post sees about 5 MPa at the 6.4 N unlatch push and 15 MPa at 20 N, along its layers. PETG is good for about 45 MPa that way.

Finger fixture: side webs and 45° lead-ins

  • Side webs, as in your sketch. Each side window gets a 2.4 mm web between the ledges. It is flush with the fixture's side, runs from the board to 20 mm, and has 45° on its inner top edge.
    • What they do. With the plate and the ledges they close the base into a box, so a strip load on F2 also reaches F1.
    • Clearance to the collar. 3.6 mm to the collar's lug, its lowest part near the webs. The collar comes to rest on the ledges, so it can't get closer.
    • Other clearances. 32 mm to the solenoid and 11.6 mm to the tube. The webs are inside the old outline, so no tool's clearance changed.
    • Screws. Still reachable from above.
  • 45° slot mouths. They open 5 mm a side over the top 5 mm (round 3: 3.5 mm at 55°). A tube lowered up to 5 mm off across the auger slides into the slot. Each tine keeps a 1.5 mm flat on top.
  • I also chamfered the forks' tops on the collar side, 2 mm at 45°. The collar has only 1 mm a side between the forks, so an arm error along the auger would land it on a fork. Now it is caught up to 3 mm off. Say if you'd rather not have it.
  • Size. Same footprint and height, 25.5 cm³ instead of 24.8. It still prints base-down with no supports.

Also fixed: the sleeve fixing shell

  • The bug. Round 2 and 3's sleeve_fixing_shell_x2.stl had lost its finger clearance: 3.9 cm³ of it sat inside the stock finger, so it wouldn't have gone on. The main shell's STL wasn't watertight either.
  • Cause. Building the main shell first changed the tolerances of the shared AgileX solids. agilex.solids() now hands out copies.
  • New STLs. 6.7 and 22.7 cm³, watertight, and 0 mm³ into the finger. Re-download both if you saved the old ones.

Checks and GIFs

Alt A, custom fingers Strategy 1
  • Fit check. 0 interferences for every tool in the fixture, for both slider positions, and for both cradle types on the knob.
    • The knob check now also includes the seated auger, gear and stepper.
    • Lowest points are unchanged: S1 5.75 mm, S2 4.57 mm, either gripper 17.9 mm above the board.
    • It still reports 9.5 mm³ between the latch bump and the guide roof. That is the beam's designed 1.05 mm bend.
  • IK. S1, S2 and the Alt A custom fingers hit every frame exactly. The two sleeve GIFs miss by up to 1.5 mm on 20 frames, all at the bin, as in round 3.

Files:

Check when printing:

  • Slider supports. Clean the bar's supported face well, because it slides in the guide with 0.25 mm a side.
  • Gripper position. The gripper has to come down on the post's centre within ±2 mm along the knob.

View job run · Branch claude/issue-42-20261026-0528

claude Bot pushed a commit that referenced this pull request Oct 29, 2026
… README status, support handling for the next slice

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
github-actions Bot and others added 2 commits October 29, 2026 22:12
… notches, fixture side webs and 45 deg lead-ins (WIP)

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…bs and 45 deg lead-ins; fix the sleeve fixing shell

- Slider: the post meets the knob at its middle; each cradle jaw (custom fingers,
  sleeves) has a 10 mm relief notch centred on J6 that straddles it. Knob axis 47 -> 50 mm
  so the custom-finger gripper clears the 44T gear (3.2 mm).
- Fixture: 2.4 mm webs in both side windows (to 20 mm, 3.6 mm under the collar's lug),
  45 deg x 5 mm slot mouths, 45 deg x 2 mm chamfer on the forks' collar-side tops.
- agilex.solids() returns copies: booleans had raised the shared solids' tolerances, so the
  fixing shell built after the main shell lost its finger clearance (round 2/3 STL).
- STL export retries finer tessellation until watertight; scene.py cache writes are
  atomic so GIFs can render in parallel.
- fit_check also checks the gripper on the knob against the seated auger, gear and stepper.
- Re-exported STEP/STL, re-rendered views and all five GIFs, Onshape re-synced in place.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude Bot pushed a commit that referenced this pull request Oct 30, 2026
… black PLA (CLI slice)

Slider on its knob's end with normal supports under the bar only (bridges unsupported, so the
hub bridges the knob's bore); main shells stood on end; fixing shells on their back with tree
supports under the raised spine and band; fixture and guide base-down.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jss265

jss265 commented Oct 30, 2026

Copy link
Copy Markdown
Member Author

@claude can we power the Pi from the PiPER's XT30 connectors? please limit response to one paragraph explaining how to do it best (circuitry required) and keet low weight a priority

@claude

claude Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Claude finished @jss265's task in 8m 49s —— View job


Powering the Pi from J6's XT30

Yes. Use J6's XT30(2+2), which AgileX rates at 24 V / 2 A. The other XT30 is on the base's supply cable and would need a cable run up the arm. The only circuit needed is a small 24 → 5 V buck, because the Pi 5 with both cameras and its cooler takes ≈7 W, about 0.3 A of that 2 A (≈0.6 A flat out). The lightest good chain is: an XT30(2+2) pigtail using only the + and − pins (leave CAN-H/L unconnected; AgileX reserves them) → the ≤2 A fuse already in the parts list → a 47–100 µF 50 V electrolytic across the input (≈1 g; it damps the voltage spike when the port goes live) → a Pololu D36V28F5 (3.3 g, 5 V at 3.2 A, reverse-voltage and output-overvoltage protection, and rated for 50 V in where the parts list's D24V50F5 takes only 38 V) → two short 22 AWG leads to the Pi's header pins 4 (5 V) and 6 (GND). That needs no USB-C cable or PD board, and it comes to ≈6 g in total, against 7 g for the D36V50F5 alone that the CAD has now. Feed the buck straight from the 24 V, in parallel with the servos' 12 V buck, not off the 12 V rail as s1_tool.py has it, so a servo stall can't pull the Pi's supply down. Double-check the polarity, because nothing on the header protects against reversing it. Without USB-PD, the Pi 5 assumes a 3 A supply, shows a low-power warning and caps its USB ports at 600 mA. That's harmless here, because the servo adapter's USB side draws only tens of mA. Nobody has checked yet whether J6's 24 V drops when the arm is disabled, so turn on raspi-config's overlay file system: a sudden power cut then can't corrupt the SD card, and it adds no weight.

Sources: PiPER manual §2.9–2.10, Pololu D36V28F5, Pololu on LC spikes, Raspberry Pi power docs. No files changed.
· Branch claude/issue-42-20261026-0528

@jss265

jss265 commented Oct 30, 2026

Copy link
Copy Markdown
Member Author

@claude wait for the previous ping to conclude, then show a few graphic of the setup idea

@claude

claude Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Claude finished @jss265's task in 20m 32s —— View job


Graphics of powering the Pi from J6's XT30

These are two graphics of the setup from the previous answer: the wiring, and the same parts sketched on the Strategy 1 tool. Nothing is built or wired yet, and the CAD is unchanged.

Wiring

  • J6's port is drawn as in the PiPER manual (§2.9): + above −, with CAN-H and CAN-L side by side below them. The pigtail uses only + and −.
  • Pi chain. It runs ≤2 A fuse → 47–100 µF 50 V cap → Pololu D36V28F5 (24 → 5 V, 3.3 g) → a 1×2 Dupont on header pins 4 (5 V) and 6 (GND). The cap, buck and leads come to ≈6 g.
  • Parallel bucks. The servos' D36V50F12 takes the same fused 24 V in parallel, so a stalled servo can't pull the Pi's 5 V down.

On the Strategy 1 tool

  • D36V50F12. It takes the D36V50F5's spot on the deck, since both are 25.4 mm boards.
  • D36V28F5. It sits on the deck's +X/+Y corner, so the 5 V leads run about 5 cm over the deck edge to pins 4 and 6.
  • Pigtail. It is drawn loose because AgileX's URDF doesn't model J6's XT30 port, so I didn't guess where it sits.
  • CAD unchanged. This is only a sketch: s1_tool.py, its STEP file and the mass table still have the D36V50F5 running off the 12 V rail. Say if you want the CAD changed to match.

Files:

Wiring diagram (XT30 pigtail, + and - only -> <=2 A fuse -> 47-100 uF 50 V ->
Pololu D36V28F5 -> Pi header pins 4 and 6, with the servos' D36V50F12 in
parallel) and a 3D sketch of the same parts on the Strategy 1 tool.
s1_tool.py, its STEP and mass table are unchanged.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jss265

jss265 commented Oct 30, 2026

Copy link
Copy Markdown
Member Author

@claude I feel like the fuse isn't needed. Two sentence response

@claude

claude Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Claude finished @jss265's task in 5m 50s —— View job


Is the fuse needed?

Mostly, yes, you're right: both Pololu bucks already have short-circuit, over-current, reverse-voltage and thermal protection, so a fuse would only add cover for a short in the few centimetres of 24 V lead and capacitor before them, or for the servos pulling past J6's 2 A if their torque caps aren't set. AgileX doesn't say J6's port is current-limited (the manual gives only "Voltage: 24V, current: 2A MAX", on a supply of at least 10 A), so if you drop it, keep that lead short and strain-relieved and write the torque caps to the servos' EEPROM (register 16), since register 48, which the README uses, reloads from register 16 (full torque from the factory) at every power-up.

Sources: PiPER manual (§2.9 and the spec table), Pololu D36V28F5, Pololu D36V50F12, Feetech STS memory table (and LeRobot's table, which agrees: 16 in EEPROM, 48 in SRAM). No files changed; say if you want the fuse taken out of the README and the wiring graphics.
· Branch claude/issue-42-20261026-0528

@jss265

jss265 commented Oct 30, 2026

Copy link
Copy Markdown
Member Author

@claude the gripper sleeves are good, but the counter sinks need to be flat for machine screws and twice as deep (as the lowest part of the current countersink) so the head is below the surface of the part.

@claude

claude Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Claude finished @jss265's task in 21m 57s —— View job


Sleeve screws: flat counterbores, heads below the surface

Each sleeve's four M3 holes are now flat-bottomed counterbores, 3.5 mm deep. That is twice the depth of the old countersink's lowest point (1.75 mm, where the 90° cone met the Ø3.4 bore). They take M3 socket head screws (ISO 4762), whose 3.0 mm heads now sit 0.5 mm below the surface. Only the blue main shell changed; the green fixing shell and its inserts are as before. Nothing has been printed yet.

Before Now
Hole 90° countersink, Ø6.9 at the surface flat counterbore, Ø6.2 × 3.5 mm deep
Upper pair (in the 5 mm web) M3 × 10 countersunk (ISO 10642), flush M3 × 6 socket head, 0.5 mm below the surface
Lower pair (in the cradle) M3 × 12 countersunk, flush with the cradle's top M3 × 8 socket head, 0.5 mm below the cradle's top
Main shell 22.7 cm³ 22.5 cm³
  • Shorter screws. The heads sit 3.5 mm deeper, so the screws are shorter. Each still goes 4.5–4.85 mm into its 5.7 mm insert. Don't mix the two lengths up: an M3 × 8 in an upper hole would reach the end of the insert's hole.
  • Ø6.2 instead of the usual 6.5, so the upper pair keeps 0.9 mm of wall to the shell's side. It still clears the Ø5.5 head, and pan or button heads (Ø5.6–5.7) also sit below the surface.
  • Under the heads. At the upper pair, 1.5 mm of the 5 mm web is left, pressed straight onto the green shell's leg. At the lower pair, 3.15 mm is left. The lower heads are 0.6 mm from the tube.
  • Fit check. The new screws have 0 interferences with the shells, the finger, the inserts and the tube. The shells only lost material, so I didn't re-run the rest of fit_check.py.
  • I corrected the print orientation. The README said to print the main shell on its outer web, but the cradle stands 13 mm proud of that face. Print it on either side face, with the cradle's axis vertical. The counterbores then print as horizontal holes, and no supports are needed: the only overhangs are the tops of the holes and a few short bridges.
  • Re-download sleeve_main_shell_x2.stl only. The fixing shell's STL hasn't changed.

Files:

  • Code:
    • hifi.py: cb_hole() and the new screws in sleeve_hardware().
    • views.py: counterbores() draws the section view above.
    • onshape_upload.py: a new --only option, so it syncs only the STEPs that changed.
  • STL: sleeve_main_shell_x2.stl, watertight.
  • Write-up: the README's sleeve section.
  • Renders:
    • alt_a.gif and alt_b.gif are re-rendered. The IK results are the same as before: up to 1.5 mm off on 20 frames, all at the bin.
    • The sleeve stills are re-rendered too.
  • Onshape: the Alternative A and B Part Studios in the document were updated in place, so existing links still work. Each now has 8 socket head screws and no countersunk ones.

Not changed: the M4 countersunk wood screws on the fixture and the slider guide, and Strategy 1's countersunk M3s. Say if you want those as counterbores too.
· Branch claude/issue-42-20261026-0528

…ountersink's depth

The four M3 holes in each sleeve's main shell are now flat-bottomed counterbores,
Ø6.2 x 3.5 mm deep (the old 90 deg countersink met the Ø3.4 bore 1.75 mm down), for
ISO 4762 socket head screws whose 3.0 mm heads sit 0.5 mm below the surface: M3 x 6
in the upper pair, M3 x 8 in the lower pair, into the fixing shell's unchanged inserts.
Re-exported the sleeve STEPs and main-shell STL, re-rendered the sleeve stills and the
Alt A/B GIFs, added a section view through the screws, and synced the two Part Studios
in Onshape (onshape_upload.py --only). The README's print orientation for the main
shell is corrected to a side face.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude Bot pushed a commit that referenced this pull request Oct 30, 2026
…n black PLA

2 x main shell (flat M3 counterbores, 097006f) and 2 x fixing shell (unchanged
since round 4), in #53's orientations and settings: main shells stood on their
-X end, fixing shells on their back with tree supports; 4 walls, 40 % infill.
CLI slice: 2 h 19 min, 57.0 g, 242 layers to 48.4 mm, no support flags.

Co-authored-by: Joshua Spiesman <99856667+jss265@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant