(kicad_pcb (version 20231120) (generator "hart-bleeder-pcb") (generator_version "7.0") (uuid "9b4c2d3e-5f6a-7089-ab12-cd4e5f6a7089") (general (thickness 1.6) (legacy_teardrops no)) (paper "A4") (title_block (title "HART-Bleeder PCB") (date "2026-07-20") (rev "1.0") (company "jayis1") (comment 1 "Author: jayis1") (comment 2 "License: GPL-2.0") (comment 3 "HART Fieldbus Covert In-Line Attack Implant") ) (layers (0 "F.Cu" signal "copper") (31 "B.Cu" signal "copper") (32 "B.Adhes" user "adhes") (33 "F.Adhes" user "adhes") (34 "B.Paste" user "paste") (35 "F.Paste" user "paste") (36 "B.SilkS" user "silk") (37 "F.SilkS" user "silk") (38 "B.Mask" user "mask") (39 "F.Mask" user "mask") (40 "Dwgs.User" user "cmts") (41 "Cmts.User" user "cmts") (42 "Eco1.User" user "other") (43 "Eco2.User" user "other") (44 "Edge.Cuts" user "other") (45 "Margin" user "other") (46 "B.CrtYd" user "other") (47 "F.CrtYd" user "other") (48 "B.Fab" user "other") (49 "F.Fab" user "other") ) (setup (pad_to_mask_clearance 0.05) (solder_mask_min_width 0.05) (grid_origin 0 0) (pcbplotparams (layerselection 0x00010fc_ffffffff) (plot_on_all_layers_selection 0x0000000_00000000) (disableapertmacros false) (usegerberextensions false) (usegerberattributes true) (usegerberadvancedattributes true) (creategerberjobfile true) (dashed_line_dash_ratio 12.000000) (dashed_line_gap_ratio 3.000000) (svgprecision 4) (plotframeref false) (viasonmask false) (mode 1) (useauxorigin false) (hpglpennumber 1) (hpglpenspeed 20) (hpglpendiameter 15.000000) (pdf_front_fp_property_popups true) (pdf_back_fp_property_popups true) (dxfpolygonmode true) (dxfimperialunits true) (dxfusepcbnewfont true) (psnegative false) (psa4output false) (plotreference true) (plotvalue true) (plotfptext true) (plotinvisibletext false) (sketchpadsonfab false) (subtractmaskfromsilk false) (outputformat 1) (mirror false) (drillshape 1) (scaleselection 1) (outputdirectory "")) ) (net 0 "") (net 1 "GND") (net 2 "+3V3") (net 3 "VUSB") (net 4 "VBAT") (net 5 "VLOOP") (net 6 "LOOP_IN") (net 7 "LOOP_OUT") (net 8 "AGND") (net 9 "AVDD") (net 10 "USART2_TX") (net 11 "USART2_RX") (net 12 "HART_RTS_N") (net 13 "HART_CD_N") (net 14 "HART_SHDN_N") (net 15 "USART1_TX") (net 16 "USART1_RX") (net 17 "USB_DM") (net 18 "USB_DP") (net 19 "SPI1_SCK") (net 20 "SPI1_MISO") (net 21 "SPI1_MOSI") (net 22 "SD_CS_N") (net 23 "SD_DETECT") (net 24 "OLED_SCL") (net 25 "OLED_SDA") (net 26 "LED_RED") (net 27 "LED_GREEN") (net 28 "LED_BLUE") (net 29 "ISO_BYPASS") (net 30 "BYPASS_RELAY") (net 31 "DAC1_OUT") (net 32 "ADC_LOOP_I") (net 33 "ADC_LOOP_V") (net 34 "ADC_LOOP_I2") (net 35 "ADC_VBAT") (net 36 "USER_BTN") (net 37 "UART4_TX") (net 38 "UART4_RX") (net 39 "BLE_RST_N") (net 40 "BLE_BOOT") (net 41 "HART_FSK_IN") (net 42 "HART_FSK_OUT") (net 43 "SHUNT_HI") (net 44 "SHUNT_LO") ; ═══════════════════════════════════════════════════════════════ ; Board outline (45 x 25 mm — inline coupler form factor) ; ═══════════════════════════════════════════════════════════════ (gr_line (start 0 0) (end 45 0) (stroke (width 0.15)) (layer "Edge.Cuts")) (gr_line (start 45 0) (end 45 25) (stroke (width 0.15)) (layer "Edge.Cuts")) (gr_line (start 45 25) (end 0 25) (stroke (width 0.15)) (layer "Edge.Cuts")) (gr_line (start 0 25) (end 0 0) (stroke (width 0.15)) (layer "Edge.Cuts")) (gr_text "HART-Bleeder rev1.0" (at 22.5 2) (layer "F.SilkS") (effects (font (size 1.0 1.0) (thickness 0.15)))) (gr_text "jayis1" (at 22.5 23) (layer "F.SilkS") (effects (font (size 0.8 0.8) (thickness 0.1)))) (gr_text "AUTHORIZED USE ONLY" (at 22.5 21.5) (layer "F.SilkS") (effects (font (size 0.6 0.6) (thickness 0.08)))) ; ═══════════════════════════════════════════════════════════════ ; Footprints ; ═══════════════════════════════════════════════════════════════ ; ── U1: STM32G474CEU6 (QFN-48) ──────────────────────────────── (footprint "Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.15x5.15mm" (layer "F.Cu") (tedit 0) (tstamp 00000000-0000-0000-0000-000000000001) (at 15 12) (attr smd) (property "Reference" "U1" (at 0 -5 0)) (property "Value" "STM32G474CEU6" (at 0 5 0)) (property "Author" "jayis1") (pad "1" smd rect (at -3.25 -2.75) (size 0.3 0.85) (layers "F.Cu" "F.Paste" "F.Mask") (net 2 "+3V3")) (pad "44" smd rect (at 3.25 -2.75) (size 0.3 0.85) (layers "F.Cu" "F.Paste" "F.Mask") (net 10 "USART2_TX")) (pad "45" smd rect (at 3.25 -2.25) (size 0.3 0.85) (layers "F.Cu" "F.Paste" "F.Mask") (net 11 "USART2_RX")) (pad "46" smd rect (at 3.25 -1.75) (size 0.3 0.85) (layers "F.Cu" "F.Paste" "F.Mask") (net 12 "HART_RTS_N")) (pad "47" smd rect (at 3.25 -1.25) (size 0.3 0.85) (layers "F.Cu" "F.Paste" "F.Mask") (net 13 "HART_CD_N")) (pad "48" smd rect (at 3.25 -0.75) (size 0.3 0.85) (layers "F.Cu" "F.Paste" "F.Mask") (net 14 "HART_SHDN_N")) (pad "9" smd rect (at -3.25 2.75) (size 0.3 0.85) (layers "F.Cu" "F.Paste" "F.Mask") (net 32 "ADC_LOOP_I")) (pad "10" smd rect (at -3.25 2.25) (size 0.3 0.85) (layers "F.Cu" "F.Paste" "F.Mask") (net 33 "ADC_LOOP_V")) (pad "14" smd rect (at -3.25 0.25) (size 0.3 0.85) (layers "F.Cu" "F.Paste" "F.Mask") (net 31 "DAC1_OUT")) (pad "EXP" smd rect (at 0 0) (size 5.15 5.15) (layers "F.Cu" "F.Paste" "F.Mask") (net 1 "GND")) ) ; ── U2: MAX13440E HART modem (TSSOP-14) ────────────────────── (footprint "Package_SO:TSSOP-14_4.4x5mm_P0.65mm" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000002) (at 28 8) (attr smd) (property "Reference" "U2" (at 0 -4 0)) (property "Value" "MAX13440EETD+" (at 0 4 0)) (property "Author" "jayis1") (pad "1" smd rect (at -1.95 -2.8) (size 0.4 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 2 "+3V3")) (pad "2" smd rect (at -1.3 -2.8) (size 0.4 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 14 "HART_SHDN_N")) (pad "3" smd rect (at -0.65 -2.8) (size 0.4 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 12 "HART_RTS_N")) (pad "4" smd rect (at 0 -2.8) (size 0.4 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 13 "HART_CD_N")) (pad "5" smd rect (at 0.65 -2.8) (size 0.4 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 11 "USART2_RX")) (pad "6" smd rect (at 1.3 -2.8) (size 0.4 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 10 "USART2_TX")) (pad "7" smd rect (at 1.95 -2.8) (size 0.4 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 1 "GND")) (pad "8" smd rect (at 1.95 2.8) (size 0.4 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 1 "GND")) (pad "14" smd rect (at -1.95 2.8) (size 0.4 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 2 "+3V3")) ) ; ── R5: 250-ohm precision sense resistor (0805) ────────────── (footprint "Resistor_SMD:R_0805_2012Metric" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000005) (at 36 10) (attr smd) (property "Reference" "R5" (at 0 -1.5 0)) (property "Value" "250R_0.1%" (at 0 1.5 0)) (property "Author" "jayis1") (pad "1" smd rect (at -0.95 0) (size 0.6 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 43 "SHUNT_HI")) (pad "2" smd rect (at 0.95 0) (size 0.6 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 44 "SHUNT_LO")) ) ; ── K1: G6K-2F-Y relay (DPDT) ──────────────────────────────── (footprint "Relay_THT:Relay_DPDT_Omron_G6K-2F" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000006) (at 30 18) (attr through_hole) (property "Reference" "K1" (at 0 -6 0)) (property "Value" "G6K-2F-Y-DC3" (at 0 6 0)) (property "Author" "jayis1") (pad "1" thru_hole circle (at -5.08 -3.78) (size 1.5 1.5) (drill 0.8) (layers "*.Cu" "*.Mask") (net 30 "BYPASS_RELAY")) (pad "4" thru_hole circle (at 5.08 -3.78) (size 1.5 1.5) (drill 0.8) (layers "*.Cu" "*.Mask") (net 6 "LOOP_IN")) (pad "8" thru_hole circle (at 5.08 3.78) (size 1.5 1.5) (drill 0.8) (layers "*.Cu" "*.Mask") (net 7 "LOOP_OUT")) ) ; ── U5: TPS63020 buck-boost (DSJ-14) ───────────────────────── (footprint "Package_SO:TI_DSJ-14" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000007) (at 8 20) (attr smd) (property "Reference" "U5" (at 0 -4 0)) (property "Value" "TPS63020DSJR" (at 0 4 0)) (property "Author" "jayis1") (pad "1" smd rect (at -1.95 -2.5) (size 0.4 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net 4 "VBAT")) (pad "14" smd rect (at -1.95 2.5) (size 0.4 0.8) (layers "F.Cu" "F.Paste" "F.Mask") (net 2 "+3V3")) ) ; ── U6: MCP73831 LiPo charger (SOT-23-5) ───────────────────── (footprint "Package_TO_SOT_SMD:SOT-23-5" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000008) (at 4 20) (attr smd) (property "Reference" "U6" (at 0 -2.5 0)) (property "Value" "MCP73831T-2ACI/OT" (at 0 2.5 0)) (property "Author" "jayis1") (pad "1" smd rect (at -1.05 -0.95) (size 0.6 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (net 3 "VUSB")) (pad "3" smd rect (at 1.05 -0.95) (size 0.6 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (net 4 "VBAT")) (pad "2" smd rect (at -1.05 0) (size 0.6 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (net 1 "GND")) ) ; ── J2: microSD socket ─────────────────────────────────────── (footprint "Connector_Card:microSD_HC_Hirose_DM3AT-SF-PEJM5" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000009) (at 40 5) (attr smd) (property "Reference" "J2" (at 0 -6 0)) (property "Value" "Micro_SD" (at 0 6 0)) (property "Author" "jayis1") (pad "2" smd rect (at 4 -4) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (net 19 "SPI1_SCK")) (pad "3" smd rect (at 3 -4) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (net 22 "SD_CS_N")) (pad "7" smd rect (at -3 -4) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (net 20 "SPI1_MISO")) (pad "8" smd rect (at -4 -4) (size 0.5 1.5) (layers "F.Cu" "F.Paste" "F.Mask") (net 2 "+3V3")) ) ; ── J1: USB-C receptacle ───────────────────────────────────── (footprint "Connector_USB:USB_C_Receptacle_Amphenol_12401610E4-2A" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000010) (at 4 4) (attr smd) (property "Reference" "J1" (at 0 -5 0)) (property "Value" "USB-C_2.0" (at 0 5 0)) (property "Author" "jayis1") (pad "A1" smd rect (at -4 -1) (size 0.3 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 1 "GND")) (pad "A4" smd rect (at -3.5 -1) (size 0.3 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 3 "VUSB")) (pad "A6" smd rect (at -2.5 -1) (size 0.3 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 18 "USB_DP")) (pad "A7" smd rect (at -2 -1) (size 0.3 1.0) (layers "F.Cu" "F.Paste" "F.Mask") (net 17 "USB_DM")) ) ; ── J3: Screw terminals (loop in/out) ──────────────────────── (footprint "TerminalBlock:TerminalBlock_bornier-2_P5.08mm" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000011) (at 42 14) (attr through_hole) (property "Reference" "J3" (at 0 -3 0)) (property "Value" "LOOP_TERM" (at 0 3 0)) (property "Author" "jayis1") (pad "1" thru_hole circle (at -2.54 0) (size 2.0 2.0) (drill 1.2) (layers "*.Cu" "*.Mask") (net 6 "LOOP_IN")) (pad "2" thru_hole circle (at 2.54 0) (size 2.0 2.0) (drill 1.2) (layers "*.Cu" "*.Mask") (net 7 "LOOP_OUT")) ) ; ── LEDs ───────────────────────────────────────────────────── (footprint "LED_SMD:LED_0603_1608Metric" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000012) (at 8 24) (attr smd) (property "Reference" "D1" (at 0 -1.2 0)) (property "Value" "RED" (at 0 1.2 0)) (property "Author" "jayis1") (pad "1" smd rect (at -0.4 0) (size 0.4 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net 26 "LED_RED")) (pad "2" smd rect (at 0.4 0) (size 0.4 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net 1 "GND"))) (footprint "LED_SMD:LED_0603_1608Metric" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000013) (at 10 24) (attr smd) (property "Reference" "D2" (at 0 -1.2 0)) (property "Value" "GREEN" (at 0 1.2 0)) (property "Author" "jayis1") (pad "1" smd rect (at -0.4 0) (size 0.4 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net 27 "LED_GREEN")) (pad "2" smd rect (at 0.4 0) (size 0.4 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net 1 "GND"))) (footprint "LED_SMD:LED_0603_1608Metric" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000014) (at 12 24) (attr smd) (property "Reference" "D3" (at 0 -1.2 0)) (property "Value" "BLUE" (at 0 1.2 0)) (property "Author" "jayis1") (pad "1" smd rect (at -0.4 0) (size 0.4 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net 28 "LED_BLUE")) (pad "2" smd rect (at 0.4 0) (size 0.4 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (net 1 "GND"))) ; ── Y1: 24 MHz crystal ─────────────────────────────────────── (footprint "Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000015) (at 22 5) (attr smd) (property "Reference" "Y1" (at 0 -2.5 0)) (property "Value" "24MHz" (at 0 2.5 0)) (property "Author" "jayis1") (pad "1" smd rect (at -1.15 -0.925) (size 1.0 1.0) (layers "F.Cu" "F.Paste" "F.Mask")) (pad "3" smd rect (at 1.15 0.925) (size 1.0 1.0) (layers "F.Cu" "F.Paste" "F.Mask"))) ; ── Decoupling caps ────────────────────────────────────────── (footprint "Capacitor_SMD:C_0603_1608Metric" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000016) (at 20 15) (attr smd) (property "Reference" "C1" (at 0 -1 0)) (property "Value" "10uF" (at 0 1 0)) (property "Author" "jayis1") (pad "1" smd rect (at -0.4 0) (size 0.4 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (net 2 "+3V3")) (pad "2" smd rect (at 0.4 0) (size 0.4 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (net 1 "GND"))) (footprint "Capacitor_SMD:C_0603_1608Metric" (layer "F.Cu") (tstamp 00000000-0000-0000-0000-000000000017) (at 20 17) (attr smd) (property "Reference" "C2" (at 0 -1 0)) (property "Value" "100nF" (at 0 1 0)) (property "Author" "jayis1") (pad "1" smd rect (at -0.4 0) (size 0.4 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (net 2 "+3V3")) (pad "2" smd rect (at 0.4 0) (size 0.4 0.6) (layers "F.Cu" "F.Paste" "F.Mask") (net 1 "GND"))) ; ═══════════════════════════════════════════════════════════════ ; Vias ; ═══════════════════════════════════════════════════════════════ (via (at 5 5) (size 0.3) (drill 0.15) (layers "F.Cu" "B.Cu") (net 1)) (via (at 10 10) (size 0.3) (drill 0.15) (layers "F.Cu" "B.Cu") (net 1)) (via (at 15 15) (size 0.3) (drill 0.15) (layers "F.Cu" "B.Cu") (net 1)) (via (at 25 10) (size 0.3) (drill 0.15) (layers "F.Cu" "B.Cu") (net 1)) (via (at 35 15) (size 0.3) (drill 0.15) (layers "F.Cu" "B.Cu") (net 1)) (via (at 40 5) (size 0.3) (drill 0.15) (layers "F.Cu" "B.Cu") (net 1)) (via (at 5 20) (size 0.3) (drill 0.15) (layers "F.Cu" "B.Cu") (net 1)) (via (at 40 20) (size 0.3) (drill 0.15) (layers "F.Cu" "B.Cu") (net 1)) ; ═══════════════════════════════════════════════════════════════ ; Traces (key signal paths) ; ═══════════════════════════════════════════════════════════════ (segment (start 18.25 9.25) (end 26.05 5.2) (width 0.15) (layer "F.Cu") (net 10)) (segment (start 18.25 9.75) (end 26.7 5.2) (width 0.15) (layer "F.Cu") (net 11)) (segment (start 18.25 10.25) (end 27.35 5.2) (width 0.15) (layer "F.Cu") (net 12)) (segment (start 35.05 10) (end 42 11.46) (width 0.4) (layer "F.Cu") (net 43)) (segment (start 36.95 10) (end 42 14) (width 0.4) (layer "F.Cu") (net 44)) (segment (start 4 3) (end 4 3) (width 0.4) (layer "F.Cu") (net 3)) (segment (start 8 20) (end 12 24) (width 0.15) (layer "F.Cu") (net 26)) ; ── GND pour on B.Cu ───────────────────────────────────────── (zone (net 1) (net_name "GND") (layer "B.Cu") (tstamp 0) (hatch edge 0.5) (connect_pads (clearance 0.2)) (min_thickness 0.15) (fill yes (thermal_gap 0.2) (thermal_bridge_width 0.2)) (polygon (pts (xy 0.5 0.5) (xy 44.5 0.5) (xy 44.5 24.5) (xy 0.5 24.5) ) ) ) ; ── +3V3 pour on inner area of F.Cu (partial) ──────────────── (zone (net 2) (net_name "+3V3") (layer "F.Cu") (tstamp 1) (hatch edge 0.5) (connect_pads (clearance 0.2)) (min_thickness 0.15) (fill yes (thermal_gap 0.2) (thermal_bridge_width 0.2)) (polygon (pts (xy 1 1) (xy 14 1) (xy 14 8) (xy 1 8) ) ) ) )