rushabhcodes/desk-fidget-counter

A desk knob assembly combining a circuit board with PETG-printed mechanical parts and vendor CAD-modeled hardware.

Version
5.6.1
License
MIT
Stars
0

mechanical/geometry-check.json

{
  "base": {
    "watertight": true,
    "volume_mm3": 15099.43,
    "bounds_mm": [
      [
        -42.4,
        -44.8,
        0.0
      ],
      [
        42.4,
        42.4,
        16.1
      ]
    ]
  },
  "lid": {
    "watertight": true,
    "volume_mm3": 8665.73,
    "bounds_mm": [
      [
        -42.05,
        -44.8,
        0.0
      ],
      [
        42.05,
        42.05,
        13.7
      ]
    ]
  },
  "knob": {
    "watertight": true,
    "volume_mm3": 19124.0,
    "bounds_mm": [
      [
        -42.394,
        -42.394,
        0.0
      ],
      [
        42.394,
        42.394,
        14.2
      ]
    ]
  },
  "screen-carrier": {
    "watertight": true,
    "volume_mm3": 905.13,
    "bounds_mm": [
      [
        -24.0,
        -24.0,
        0.0
      ],
      [
        24.0,
        24.0,
        4.8
      ]
    ]
  },
  "screen-bezel": {
    "watertight": true,
    "volume_mm3": 1173.34,
    "bounds_mm": [
      [
        -24.0,
        -24.0,
        0.0
      ],
      [
        24.0,
        24.0,
        1.4
      ]
    ]
  },
  "button-cap": {
    "watertight": true,
    "volume_mm3": 59.62,
    "bounds_mm": [
      [
        -5.0,
        -45.6,
        0.0
      ],
      [
        5.0,
        -43.05,
        4.0
      ]
    ]
  },
  "fit-coupon-tight": {
    "watertight": true,
    "volume_mm3": 7810.08,
    "bounds_mm": [
      [
        -40.0,
        -40.0,
        0.0
      ],
      [
        104.05,
        40.0,
        7.0
      ]
    ]
  },
  "fit-coupon": {
    "watertight": true,
    "volume_mm3": 7661.67,
    "bounds_mm": [
      [
        -40.0,
        -40.0,
        0.0
      ],
      [
        104.0,
        40.0,
        7.0
      ]
    ]
  },
  "fit-coupon-loose": {
    "watertight": true,
    "volume_mm3": 7364.84,
    "bounds_mm": [
      [
        -40.0,
        -40.0,
        0.0
      ],
      [
        103.9,
        40.0,
        7.0
      ]
    ]
  },
  "screen_post_to_window_tolerance_checked_mm": 0.625,
  "purchased_package_models_checked": 38,
  "individual_wires_checked": 8,
  "tolerance_envelopes_checked": {
    "print_xy_mm": 0.62,
    "hardware_xy_mm": 0.945,
    "print_z_mm": 0.3,
    "hardware_z_mm": 0.46,
    "wire_od_mm": 1.5,
    "full_rotor_sweep": true
  },
  "bearing_contacts_checked": 4,
  "assembly_simplification": {
    "revision": "E5",
    "product_print_count": 6,
    "fasteners": [
      {
        "part": "DIN 965 M2x6",
        "quantity": 2,
        "use": "base/lid"
      },
      {
        "part": "DIN 965 M2x10",
        "quantity": 2,
        "use": "bezel and screen carrier into base posts"
      }
    ],
    "bearing_retention": "Calibrated push fits on both races, following the Ploopy assembly approach. Nominal CAD mating dimensions are 60/75mm; qualify printer compensation with the coupons and physically check pull-off retention and free rotation.",
    "integral_encoder_skirt": true,
    "separate_bearing_retainers": false
  },
  "button_tolerance_access_checks": 4,
  "printed_button": {
    "part": "button-cap",
    "face_width_mm": 8,
    "face_height_mm": 4,
    "face_front_y": -45.6,
    "rest_tip_y": -43.05,
    "nominal_rest_gap_mm": 0.2,
    "nominal_max_travel_mm": 0.6,
    "minimum_slide_clearance_mm": 0.4,
    "travel_stop": "Two side ears against base; lid captures cap without extra fasteners",
    "fit_status": "Nominal CAD travel only. Verify free return, no rest preload, closure before stop and safe overtravel with the actual switch; trim the contact boss to calibrate if required.",
    "checked_travel_poses": 13,
    "nominal_switch_travel_at_stop_mm": 0.4,
    "checks": "Nominal cap sweep, fixed housing clearance, stop engagement and fingertip access. Friction, switch tolerance and safe overtravel require a printed prototype; no actuation force or cycle life is certified."
  },
  "front_button": {
    "part": "Omron B3U-3000P",
    "pcb_center": [
      0,
      -40.9
    ],
    "pcb_rotation_deg": 180,
    "axis_z": 4.8,
    "actuator_front_y": -42.85,
    "datasheet_pretravel_mm": {
      "min": 0.1,
      "typ": 0.2,
      "max": 0.4
    },
    "direct_actuation": false,
    "opening_width_mm": 8,
    "opening_bottom_z": 2.8,
    "opening_top_z": 6.8,
    "finger_check_radius_mm": 6,
    "fit_status": "Existing B3U-3000P, operated by the captive printed cap. Print and test the cap/guide fit and switch closure before final assembly.",
    "printed_cap": {
      "part": "button-cap",
      "face_width_mm": 8,
      "face_height_mm": 4,
      "face_front_y": -45.6,
      "rest_tip_y": -43.05,
      "nominal_rest_gap_mm": 0.2,
      "nominal_max_travel_mm": 0.6,
      "minimum_slide_clearance_mm": 0.4,
      "travel_stop": "Two side ears against base; lid captures cap without extra fasteners",
      "fit_status": "Nominal CAD travel only. Verify free return, no rest preload, closure before stop and safe overtravel with the actual switch; trim the contact boss to calibrate if required."
    }
  },
  "direct_finger_access_checked": true,
  "separate_button_plunger": true,
  "button_projection_beyond_wall_mm": 3.4,
  "pressed_button_projection_beyond_wall_mm": 2.8,
  "USB_access": {
    "axis_z": 5.85,
    "socket_face_y": 42.35003,
    "opening_width_mm": 22,
    "opening_center_y": 41,
    "opening_length_mm": 25,
    "opening_bottom_z": 1.55,
    "opening_top_z": 9.2,
    "plug_width_mm": 13.4,
    "plug_height_mm": 6.9,
    "plug_shoulder_y": 42.35003,
    "plug_check_length_mm": 35,
    "scope": "Socket face/axis from original C165948 STEP. Plug gauge uses L-com nominal 12.9x6.4 mm plus general +/-0.5 mm tolerance; its shoulder is conservatively placed flush with the socket face. Gauge length is a checking volume, not a claimed cable dimension. Undimensioned mating details require actual fit verification.",
    "plug_nominal_width_mm": 12.9,
    "plug_nominal_height_mm": 6.4,
    "plug_tolerance_mm": 0.5,
    "outer_case_diameter_mm": 84.8,
    "socket_recess_from_floor_outer_edge_mm": 0.05,
    "socket_projection_beyond_side_wall_mm": 0.15,
    "PCB_front_edge_mm": 41.1,
    "plug_body_to_PCB_axial_gap_mm": 1.25,
    "maximum_plug_approach_sweep_checked": true,
    "all_package_and_PCB_clearances_checked": true
  },
  "clearances": {
    "overall_height_mm": 22.3,
    "previous_height_mm": 47,
    "height_reduction_percent": 52.6,
    "grip_lower_edge_mm": 10.8,
    "previous_grip_lower_edge_mm": 22,
    "USB_plug_max_height_mm": 6.9,
    "USB_plug_to_rotor_vertical_mm": 1.5,
    "bezel_to_grip_radial_mm": 0.8,
    "skirt_to_sensor_radial_each_side_mm": 1.1,
    "PCB_bottom_z_mm": 2.6,
    "LCD_connector_in_PCB_window": true,
    "bearing_id_mm": 60,
    "bearing_od_mm": 75,
    "bearing_width_mm": 7,
    "bearing_stem_diametral_mm": 0.0,
    "bearing_outer_diametral_mm": 0.0,
    "encoder_slot_count": 48,
    "quadrature_edges_per_turn": 192,
    "all_components_top_side": true,
    "solder_well_floor_remaining_mm": 1.2
  },
  "scope": "Manufacturer screen/package models with user-authorized estimated bearing/cable details. Nominal contacts and full-rotation tolerance envelopes checked under fit-budget.json assumptions. Hardware operation and actual print capability are not measured."
}