Start on the pistol grip controller board

Change-Id: Ib57508e2ac1a6b23a092df9ce501118288ac0904
diff --git a/motors/packages/B03B-PASK-1.fp b/motors/packages/B03B-PASK-1.fp
new file mode 100644
index 0000000..57c765b
--- /dev/null
+++ b/motors/packages/B03B-PASK-1.fp
@@ -0,0 +1,17 @@
+# This is the footprint at http://www.jst-mfg.com/product/pdf/eng/ePA-F.pdf.
+Element[0x0 "" "" "" 0 0 0 0 0 100 0x0]
+(
+	# The main pins.
+	Pin[-7874 0 4795 2000 6395 2795 "3" "3" ""]
+	Pin[0 0 4795 2000 6395 2795 "2" "2" ""]
+	Pin[7874 0 4795 2000 6395 2795 "1" "1" ""]
+
+	# The alignment post.
+	Pin[13780 -6693 5970 1600 7570 4370 "" "" ""]
+
+    ElementLine[9748 -9578 -16748 -9578 800]
+    ElementLine[16748 -2578 16748 13957 800]
+    ElementLine[-16748 -9578 -16748 13957 800]
+    ElementLine[16748 13957 -16748 13957 800]
+    ElementLine[4622 11957 -4622 11957 800]
+)
diff --git a/motors/packages/B05B-PASK-1.fp b/motors/packages/B05B-PASK-1.fp
new file mode 100644
index 0000000..ca8a86d
--- /dev/null
+++ b/motors/packages/B05B-PASK-1.fp
@@ -0,0 +1,19 @@
+# This is the footprint at http://www.jst-mfg.com/product/pdf/eng/ePA-F.pdf.
+Element[0x0 "" "" "" 0 0 0 0 0 100 0x0]
+(
+	# The main pins.
+	Pin[-15748 0 4795 2000 6395 2795 "5" "5" ""]
+	Pin[-7874 0 4795 2000 6395 2795 "4" "4" ""]
+	Pin[0 0 4795 2000 6395 2795 "3" "3" ""]
+	Pin[7874 0 4795 2000 6395 2795 "2" "2" ""]
+	Pin[15748 0 4795 2000 6395 2795 "1" "1" ""]
+
+	# The alignment post.
+	Pin[21654 -6693 5970 1600 7570 4370 "" "" ""]
+
+    ElementLine[17622 -9578 -24622 -9578 800]
+    ElementLine[24622 -2578 24622 13957 800]
+    ElementLine[-24622 -9578 -24622 13957 800]
+    ElementLine[24622 13957 -24622 13957 800]
+    ElementLine[4622 11957 -4622 11957 800]
+)
diff --git a/motors/packages/CAP_F.fp b/motors/packages/CAP_F.fp
new file mode 100644
index 0000000..74addf8
--- /dev/null
+++ b/motors/packages/CAP_F.fp
@@ -0,0 +1,15 @@
+# This is the footprint at
+# https://web.archive.org/web/20131102032848/http://industrial.panasonic.com/www-data/pdf/ABA0000/ABA0000PE251.pdf
+# for a 8x10.2 capacitor (size F).
+Element[0x0 "" "" "" 0 0 0 0 0 100 0x0]
+(
+	Pad[0 2.55mm 0 4.55mm 2mm 2000 9874 "1" "1" "square"]
+	Pad[0 -2.55mm 0 -4.55mm 2mm 2000 9874 "2" "2" "square"]
+
+    ElementLine[-10000 -24000 10000 -24000 1200]
+
+	ElementLine[-4.25mm 4.25mm -4.25mm -4.25mm 800]
+	ElementLine[4.25mm 4.25mm 4.25mm -4.25mm 800]
+	ElementLine[4.25mm 4.25mm 2.75mm 5.75mm 800]
+	ElementLine[-4.25mm 4.25mm -2.75mm 5.75mm 800]
+)
diff --git a/motors/packages/MLP55-31L.fp b/motors/packages/MLP55-31L.fp
new file mode 100644
index 0000000..fcf31af
--- /dev/null
+++ b/motors/packages/MLP55-31L.fp
@@ -0,0 +1,58 @@
+# This is the footprint from http://www.vishay.com/docs/63589/sic620r_sic620ar.pdf.
+Element[0x0 "" "" "" 0 0 0 0 0 100 0x0]
+(
+	# The left column of pads.
+	Pad[-2.625mm -1.75mm -2.225mm -1.75mm 0.35mm 1000 2278 "1" "1" "square"]
+	Pad[-2.625mm -1.25mm -2.225mm -1.25mm 0.35mm 1000 2278 "2" "2" "square"]
+	Pad[-2.625mm -0.75mm -2.225mm -0.75mm 0.35mm 1000 2278 "3" "3" "square"]
+	Pad[-2.625mm -0.25mm -2.225mm -0.25mm 0.35mm 1000 2278 "4" "4" "square"]
+	Pad[-2.625mm 0.25mm -2.225mm 0.25mm 0.35mm 1000 2278 "5" "5" "square"]
+	Pad[-2.625mm 0.75mm -2.225mm 0.75mm 0.35mm 1000 2278 "6" "6" "square"]
+	Pad[-2.625mm 1.25mm -2.225mm 1.25mm 0.35mm 1000 2278 "7" "7" "square"]
+	Pad[-2.625mm 1.75mm -2.225mm 1.75mm 0.35mm 1000 2278 "8" "8" "square"]
+
+	# The top row of pads.
+	Pad[-1.75mm -2.625mm -1.75mm -2.225mm 0.35mm 1000 2278 "31" "31" "square"]
+	Pad[-1.25mm -2.625mm -1.25mm -2.225mm 0.35mm 1000 2278 "30" "30" "square"]
+	Pad[-0.75mm -2.625mm -0.75mm -2.225mm 0.35mm 1000 2278 "29" "29" "square"]
+	Pad[-0.25mm -2.625mm -0.25mm -2.225mm 0.35mm 1000 2278 "28" "28" "square"]
+	Pad[0.25mm -2.625mm 0.25mm -2.225mm 0.35mm 1000 2278 "27" "27" "square"]
+	Pad[0.75mm -2.625mm 0.75mm -2.225mm 0.35mm 1000 2278 "26" "26" "square"]
+	Pad[1.25mm -2.625mm 1.25mm -2.225mm 0.35mm 1000 2278 "25" "25" "square"]
+	Pad[1.75mm -2.625mm 1.75mm -2.225mm 0.35mm 1000 2278 "24" "24" "square"]
+
+	# The right column of pads.
+	Pad[2.625mm -1.75mm 2.225mm -1.75mm 0.35mm 1000 2278 "23" "23" "square"]
+	Pad[2.625mm -1.25mm 2.225mm -1.25mm 0.35mm 1000 2278 "22" "22" "square"]
+	Pad[2.625mm -0.75mm 2.225mm -0.75mm 0.35mm 1000 2278 "21" "21" "square"]
+	Pad[2.625mm -0.25mm 2.225mm -0.25mm 0.35mm 1000 2278 "20" "20" "square"]
+	Pad[2.625mm 0.25mm 2.225mm 0.25mm 0.35mm 1000 2278 "19" "19" "square"]
+	Pad[2.625mm 0.75mm 2.225mm 0.75mm 0.35mm 1000 2278 "18" "18" "square"]
+	Pad[2.625mm 1.25mm 2.225mm 1.25mm 0.35mm 1000 2278 "17" "17" "square"]
+	Pad[2.625mm 1.75mm 2.225mm 1.75mm 0.35mm 1000 2278 "16" "16" "square"]
+
+	# The bottom row of pads.
+	Pad[-1.75mm 2.625mm -1.75mm 2.325mm 0.35mm 1000 2278 "9" "9" "square"]
+	Pad[-1.25mm 2.625mm -1.25mm 2.325mm 0.35mm 1000 2278 "10" "10" "square"]
+	Pad[-0.75mm 2.625mm -0.75mm 2.325mm 0.35mm 1000 2278 "11" "11" "square"]
+	Pad[0.25mm 2.625mm 0.25mm 2.325mm 0.35mm 1000 2278 "12" "12" "square"]
+	Pad[0.75mm 2.625mm 0.75mm 2.325mm 0.35mm 1000 2278 "13" "13" "square"]
+	Pad[1.25mm 2.625mm 1.25mm 2.325mm 0.35mm 1000 2278 "14" "14" "square"]
+	Pad[1.75mm 2.625mm 1.75mm 2.325mm 0.35mm 1000 2278 "15" "15" "square"]
+
+	# The pads in the middle.
+	Pad[-1.19mm 0.635mm -1.19mm 1.585mm 1.13mm 1000 5349 "34" "34" "square"]
+	Pad[-1.19mm -0.895mm -1.19mm -1.185mm 1.13mm 1000 5349 "32" "32" "square"]
+	Pad[0.735mm 1.14mm 0.735mm 0.11mm 2.02mm 1000 8853 "35" "35" "square"]
+	Pad[1.32mm -1.325mm 1.02mm -1.325mm 0.85mm 1000 4265 "35" "35" "square"]
+	Pad[0.1mm -1.4mm 0.1mm -1.55mm 0.4mm 1000 2475 "33" "33" "square"]
+
+	# The pads connecting various other pads.
+	Pad[0.74mm -2.215mm 1.76mm -2.215mm 0.33mm 1000 2199 "24" "24" "square"]
+	Pad[2.215mm 1.76mm 2.215mm -1.76mm 0.33mm 1000 2199 "23" "23" "square"]
+
+	ElementLine[3.05mm 3.05mm 3.05mm -3.05mm 800]
+	ElementLine[-3.05mm 3.05mm -3.05mm -3.05mm 800]
+	ElementLine[-3.05mm 3.05mm 3.05mm 3.05mm 800]
+	ElementLine[-3.05mm -3.05mm 3.05mm -3.05mm 800]
+)
diff --git a/motors/packages/MSSOP20_CQ-3301.fp b/motors/packages/MSSOP20_CQ-3301.fp
new file mode 100644
index 0000000..86c3da8
--- /dev/null
+++ b/motors/packages/MSSOP20_CQ-3301.fp
@@ -0,0 +1,25 @@
+# This are the pad dimensions from
+# https://www.akm.com/akm/en/file/datasheet/CQ-3301.pdf.
+Element["" "" "" "" 0 0 0 0 0 100 ""]
+(
+    # The normal-sized pads.
+    Pad[-6398 17106 -6398 12894 1378 2000 2178 "2" "2" "square"]
+    Pad[-3839 17106 -3839 12894 1378 2000 2178 "3" "3" "square"]
+    Pad[-1280 17106 -1280 12894 1378 2000 2178 "4" "4" "square"]
+    Pad[1280 17106 1280 12894 1378 2000 2178 "5" "5" "square"]
+    Pad[3839 17106 3839 12894 1378 2000 2178 "6" "6" "square"]
+    Pad[6398 17106 6398 12894 1378 2000 2178 "7" "7" "square"]
+
+    # The massive pads for carrying the current.
+    Pad[3386 -15000 11969 -15000 5591 2000 6391 "9" "9" "square"]
+    Pad[-3386 -15000 -11969 -15000 5591 2000 6391 "10" "10" "square"]
+
+    # The big ground pads.
+    Pad[-11063 15000 -11967 15000 5591 2000 6391 "1" "1" "square"]
+    Pad[11063 15000 11967 15000 5591 2000 6391 "8" "8" "square"]
+
+    ElementLine[-15944 19000 15944 19000 800]
+    ElementLine[-15944 -19000 15944 -19000 800]
+    ElementLine[-15944 19000 -15944 -19000 800]
+    ElementLine[15944 19000 15944 -19000 800]
+)
diff --git a/motors/packages/POGOPIN.fp b/motors/packages/POGOPIN.fp
new file mode 100644
index 0000000..e89198c
--- /dev/null
+++ b/motors/packages/POGOPIN.fp
@@ -0,0 +1,6 @@
+Element[0x00000000 "Pogopin touch point" "" "POGOPIN" 0 0 -2000 -6000 0 100 0x00000000]
+(
+  Pad[0 0 0 0
+      5000 1000 6000
+	  "1" "1" "nopaste"]
+)