--- /dev/null
+#!/usr/bin/python3
+# Copyright 2025 by Bdale Garbee <bdale@gag.com>. GPLv3
+#
+# Program to emit PCB footprint for Bivar H178CBCXX and related LEDs
+#
+
+# dimensions in mm from bivar/BIVA_S_A0003691096_1-2539024.pdf datasheet
+PinSpacing = 2.5
+PinDiam = 0.8
+BodyWidth = 6.4
+BodyLength = 8.9
+Setback = 5.1
+
+import sys
+
+# we're going to use the 1/100 of a mil fundamental unit form
+def mm2mils100( mm ):
+ return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
+
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
+
+print('Element[0x0 "H178" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pin[',\
+ mm2mils100(-PinSpacing/2), \
+ 0, \
+ mm2mils100(PinDiam * 2), \
+ 1200, \
+ mm2mils100(PinDiam * 2), \
+ mm2mils100(PinDiam), \
+ '"pin1" "1" 0x0101]')
+
+print(' Pin[',\
+ mm2mils100(PinSpacing/2), \
+ 0, \
+ mm2mils100(PinDiam * 2), \
+ 1200, \
+ mm2mils100(PinDiam * 2), \
+ mm2mils100(PinDiam), \
+ '"pin2" "2" 0x0001]')
+
+print(' ElementLine[',\
+ mm2mils100(-BodyWidth/2), \
+ mm2mils100(-Setback), \
+ mm2mils100(BodyWidth/2), \
+ mm2mils100(-Setback), \
+ 1000, \
+ ']')
+
+print(' ElementLine[',\
+ mm2mils100(-BodyWidth/2), \
+ mm2mils100(BodyLength-Setback), \
+ mm2mils100(BodyWidth/2), \
+ mm2mils100(BodyLength-Setback), \
+ 1000, \
+ ']')
+
+print(' ElementLine[',\
+ mm2mils100(BodyWidth/2), \
+ mm2mils100(-Setback), \
+ mm2mils100(BodyWidth/2), \
+ mm2mils100(BodyLength-Setback), \
+ 1000, \
+ ']')
+
+print(' ElementLine[',\
+ mm2mils100(-BodyWidth/2), \
+ mm2mils100(-Setback), \
+ mm2mils100(-BodyWidth/2), \
+ mm2mils100(BodyLength-Setback), \
+ 1000, \
+ ']')
+
+print(")")
--- /dev/null
+v 20220529 2
+T 100 600 8 10 0 0 0 0 1
+device=LED
+P 0 400 150 400 1 0 0
+{
+T 100 450 5 8 0 1 0 0 1
+pinnumber=1
+T 100 450 5 8 0 0 0 0 1
+pinseq=1
+T 100 450 5 8 0 1 0 0 1
+pinlabel=1
+T 100 450 5 8 0 1 0 0 1
+pintype=pas
+}
+P 600 400 450 400 1 0 0
+{
+T 400 450 5 8 0 1 0 0 1
+pinnumber=2
+T 400 450 5 8 0 0 0 0 1
+pinseq=2
+T 400 450 5 8 0 1 0 0 1
+pinlabel=2
+T 400 450 5 8 0 1 0 0 1
+pintype=pas
+}
+L 250 700 350 600 3 0 0 0 -1 -1
+L 350 600 250 500 3 0 0 0 -1 -1
+L 250 700 250 500 3 0 0 0 -1 -1
+L 350 700 350 500 3 0 0 0 -1 -1
+L 280 740 380 840 3 0 0 0 -1 -1
+L 380 840 330 810 3 0 0 0 -1 -1
+L 380 840 350 790 3 0 0 0 -1 -1
+L 350 740 450 840 3 0 0 0 -1 -1
+L 450 840 400 810 3 0 0 0 -1 -1
+L 450 840 420 790 3 0 0 0 -1 -1
+T 550 600 8 10 1 1 0 0 1
+refdes=D?
+L 350 100 250 200 3 0 0 0 -1 -1
+L 250 200 350 300 3 0 0 0 -1 -1
+L 350 100 350 300 3 0 0 0 -1 -1
+L 250 100 250 300 3 0 0 0 -1 -1
+L 320 60 220 -40 3 0 0 0 -1 -1
+L 220 -40 270 -10 3 0 0 0 -1 -1
+L 220 -40 250 10 3 0 0 0 -1 -1
+L 250 60 150 -40 3 0 0 0 -1 -1
+L 150 -40 200 -10 3 0 0 0 -1 -1
+L 150 -40 180 10 3 0 0 0 -1 -1
+L 250 600 150 600 3 10 1 0 -1 -1
+L 150 600 150 200 3 10 1 0 -1 -1
+L 150 200 250 200 3 10 1 0 -1 -1
+L 350 600 450 600 3 10 1 0 -1 -1
+L 450 600 450 200 3 10 1 0 -1 -1
+L 450 200 350 200 3 10 1 0 -1 -1