diff --git a/fab.dcm b/fab.dcm
index 1e405479ee327ae42570f02f5025d5d3a3021707..031f28d4886ba7d66e6794a34f46c1e3c1df0cd5 100644
--- a/fab.dcm
+++ b/fab.dcm
@@ -229,6 +229,12 @@ K phototransistor NPN
 F https://www.everlight.com/file/ProductFile/PT15-21C-TR8.pdf
 $ENDCMP
 #
+$CMP ProgrammableLogic_ICE40HX1K-TQ144
+D iCE40 HX FPGA, 1280 LUTs, 1.2V, TQFP-144
+K FPGA programmable logic
+F http://www.latticesemi.com/Products/FPGAandCPLD/iCE40
+$ENDCMP
+#
 $CMP R
 D Resistor
 K R res resistor
diff --git a/fab.lib b/fab.lib
index 43ff0e7c8779f9598f86ea06636c9ad573af9c9f..4b1e583c0cf57d31d8cc0ee91a665f2715fe2c4d 100644
--- a/fab.lib
+++ b/fab.lib
@@ -2648,6 +2648,169 @@ X E 2 100 -200 100 U 50 50 1 1 P
 ENDDRAW
 ENDDEF
 #
+# ProgrammableLogic_ICE40HX1K-TQ144
+#
+DEF ProgrammableLogic_ICE40HX1K-TQ144 U 0 20 Y Y 5 L N
+F0 "U" -250 1450 50 H V C CNN
+F1 "ProgrammableLogic_ICE40HX1K-TQ144" 400 1450 50 H V C CNN
+F2 "fab:TQFP-144_20x20mm_P0.5mm" 0 -1450 50 H I C CNN
+F3 "" -850 1400 50 H I C CNN
+$FPLIST
+ TQFP*20x20mm*P0.5mm*
+$ENDFPLIST
+DRAW
+S -350 1250 350 -1250 1 1 10 f
+S -350 1350 350 -1350 2 1 10 f
+S -350 1150 350 -1150 3 1 10 f
+S -350 1350 350 -1350 4 1 10 f
+S -450 550 450 -550 5 1 10 f
+X IOT_73 112 -500 1100 150 R 50 50 1 1 B
+X IOT_74 113 -500 1000 150 R 50 50 1 1 B
+X IOT_75 114 -500 900 150 R 50 50 1 1 B
+X IOT_76 115 -500 800 150 R 50 50 1 1 B
+X IOT_77 116 -500 700 150 R 50 50 1 1 B
+X IOT_78 117 -500 600 150 R 50 50 1 1 B
+X IOT_79 118 -500 500 150 R 50 50 1 1 B
+X IOT_80 119 -500 400 150 R 50 50 1 1 B
+X IOT_81 120 -500 300 150 R 50 50 1 1 B
+X IOT_82 121 -500 200 150 R 50 50 1 1 B
+X IOT_83 122 -500 100 150 R 50 50 1 1 B
+X VCCIO_0 123 0 1400 150 D 50 50 1 1 W
+X IOT_84_GBIN1 128 -500 0 150 R 50 50 1 1 B
+X IOT_85_GBIN0 129 -500 -100 150 R 50 50 1 1 B
+X VCCIO_0 133 0 1400 150 D 50 50 1 1 P N
+X IOT_87 134 -500 -200 150 R 50 50 1 1 B
+X IOT_88 135 -500 -300 150 R 50 50 1 1 B
+X IOT_89 136 -500 -400 150 R 50 50 1 1 B
+X IOT_90 137 -500 -500 150 R 50 50 1 1 B
+X IOT_91 138 -500 -600 150 R 50 50 1 1 B
+X IOT_92 139 -500 -700 150 R 50 50 1 1 B
+X IOT_93 141 -500 -800 150 R 50 50 1 1 B
+X IOT_94 142 -500 -900 150 R 50 50 1 1 B
+X IOT_95 143 -500 -1000 150 R 50 50 1 1 B
+X IOT_96 144 -500 -1100 150 R 50 50 1 1 B
+X NC 15 300 400 150 L 50 50 1 1 N N
+X NC 16 300 300 150 L 50 50 1 1 N N
+X NC 17 300 200 150 L 50 50 1 1 N N
+X NC 18 300 -300 150 L 50 50 1 1 N N
+X NC 77 300 -400 150 L 50 50 1 1 N N
+X VCCIO_1 100 0 1500 150 D 50 50 2 1 P N
+X IOR_67 101 -500 -700 150 R 50 50 2 1 B
+X IOR_68 102 -500 -800 150 R 50 50 2 1 B
+X IOR_69 104 -500 -900 150 R 50 50 2 1 B
+X IOR_70 105 -500 -1000 150 R 50 50 2 1 B
+X IOR_71 106 -500 -1100 150 R 50 50 2 1 B
+X IOR_72 107 -500 -1200 150 R 50 50 2 1 B
+X NC 40 300 400 150 L 50 50 2 1 N N
+X NC 53 300 300 150 L 50 50 2 1 N N
+X NC 54 300 200 150 L 50 50 2 1 N N
+X NC 55 300 -300 150 L 50 50 2 1 N N
+X IOR_48 73 -500 1200 150 R 50 50 2 1 B
+X IOR_49 74 -500 1100 150 R 50 50 2 1 B
+X IOR_50 75 -500 1000 150 R 50 50 2 1 B
+X IOR_51 76 -500 900 150 R 50 50 2 1 B
+X IOR_52 78 -500 800 150 R 50 50 2 1 B
+X IOR_53 79 -500 700 150 R 50 50 2 1 B
+X IOR_54 80 -500 600 150 R 50 50 2 1 B
+X IOR_55 81 -500 500 150 R 50 50 2 1 B
+X NC 82 300 -400 150 L 50 50 2 1 N N
+X IOR_56 87 -500 400 150 R 50 50 2 1 B
+X IOR_57 88 -500 300 150 R 50 50 2 1 B
+X VCCIO_1 89 0 1500 150 D 50 50 2 1 W
+X IOR_58 90 -500 200 150 R 50 50 2 1 B
+X IOR_59 91 -500 100 150 R 50 50 2 1 B
+X IOR_60_GBIN3 93 -500 0 150 R 50 50 2 1 B
+X IOR_61_GBIN2 94 -500 -100 150 R 50 50 2 1 B
+X IOR_62 95 -500 -200 150 R 50 50 2 1 B
+X IOR_63 96 -500 -300 150 R 50 50 2 1 B
+X IOR_64 97 -500 -400 150 R 50 50 2 1 B
+X IOR_65 98 -500 -500 150 R 50 50 2 1 B
+X IOR_66 99 -500 -600 150 R 50 50 2 1 B
+X NC 110 300 -400 150 L 50 50 3 1 N N
+X NC 124 300 -700 150 L 50 50 3 1 N N
+X IOB_24 37 -500 900 150 R 50 50 3 1 B
+X IOB_25 38 -500 800 150 R 50 50 3 1 B
+X IOB_26 39 -500 700 150 R 50 50 3 1 B
+X IOB_27 41 -500 600 150 R 50 50 3 1 B
+X IOB_28 42 -500 500 150 R 50 50 3 1 B
+X IOB_29 43 -500 400 150 R 50 50 3 1 B
+X IOB_30 44 -500 300 150 R 50 50 3 1 B
+X IOB_31 45 -500 200 150 R 50 50 3 1 B
+X VCCIO_2 46 0 1300 150 D 50 50 3 1 W
+X IOB_32 47 -500 100 150 R 50 50 3 1 B
+X IOB_33 48 -500 0 150 R 50 50 3 1 B
+X IOB_35_GBIN5 49 -500 -100 150 R 50 50 3 1 B
+X IOB_36_GBIN4 50 -500 -200 150 R 50 50 3 1 B
+X IOB_34 52 -500 -300 150 R 50 50 3 1 B
+X IOB_37 56 -500 -400 150 R 50 50 3 1 B
+X VCCIO_2 57 0 1300 150 D 50 50 3 1 P N
+X IOB_38 58 -500 -500 150 R 50 50 3 1 B
+X IOB_39 60 -500 -600 150 R 50 50 3 1 B
+X IOB_40 61 -500 -700 150 R 50 50 3 1 B
+X IOB_41 62 -500 -800 150 R 50 50 3 1 B
+X IOB_42_CBSEL0 63 -500 -900 150 R 50 50 3 1 B
+X IOB_43_CBSEL1 64 -500 -1000 150 R 50 50 3 1 B
+X NC 83 300 400 150 L 50 50 3 1 N N
+X NC 84 300 300 150 L 50 50 3 1 N N
+X NC 85 300 -500 150 L 50 50 3 1 N N
+X IOL_1A 1 -500 1100 150 R 50 50 4 1 B
+X IOL_4B 10 -500 400 150 R 50 50 4 1 B
+X IOL_5A 11 -500 300 150 R 50 50 4 1 B
+X IOL_5B 12 -500 200 150 R 50 50 4 1 B
+X NC 125 300 400 150 L 50 50 4 1 N N
+X NC 126 300 300 150 L 50 50 4 1 N N
+X NC 127 300 200 150 L 50 50 4 1 N N
+X NC 130 300 -300 150 L 50 50 4 1 N N
+X NC 131 300 -400 150 L 50 50 4 1 N N
+X IOL_6A 19 -500 100 150 R 50 50 4 1 B
+X IOL_1B 2 -500 1000 150 R 50 50 4 1 B
+X IOL_6B_GBIN7 20 -500 0 150 R 50 50 4 1 B
+X IOL_7A_GBIN6 21 -500 -100 150 R 50 50 4 1 B
+X IOL_7B 22 -500 -200 150 R 50 50 4 1 B
+X IOL_8A 23 -500 -300 150 R 50 50 4 1 B
+X IOL_8B 24 -500 -400 150 R 50 50 4 1 B
+X IOL_9A 25 -500 -500 150 R 50 50 4 1 B
+X IOL_9B 26 -500 -600 150 R 50 50 4 1 B
+X IOL_10A 28 -500 -700 150 R 50 50 4 1 B
+X IOL_10B 29 -500 -800 150 R 50 50 4 1 B
+X IOL_2A 3 -500 900 150 R 50 50 4 1 B
+X VCCIO_3 30 0 1500 150 D 50 50 4 1 P N
+X IOL_11A 31 -500 -900 150 R 50 50 4 1 B
+X IOL_11B 32 -500 -1000 150 R 50 50 4 1 B
+X IOL_12A 33 -500 -1100 150 R 50 50 4 1 B
+X IOL_12B 34 -500 -1200 150 R 50 50 4 1 B
+X IOL_2B 4 -500 800 150 R 50 50 4 1 B
+X VCCIO_3 6 0 1500 150 D 50 50 4 1 W
+X IOL_3A 7 -500 700 150 R 50 50 4 1 B
+X IOL_3B 8 -500 600 150 R 50 50 4 1 B
+X IOL_4A 9 -500 500 150 R 50 50 4 1 B
+X GND 103 0 -700 150 U 50 50 5 1 P N
+X VPP_2V5 108 100 700 150 D 50 50 5 1 W
+X VPP_FAST 109 -100 700 150 D 50 50 5 1 W
+X VCC 111 0 700 150 D 50 50 5 1 P N
+X GND 13 0 -700 150 U 50 50 5 1 P N
+X GND 132 0 -700 150 U 50 50 5 1 P N
+X GND 14 0 -700 150 U 50 50 5 1 P N
+X GND 140 0 -700 150 U 50 50 5 1 P N
+X VCC 27 0 700 150 D 50 50 5 1 W
+X GNDPLL 35 300 -700 150 U 50 50 5 1 W
+X VCCPLL 36 300 700 150 D 50 50 5 1 W
+X GND 5 0 -700 150 U 50 50 5 1 W
+X VCC 51 0 700 150 D 50 50 5 1 P N
+X GND 59 0 -700 150 U 50 50 5 1 P N
+X CDONE 65 600 0 150 L 50 50 5 1 C
+X ~CRESET_B 66 -600 -400 150 R 50 50 5 1 I
+X IOB_44_SDO 67 -600 100 150 R 50 50 5 1 B
+X IOB_45_SDI 68 -600 0 150 R 50 50 5 1 B
+X GND 69 0 -700 150 U 50 50 5 1 P N
+X IOB_46_SCK 70 -600 -100 150 R 50 50 5 1 B
+X IOB_47_SS 71 -600 -200 150 R 50 50 5 1 B
+X VCC_SPI 72 -300 700 150 D 50 50 5 1 W
+X GND 86 0 -700 150 U 50 50 5 1 P N
+X VCC 92 0 700 150 D 50 50 5 1 P N
+ENDDRAW
+ENDDEF
+#
 # R
 #
 DEF R R 0 0 N Y 1 F N
diff --git a/fab.pretty/TQFP-144_20x20mm_P0.5mm.kicad_mod b/fab.pretty/TQFP-144_20x20mm_P0.5mm.kicad_mod
new file mode 100644
index 0000000000000000000000000000000000000000..2ace9ca2fd33645962a46abba2c310baba4e71fd
--- /dev/null
+++ b/fab.pretty/TQFP-144_20x20mm_P0.5mm.kicad_mod
@@ -0,0 +1,201 @@
+(module TQFP-144_20x20mm_P0.5mm (layer F.Cu) (tedit 5D9F72B1)
+  (descr "TQFP, 144 Pin (http://www.microsemi.com/index.php?option=com_docman&task=doc_download&gid=131095), generated with kicad-footprint-generator ipc_gullwing_generator.py")
+  (tags "TQFP QFP")
+  (attr smd)
+  (fp_text reference REF** (at 0 -12.35) (layer F.SilkS)
+    (effects (font (size 1 1) (thickness 0.15)))
+  )
+  (fp_text value TQFP-144_20x20mm_P0.5mm (at 0 12.35) (layer F.Fab)
+    (effects (font (size 1 1) (thickness 0.15)))
+  )
+  (fp_line (start 11.65 9.15) (end 11.65 0) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 10.25 9.15) (end 11.65 9.15) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 10.25 10.25) (end 10.25 9.15) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 9.15 10.25) (end 10.25 10.25) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 9.15 11.65) (end 9.15 10.25) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 0 11.65) (end 9.15 11.65) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -11.65 9.15) (end -11.65 0) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -10.25 9.15) (end -11.65 9.15) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -10.25 10.25) (end -10.25 9.15) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -9.15 10.25) (end -10.25 10.25) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -9.15 11.65) (end -9.15 10.25) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 0 11.65) (end -9.15 11.65) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 11.65 -9.15) (end 11.65 0) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 10.25 -9.15) (end 11.65 -9.15) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 10.25 -10.25) (end 10.25 -9.15) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 9.15 -10.25) (end 10.25 -10.25) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 9.15 -11.65) (end 9.15 -10.25) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 0 -11.65) (end 9.15 -11.65) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -11.65 -9.15) (end -11.65 0) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -10.25 -9.15) (end -11.65 -9.15) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -10.25 -10.25) (end -10.25 -9.15) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -9.15 -10.25) (end -10.25 -10.25) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -9.15 -11.65) (end -9.15 -10.25) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 0 -11.65) (end -9.15 -11.65) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -10 -9) (end -9 -10) (layer F.Fab) (width 0.1))
+  (fp_line (start -10 10) (end -10 -9) (layer F.Fab) (width 0.1))
+  (fp_line (start 10 10) (end -10 10) (layer F.Fab) (width 0.1))
+  (fp_line (start 10 -10) (end 10 10) (layer F.Fab) (width 0.1))
+  (fp_line (start -9 -10) (end 10 -10) (layer F.Fab) (width 0.1))
+  (fp_line (start -10.11 -9.16) (end -11.4 -9.16) (layer F.SilkS) (width 0.12))
+  (fp_line (start -10.11 -10.11) (end -10.11 -9.16) (layer F.SilkS) (width 0.12))
+  (fp_line (start -9.16 -10.11) (end -10.11 -10.11) (layer F.SilkS) (width 0.12))
+  (fp_line (start 10.11 -10.11) (end 10.11 -9.16) (layer F.SilkS) (width 0.12))
+  (fp_line (start 9.16 -10.11) (end 10.11 -10.11) (layer F.SilkS) (width 0.12))
+  (fp_line (start -10.11 10.11) (end -10.11 9.16) (layer F.SilkS) (width 0.12))
+  (fp_line (start -9.16 10.11) (end -10.11 10.11) (layer F.SilkS) (width 0.12))
+  (fp_line (start 10.11 10.11) (end 10.11 9.16) (layer F.SilkS) (width 0.12))
+  (fp_line (start 9.16 10.11) (end 10.11 10.11) (layer F.SilkS) (width 0.12))
+  (fp_text user %R (at 0 0) (layer F.Fab)
+    (effects (font (size 1 1) (thickness 0.15)))
+  )
+  (pad 1 smd roundrect (at -10.6625 -8.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 2 smd roundrect (at -10.6625 -8.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 3 smd roundrect (at -10.6625 -7.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 4 smd roundrect (at -10.6625 -7.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 5 smd roundrect (at -10.6625 -6.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 6 smd roundrect (at -10.6625 -6.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 7 smd roundrect (at -10.6625 -5.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 8 smd roundrect (at -10.6625 -5.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 9 smd roundrect (at -10.6625 -4.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 10 smd roundrect (at -10.6625 -4.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 11 smd roundrect (at -10.6625 -3.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 12 smd roundrect (at -10.6625 -3.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 13 smd roundrect (at -10.6625 -2.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 14 smd roundrect (at -10.6625 -2.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 15 smd roundrect (at -10.6625 -1.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 16 smd roundrect (at -10.6625 -1.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 17 smd roundrect (at -10.6625 -0.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 18 smd roundrect (at -10.6625 -0.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 19 smd roundrect (at -10.6625 0.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 20 smd roundrect (at -10.6625 0.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 21 smd roundrect (at -10.6625 1.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 22 smd roundrect (at -10.6625 1.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 23 smd roundrect (at -10.6625 2.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 24 smd roundrect (at -10.6625 2.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 25 smd roundrect (at -10.6625 3.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 26 smd roundrect (at -10.6625 3.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 27 smd roundrect (at -10.6625 4.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 28 smd roundrect (at -10.6625 4.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 29 smd roundrect (at -10.6625 5.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 30 smd roundrect (at -10.6625 5.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 31 smd roundrect (at -10.6625 6.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 32 smd roundrect (at -10.6625 6.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 33 smd roundrect (at -10.6625 7.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 34 smd roundrect (at -10.6625 7.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 35 smd roundrect (at -10.6625 8.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 36 smd roundrect (at -10.6625 8.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 37 smd roundrect (at -8.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 38 smd roundrect (at -8.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 39 smd roundrect (at -7.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 40 smd roundrect (at -7.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 41 smd roundrect (at -6.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 42 smd roundrect (at -6.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 43 smd roundrect (at -5.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 44 smd roundrect (at -5.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 45 smd roundrect (at -4.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 46 smd roundrect (at -4.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 47 smd roundrect (at -3.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 48 smd roundrect (at -3.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 49 smd roundrect (at -2.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 50 smd roundrect (at -2.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 51 smd roundrect (at -1.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 52 smd roundrect (at -1.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 53 smd roundrect (at -0.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 54 smd roundrect (at -0.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 55 smd roundrect (at 0.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 56 smd roundrect (at 0.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 57 smd roundrect (at 1.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 58 smd roundrect (at 1.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 59 smd roundrect (at 2.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 60 smd roundrect (at 2.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 61 smd roundrect (at 3.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 62 smd roundrect (at 3.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 63 smd roundrect (at 4.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 64 smd roundrect (at 4.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 65 smd roundrect (at 5.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 66 smd roundrect (at 5.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 67 smd roundrect (at 6.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 68 smd roundrect (at 6.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 69 smd roundrect (at 7.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 70 smd roundrect (at 7.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 71 smd roundrect (at 8.25 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 72 smd roundrect (at 8.75 10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 73 smd roundrect (at 10.6625 8.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 74 smd roundrect (at 10.6625 8.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 75 smd roundrect (at 10.6625 7.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 76 smd roundrect (at 10.6625 7.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 77 smd roundrect (at 10.6625 6.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 78 smd roundrect (at 10.6625 6.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 79 smd roundrect (at 10.6625 5.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 80 smd roundrect (at 10.6625 5.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 81 smd roundrect (at 10.6625 4.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 82 smd roundrect (at 10.6625 4.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 83 smd roundrect (at 10.6625 3.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 84 smd roundrect (at 10.6625 3.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 85 smd roundrect (at 10.6625 2.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 86 smd roundrect (at 10.6625 2.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 87 smd roundrect (at 10.6625 1.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 88 smd roundrect (at 10.6625 1.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 89 smd roundrect (at 10.6625 0.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 90 smd roundrect (at 10.6625 0.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 91 smd roundrect (at 10.6625 -0.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 92 smd roundrect (at 10.6625 -0.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 93 smd roundrect (at 10.6625 -1.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 94 smd roundrect (at 10.6625 -1.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 95 smd roundrect (at 10.6625 -2.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 96 smd roundrect (at 10.6625 -2.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 97 smd roundrect (at 10.6625 -3.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 98 smd roundrect (at 10.6625 -3.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 99 smd roundrect (at 10.6625 -4.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 100 smd roundrect (at 10.6625 -4.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 101 smd roundrect (at 10.6625 -5.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 102 smd roundrect (at 10.6625 -5.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 103 smd roundrect (at 10.6625 -6.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 104 smd roundrect (at 10.6625 -6.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 105 smd roundrect (at 10.6625 -7.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 106 smd roundrect (at 10.6625 -7.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 107 smd roundrect (at 10.6625 -8.25) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 108 smd roundrect (at 10.6625 -8.75) (size 1.475 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 109 smd roundrect (at 8.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 110 smd roundrect (at 8.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 111 smd roundrect (at 7.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 112 smd roundrect (at 7.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 113 smd roundrect (at 6.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 114 smd roundrect (at 6.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 115 smd roundrect (at 5.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 116 smd roundrect (at 5.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 117 smd roundrect (at 4.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 118 smd roundrect (at 4.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 119 smd roundrect (at 3.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 120 smd roundrect (at 3.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 121 smd roundrect (at 2.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 122 smd roundrect (at 2.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 123 smd roundrect (at 1.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 124 smd roundrect (at 1.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 125 smd roundrect (at 0.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 126 smd roundrect (at 0.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 127 smd roundrect (at -0.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 128 smd roundrect (at -0.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 129 smd roundrect (at -1.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 130 smd roundrect (at -1.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 131 smd roundrect (at -2.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 132 smd roundrect (at -2.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 133 smd roundrect (at -3.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 134 smd roundrect (at -3.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 135 smd roundrect (at -4.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 136 smd roundrect (at -4.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 137 smd roundrect (at -5.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 138 smd roundrect (at -5.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 139 smd roundrect (at -6.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 140 smd roundrect (at -6.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 141 smd roundrect (at -7.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 142 smd roundrect (at -7.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 143 smd roundrect (at -8.25 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (pad 144 smd roundrect (at -8.75 -10.6625) (size 0.3 1.475) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
+  (model ${KISYS3DMOD}/Package_QFP.3dshapes/TQFP-144_20x20mm_P0.5mm.wrl
+    (at (xyz 0 0 0))
+    (scale (xyz 1 1 1))
+    (rotate (xyz 0 0 0))
+  )
+)