Crimpdeq Platform
Crimpdeq Platform is a parametric OpenSCAD design that turns the Crimpdeq force sensor into an isometric finger dynamometer.
Every part is 3D-printed. There are no bolts, pins, inserts or other hardware to buy.
How this book is organised
Requirements lists what the design must keep. Build explains how to print the parts and assemble them. Development covers previewing, exporting, and validating the model.
All illustrations are rendered from the project’s OpenSCAD model, so they match the exported parts.
Requirements
These are the requirements the design must keep. A change to the model that breaks one is a design change, not a tweak, and this page changes with it. The structural assertions and collision checks screen many of them; none of them replaces testing printed parts.
Load rating
- The platform is rated for 49 kg (about 481 N). The Crimpdeq itself is rated to 1500 N (about 150 kg); the printed lugs set the lower limit.
- The printed structure is sized with a 2.0 structural design factor, but the platform is never loaded above its 49 kg rating.
Printing
- Every part is 3D-printed. There are no bolts, pins, inserts or other purchased hardware.
- Every part prints without supports.
- Each base half fits within the 240 mm printable length of a 256 mm bed (Bambu Lab A1). The halves join with vertical dovetails whose joint faces are in compression under load.
Case and load path
- The platform holds the crimpdeq-case
v2.0.0enclosure and every earlier release. - The case lies flat, lid up, and floats at least 1 mm above the deck and clear of every printed part. Its shell, lid and screws never carry load.
- Hand force passes through printed round lugs in the Ø15 mm ring bores of both load-cell eyes: the anchor block’s lug and the grip’s lug. Each stands on a tongue rising through the case’s eye U-slot, at least 1 mm from the case and its lid battery walls.
- The lugs are solid. The anchor block and grip print upright, so the lug and tongue roots are screened across the layers.
- Two snap-on eye clips hold the load cell down under the lug heads. Each fits by dropping into its U-slot and sliding onto the lug neck, with finger room beside the grip-side fin.
- The clips carry the grip’s tilt but not the pull; the clip ring and lug neck are screened for that tilt.
- The switch and USB port stay reachable from the open +Y side of the base.
Finger pocket and stoppers
- The four-finger hangboard pocket is exactly 25 mm deep, with an opening at least 80 mm wide, a 6 mm back wall and an 8 mm loading lip. Its +Z opening stays clear.
- The mid-depth of every edge is within 5 mm of the load-cell plane. The current model is at most 4 mm off, on the 10 mm edge.
- Two stackable drop-in stoppers, 5 and 10 mm thick, give 20, 15 and 10 mm edges. The closed pocket walls locate them.
- Their pull tabs run in slots in the pocket end walls and stand proud of the grip top, leaving the whole top of each stopper free for the fingers.
- The stoppers are stored in a well in the deck beside the case.
- Grip-guide ledges run under the grip’s side walls with a 0.8–1.2 mm Z gap and free X travel, so they catch tilt without carrying measured load.
Palm rest
- The solid heel deck is level with the pocket mouth. The palm bolster rises 10–14 mm above it and at least 2 mm above the key heads.
- The rest has seven positively locked positions, for hand openings of 25 to 85 mm.
- The rest is captured on a dovetail rail and locked by two printed index keys in deck slots outside the palm area. Adjustment needs no tools.
- Either index key alone is screened for the entire design force, and both travel extremes are checked after every geometry change.
Phone stand
- A tilted phone slot runs across a two-cheek stand at the far (−X) end of the base. A narrow phone rests on both cheeks.
- The slot floor is at Z = 15 mm, so the case hides the phone only from viewpoints less than 20° above the table.
- The stand leaves finger room by the stopper well, is outside the load path, and is clear of the hand at every rest position.
Clearances
- The base, anchor block, grip, clips, rest, keys, phone and case are collision-free except at explicitly modelled contact surfaces.
Structural screening
dynamometer_dimensions.scad fails with an assertion when a parameter change
takes any of these checks past its limit. Values are at the 961 N design
target: the 481 N rating times the 2.0 design factor.
| Check | Stress | Limit |
|---|---|---|
| Eye bearing on each lug (14.3 mm × 4 mm) | 16.8 MPa | 20 MPa, lug bearing |
| Lug root bending across the layers, eye force at the load-cell mid-plane | 6.7 MPa | 12 MPa |
| Lug root shear across the layers | 5.98 MPa | 6 MPa |
| Tongue root at the deck, bending across the layers | 3.1 MPa | 12 MPa |
| Anchor block bearing on its pocket | 1.1 MPa | 12 MPa, bearing |
| Clip on the flat ring under the lug head, largest finger-pull tilt | 11.1 MPa | 12 MPa, bearing |
| Lug neck pulled by the clip, across the layers | 4.4 MPa | 12 MPa |
| Finger lip bending over the full 25 mm edge | 18.0 MPa | 30 MPa, bending |
| Grip side and back walls in tension | 1.2 MPa | 12 MPa |
| Either index key alone, in shear | 10.0 MPa | 12 MPa |
| Key bearing in the rest wing / base slot | 5.5 / 4.3 MPa | 12 MPa, bearing |
| Base slot ligament between positions, in shear | 9.3 MPa | 12 MPa |
| Palm bolster root, across the layers | 0.9 MPa | 12 MPa |
| Rail flanks holding the rest down at its shortest engagement | 3.6 MPa | 6 MPa |
The clip check takes the 10 mm edge’s 4 mm offset, reacted between the clip and the tongue seat 10 mm from the eye centre. The base joint is in compression and is not screened; the stoppers, grip guides, stopper well and phone stand are outside the load path.
The printed-material limits (allowable_printed_* and
allowable_lug_bearing_mpa) are assumptions that need coupon tests. The
calculations leave out the 3D stress field, notches, one-finger loading,
print defects, creep, fatigue and temperature, and they are not FEA or proof
tests. The design factor is not a demonstrated safety factor and never
permits loading the platform above 49 kg.
Build
The platform prints on a Bambu Lab A1, or any printer with a 256 mm bed, in about 680 g of PETG. There is nothing else to buy. It holds the Crimpdeq case from crimpdeq-case v2.0.0 or any earlier release.
Warning
Never load the platform above its 49 kg rating, and pull only with both clips and both keys fitted. Printed parts can fail: inspect them before each session and stop using any part that cracks or deforms.
Parts
The illustrations use the same colours throughout:
- Base (grey), printed as a front and a rear half.
- Anchor block (red) and finger grip (blue): their lugs go into the two eyes of the load cell.
- Eye clips (yellow): hold the load cell down on the lugs.
- Palm rest (orange) and index keys (green): set the hand opening.
- Pocket stoppers (teal): make the 25 mm edge shallower.
Printing
Files
Each release
includes the STL files and crimpdeq-platform.3mf, a Bambu Studio project
with both plates laid out and the settings below applied. The project is set
up for a Bambu Lab A1 with a 0.4 mm nozzle, Generic PETG and the textured PEI
plate. Open it with File → Open Project, select your printer, filament
and plate, and print.
Take all the parts from the same release, or they may not fit together.
Plates
The parts are exported already oriented for printing, so don’t rotate them. If you lay out the plates yourself, keep the parts at least 15 mm apart.
Print settings
| Setting | Value |
|---|---|
| Layer height | 0.2 mm |
| Walls | 6 |
| Top/bottom layers | 6 |
| Infill | 20% |
| Supports | Off |
| Brim | Outer brim only, 5 mm |
Per-object overrides:
| Object | Override |
|---|---|
grip, anchor, clips, keys | 100% infill |
rest | 50% infill |
base_front, base_rear | 4 top and 4 bottom layers |
To save filament, the project also prints these lightly loaded zones sparser, using height range modifiers:
| Object | Range | Infill |
|---|---|---|
base_front | 22.6–59.6 mm | 10% |
rest | 11–29.5 mm | 15% |
anchor | 0–11.5 mm | 40% |
No part needs supports. Keep them off: they would scar the faces that the load-cell eyes and the palm rest bear on.
After printing, remove the brims and trim any flared first layer on the base halves’ joint faces and on the palm rest’s sole.
Assembly
1. Join the base halves
Lower the rear half straight down onto the front half’s two dovetail tongues until both halves stand flat on the table.
2. Fit the anchor block
Drop the anchor block into its pocket at the outer end of the front half, lug toward the middle.
3. Fit the grip and the case
- Drop the grip into its trench, lug toward the anchor block.
- Hold the Crimpdeq case lid up, with the switch and USB port facing the open side of the base.
- Lower it so the anchor block’s lug enters the load-cell eye at the left end. Slide the grip until its lug lines up with the right end, then let the case down.
The case must not touch the deck or any printed part; only the load cell rests on the lugs.
The grip must hang free on the load cell: a strip of paper slides between each guide ledge and the grip’s side walls. If the grip rests on a ledge, friction there takes part of the pull and the Crimpdeq reads low.
4. Fit the clips
For each lug, drop a clip flat into the slot in the case end beside the lug, then push it in by its fin until it snaps round the lug’s neck.
To remove the case, pull both clips out by their fins and lift it straight up.
5. Fit the palm rest
Slide the palm rest onto the rail from the rear end, bolster toward the grip. Drop one key through each side wing into the deck slot below.
The seven slots set the opening between the finger lip and the palm face, from 25 to 85 mm in 10 mm steps. To change it, lift out both keys, slide the rest, and drop them in again.
6. Stoppers and phone
The pocket gives a 25 mm edge on its own. Drop a stopper onto its floor, pull tab in the end slot, for a shallower edge:
| Edge | Stoppers |
|---|---|
| 25 mm | none |
| 20 mm | 5 mm |
| 15 mm | 10 mm |
| 10 mm | both, tabs at opposite ends |
Store unused stoppers in the well beside the case.
Stand your phone in the slot at the far end of the base, in portrait or landscape. It takes phones up to about 13 mm thick in their case.
Tare the Crimpdeq unloaded before measuring.
Development
The model is plain OpenSCAD with no library dependencies:
dynamometer_dimensions.scad: parameters and structural assertions.dynamometer_parts.scad: the printable parts.dynamometer_assembly.scad: preview and export entry point.crimpdeq_reference.scad: a simplified snapshot of the Crimpdeq case (crimpdeq-case v2.0.0) used for fit and collision checks.
All dimensions are in millimetres. Override parameters with -D name=value;
unsafe combinations fail with an assertion.
Preview and export
openscad dynamometer_assembly.scad # preview; options in Window → Customizer
bash export-parts.sh # every part as STL into exports/
python3 export-bambu-project.py # Bambu Studio project into exports/
Validate
Run after every geometry or dimension change:
CHECK_JOBS=4 OPENSCAD_RENDER_FN=24 bash check-collisions.sh
It checks the parts for collisions and required contacts, confirms that each
exported STL has the expected number of bodies, and that unsafe parameters
are rejected. check-real-case.sh runs the same fit checks against the real
crimpdeq-case source. CI runs
both on every pull request.
Book
The images in docs/src/images/ are rendered from the model; re-render them
after geometry changes and preview the book:
bash docs/illustrations/render-illustrations.sh
mdbook serve docs