(kicad_pcb (version 20240101) (generator "hacker-devices") (general (thickness 1.2) ) (paper "A4") (title_block (title "BLE Phantom - Dual BLE Security Research Platform") (date "2026-06-15") (rev "1.0") (company "Hacker Devices") ) ;; ============================================================ ;; Layer stackup ;; ============================================================ (layers (0 "F.Cu" signal) (1 "In1.Cu" power "GND") (2 "In2.Cu" power "PWR") (31 "B.Cu" signal) (32 "B.Adhes" user "B.Adhesive") (33 "F.Adhes" user "F.Adhesive") (34 "B.Paste" user) (35 "F.Paste" user) (36 "B.SilkS" user "B.Silkscreen") (37 "F.SilkS" user "F.Silkscreen") (38 "B.Mask" user) (39 "F.Mask" user) (40 "Dwgs.User" user "User.Drawings") (41 "Cmts.User" user "User.Comments") (42 "Eco1.User" user) (43 "Eco2.User" user) (44 "Edge.Cuts" user) (45 "Margin" user) (46 "B.CrtYd" user) (47 "F.CrtYd" user) (48 "B.Fab" user) (49 "F.Fab" user) ) ;; ============================================================ ;; Board outline: 80mm x 40mm USB-A dongle ;; ============================================================ (gr_rect (start 0 0) (end 80 40) (layer "Edge.Cuts") (width 0.15)) ;; USB-A plug region (0-12mm) (gr_line (start 0 12) (end 12 12) (layer "Edge.Cuts") (width 0.15)) (gr_line (start 12 0) (end 12 40) (layer "Edge.Cuts") (width 0.15)) ;; ============================================================ ;; Net classes ;; ============================================================ (net_class "Default" "" (clearance 0.15) (trace_width 0.15) (via_dia 0.6) (via_drill 0.3) (uvia_dia 0.5) (uvia_drill 0.2) ) (net_class "Power" "" (clearance 0.2) (trace_width 0.3) (via_dia 0.8) (via_drill 0.4) (add_net "3V3") (add_net "VBUS") (add_net "VBATT") (add_net "GND") ) (net_class "USB" "" (clearance 0.2) (trace_width 0.18) (via_dia 0.6) (via_drill 0.3) (add_net "USB_DP") (add_net "USB_DM") ) (net_class "RF" "" (clearance 0.3) (trace_width 0.38) (via_dia 0.5) (via_drill 0.2) (add_net "RF_A") (add_net "RF_B") ) (net_class "SPI" "" (clearance 0.15) (trace_width 0.15) (via_dia 0.6) (via_drill 0.3) (add_net "SPIA_SCK") (add_net "SPIA_MISO") (add_net "SPIA_MOSI") (add_net "SPIA_CS") (add_net "SPIA_IRQ") (add_net "SPIA_RST") (add_net "SPIB_SCK") (add_net "SPIB_MISO") (add_net "SPIB_MOSI") (add_net "SPIB_CS") (add_net "SPIB_IRQ") (add_net "SPIB_RST") ) ;; ============================================================ ;; Design rules ;; ============================================================ (setup (stack_remove 0) (stack_remove 0) (stack_remove 0) (stack_remove 0) (pad_size 0.5 0.5) (pad_drill 0) (pad_to_mask_clearance 0.05) (solder_mask_min_width 0.05) (grid_origin 0 0) (grid_origin 0 0) (aux_axis_origin 0 0) (layer_setup (layer "F.Cu" (thickness 0.035) (material "copper")) (layer "dielectric1" (thickness 0.20) (material "FR-4") (epsilon 4.5)) (layer "In1.Cu" (thickness 0.0175) (material "copper")) (layer "dielectric2" (thickness 0.50) (material "FR-4") (epsilon 4.5)) (layer "In2.Cu" (thickness 0.0175) (material "copper")) (layer "dielectric3" (thickness 0.20) (material "FR-4") (epsilon 4.5)) (layer "B.Cu" (thickness 0.035) (material "copper")) ) ) ;; ============================================================ ;; Module placements (approximate) ;; ============================================================ ;; USB-A Connector (left edge) (module "Connector_USB:USB_A_Plug_RightAngle" (layer "F.Cu") (tedit 0) (at 6 20) (fp_text reference "J1" (at 0 -8) (layer "F.SilkS")) (fp_text value "USB_A_Plug_RightAngle" (at 0 8) (layer "F.Fab")) (pad 1 thru_hole rect (at -3.5 0) (size 2.5 1.5) (drill 0.8) (layers "*.Cu" "*.Mask") (net "VBUS")) (pad 2 thru_hole oval (at -1 0) (size 2.5 1.5) (drill 0.8) (layers "*.Cu" "*.Mask") (net "USB_DM")) (pad 3 thru_hole oval (at 1 0) (size 2.5 1.5) (drill 0.8) (layers "*.Cu" "*.Mask") (net "USB_DP")) (pad 4 thru_hole oval (at 3.5 0) (size 2.5 1.5) (drill 0.8) (layers "*.Cu" "*.Mask") (net "GND")) ) ;; ESD Protection (near USB connector) (module "Package_TO_SOT_SMD:SOT-143" (layer "F.Cu") (tedit 0) (at 18 15) (fp_text reference "U6" (at 0 -2.5) (layer "F.SilkS")) (fp_text value "PRTR5V0U2X,215" (at 0 2.5) (layer "F.Fab")) (pad 1 smd rect (at -0.75 -1) (size 0.8 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (net "USB_DM")) (pad 2 smd rect (at 0.75 -1) (size 0.8 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) (pad 3 smd rect (at 0.75 1) (size 0.8 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (net "USB_DP")) (pad 4 smd rect (at -0.75 1) (size 0.8 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (net "VBUS")) ) ;; STM32F401 Main MCU (center) (module "Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP3.5x3.5mm" (layer "F.Cu") (tedit 0) (at 40 20) (fp_text reference "U1" (at 0 -5) (layer "F.SilkS")) (fp_text value "STM32F401CCU6" (at 0 5) (layer "F.Fab")) (pad 1 smd rect (at -3.5 -2.75) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) (pad 2 smd rect (at -3.5 -2.25) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "BUTTON")) (pad 10 smd rect (at -3.5 1.25) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIA_IRQ")) (pad 11 smd rect (at -3.5 1.75) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIB_IRQ")) (pad 14 smd rect (at -3.5 3.25) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIA_RST")) (pad 15 smd rect (at -2.75 3.5) (size 0.8 0.25) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIA_SCK")) (pad 16 smd rect (at -2.25 3.5) (size 0.8 0.25) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIA_MISO")) (pad 17 smd rect (at -1.75 3.5) (size 0.8 0.25) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIA_MOSI")) (pad 29 smd rect (at 3.5 0.75) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIA_CS")) (pad 32 smd rect (at 3.5 2.25) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "USB_DM")) (pad 33 smd rect (at 3.5 2.75) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "USB_DP")) (pad 21 smd rect (at 0.75 -3.5) (size 0.8 0.25) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIB_SCK")) (pad 22 smd rect (at 1.25 -3.5) (size 0.8 0.25) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIB_MISO")) (pad 23 smd rect (at 1.75 -3.5) (size 0.8 0.25) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIB_CS")) (pad 28 smd rect (at 3.5 -1.75) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIB_MOSI")) (pad 20 smd rect (at 0.25 -3.5) (size 0.8 0.25) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIB_RST")) (pad 18 smd rect (at -0.75 -3.5) (size 0.8 0.25) (layers "F.Cu" "F.Paste" "F.Mask") (net "LED_RADIO_A")) (pad 19 smd rect (at -0.25 -3.5) (size 0.8 0.25) (layers "F.Cu" "F.Paste" "F.Mask") (net "LED_RADIO_B")) (pad 24 smd rect (at 2.25 -3.5) (size 0.8 0.25) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) (pad 25 smd rect (at 3.5 -2.25) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) (pad 46 smd rect (at 2.25 3.5) (size 0.8 0.25) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) (pad 45 smd rect (at 3.5 -2.75) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) (pad 47 smd rect (at 3.5 1.25) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) (pad 48 smd rect (at 3.5 3.25) (size 0.25 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) (pad 0 smd rect (at 0 0) (size 3.5 3.5) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) ) ;; nRF52832 Radio A (left side) (module "Package_DFN_QFN:QFN-48-1EP_6x6mm_P0.4mm_EP4.6x4.6mm" (layer "F.Cu") (tedit 0) (at 22 30) (fp_text reference "U2" (at 0 -4) (layer "F.SilkS")) (fp_text value "nRF52832-QFAA" (at 0 4) (layer "F.Fab")) (pad 5 smd rect (at -2.8 0.6) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIA_CS")) (pad 6 smd rect (at -2.8 -0.2) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIA_MISO")) (pad 7 smd rect (at -2.8 -0.6) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIA_MOSI")) (pad 8 smd rect (at -2.8 -1.0) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIA_SCK")) (pad 9 smd rect (at -2.8 -1.4) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIA_IRQ")) (pad 10 smd rect (at -2.8 -1.8) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIA_RST")) (pad 35 smd rect (at 1.8 -2.8) (size 0.8 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (net "RF_A")) (pad 36 smd rect (at 1.4 -2.8) (size 0.8 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) (pad 7 smd rect (at -2.0 2.8) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) (pad 8 smd rect (at -1.6 2.8) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) (pad 32 smd rect (at 1.2 2.8) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) (pad 44 smd rect (at 2.8 0.6) (size 0.8 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) (pad 37 smd rect (at 2.8 -2.4) (size 0.8 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) (pad 38 smd rect (at 2.8 -2.0) (size 0.8 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) (pad 45 smd rect (at 2.8 2.0) (size 0.8 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) (pad 0 smd rect (at 0 0) (size 4.6 4.6) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) ) ;; nRF52832 Radio B (right side) (module "Package_DFN_QFN:QFN-48-1EP_6x6mm_P0.4mm_EP4.6x4.6mm" (layer "F.Cu") (tedit 0) (at 58 30) (fp_text reference "U3" (at 0 -4) (layer "F.SilkS")) (fp_text value "nRF52832-QFAA" (at 0 4) (layer "F.Fab")) (pad 5 smd rect (at -2.8 0.6) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIB_CS")) (pad 6 smd rect (at -2.8 -0.2) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIB_MISO")) (pad 7 smd rect (at -2.8 -0.6) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIB_MOSI")) (pad 8 smd rect (at -2.8 -1.0) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIB_SCK")) (pad 9 smd rect (at -2.8 -1.4) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIB_IRQ")) (pad 10 smd rect (at -2.8 -1.8) (size 0.2 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "SPIB_RST")) (pad 35 smd rect (at 1.8 -2.8) (size 0.8 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (net "RF_B")) (pad 36 smd rect (at 1.4 -2.8) (size 0.8 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) (pad 0 smd rect (at 0 0) (size 4.6 4.6) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) ) ;; Antenna A (left edge) (module "RF_Antenna:Johanson_2450AT18A100_0805" (layer "F.Cu") (tedit 0) (at 12 32) (fp_text reference "ANT1" (at 0 -2) (layer "F.SilkS")) (fp_text value "2450AT18A100E" (at 0 2) (layer "F.Fab")) (pad 1 smd rect (at -0.5 0) (size 1.0 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "RF_A")) (pad 2 smd rect (at 0.5 0) (size 1.0 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) ) ;; Antenna B (right edge) (module "RF_Antenna:Johanson_2450AT18A100_0805" (layer "F.Cu") (tedit 0) (at 68 32) (fp_text reference "ANT2" (at 0 -2) (layer "F.SilkS")) (fp_text value "2450AT18A100E" (at 0 2) (layer "F.Fab")) (pad 1 smd rect (at -0.5 0) (size 1.0 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "RF_B")) (pad 2 smd rect (at 0.5 0) (size 1.0 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) ) ;; Matching network for Antenna A (module "Inductor_SMD:L_0402_1005Metric" (layer "F.Cu") (tedit 0) (at 17 32) (fp_text reference "L1" (at 0 -1.5) (layer "F.SilkS")) (fp_text value "10nH" (at 0 1.5) (layer "F.Fab")) (pad 1 smd rect (at -0.5 0) (size 0.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net "RF_A")) (pad 2 smd rect (at 0.5 0) (size 0.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net "RF_A_MATCH")) ) (module "Capacitor_SMD:C_0402_1005Metric" (layer "F.Cu") (tedit 0) (at 18.5 32) (fp_text reference "C26" (at 0 -1.5) (layer "F.SilkS")) (fp_text value "0.5pF" (at 0 1.5) (layer "F.Fab")) (pad 1 smd rect (at -0.25 0) (size 0.25 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net "RF_A_MATCH")) (pad 2 smd rect (at 0.25 0) (size 0.25 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) ) (module "Inductor_SMD:L_0402_1005Metric" (layer "F.Cu") (tedit 0) (at 20 32) (fp_text reference "L2" (at 0 -1.5) (layer "F.SilkS")) (fp_text value "10nH" (at 0 1.5) (layer "F.Fab")) (pad 1 smd rect (at -0.5 0) (size 0.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net "RF_A_MATCH")) (pad 2 smd rect (at 0.5 0) (size 0.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net "RF_ANT1")) ) ;; LDO (near USB input) (module "Package_TO_SOT_SMD:SOT-223-3_TabPin2" (layer "F.Cu") (tedit 0) (at 22 12) (fp_text reference "U5" (at 0 -4) (layer "F.SilkS")) (fp_text value "TLV1117LV33DCYR" (at 0 4) (layer "F.Fab")) (pad 1 smd rect (at -2.54 -2.3) (size 1.2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (net "VBUS")) (pad 2 smd rect (at 0 -2.3) (size 1.2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) (pad 3 smd rect (at 2.54 -2.3) (size 1.2 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) (pad 4 smd rect (at 0 2.3) (size 3.5 0.9) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) ) ;; LiPo Charger (near battery connector) (module "Package_TO_SOT_SMD:SOT-23-5" (layer "F.Cu") (tedit 0) (at 34 10) (fp_text reference "U4" (at 0 -3) (layer "F.SilkS")) (fp_text value "MCP73831T-2ACI/OT" (at 0 3) (layer "F.Fab")) (pad 1 smd rect (at -0.95 -1.2) (size 0.55 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "CHARGE_STAT")) (pad 2 smd rect (at 0 -1.2) (size 0.55 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) (pad 3 smd rect (at 0.95 -1.2) (size 0.55 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "VBATT")) (pad 4 smd rect (at 0.95 1.2) (size 0.55 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "VBUS")) (pad 5 smd rect (at -0.95 1.2) (size 0.55 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "PROG")) ) ;; LEDs (module "LED_SMD:LED_0603_1608Metric" (layer "F.Cu") (tedit 0) (at 45 10) (fp_text reference "D1" (at 0 -1.5) (layer "F.SilkS")) (fp_text value "Red" (at 0 1.5) (layer "F.Fab")) (pad 1 smd rect (at -0.4 0) (size 0.4 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "LED_RADIO_A")) (pad 2 smd rect (at 0.4 0) (size 0.4 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) ) (module "LED_SMD:LED_0603_1608Metric" (layer "F.Cu") (tedit 0) (at 48 10) (fp_text reference "D2" (at 0 -1.5) (layer "F.SilkS")) (fp_text value "Red" (at 0 1.5) (layer "F.Fab")) (pad 1 smd rect (at -0.4 0) (size 0.4 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "LED_RADIO_B")) (pad 2 smd rect (at 0.4 0) (size 0.4 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) ) (module "LED_SMD:LED_0603_1608Metric" (layer "F.Cu") (tedit 0) (at 51 10) (fp_text reference "D3" (at 0 -1.5) (layer "F.SilkS")) (fp_text value "Red" (at 0 1.5) (layer "F.Fab")) (pad 1 smd rect (at -0.4 0) (size 0.4 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "LED_USB")) (pad 2 smd rect (at 0.4 0) (size 0.4 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) ) (module "LED_SMD:LED_0603_1608Metric" (layer "F.Cu") (tedit 0) (at 54 10) (fp_text reference "D4" (at 0 -1.5) (layer "F.SilkS")) (fp_text value "Red" (at 0 1.5) (layer "F.Fab")) (pad 1 smd rect (at -0.4 0) (size 0.4 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "LED_POWER")) (pad 2 smd rect (at 0.4 0) (size 0.4 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) ) ;; User button (module "Button_Switch_SMD:SW_Push_1P1T_NO_6x3.5mm" (layer "F.Cu") (tedit 0) (at 55 20) (fp_text reference "SW1" (at 0 -3) (layer "F.SilkS")) (fp_text value "SKQGAFE010" (at 0 3) (layer "F.Fab")) (pad 1 smd rect (at -2.5 0) (size 1.5 2) (layers "F.Cu" "F.Paste" "F.Mask") (net "BUTTON")) (pad 2 smd rect (at 2.5 0) (size 1.5 2) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) ) ;; 8MHz Crystal for STM32 (module "Crystal:Crystal_HC49-SMD" (layer "F.Cu") (tedit 0) (at 35 14) (fp_text reference "Y2" (at 0 -3) (layer "F.SilkS")) (fp_text value "8MHz" (at 0 3) (layer "F.Fab")) (pad 1 smd rect (at -2.5 0) (size 1.5 2) (layers "F.Cu" "F.Paste" "F.Mask") (net "HSE_IN")) (pad 2 smd rect (at 2.5 0) (size 1.5 2) (layers "F.Cu" "F.Paste" "F.Mask") (net "HSE_OUT")) ) ;; Decoupling caps (representative, near ICs) (module "Capacitor_SMD:C_0402_1005Metric" (layer "F.Cu") (tedit 0) (at 38 25) (fp_text reference "C4" (at 0 -1.2) (layer "F.SilkS")) (fp_text value "100nF" (at 0 1.2) (layer "F.Fab")) (pad 1 smd rect (at -0.25 0) (size 0.25 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) (pad 2 smd rect (at 0.25 0) (size 0.25 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) ) (module "Capacitor_SMD:C_0402_1005Metric" (layer "F.Cu") (tedit 0) (at 42 25) (fp_text reference "C5" (at 0 -1.2) (layer "F.SilkS")) (fp_text value "100nF" (at 0 1.2) (layer "F.Fab")) (pad 1 smd rect (at -0.25 0) (size 0.25 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net "3V3")) (pad 2 smd rect (at 0.25 0) (size 0.25 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net "GND")) ) ;; Ground stitching vias (representative pattern) (via (at 5 5) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 15 5) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 25 5) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 35 5) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 45 5) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 55 5) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 65 5) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 75 5) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 5 35) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 15 35) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 25 35) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 35 35) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 45 35) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 55 35) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 65 35) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 75 35) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "GND")) ;; RF stitching vias near antennas (via (at 10 30) (size 0.5) (drill 0.2) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 10 32) (size 0.5) (drill 0.2) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 10 34) (size 0.5) (drill 0.2) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 70 30) (size 0.5) (drill 0.2) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 70 32) (size 0.5) (drill 0.2) (layers "F.Cu" "B.Cu") (net "GND")) (via (at 70 34) (size 0.5) (drill 0.2) (layers "F.Cu" "B.Cu") (net "GND")) ;; Thermal vias under ICs (via (at 40 20) (size 0.8) (drill 0.4) (layers "F.Cu" "In1.Cu" "B.Cu") (net "GND")) (via (at 41 20) (size 0.8) (drill 0.4) (layers "F.Cu" "In1.Cu" "B.Cu") (net "GND")) (via (at 40 21) (size 0.8) (drill 0.4) (layers "F.Cu" "In1.Cu" "B.Cu") (net "GND")) (via (at 41 21) (size 0.8) (drill 0.4) (layers "F.Cu" "In1.Cu" "B.Cu") (net "GND")) (via (at 22 30) (size 0.8) (drill 0.4) (layers "F.Cu" "In1.Cu" "B.Cu") (net "GND")) (via (at 23 30) (size 0.8) (drill 0.4) (layers "F.Cu" "In1.Cu" "B.Cu") (net "GND")) (via (at 22 31) (size 0.8) (drill 0.4) (layers "F.Cu" "In1.Cu" "B.Cu") (net "GND")) (via (at 23 31) (size 0.8) (drill 0.4) (layers "F.Cu" "In1.Cu" "B.Cu") (net "GND")) (via (at 58 30) (size 0.8) (drill 0.4) (layers "F.Cu" "In1.Cu" "B.Cu") (net "GND")) (via (at 59 30) (size 0.8) (drill 0.4) (layers "F.Cu" "In1.Cu" "B.Cu") (net "GND")) (via (at 58 31) (size 0.8) (drill 0.4) (layers "F.Cu" "In1.Cu" "B.Cu") (net "GND")) (via (at 59 31) (size 0.8) (drill 0.4) (layers "F.Cu" "In1.Cu" "B.Cu") (net "GND")) ;; Board silkscreen labels (gr_text "BLE Phantom v1.0" (at 40 38) (layer "F.SilkS") (effects (font (size 1.5 1.5) (thickness 0.2))) (gr_text "Hacker Devices" (at 40 36) (layer "F.SilkS") (effects (font (size 0.8 0.8) (thickness 0.1))) (gr_text "RADIO A" (at 22 36) (layer "F.SilkS") (effects (font (size 0.8 0.8) (thickness 0.1))) (gr_text "RADIO B" (at 58 36) (layer "F.SilkS") (effects (font (size 0.8 0.8) (thickness 0.1))) (gr_text "STM32" (at 40 16) (layer "F.SilkS") (effects (font (size 0.8 0.8) (thickness 0.1)))) (gr_text "USB" (at 6 38) (layer "F.SilkS") (effects (font (size 0.6 0.6) (thickness 0.1)))) ;; Fiducials (fp_text reference "FID1" (at 76 3) (layer "F.SilkS")) (pad "" smd circle (at 76 3) (size 1.5 1.5) (layers "F.Cu" "F.Mask")) (fp_text reference "FID2" (at 76 37) (layer "F.SilkS")) (pad "" smd circle (at 76 37) (size 1.5 1.5) (layers "F.Cu" "F.Mask")) (fp_text reference "FID3" (at 14 3) (layer "F.SilkS")) (pad "" smd circle (at 14 3) (size 1.5 1.5) (layers "F.Cu" "F.Mask")) )