ShiboSoftwareDev/linux-gameboy-advance
A multilayer PCB carrier/router board integrating USB-C power/data, battery charging and regulation, display/SD interfaces, UART/I²C/SPI headers, controls, audio/volume hardware, and RGB status LEDs with reviewed routed copper and vias.
- Version
- 1.0.138
- 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": "FDM PETG candidate; fit and slicer qualification required",
"rearMaterial": "FDM PETG candidate; fit and slicer qualification required",
"nominalWallMm": 1.4,
"closure": "Four side-entry ISO 7046 Type H M2x5 screws into CNC Kitchen M2 Short inserts in front-shell tabs; PCB fastening independent.",
"pcbIsolation": "Four 3.2 ID x 7 OD x 0.5 mm nylon washers beneath top-entering M3x6 PCB screw heads.",
"registration": "Four 8.4 mm rear-shell screw piers enter 9.0 mm cover-wall pockets; 0.30 mm seam. Upper port walls lift off with front cover."
},
"retention": [
{
"item": "PCB and shell",
"method": "4 M3x6 PCB screws into rear-shell M3 Standard inserts; 4 separate M2x5 side-entry case screws into M2 Short inserts",
"loadPath": "PCB screw head -> nylon washer -> PCB -> rear-shell boss; separate lid tabs -> M2 insert -> side screw -> rear wall"
},
{
"item": "LCD",
"method": "4 ISO 7045 M3x6 screws and 3.2 ID x 7 OD x 0.5 nylon washers into CNC Kitchen M3 Standard inserts; front 0.8 mm foam stock, rear 0.5 mm foam stock",
"loadPath": "Front bezel -> foam -> LCD inactive border -> rear foam -> carrier; M3 screws through PCB anchor carrier independently."
},
{
"item": "Face controls",
"method": "Six rear-inserted flanged caps with switch-spring return; rocking D-pad over a 4 mm diameter x 0.7 mm silicone/PET pivot pad.",
"loadPath": "Finger -> cap -> switch stem; D-pad centre -> pivot pad -> 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": "MPD BH4AAW with four alkaline AA cells facing the rear door. Two printed PCB-side keepers with M2x5 screws and M2 Short inserts capture the holder; four rear-shell corner ledges support its frame.",
"loadPath": "Holder frame -> rear-shell ledges; closed holder back -> printed keepers -> M2 inserts -> rear-shell bosses. Cells are not clamped by the door."
},
{
"item": "Speaker",
"method": "CMS-23558N-L152B factory-wired 23 mm 8 ohm 1 W speaker, front gasket and retainer; two ISO 7046 Type H M2x4 screws into M2 Short inserts.",
"loadPath": "retainer -> 2x M2 screws -> front-shell bosses and heat-set inserts; speaker seals against the front grille gasket"
},
{
"item": "Volume extension",
"method": "Split FDM PETG candidate collar concentric with the real 14 mm C231765 wheel, with twelve internal grip ribs and thirty-six shallow outer traction grooves; trial fit required",
"loadPath": "finger -> printed 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": "ISO 7045 M3x6"
},
{
"name": "MH_TOP_RIGHT",
"x": 55.5,
"y": -38,
"fastener": "ISO 7045 M3x6"
},
{
"name": "MH_BOTTOM_LEFT",
"x": -66,
"y": 14,
"fastener": "ISO 7045 M3x6"
},
{
"name": "MH_BOTTOM_RIGHT",
"x": 62,
"y": 34.5,
"fastener": "ISO 7045 M3x6"
}
],
"lcdMounts": [
{
"name": "MH_LCD_LT",
"x": -48.75,
"y": 32.75,
"fastener": "ISO 7045 M3x6",
"pcbHoleDiameterMm": 3.3
},
{
"name": "MH_LCD_RT",
"x": 51,
"y": 33,
"fastener": "ISO 7045 M3x6",
"pcbHoleDiameterMm": 3.3
},
{
"name": "MH_LCD_LB",
"x": -20,
"y": -35.5,
"fastener": "ISO 7045 M3x6",
"pcbHoleDiameterMm": 3.3
},
{
"name": "MH_LCD_RB",
"x": 66,
"y": -31,
"fastener": "ISO 7045 M3x6",
"pcbHoleDiameterMm": 3.3
}
],
"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 printed collar on the real C231765 wheel",
"userAccessible": true
},
{
"id": "SPEAKER_GRILLE",
"purpose": "Front acoustic outlet clear of the user's normal grip",
"userAccessible": false
},
{
"id": "BATTERY_DOOR",
"purpose": "Replace four alkaline AA cells without removing the PCB",
"userAccessible": true
},
{
"id": "SIDE_CASE_SCREWS",
"purpose": "Four intentional M2x5 case-closure fasteners, clear of controls",
"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",
"D_STATUS RGB service/debug LED; inspect with the lid removed, no external opening or light pipe",
"U_TEMP PCB temperature sensor; no external probe or enclosure opening"
],
"battery": {
"holder": "MPD BH4AAW",
"cells": "Four 1.5 V alkaline AA; no mixing chemistries or old/new cells",
"charging": "None. USB is power/data only and cannot recharge AA cells.",
"nominalHolderEnvelopeMm": {
"width": 57.15,
"height": 61.72,
"depth": 15.88
},
"maximumHolderEnvelopeMm": {
"width": 57.65,
"height": 62.22,
"depth": 16.38
},
"bayCavityEnvelopeMm": {
"width": 74.8,
"height": 72.8,
"depth": 20,
"note": "Overall cavity before retention ledges, keepers and wiring; not clearance around the holder at every point."
},
"holderTopZMm": -4.5,
"pcbUndersideZMm": -0.8,
"retention": "Two anti-yaw guided keeper clamps with 1 mm vertical adjustment and four frame support ledges; installation before PCB; 2–3 mm M2 insert engagement across holder depth tolerance. Physical frame/contact and cell access still unverified.",
"doorInstallation": "Insert upper tongue, pivot lower edge closed, then engage integral cantilever hook",
"doorMaximumOpenAngleDeg": 8,
"latchBeamMm": {
"length": 16,
"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",
"BATTERY_KEEPER_-1",
"BATTERY_KEEPER_1"
],
"nonPrintedMechanicalParts": [
"MPD BH4AAW and four alkaline AA cells",
"JST PHR-2 plus two SPH-002T-P0.5S contacts, on factory leads",
"BuyDisplay ER-TFT035IPS-6 capacitive-touch display",
"Same Sky CMS-23558N-L152B with factory SHR-02V-S-B plug",
"8 ISO 7045 M3x6 screws",
"8 CNC Kitchen M3 Standard 5.7x4.6 inserts",
"8 nylon 3.2 ID x 7 OD x 0.5 washers",
"6 ISO 7046 Type H M2x5 screws",
"2 ISO 7046 Type H M2x4 screws",
"8 CNC Kitchen M2 Short 3x3.6 inserts",
"0.8 mm stock LCD front foam",
"0.5 mm stock LCD rear foam",
"0.4 mm speaker rim foam gasket",
"4 mm diameter x 0.7 mm silicone/PET D-pad pivot pad"
],
"prototypeGates": [
"Print a shoulder-control coupon and confirm the 0.25 mm actuator rest gap, 0.40 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",
"Drop-test a populated prototype before production tooling",
"Confirm the direct-drive volume collar's approximately 0.94 mm exterior reach, 0.45 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",
"Verify real BH4AAW frame contacts, cell insertion and removal, holder tolerance, direct factory-lead routing and PHR-2 polarity.",
"Measure Linux boot/peak load on USB alone and four alkaline AA at fresh and depleted voltage; qualify current limiting, dropout and speaker power. No runtime claim is made.",
"Verify M2 side screw tool access, insert installation and engagement and M3 carrier washer clearances using physical parts."
],
"status": "FDM_PROTOTYPE_NOT_PHYSICALLY_QUALIFIED"
}