Every model is an editable STEP source plus a slicer-ready STL, one subfolder per part. Frames and the
rig layout are in simulations/ledex_femm/rig_geometry.py (README "Rig geometry"); the Ledex holder and
plunger-link parts have their own README. Superseded designs are in
archive/.
The push object is a compact rounded cube that sits below the mouse in the natural forelimb workspace and presents a push-biased surface that discourages grasping like the original pull handles. Add new parts as a named subfolder (STEP + STL, descriptive filenames) and a row in the table below; no README per folder.
On the rig since 1 Nov 2026: the adjustable Ledex holder, link collar and link bar, and the 16 mm window
constrainer (now archived); Ledex-off hand check passed (full return to home, no binding). Still to do: print
and fit-check the wide-window constrainer and the newest cube revision; measure the return spring with a gram
scale. The push axis is calibrated for 0-8 mm (calibration/joystick-volts-mm.md, 3 Nov).
Print notes: PETG or PLA, orientation and fit allowances for the holder parts are in the Ledex holder
README (printed holes come out ~0.3-0.4 mm small; print fit_test first).
| Folder | Files | Status | What it is |
|---|---|---|---|
joystick/ |
joystick_89mm |
printed, on the rig | 89 mm shaft (conical body, 4 mm radius base to 1.5 mm radius tip) that screws onto the thumbstick stub; handles slide onto its tip. |
TS-1D1S00A-1294_stripped/ |
TS-1D1S00A-1294_stripped |
reference, not printed | Measured APEM TS-1D1S00A-1294 Hall base (castle cap removed). |
joystick-holder/ |
joystick_holder |
printed, on the rig | Breadboard holder for the component. |
joystick-handle-cube/ |
joystick_handle_cube_11p5_h15p1_d3p3_dp4p2, make_handle_cube.py |
newest revision (5 Nov), not yet printed; older revisions archived | Narrow rounded-cube push object, 11.5 × 11.5 × 15.1 mm; the script regenerates it. |
joystick-1d-axis-constrainer/ |
..._38x38x56_ledex_wide_window, make_wide_window.py |
wide-window revision, not yet printed | Stepped hollow box that limits the joystick to one axis; home wall open over almost its whole width for the plunger link. |
ledex-holder-adjustable/ |
base, upright, carriage, link_collar, link_bar, fit_test, make_ledex_holder.py |
holder, collar and link printed and mounted 1 Nov | Adjustable Ledex holder and plunger link (see its README). |
ledex-195224-model/ |
ledex_body, ledex_plunger |
reference, not printed | Ledex body and plunger from the datasheet drawing. |
- Component: round body 25.3 mm diameter, 11.53 mm tall; flange 29.75 mm diameter (z 11.53-13.09); stepped dome up to z 18.28; stem to z 23.45; a 9.6 × 2.1 mm cross-bar at z 23.87-26.27; 4.3 mm stub to z 29.3. The shaft's 5 mm × 2.7 mm bottom bore holds a small screw with its head glued in; the screw goes into the stub and the shaft cone sits on the stub top, so the shaft base is 29.3 mm above the body bottom. The pivot is inside the body and not modelled (the models assume mid-body, z 5.8, and test z 2-10).
- Holder: base 86 × 31.8 × 5 mm with four 10 × 24 mm slots, four 5 × 5 mm corner posts (z 5-20.4, open sides for the cable), top frame z 20.41-25.41 (31.82 mm square, 25.3 mm hole). The component's flange rests on the frame, so the body bottom is 13.88 mm and the shaft base 40.5 mm above the breadboard. The push runs along the 31.8 mm width; the Ledex stands on the breadboard on the mouse (home) side.
-
Narrow cube (11.5 mm wide, chosen 17 Oct): 11.5 × 11.5 mm footprint, 3 mm corner radius, 2.5 mm top fillets, three blind holes along the push axis (push face 2.05 / 5.75 / 9.45 mm from the shaft axis). The shaft goes in the front hole (nearest the mouse) so the paw cannot touch cube and rest pad together. At home the cube is 2 mm from the rest platform (3 Nov).
make_handle_cube.py(CadQuery, ball-ended holes) writes the newest revision and can rebuild the 14.1 mm one for comparison; only the newest is kept here:Revision Height Holes (diameter × depth) Volume Where joystick_handle_cube_11p5(17 Oct)10.0 mm 3.2 × 3.2 mm 1130 mm³ archive; still used by the force and geometry models joystick_handle_cube_11p5_h14p1(28 Oct)14.1 mm 3.2 × 3.2 mm 1641 mm³ archive joystick_handle_cube_11p5_h15p1_d3p3_dp4p2(5 Nov)15.1 mm 3.3 × 4.2 mm 1736 mm³ here; not yet printed Which revision is currently printed on the rig is not recorded. The models (
simulations/ledex_femm/rig_geometry.py,CUBE_STL) still use the 10 mm cube; the taller cubes (and the deeper holes of the newest one) change the contact height, so updateCUBE_STLand the cube placement and rerun the models before relying on force estimates at the cube. -
Original 20 mm cube (used from the first mouse session, 16 Oct) and the older narrow-cube revisions are archived in
archive/joystick-handle-cube/. -
38 × 3 × 3.1 mm bar handle (never fitted) is archived in
archive/joystick-handle-bar/.
38 × 38 × 56 mm stepped hollow box. The home (mouse-side) wall is open over the full 26 mm cavity width (the
6 mm side walls stay as posts) from the top of the socket (part z 10, world Z 25.41, the frame top) up to the
cavity ceiling (part z 53, world Z 68.41); the 3 mm socket ring below z 10 is closed again, and the top plate
with its 1D slot is unchanged. Generated by joystick-1d-axis-constrainer/make_wide_window.py from the
original part in archive/. On the rig it spans world Z 15.41-71.41 on the holder frame. The earlier 16 mm
window revision (printed and installed 1 Nov, still the one on the rig) and the original arched version are in
archive/joystick-1d-axis-constrainer/. Before swapping, check
that the holder's cable still exits where it did (the socket opening in the home wall is now closed).
Body and plunger of the STA 20 × 40 mm pull solenoid (60° plunger, no anti-rotation flat) from the datasheet
drawing (page F34, simulations/ledex_femm/datasheet/), for clearance checks, figures and the rig explorer.
Generated by ledex-holder-adjustable/make_ledex_holder.py from simulations/ledex_femm/ledex_geometry.py
(LEDEX, plunger_dims). Frame: X along the axis from the body face (boss side, + toward the joystick); the
plunger is drawn seated (energised).
| dimension (mm) | source | |
|---|---|---|
| case | Ø19.56 × 39.37 | drawing |
| M14 × 1.5 boss | 9.52 long | drawing |
| plunger | Ø7.82, 20.1 g | drawing |
| tip beyond body face, seated | 23.81 | drawing |
| tip slot | 2.5 ± 0.3 wide, 9.5 ± 0.3 deep | drawing |
| cross hole | Ø2.5/2.6, 4.76 ± 0.30 from the tip | drawing |
| plunger length | 59.7 (55.9 cylinder + 3.8 cone) | from the mass |
| 60° cone | half-angle 37.5°, 1 mm flat at the apex | FEMM calibration |
| mounting nut | M14 × 1.5, size not given | assumed 22 mm AF × 3.5 mm |
Mesh masses match the datasheet (plunger 20.0 g vs 20.1 g). Internals (bobbin, coil, back stop) are not modelled; FEMM adds fitted internals and uses axisymmetric stand-ins for the slot and cross hole. Still to confirm with calipers: slot width, cross-hole diameter and distance from the tip, seated protrusion, plunger length and the nut size.