You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
AgileX PiPER camera mount with Pi 5 and up to two cameras, one of them being an HQ camera #4
Probably use onshape, but you could try with programmatic CAD languages. You can use a Pi to get the files you need for modeling. See also #2 (comment)
Probably one HQ camera and one wide angle camera. HQ camera for repeatable positioning. Wide angle camera for streaming. Though, we could do HQ camera with borysgroup/streamingLambda#10 potentially, too.
PiPER wrist camera mount: modelled, checked against AgileX's own gripper CAD, and in Onshape
I've designed a mount for a Pi 5, the HQ Camera and a Camera Module 3 Wide, built around AgileX's gripper STEP. It passes every interference check and is now in Onshape. Nothing has been printed or sliced yet. I didn't build on vertical-cloud-lab/byu-vcl#238, because its design wasn't ready. Everything is in piper-camera-mount/, and the details are in its README.
Looking back from the fingertips (fully open)
Pi 5 side
How it attaches
AgileX's gripper STEP is still downloadable from their CDN. The model is built in its coordinate frame, so the real gripper goes into every check. It showed two things to hold on to:
A side tab on the finger plate with two M3 tapped holes, 12 mm apart and opening toward the arm. Two M3 × 12 screws through the bracket go into these. They locate the mount and stop it turning, and the screws holding the gripper to its flange aren't touched.
A plain Ø57 mm body running from the finger plate back to the J6 flange. A two-piece collar clamps round it with 4 × M3.
The cameras go on the tab side and the Pi 5 on the other side, so the load on J6 roughly balances. The printed parts are:
Bracket: the camera plate, which also sits on the tab, plus half the collar. It prints camera plate down.
Carrier: the other half of the collar and a plate for the Pi. It prints plate down, with 45° gussets under the clamp ears.
Interference: 0 mm³ for all 38 pairs. That covers the gripper body, the fingers both closed (0 mm) and fully open (100 mm), and the parts against each other. The nearest part is 15.6 mm from the fingers.
Nothing sits behind the J6 flange face. The rearmost point is 64.5 mm, against the flange face at 64.98. From AgileX's full-arm STEP, the J6 housing and link 5 stay within about 33 mm of the axis there, so the mount can't reach them at any J5 or J6 angle.
AgileX's flange solid broke OpenCascade's checks. It measured as touching a part 15 mm away. The checks use a solid Ø57 × 10.5 mm cylinder in its place, which makes them stricter, not looser.
What the cameras see (simulated; 10 mm grid 120 mm past the fingertips; red dot on the gripper axis)
HQ Camera + 6 mm lens (55 × 43°)
Camera Module 3 Wide (102 × 67°)
HQ Camera: the fingers never enter its view, at any opening. Its axis runs parallel to the gripper's, 63 mm off to the side, so the gripper axis only comes into view from 63 mm past the fingertips. For positioning, put the fiducials to one side of the target.
Toe-in isn't usable yet. The model has a toe-in parameter, and at 12° the axis would come into view 6.5 mm past the tips. But the plate's clearance cuts don't follow the tilted cameras yet, so that setting fails its interference check. Everything here is at 0°.
Camera Module 3 Wide: it sees the fingertips and the vial, which is what a stream needs. If the HQ Camera streams as well, using the approach in streamingLambda#10, the Wide can be left off.
@claude noting that in what I'm seeing, it might be better to back the camera off a bit more, and potentially angle it or at least make sure that a fiducial marker added/fixtured to the gripper could be in view, but your renders look nice. Idk if that's overkill or necessary, but it's on my mind (having the camera be able to localize both the gripper and a fiducial marker on some object)
Do the A1 mini slice and any other printing checks or simulations.
Also just seeing that it might be harder to get into tight spaces, but not exactly sure how big of a deal that's going to be.
Make an OnShape version of your final design using the API
Also look into the nifty "easy disconnect cables" that Yang Cao mentioned somewhere (AccelerationConsortium repo, maybe ac-dev-lab? or maybe it was in a private repo..) which offers some protection in case of collision or the cord getting caught. I think they were magnetic or something
Check on the real gripper first
You can probably use the Pi to look at YouTube or other sources to get this info, perhaps even doing some image measurements
Move the HQ Camera back and angle it. CAD rebuilt; interference checks running.
New layout: the cameras move to a separate pod that bolts onto a web on the bracket. The lens front is 32 mm further back and sits behind the finger plate's front face. The pod is turned 17° toward the gripper axis.
Simulated HQ view: the fingertips are in view, and a 20 mm target tag is detected from 60 mm past the fingertips onward.
Finger tags: a 5 mm AprilTag on each finger is detected from 0 to 60 mm of opening. Each sits on a small printed 35° wedge, which brings the viewing angle down from 67° to 32–39°.
Measure how much the mount adds to the gripper's size, for tight spaces
Slice for the A1 mini and run other print checks
Check the real gripper. AgileX's manuals and install videos answer both questions:
The tab: AgileX calls it the "reserved camera mounting platform". It has two M3 brass inserts, 12 mm apart, and AgileX's own D435 wrist bracket bolts to it. The gold inserts are visible in AgileX's 1080p setup video; I pulled the frames through the stream-cam Pi and have since deleted them from it.
Two gripper versions: the 0–100 mm gripper puts the tab holes 38 mm off the axis, and our STEP matches that one. The older 0–70 mm gripper puts them at 36 mm. Please check which one the lab has, by maximum opening or by finger-plate width (about 164 vs 145 mm).
The power/CAN lead: it is a short 4-wire jumper. It plugs into a notch in the gripper's back cover right at the flange ring (y ≈ 48–54, on a finger-travel side) and loops back to a socket on J6. The collar already stops at y = 46, and nothing in the mount enters that zone.
Radial screws: four countersunk M3 screws in the flange ring hold the gripper on. The mount covers two of them, so remove the pod and carrier before taking the gripper off.
Look into Yang Cao's "easy disconnect" cables. I couldn't find his mention in any public repo. The closest public trace is your ac-dev-lab#328 comment pointing to Adafruit's magnetic USB-C line. Options are going into the README.
@claude where are you at with this? Also, did you consider the angle to be a good idea? Also, yes - the magnetic USB-C line is I think what that was. Also, for the power/CAN, are you implying that we could use that one? I thought you already said that we would loop it along the arm. Maybe I just misunderstood your comment about power/CAN. Also, I think CLAUDE.md tells you how to deal with the 1 hr limit now
@claude try again. Also, it looks like there's not much interface / contact with the angled camera attaching to the rest (see below). I'm worried a bit about it staying supported and rigid
I'm also confused about the step where the large black cylinder comes in, where it's coming in from the wrong side, but maybe that's just a minor hiccup.
PiPER camera mount: the pod now sits on a 45° seat, the GIF is fixed, and it's sliced and in Onshape
I've done four things:
given the camera pod a proper seat on the bracket;
fixed the lens step in the assembly GIF;
sliced everything for the A1 mini and run a stiffness simulation;
imported the final design into Onshape.
Nothing has been printed yet. Details are in the README.
The pod joint
You read it right. The pod touched the bracket only along an 11 × 40 mm strip at its inner edge. That was 325 mm², held by 2 × M3, and the cameras hung about 50 mm out beyond it.
What changed: the bracket now widens outward at 45° until it meets the pod's front face.
The pod sits on it from its inner edge out to the HQ lens axis.
Rails run along the pod's top and bottom edges, either side of the lens.
Contact:987 mm², three times as much, with 4 × M3 38 mm apart vertically. The nuts drop into slots in the top and bottom of the seat.
Lens clearance: the lens sits in a cradle cut through the seat with 1.5 mm to spare. The pod goes on straight down its lens axis, lens fitted.
Printing: it still prints pad-down with no supports.
Camera views: the HQ sees no printed part at all. I bevelled the seat's top corner along the bottom of the Wide's view, so the Wide sees exactly as much of the bracket as before.
Interference: all 49 pairs are still 0 mm³.
Simulated stiffness (sim/joint_fea.py). This applies the camera and lens weight (83 g) at 1 g, with the pod bonded to the bracket:
Load along
HQ moves, old → new
Axis tilts, old → new
Picture shifts, old → new
Y (gripper pointing down, the worst case)
12.1 → 0.96 µm
1.77 → 0.16 arcmin
2.0 → 0.18 px
Z (finger travel)
4.2 → 0.97 µm
0.16 → 0.010 arcmin
0.18 → 0.011 px
The first natural frequency goes from about 110 Hz to 360 Hz. Read these as a comparison, not as the printed part's numbers:
Bonded, solid PLA flatters the old joint, which in reality pivoted on an edge 5 mm from its screws.
The camera's centre of mass, about 2 cm in front of the bosses, isn't modelled, so sideways tilt is understated for both designs.
It's still two parts on purpose. In one piece, either the angled camera plate or the collar would need supports. Keeping the pod separate also lets the cameras come off without touching the collar.
The black cylinder in the GIF
That was the HQ Camera's 6 mm lens. animate.py flew it in from behind the camera board, straight through the PCB. It now threads in from the front. The pod also slides down its lens axis onto the seat, instead of coming in on a diagonal.
Printing and Onshape
A1 mini slice (slice/): everything fits on one plate: 2 h 49 min, 87.4 g of PLA, with 3 walls and 25 % infill.
Supports are off, and Bambu's support check flags none of the parts.
There are no slicer warnings.
The only overhangs steeper than 45° are nut-slot and counterbore roofs, which print as short bridges.
Onshape: the final design is PiPER wrist camera mount (4be6e17) in vcl-shared › 6DOF Robot Arm, owned by Vertical Cloud Lab. It took 7 API calls.
The parts are still imported solids, not native features.
You can delete the earlier 9f691e6 copy in that folder, and the uncopied original in the API key owner's account.
Your questions
Where it's at: the design is finished and checked but not printed. Next is a test print, after confirming which gripper we have (below).
Is the angle a good idea? Yes, for seeing a fiducial on the gripper and one on the object in the same picture. Checked with the pod set back:
Not turned: the gripper axis only comes into the HQ's view 64 mm past the fingertips, and the fingertips and finger tags are never in view.
Turned 17°:
The fingertips are in view up to 80 mm open.
The finger tags are detected from 0 to 60 mm.
A 20 mm target tag is detected at every opening, 60 mm or more past the tips.
The costs:
the seat above;
10 mm of extra width on the camera side, past 85 mm behind the tips;
targets straight ahead are seen 17° off square, which the pose solve handles.
Power/CAN: no, I wasn't suggesting we use it. That lead is the gripper's own short jumper from J6, and I only mentioned it to confirm the mount stays clear of it (the collar stops 2 mm short). The Pi still gets its own USB-C lead run along the arm, as before.
Magnetic USB-C: Adafruit's magnetic right-angle USB-C adapter (product 5521) should work. It's rated 120 W and carries data, and it goes at the Pi end so a snagged lead pulls apart.
Check that the Pi 5 still sees a 5 A supply through it.
If it doesn't, the Pi limits its USB ports to 600 mA. The CSI cameras don't use USB, so that's fine here.
The 1-hour limit: this run finished inside the hour, so the token never needed re-minting.
Check before printing
Which gripper we have:
On the 0–100 mm gripper, the tab inserts sit 38 mm off the axis, which is what this design uses.
On the older 0–70 mm gripper they sit at 36 mm, and the pad would need moving 2 mm.
To tell them apart, check the maximum opening, or the finger plate's width (about 164 vs 145 mm).
Tab screws: they go into brass inserts in the gripper's plastic, so snug them only.
Material: consider PETG for the bracket and carrier, since it creeps less under clamp load.
@claude the HQ Camera requires a lens to be purchased. There are two official options: the 16mm telescoping lens and the 6mm Wide lens. Your rendering seems to assume the 16mm telescoping lens. Can you please analyze those two options and make a recommendation for our setup? I would assume the 6mm wide lens would be more appropriate. If so, can you re-render the CAD files as such?
The 6 mm is the right lens for this mount, as you assumed. The CAD already used it, though. The model had the 6 mm's official Ø30 × 34 mm and 53 g, and the simulated views used its 55° field of view. It was drawn as a plain black cylinder, which reads more like the 16 mm.
I've now modelled it as it really is, with its rings and two locking thumbscrews. That turned up a real clash with the mount, which I've fixed (below). Everything is written up in the README's Which HQ lens section.
The figure puts both lenses on the same camera, on the same pod. The top row shows how each fits. The bottom row is the HQ picture through each, with simulated depth-of-field blur and the AprilTags the detector found outlined in red.
6 mm wide-angle
16 mm telephoto
Mount, size, mass
CS; Ø30 × 34 mm; 53 g
C, on the C-CS adapter; Ø39 × 50 mm plus the 5 mm adapter; 134 g
Field of view on the HQ
55 × 45°
22 × 17°
Finger tags (82 mm from the lens)
in view from 0 to 60 mm open, about 105 px across
never in view
20 mm target, 60 / 120 mm past the tips
241 / 178 px across
740 / 524 px across (the whole tag fits only at 120)
A finger tag and the target detected together, with blur
11 of 18 poses
0 of 18
Least blur from the finger tags out to a target 60 mm past the tips
6 px, at f/8
31 px, at f/16
Fits this mount
yes
no: it cuts into the seat and the finger plate, and blocks the Wide
Price at launch
$25
$50
Why the 6 mm
Field of view. Only the 6 mm keeps the finger tags and a target in the same picture. That is the HQ's job here: locating the gripper and the object together. The pod sits 60 mm off the gripper axis, and from there the 16 mm sees a patch only about 24 × 18 mm at the depth of the finger tags.
Depth of field. The HQ works from about 82 mm (the finger tags) to 161 mm (a target 60 mm out).
6 mm: at f/8 and focused about 108 mm out, it blurs each end by about 6 px. The detector still finds everything it finds in ideal pictures.
16 mm: it has about seven times the defocus, so it would need refocusing by hand between near and far.
The 6 mm has enough resolution. A 20 mm target tag is 180–290 px across from 30 to 120 mm past the tips, and AprilTag needs about 30 px. The 16 mm's 10 MP rating and nearly three times the magnification only pay off at longer range, for example on a fixed overhead camera.
Fit and load. The 16 mm is 21 mm longer and 9 mm wider. It cuts into the seat (1663 mm³) and the finger plate (176 mm³), and puts 3.9 times the moment on the pod joint.
What changed in the CAD
The 6 mm lens model: its rings and two thumbscrews, measured off product photos and scaled to Raspberry Pi's official size (cad/lenses.py).
The cradle.
The problem: the thumbscrews stand about 5 mm proud of the barrel, and focusing turns the aperture ring, so its screw can end up pointing anywhere. The old cradle allowed only 1.5 mm, so it would have hit them over about half the circle (970 mm³).
The fix: the cradle is now Ø43 from the pod to just past the aperture screw. The pod still slides on with the lens fitted.
Checks: every interference check passes, 61 pairs at 0 mm³, including both screws at any angle.
Seat contact: down from 987 to 901 mm².
Pod joint FEA (re-run): in the worst case (1 g along Y) the camera moves 1.22 µm instead of 0.96, which shifts the picture 0.23 px. The joint is still about 9 times stiffer than the original strip joint, and its first mode is about 320 Hz (it was 360).
Re-run as well:
the STEP/STL exports;
the assembly, exploded, front, seat and print-layout renders;
the assembly GIF, whose lens step now says to take the C-CS adapter off;
the tight-spaces envelope;
the A1 mini slice: one plate, 2 h 48 min and 85.8 g, with no supports and the same overhangs as before.
Setting up the 6 mm
Take the C-CS adapter off. The HQ ships with it fitted, and Raspberry Pi's guide says the 6 mm won't focus with it on.
Focus about 108 mm in front of the lens, roughly 20 mm past the fingertips. Raspberry Pi's procedure is to lock the NEAR/FAR ring, then turn the outer two rings together, which takes four or five turns.
Stop down to about f/8 by eye. The ring is marked only OPEN and CLOSE. Expect longer exposures, or add a small light.
Calibrate for lens distortion before trusting solvePnP, for example with a ChArUco board. A 71° diagonal means visible barrel distortion toward the corners.
Not done
Onshape: the copy in vcl-shared › 6DOF Robot Arm still has the plain cylinder lens and the old cradle. I didn't create another document without being asked; say if you want it re-imported.
The other FEA runs: the CalculiX and sliced-FEA runs predate the cradle change. That change only touches the seat next to the lens, and the README says which load cases it affects.
The thumbscrews' height is my estimate (5 mm). Please measure it when the lens arrives.
thanks! I just looked at the order. We'll probably want to order from pishop or digikey, and also it would be good to include the direct link to the part rather than just to the vendor.
The new pod clears the HQ Camera's height, shoulders and shoulder screws
You were right on all three counts. The printed pod was cut for a simpler housing than the HQ Camera really has: a round body with a plain 13.97 mm foot. I've remodelled the housing from Raspberry Pi's mechanical drawing (RP-008200). The new pod's pocket follows it with 1.0 mm to spare all round. Reprint the pod and the bracket; nothing has been printed yet.
The drawing is vector, so I measured it straight off its lines. Its labelled 13.97 and 10.16 mm widths match the lines to within 0.1 mm. The drawing only shows the screws' holes, so I placed their heads from Raspberry Pi's photos.
You found
What the housing really has
Pod printed 13 Oct
Pod now
Top to bottom
51.9 mm, from the top of the focus-lock block (21.55 mm above the lens axis, 2.55 mm above the board) to the end of the foot (30.35 mm below)
52.7 mm of notch, but the top notch stopped 0.05 mm short of the lock block
53.9 mm, 1.0 mm clear at each end
Shoulders
The tripod mount flares out to ±12.07 mm (24.1 mm across) just under the focus ring
Notch only ±8 mm wide: overlap 225 mm³
Pocket follows the outline, 1.0 mm clear
Screws in the shoulders
One small socket-head screw in each shoulder's underside, below the board's edge, about 25.9 mm across the heads
Overlap 73 mm³
1.0 mm clear
What to print
On the A1 mini in PLA, with the same settings as before:
pod: 37 min, 14.2 g
bracket: 1 h 19 min, 36.2 g
Open the plate and delete everything except those two. The carrier, spacers and tag wedges haven't changed.
Why the bracket too: the tripod mount's front face sticks 0.35 mm out of the pod and into the bracket's seat, and the printed bracket hit it (3.8 mm³).
The seat now stays 1.5 mm away from it, the same gap as from the rest of the camera.
That costs a little seat: contact goes from 901 to 845 mm².
The whole set, re-sliced:
A1 mini: 2 h 48 min, 85.5 g
H2D in PAHT-CF: 3 h 45 min, 70.4 g, on the left nozzle as before
Neither needs supports, and neither raises any warning except Bambu's usual timelapse note.
Please measure the camera before printing
Across the shoulders: 24.1 mm on the drawing.
Across the screw heads, outside to outside: about 25.9 mm.
From the top of the lock block to the end of the foot: 51.9 mm.
If any of these comes out more than about 0.5 mm bigger, tell me. One parameter (hq_pocket_c) widens the pocket all round.
Worth knowing
The lower bosses are a little thinner. The shoulders pass 0.6 mm from the bosses round the two lower M2.5 holes. The 1 mm clearance therefore shaves a 0.4 mm sliver off each boss on the shoulder side. Each hole keeps about 1 mm of wall, and the screw heads still sit fully on their seats.
A possible quick fix with the printed pod (not tried): take the tripod mount off.
Raspberry Pi's drawings call it optional, and the two shoulder screws appear to be what hold it on.
The housing would stay on the board, held by the two hex screws on the back.
Without it, the printed pod should only need its top notch filed about 0.5 mm deeper.
The camera now sets the rearmost point. The drawing runs the tripod foot back to the board's back face, which puts its end at 64.98 mm, level with the J6 flange face.
The foot is 60 mm off the J6 axis. Behind the flange, the J6 housing and link 5 stay within 33 mm of the axis, so they can't reach it.
The printed parts stop at 63.5 mm.
The drawing contradicts itself on depth. Its side view adds up to 21.5 mm, but it's labelled 18.58 mm. The pocket goes through the whole plate, so this doesn't affect the fit. I kept the lens where the 18.58 figure puts it, which also matches a CS lens's 12.53 mm flange distance.
Checks and files
Interference: all 66 pairs are 0 mm³. The housing stays 1.0 mm from the pod and 1.5 mm from the bracket. The focus ring keeps the 0.5 mm it always had in the pod's Ø37 hole.
Camera views: neither camera's view changed.
Re-run: the STEP/STL exports, renders and slices.
Not re-run:
the joint FEA, CalculiX and sliced-FEA runs, so expect the pod joint to be slightly softer than the README says;
Activity
claude commentedon Sep 26, 2026
Claude finished @sgbaird's task in 31m 59s —— View job •
claude/issue-239-20260926-1019• Create PR ➔PiPER wrist camera mount: modelled, checked against AgileX's own gripper CAD, and in Onshape
I've designed a mount for a Pi 5, the HQ Camera and a Camera Module 3 Wide, built around AgileX's gripper STEP. It passes every interference check and is now in Onshape. Nothing has been printed or sliced yet. I didn't build on vertical-cloud-lab/byu-vcl#238, because its design wasn't ready. Everything is in
piper-camera-mount/, and the details are in its README.How it attaches
AgileX's gripper STEP is still downloadable from their CDN. The model is built in its coordinate frame, so the real gripper goes into every check. It showed two things to hold on to:
The cameras go on the tab side and the Pi 5 on the other side, so the load on J6 roughly balances. The printed parts are:
Neither main part needs supports.
Checks (
checks.json)What the cameras see (simulated; 10 mm grid 120 mm past the fingertips; red dot on the gripper axis)
Onshape
onshape_import.pycreated a document, imported the STEP, then copied it into the folder. That took 9 API calls.Worth knowing
Screws:
Cables: use the 300 mm Standard–Mini cables. Each path is about 200 mm, so the 200 mm cables are too short.
Power: power the Pi separately along the arm. The XT30 at J6 gives 24 V / 2 A, and the gripper shares it.
Payload: the whole mount weighs about 0.26 kg, which leaves roughly 0.7 kg of the arm's 1.5 kg once the gripper is on.
Check on the real gripper first:
The STEP shows neither.
Guesses:
Not done: an A1 mini slice and a test print. The HQ image needs a 180° rotation in software, because the camera hangs connector-down.
Third-party CAD isn't committed. AgileX's STEP files carry no licence, so
reference.pydownloads them at run time, the same as the Opentrons STEP in OT-2 lid camera mount: CadQuery model, drill template, and Onshape scripts byu-vcl#234.Commits:
9f691e6,f99bd07· Branch
claude/issue-239-20260926-1019sgbaird commentedon Sep 26, 2026
@claude noting that in what I'm seeing, it might be better to back the camera off a bit more, and potentially angle it or at least make sure that a fiducial marker added/fixtured to the gripper could be in view, but your renders look nice. Idk if that's overkill or necessary, but it's on my mind (having the camera be able to localize both the gripper and a fiducial marker on some object)
Do the A1 mini slice and any other printing checks or simulations.
Also just seeing that it might be harder to get into tight spaces, but not exactly sure how big of a deal that's going to be.
Make an OnShape version of your final design using the API
Also look into the nifty "easy disconnect cables" that Yang Cao mentioned somewhere (AccelerationConsortium repo, maybe ac-dev-lab? or maybe it was in a private repo..) which offers some protection in case of collision or the cord getting caught. I think they were magnetic or something
You can probably use the Pi to look at YouTube or other sources to get this info, perhaps even doing some image measurements
Also show a GIF of the full assembly process
claude commentedon Sep 26, 2026
Working on the follow-ups
View job run
sgbaird commentedon Sep 26, 2026
@claude where are you at with this? Also, did you consider the angle to be a good idea? Also, yes - the magnetic USB-C line is I think what that was. Also, for the power/CAN, are you implying that we could use that one? I thought you already said that we would loop it along the arm. Maybe I just misunderstood your comment about power/CAN. Also, I think CLAUDE.md tells you how to deal with the 1 hr limit now
claude commentedon Sep 26, 2026
Claude encountered an error after 1s —— View job
I'll analyze this and get back to you.
sgbaird commentedon Sep 26, 2026
@claude try again. Also, it looks like there's not much interface / contact with the angled camera attaching to the rest (see below). I'm worried a bit about it staying supported and rigid
I'm also confused about the step where the large black cylinder comes in, where it's coming in from the wrong side, but maybe that's just a minor hiccup.
claude commentedon Sep 26, 2026
Claude finished @sgbaird's task in 55m 53s —— View job •
claude/issue-239-20260926-2347• Create PR ➔PiPER camera mount: the pod now sits on a 45° seat, the GIF is fixed, and it's sliced and in Onshape
I've done four things:
Nothing has been printed yet. Details are in the README.
The pod joint
You read it right. The pod touched the bracket only along an 11 × 40 mm strip at its inner edge. That was 325 mm², held by 2 × M3, and the cameras hung about 50 mm out beyond it.
Simulated stiffness (
sim/joint_fea.py). This applies the camera and lens weight (83 g) at 1 g, with the pod bonded to the bracket:The first natural frequency goes from about 110 Hz to 360 Hz. Read these as a comparison, not as the printed part's numbers:
It's still two parts on purpose. In one piece, either the angled camera plate or the collar would need supports. Keeping the pod separate also lets the cameras come off without touching the collar.
The black cylinder in the GIF
That was the HQ Camera's 6 mm lens.
animate.pyflew it in from behind the camera board, straight through the PCB. It now threads in from the front. The pod also slides down its lens axis onto the seat, instead of coming in on a diagonal.Printing and Onshape
slice/): everything fits on one plate: 2 h 49 min, 87.4 g of PLA, with 3 walls and 25 % infill.9f691e6copy in that folder, and the uncopied original in the API key owner's account.Your questions
Check before printing
Commits:
4a3fe35,4be6e17,e6f3cd1,d9be9a4,d324940,bbea410,5d5e33a• Branch
claude/issue-239-20260926-2347chris-policky commentedon Oct 1, 2026
@chris-policky @jss265 @claytonblodgett
Atomizer: 3D CadQuery model of the rePowder and the first step animat…
jss265 commentedon Oct 7, 2026
@claude the HQ Camera requires a lens to be purchased. There are two official options: the 16mm telescoping lens and the 6mm Wide lens. Your rendering seems to assume the 16mm telescoping lens. Can you please analyze those two options and make a recommendation for our setup? I would assume the 6mm wide lens would be more appropriate. If so, can you re-render the CAD files as such?
claude commentedon Oct 7, 2026
Claude finished @jss265's task in 43m 56s —— View job •
claude/issue-239-20261007-2023• Create PR ➔HQ lens: buy the 6 mm wide-angle
The 6 mm is the right lens for this mount, as you assumed. The CAD already used it, though. The model had the 6 mm's official Ø30 × 34 mm and 53 g, and the simulated views used its 55° field of view. It was drawn as a plain black cylinder, which reads more like the 16 mm.
I've now modelled it as it really is, with its rings and two locking thumbscrews. That turned up a real clash with the mount, which I've fixed (below). Everything is written up in the README's Which HQ lens section.
The figure puts both lenses on the same camera, on the same pod. The top row shows how each fits. The bottom row is the HQ picture through each, with simulated depth-of-field blur and the AprilTags the detector found outlined in red.
Why the 6 mm
What changed in the CAD
cad/lenses.py).Setting up the 6 mm
solvePnP, for example with a ChArUco board. A 71° diagonal means visible barrel distortion toward the corners.Not done
Files:
lens_compare.py,lens_compare.json,checks.json. Commits:4f8a8c1,bc520ea,19d2567,a025d67.This branch is PR vertical-cloud-lab/byu-vcl#245 plus the lens commits. This diff shows only the lens changes.
• Branch
claude/issue-239-20261007-2023jss265 commentedon Oct 8, 2026
https://meorders.byu.edu/order/13469 - this is the order for the 8gb Pi5, Camera HQ, and Wide Lens
sgbaird commentedon Oct 9, 2026
thanks! I just looked at the order. We'll probably want to order from pishop or digikey, and also it would be good to include the direct link to the part rather than just to the vendor.
I'm going to move this conversation over to vertical-cloud-lab/byu-vcl#245 which has the most recent bill of materials
jss265 commentedon Oct 23, 2026
@claude the last camera mount we printed: #4 (comment) did not have enough clearance for these things:
claude commentedon Oct 23, 2026
Claude finished @jss265's task in 28m 10s —— View job •
claude/issue-4-20261023-1814• Create PR ➔The new pod clears the HQ Camera's height, shoulders and shoulder screws
You were right on all three counts. The printed pod was cut for a simpler housing than the HQ Camera really has: a round body with a plain 13.97 mm foot. I've remodelled the housing from Raspberry Pi's mechanical drawing (RP-008200). The new pod's pocket follows it with 1.0 mm to spare all round. Reprint the pod and the bracket; nothing has been printed yet.
The drawing is vector, so I measured it straight off its lines. Its labelled 13.97 and 10.16 mm widths match the lines to within 0.1 mm. The drawing only shows the screws' holes, so I placed their heads from Raspberry Pi's photos.
What to print
On the A1 mini in PLA, with the same settings as before:
Open the plate and delete everything except those two. The carrier, spacers and tag wedges haven't changed.
Why the bracket too: the tripod mount's front face sticks 0.35 mm out of the pod and into the bracket's seat, and the printed bracket hit it (3.8 mm³).
The whole set, re-sliced:
Neither needs supports, and neither raises any warning except Bambu's usual timelapse note.
Please measure the camera before printing
If any of these comes out more than about 0.5 mm bigger, tell me. One parameter (
hq_pocket_c) widens the pocket all round.Worth knowing
Checks and files
piper_mount.py, the housing and the pocket;hq_fit.py, which compares the old and new pods;hq_fit.jsonandchecks.json, the numbers.fb291f6,4b6ec1c,27db133.323c60b. If AgileX PiPER wrist camera mount: Pi 5, HQ Camera and Camera Module 3 Wide #10 merges first, this PR shrinks to the three commits above.• Branch
claude/issue-4-20261023-1814sgbaird commentedon Oct 23, 2026
Just noting that we should be putting most comments and pings in the corresponding pull request for now
Merge claude/issue-4-20261023-1814: the pod and bracket that clear th…