ShiboSoftwareDev/linux-gameboy-advance

Multilayer PCB carrier board integrating USB‑C, battery charging/power management, buck‑boost regulation, MCU/SoC, LCD/SD interfaces, audio controls, status LEDs, backlight, and UART/I²C/SPI service connectors with reviewed multilayer copper and vias.

Version
1.0.134
License
unset
Stars
0

mechanical/enclosure-spec.json

{
  "schemaVersion": 1,
  "designIntent": "Serviceable Linux handheld enclosure; every opening and PCB hole has an assigned function.",
  "datum": "PCB centre, PCB mid-plane Z=0, millimetres",
  "shell": {
    "frontMaterial": "MJF/SLS PA12 nylon",
    "rearMaterial": "MJF/SLS PA12 nylon",
    "nominalWallMm": 1.4,
    "closure": "Four rear M3x24 screws through rear towers and PCB into front-shell M3 heat-set inserts",
    "pcbIsolation": "Four 0.5 mm nylon washers between PCB top and front pillars",
    "registration": "Four broad 0.8 mm x 1.8 mm internal front-shell tongues in checked-empty edge regions"
  },
  "retention": [
    {
      "item": "PCB and shell",
      "method": "4x M3x24 rear screws, 4x M3 heat-set inserts, 4x M3 nylon washers",
      "loadPath": "rear screw head -> rear tower -> PCB annulus -> nylon washer -> front pillar -> insert"
    },
    {
      "item": "LCD",
      "method": "4x ISO 7045 M2.5x6 pan-head screws and 0.5 mm nylon washers into 4.0 mm pilot bores holding 4.0 x 4.6 mm M2.5 heat-set inserts, with separate 0.5 mm front and rear foam gaskets",
      "loadPath": "front bezel -> front gasket -> LCD inactive border -> rear gasket -> carrier -> heat-set inserts; PCB underside -> nylon washers -> screw heads"
    },
    {
      "item": "Face controls",
      "method": "Six rear-inserted flanged caps resting on the switch return springs, and a narrow-guided D-pad with spherical pivot foot, 6 mm stem pockets and 2.5-degree operating sweep over a bonded 1.0 mm pivot disc",
      "loadPath": "finger -> cap or D-pad -> switch stem; D-pad centre load -> bonded Poron pivot disc -> PCB"
    },
    {
      "item": "Shoulder controls",
      "method": "Two rounded captive sliding keys in close-fit rear guides, each with twin anti-yaw rails and independent hidden retaining tabs",
      "loadPath": "finger -> solid key face -> blind actuator pocket -> TS6695 stem; side tabs prevent pull-out"
    },
    {
      "item": "Battery",
      "method": "One protected Jauch LP906090JH 1S 6000 mAh two-wire pouch in a clearance-controlled under-PCB cradle, a separately bonded 10 kΩ NTC, a locking three-circuit inline service disconnect, foam isolation, and a reinforced integral-latch service door",
      "loadPath": "pouch -> compliant rear pad and four PCB-side isolation pads -> rear shell; low keepers locate the pack without hard-clamping its broad faces"
    },
    {
      "item": "Speaker",
      "method": "Front-facing Same Sky CMS-2004-18SP speaker with modeled terminal pads and open wire-guide channels, on a closed-cell gasket under a two-screw retainer seated on flat boss ends",
      "loadPath": "retainer -> 2x M2 screws -> front-shell bosses and heat-set inserts; speaker seals against the front grille gasket"
    },
    {
      "item": "RGB status light pipe",
      "method": "Clear acrylic/polycarbonate rear-flanged pipe inserted from inside the front shell and retained with optically clear adhesive",
      "loadPath": "front impact -> light-pipe flange -> front-shell underside; PCB LED carries no mechanical load"
    },
    {
      "item": "Volume extension",
      "method": "Split MJF/SLS PA12 collar concentric with the real 14 mm C231765 wheel, with twelve internal grip ribs and thirty-six shallow outer traction grooves",
      "loadPath": "finger -> PA12 collar -> serrated C231765 wheel; no secondary axle, friction idler, shell bearing or cantilever is used"
    }
  ],
  "pcbMounts": [
    { "name": "MH_TOP_LEFT", "x": -59.5, "y": -34, "fastener": "M3x24" },
    { "name": "MH_TOP_RIGHT", "x": 55.5, "y": -38, "fastener": "M3x24" },
    { "name": "MH_BOTTOM_LEFT", "x": -66, "y": 14, "fastener": "M3x24" },
    { "name": "MH_BOTTOM_RIGHT", "x": 62, "y": 34.5, "fastener": "M3x24" }
  ],
  "lcdMounts": [
    { "name": "MH_LCD_LT", "x": -48.75, "y": 32.75, "fastener": "M2.5x6" },
    { "name": "MH_LCD_RT", "x": 51, "y": 33, "fastener": "M2.5x6" },
    { "name": "MH_LCD_LB", "x": -20, "y": -35.5, "fastener": "M2.5x6" },
    { "name": "MH_LCD_RB", "x": 66, "y": -31, "fastener": "M2.5x6" }
  ],
  "externalOpenings": [
    { "id": "DISPLAY_WINDOW", "purpose": "Visible active LCD area", "userAccessible": true },
    { "id": "FACE_CONTROLS", "purpose": "D-pad, A/B/X/Y, Select and Start travel", "userAccessible": true },
    { "id": "SHOULDER_CONTROLS", "purpose": "Guides for captive L/R paddles", "userAccessible": true },
    { "id": "USB_C", "purpose": "Single 5 V power and USB2/FEL data port", "userAccessible": true },
    { "id": "MICROSD", "purpose": "Card insertion at the socket mouth", "userAccessible": true },
    { "id": "POWER_SLIDER", "purpose": "Guarded power control", "userAccessible": true },
    { "id": "VOLUME_WHEEL", "purpose": "Concentric curved-wall relief exposes a direct-drive PA12 collar on the real C231765 wheel", "userAccessible": true },
    { "id": "STATUS_INDICATOR", "purpose": "Flush optical outlet for the RGB status light pipe", "userAccessible": false },
    { "id": "SPEAKER_GRILLE", "purpose": "Front acoustic outlet clear of the user's normal grip", "userAccessible": false },
    { "id": "BATTERY_DOOR", "purpose": "Service access to the protected rechargeable pouch and harness", "userAccessible": true },
    { "id": "REAR_SERVICE_SCREWS", "purpose": "Four recessed case and PCB fasteners", "userAccessible": false }
  ],
  "intentionallyInternal": [
    "J_BAT and battery wiring",
    "J_UART standard programmer",
    "J_I2C",
    "J_SPI",
    "SW_RESET",
    "JP_BOOT solder jumper",
    "J_SPK wiring"
  ],
  "battery": {
    "cell": "Jauch LP906090JH protected 1S 6000 mAh two-wire pouch plus separately bonded 10 kΩ B=3435 NTC",
    "charging": "On-board BQ24074 USB 5 V linear charger and power-path controller; USB500 current mode, approximately 800 mA programmed charge current",
    "protection": "Use only the specified protected pack or an electrically and dimensionally qualified equivalent",
    "cycledEnvelopeMm": { "width": 93.5, "height": 60.5, "depth": 9.9 },
    "pocketEnvelopeMm": { "width": 95.5, "height": 62.5, "depth": 10.9 },
    "isolation": "0.65 mm compressed rear foam pad plus four 4.2 mm closed-cell PCB-side pads; 4.2 mm nominal swelling allowance above the fully cycled pack envelope",
    "serviceDisconnect": "JST ZOM 1.5 mm-pitch locking three-circuit inline pair ZOMP-03V-A-S + ZOMR-03VF-A-S beside the pouch in a door-accessible side bay; latch faces rear; 2 A rating with AWG 24; pack positive, pack negative, and bonded NTC sense",
    "doorInstallation": "Insert the upper tongue first, pivot the lower edge closed, then snap the cantilever hook behind the shell lip",
    "doorMaximumOpenAngleDeg": 8,
    "latchBeamMm": { "length": 16.0, "thickness": 1.2, "requiredDeflection": 0.55, "maximumDesignStrain": 0.01 }
  },
  "requiredPrintedParts": [
    "GBA_CASE_BASE", "GBA_CASE_LID", "GBA_BATTERY_DOOR",
    "LCD_CARRIER", "SPK_RETAINER", "DPAD_CAP", "BUTTON_CAP_A", "BUTTON_CAP_B",
    "BUTTON_CAP_X", "BUTTON_CAP_Y", "BUTTON_CAP_SELECT", "BUTTON_CAP_START",
    "SHOULDER_PADDLE_L", "SHOULDER_PADDLE_R", "VOLUME_WHEEL_EXTENSION"
  ],
  "nonPrintedMechanicalParts": [
    "BATTERY_PACK_LP906090JH", "BATTERY_REAR_PAD", "BATTERY_NTC_10K", "BATTERY_NTC_BOND_PAD", "BATTERY_PULL_RIBBON", "BATTERY_RIBBON_ANCHOR", "BATTERY_SERVICE_CONNECTOR", "BAT_PACK_LEAD_NEG", "BAT_PACK_LEAD_POS", "BAT_NTC_SENSE_LEAD", "STATUS_LIGHT_PIPE", "BAT_WIRE_NEG", "BAT_WIRE_POS", "BAT_WIRE_NTC",
    "SPK_WIRE_NEG", "SPK_WIRE_POS", "CMS-2004-18SP speaker",
    "Four ISO 7045 M3x24 pan-head service screws", "Four CNC Kitchen M3 Standard 5.7 x 4.6 mm heat-set inserts", "Four M3 nylon PCB washers",
    "Four ISO 7045 M2.5x6 pan-head LCD-carrier screws", "Four CNC Kitchen M2.5 Short 4.0 x 4.6 mm heat-set inserts", "Four M2.5 nylon LCD-carrier washers",
    "Two ISO 7045 M2x5 pan-head speaker-retainer screws", "Two CNC Kitchen M2 Short 3.0 x 3.6 mm heat-set inserts",
    "BATTERY_PULL_RIBBON: 10 x 0.15 mm nylon strip", "1.0 mm self-adhesive Poron DPAD_PIVOT_PAD"
  ],
  "prototypeGates": [
    "Print a shoulder-control coupon and confirm the 0.25 mm actuator rest gap, 0.30 mm guide clearances, concealed retaining-tab action and at least 0.40 mm usable switch stroke",
    "Verify LCD vendor tolerance and gasket compression with a real panel",
    "Cycle the battery latch and shoulder paddles at least 500 times",
    "Validate charge termination, NTC response, pack swelling allowance and runtime under peak Linux/display/audio load",
    "Drop-test a populated prototype before production tooling",
    "Fit the clear status light pipe and verify 0.15 mm LED gap, front-face recession, color mixing and optical bleed"
    , "Confirm the corrected direct-drive volume collar's approximately 0.97 mm exterior reach, 0.40 mm radial shell clearance, axial retention, torque transfer and no shell rub over the complete adjustment range"
    , "Verify face-cap return and free play on actual switches; measure D-pad diagonal and cardinal actuation through its 2.5-degree tilt and flange stop"
  ]
}