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

reference/rev-b-contract.json

{
  "hardware": "Rev B",
  "release_target": "2.0.0",
  "accepted_requirements": [
    "Native assembled 3D model linked from assembly documentation",
    "JST programming connector",
    "Toggle scroll gate on left side; count continues",
    "Fixed 1.28-inch round colour LCD with surrounding rotating ring"
  ],
  "display": {
    "manufacturer": "Waveshare",
    "sku": "19192",
    "controller": "GC9A01",
    "pixels": [
      240,
      240
    ],
    "visible_diameter_mm": 32.4,
    "pcb_diameter_mm": 37.5,
    "overall_height_in_plane_mm": 40.4,
    "tab_width_mm": 14.28,
    "logic_supply_v": 3.3,
    "nominal_module_current_ma": 31.2,
    "interface": "SPI mode 0",
    "pin_order": [
      "BL",
      "RST",
      "DC",
      "CS",
      "CLK",
      "DIN",
      "GND",
      "VCC"
    ],
    "mcu_pins": {
      "BL": "PB11",
      "RST": "PB10",
      "DC": "PB14",
      "CS": "PA8",
      "CLK": "PB13",
      "DIN": "PB15"
    }
  },
  "rotation": {
    "mpn": "TCUT1600X01_A",
    "type": "noncontact optical quadrature",
    "body_mm": [
      5.5,
      4,
      5.7
    ],
    "beam_height_above_pcb_mm": 4.5,
    "gap_mm": 3,
    "channel_spacing_mm": 0.8,
    "track_center_mm": [
      -23,
      10
    ],
    "track_radius_mm": 25.079872407968907,
    "slots": 48,
    "ticks_per_revolution": 192,
    "IR_LED_resistor_ohm": 150,
    "emitter_pulldowns_ohm": 22000,
    "conditioner": "SN74LVC2G17DBVR",
    "mcu_timer": "TIM3 encoder on PB4/PB5 AF1"
  },
  "programming": {
    "series": "JST PH 2.0 mm",
    "mpn": "B6B-PH-K-S(LF)(SN)",
    "pin_order": [
      "VREF_3V3",
      "SWDIO",
      "SWCLK",
      "NRST",
      "GND",
      "BOOT0"
    ],
    "notes": "Device powered from USB/battery; VREF is a probe sense output, not a power input. Service connector under removable rotor.",
    "position_mm": [
      0,
      -20
    ]
  },
  "toggle": {
    "mpn": "G12AH",
    "manufacturer": "NKK",
    "kind": "SPDT ON-ON, right-angle toggle",
    "location": "left side",
    "function": "Scroll enable; counting remains active",
    "position_mm": [
      -20,
      -14
    ]
  },
  "proposed_envelope_mm": {
    "base_diameter": 80,
    "rotor_diameter": 68,
    "fixed_screen_bezel_diameter": 50,
    "overall_height": 47
  },
  "status": "Implemented; circuit, firmware, assembly and independent fabrication checks passed; physical prototype tests remain unperformed"
}