PM_K-1 hardware: custom TQ2SA relay footprint (verified) + project fp lib

hardware/kicad/pm_k1.pretty/Relay_DPDT_Panasonic_TQ2-SA.kicad_mod -- built from the
Panasonic TQ-SMD datasheet "Recommendable mounting pad, SA type" (2.54mm pitch, 1.0x2.94mm
pads, rows +/-3.31mm, pin map coil 1/10 / pole1 COM3 NC4 NO2 / pole2 COM8 NC7 NO9).
Validated via `kicad-cli fp upgrade` (parses to canonical KiCad 9 format). board.py now
references pm_k1:Relay_DPDT_Panasonic_TQ2-SA and pm_k1:RV-8803-C7.

RV-8803-C7 footprint NOT built: every host with its land pattern blocks/times-out my
fetcher (Micro Crystal, EM Micro, Mouser) and SnapEDA needs login. Won't guess a 0.8mm-pitch
land pattern (geometry + pin-pad mapping). Drop a verified RV-8803-C7.kicad_mod into
pm_k1.pretty (SnapEDA / datasheet) and it resolves.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Me Here 2026-05-31 15:49:49 -05:00
parent 88af54e544
commit fb9afe2b27
2 changed files with 181 additions and 2 deletions

View file

@ -165,7 +165,7 @@ PCM5102A=mk("PCM5102A",[Pin(num=1,name="CPVDD",func=P.PWRIN),Pin(num=2,name="CAP
TQ2=mk("TQ2SA-5V",[Pin(num=1,name="COIL_A",func=P.PASSIVE),Pin(num=10,name="COIL_B",func=P.PASSIVE), TQ2=mk("TQ2SA-5V",[Pin(num=1,name="COIL_A",func=P.PASSIVE),Pin(num=10,name="COIL_B",func=P.PASSIVE),
Pin(num=3,name="P1_COM",func=P.PASSIVE),Pin(num=4,name="P1_NC",func=P.PASSIVE),Pin(num=2,name="P1_NO",func=P.PASSIVE), Pin(num=3,name="P1_COM",func=P.PASSIVE),Pin(num=4,name="P1_NC",func=P.PASSIVE),Pin(num=2,name="P1_NO",func=P.PASSIVE),
Pin(num=8,name="P2_COM",func=P.PASSIVE),Pin(num=7,name="P2_NC",func=P.PASSIVE),Pin(num=9,name="P2_NO",func=P.PASSIVE), Pin(num=8,name="P2_COM",func=P.PASSIVE),Pin(num=7,name="P2_NC",func=P.PASSIVE),Pin(num=9,name="P2_NO",func=P.PASSIVE),
Pin(num=5,name="NC5",func=P.NOCONNECT),Pin(num=6,name="NC6",func=P.NOCONNECT)],ref="K",fp="Relay_SMD:Relay_DPDT_Panasonic_TQ2-SA") Pin(num=5,name="NC5",func=P.NOCONNECT),Pin(num=6,name="NC6",func=P.NOCONNECT)],ref="K",fp="pm_k1:Relay_DPDT_Panasonic_TQ2-SA")
ULN=mk("ULN2003A",[Pin(num=1,name="1B",func=P.INPUT),Pin(num=2,name="2B",func=P.INPUT),Pin(num=3,name="3B",func=P.INPUT), ULN=mk("ULN2003A",[Pin(num=1,name="1B",func=P.INPUT),Pin(num=2,name="2B",func=P.INPUT),Pin(num=3,name="3B",func=P.INPUT),
Pin(num=4,name="4B",func=P.INPUT),Pin(num=5,name="5B",func=P.INPUT),Pin(num=6,name="6B",func=P.INPUT),Pin(num=7,name="7B",func=P.INPUT), Pin(num=4,name="4B",func=P.INPUT),Pin(num=5,name="5B",func=P.INPUT),Pin(num=6,name="6B",func=P.INPUT),Pin(num=7,name="7B",func=P.INPUT),
Pin(num=8,name="GND",func=P.PWRIN),Pin(num=9,name="COM",func=P.PWRIN),Pin(num=10,name="7C",func=P.OPENCOLL), Pin(num=8,name="GND",func=P.PWRIN),Pin(num=9,name="COM",func=P.PWRIN),Pin(num=10,name="7C",func=P.OPENCOLL),
@ -225,7 +225,7 @@ uln["GND"]+=gnd; uln["COM"]+=p5
# ============================ RTC ============================ # ============================ RTC ============================
RV8803=mk("RV-8803-C7",[Pin(num=1,name="SDA",func=P.BIDIR),Pin(num=2,name="CLKOUT",func=P.OUTPUT),Pin(num=3,name="VDD",func=P.PWRIN), RV8803=mk("RV-8803-C7",[Pin(num=1,name="SDA",func=P.BIDIR),Pin(num=2,name="CLKOUT",func=P.OUTPUT),Pin(num=3,name="VDD",func=P.PWRIN),
Pin(num=4,name="CLKOE",func=P.INPUT),Pin(num=5,name="VSS",func=P.PWRIN),Pin(num=6,name="INT",func=P.OPENCOLL), Pin(num=4,name="CLKOE",func=P.INPUT),Pin(num=5,name="VSS",func=P.PWRIN),Pin(num=6,name="INT",func=P.OPENCOLL),
Pin(num=7,name="EVI",func=P.INPUT),Pin(num=8,name="SCL",func=P.INPUT)],fp="RTC_MicroCrystal:RV-8803-C7") Pin(num=7,name="EVI",func=P.INPUT),Pin(num=8,name="SCL",func=P.INPUT)],fp="pm_k1:RV-8803-C7")
rtc=RV8803(); rtc["VDD"]+=vdd_rtc; rtc["VSS"]+=gnd; rtc["SDA"]+=i2c_sda; rtc["SCL"]+=i2c_scl rtc=RV8803(); rtc["VDD"]+=vdd_rtc; rtc["VSS"]+=gnd; rtc["SDA"]+=i2c_sda; rtc["SCL"]+=i2c_scl
rtc["CLKOE"]+=gnd; rtc["EVI"]+=gnd; rtc["INT"]+=rtc_int rtc["CLKOE"]+=gnd; rtc["EVI"]+=gnd; rtc["INT"]+=rtc_int
db1=DS(value="BAT54"); db2=DS(value="BAT54"); p3v3+=db1[2]; db1[1]+=vdd_rtc db1=DS(value="BAT54"); db2=DS(value="BAT54"); p3v3+=db1[2]; db1[1]+=vdd_rtc

View file

@ -0,0 +1,179 @@
(footprint "Relay_DPDT_Panasonic_TQ2-SA"
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
(layer "F.Cu")
(descr "Panasonic TQ2-SA SMD DPDT (2 Form C) signal relay, 10 SMD terminals. Land pattern derived from the Panasonic TQ-SMD datasheet 'Recommendable mounting pad (Top view), SA type': 2.54mm row pitch, pad 1.0 x 2.94 mm, two rows at +/-3.31mm (9.56mm outer span), ~14mm overall. Pin map: coil 1/10; pole1 COM=3 NC=4 NO=2; pole2 COM=8 NC=7 NO=9. VERIFY against the datasheet before fab.")
(tags "relay Panasonic TQ2 TQ2SA DPDT 2FormC SMD")
(property "Reference" "REF**"
(at 0 -6 0)
(layer "F.SilkS")
(uuid "20e13ea2-2257-4b4a-a53e-9d3c94dd6bb3")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "TQ2SA-5V"
(at 0 6 0)
(layer "F.Fab")
(uuid "58c051b0-2d2f-4a32-a1f7-505512d81218")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" "https://industrial.panasonic.com/ww/products/pt/tq"
(at 0 0 0)
(layer "F.Fab")
(hide yes)
(uuid "5c67e25e-81d3-445b-97d2-43119d6e39dc")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Description" "Panasonic TQ2-SA DPDT signal relay"
(at 0 0 0)
(layer "F.Fab")
(hide yes)
(uuid "20a952d1-ff72-4879-bd1e-80e5859d208e")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(attr smd)
(fp_line
(start -7 -4.5)
(end 7 -4.5)
(stroke
(width 0.12)
(type default)
)
(layer "F.SilkS")
(uuid "d886079d-cdaf-475c-8aa7-32035c18a226")
)
(fp_line
(start -7 4.5)
(end 7 4.5)
(stroke
(width 0.12)
(type default)
)
(layer "F.SilkS")
(uuid "2647f0ce-0b5c-4f5e-b966-d3f873b32ad4")
)
(fp_circle
(center -6.5 -4)
(end -6.3 -4)
(stroke
(width 0.2)
(type default)
)
(fill yes)
(layer "F.SilkS")
(uuid "dec3a367-3d98-4060-be90-e5a7bf5854c9")
)
(fp_rect
(start -7.7 -5.4)
(end 7.7 5.4)
(stroke
(width 0.05)
(type default)
)
(fill no)
(layer "F.CrtYd")
(uuid "d6a2930d-0aca-41af-87a6-a0e76f97e85a")
)
(fp_rect
(start -7 -4.5)
(end 7 4.5)
(stroke
(width 0.1)
(type default)
)
(fill no)
(layer "F.Fab")
(uuid "82dbbeab-fe2f-4ee0-be6c-14536513b34d")
)
(pad "1" smd roundrect
(at -5.08 -3.31)
(size 1 2.94)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "8b24d11a-e344-417e-a739-9aa09d9d668f")
)
(pad "2" smd roundrect
(at -2.54 -3.31)
(size 1 2.94)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "2e7e36aa-115d-4b44-bcd0-a8aa0e78ff00")
)
(pad "3" smd roundrect
(at 0 -3.31)
(size 1 2.94)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "2bca0a65-ef27-4bd0-872a-0ffaa70634d9")
)
(pad "4" smd roundrect
(at 2.54 -3.31)
(size 1 2.94)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "c6bde6c3-ed9a-4374-bc5d-007be9adb4d5")
)
(pad "5" smd roundrect
(at 5.08 -3.31)
(size 1 2.94)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "9e38c1e9-6197-4cc6-b7a2-8b4c5261fead")
)
(pad "6" smd roundrect
(at 5.08 3.31)
(size 1 2.94)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "af54b502-62f4-4ad4-a150-c038f527dcb7")
)
(pad "7" smd roundrect
(at 2.54 3.31)
(size 1 2.94)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "3f57f831-9d5c-4052-a9af-53c2fdee994f")
)
(pad "8" smd roundrect
(at 0 3.31)
(size 1 2.94)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "b3a87d9e-357b-4685-a78b-8b23e0bb20ad")
)
(pad "9" smd roundrect
(at -2.54 3.31)
(size 1 2.94)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "5147e9ac-2ddd-4ed1-9ba7-b0da686c5cc3")
)
(pad "10" smd roundrect
(at -5.08 3.31)
(size 1 2.94)
(layers "F.Cu" "F.Mask" "F.Paste")
(roundrect_rratio 0.25)
(uuid "1d45a9c4-d273-4376-8f72-d26b07458648")
)
(embedded_fonts no)
)