diff --git a/fab.dcm b/fab.dcm
index 99bd61b61ced4bf9ee8c67bdbc75ad15028fc09f..22a569ca57bc3c1e1e9cb8e9b30d0d1ed5640223 100644
--- a/fab.dcm
+++ b/fab.dcm
@@ -12,6 +12,12 @@ K audio amplifier headphone mono 3w
 F http://www.ti.com/lit/ds/symlink/lm4871.pdf
 $ENDCMP
 #
+$CMP BUTTON_B3SN
+D Push button switch, Omron B3SN, Sealed Tactile Switch (SMT), SPST-NO Top Actuated Surface Mount
+K switch normally-open pushbutton push-button button tactile spst single pole single throw
+F https://omronfs.omron.com/en_US/ecb/products/pdf/en-b3sn.pdf
+$ENDCMP
+#
 $CMP C
 D Unpolarized capacitor
 K cap capacitor
diff --git a/fab.lib b/fab.lib
index ee73df2c4a7c5d02a85fa6026c08bf6bea171411..e5cdd75207df8e4c943c31726ada5ec1a9583ffd 100644
--- a/fab.lib
+++ b/fab.lib
@@ -688,6 +688,23 @@ X GND 6 200 -100 100 L 40 40 1 1 P I
 ENDDRAW
 ENDDEF
 #
+# BUTTON_B3SN
+#
+DEF BUTTON_B3SN SW 0 40 N N 1 F N
+F0 "SW" 50 100 50 H V L CNN
+F1 "BUTTON_B3SN" 0 -60 50 H V C CNN
+F2 "fab:Button_Omron_B3SN_6x6mm" 0 200 50 H I C CNN
+F3 "" 0 200 50 H I C CNN
+DRAW
+C -80 0 20 0 1 0 N
+C 80 0 20 0 1 0 N
+P 2 0 1 0 0 50 0 120 N
+P 2 0 1 0 100 50 -100 50 N
+X 1 1 -200 0 100 R 50 50 0 1 P
+X 2 2 200 0 100 L 50 50 0 1 P
+ENDDRAW
+ENDDEF
+#
 # C
 #
 DEF C C 0 10 N Y 1 F N
diff --git a/fab.pretty/Button_Omron_B3SN_6x6mm.kicad_mod b/fab.pretty/Button_Omron_B3SN_6x6mm.kicad_mod
new file mode 100644
index 0000000000000000000000000000000000000000..684474f2bd1759dbd59f0a81b75f32f9f256a63a
--- /dev/null
+++ b/fab.pretty/Button_Omron_B3SN_6x6mm.kicad_mod
@@ -0,0 +1,36 @@
+(module Button_Omron_B3SN_6x6mm (layer F.Cu) (tedit 5EC6588A)
+  (descr "Surface Mount Tactile Switch for High-Density Packaging")
+  (tags "Tactile Switch")
+  (attr smd)
+  (fp_text reference REF** (at 0 -4.5) (layer F.SilkS)
+    (effects (font (size 1 1) (thickness 0.15)))
+  )
+  (fp_text value Button_Omron_B3SN_6x6mm (at 0 4.5) (layer F.Fab)
+    (effects (font (size 1 1) (thickness 0.15)))
+  )
+  (fp_line (start -3 3) (end -3 -3) (layer F.Fab) (width 0.1))
+  (fp_line (start 3 3) (end -3 3) (layer F.Fab) (width 0.1))
+  (fp_line (start 3 -3) (end 3 3) (layer F.Fab) (width 0.1))
+  (fp_line (start -3 -3) (end 3 -3) (layer F.Fab) (width 0.1))
+  (fp_circle (center 0 0) (end 1.65 0) (layer F.Fab) (width 0.1))
+  (fp_line (start 3.15 -1) (end 3.15 1) (layer F.SilkS) (width 0.12))
+  (fp_line (start 3.15 3.15) (end -3.15 3.15) (layer F.SilkS) (width 0.12))
+  (fp_line (start -3.15 1) (end -3.15 -1) (layer F.SilkS) (width 0.12))
+  (fp_line (start -3.15 -3.15) (end 3.15 -3.15) (layer F.SilkS) (width 0.12))
+  (fp_line (start -5 -3.7) (end -5 3.7) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 5 -3.7) (end -5 -3.7) (layer F.CrtYd) (width 0.05))
+  (fp_line (start 5 3.7) (end 5 -3.7) (layer F.CrtYd) (width 0.05))
+  (fp_line (start -5 3.7) (end 5 3.7) (layer F.CrtYd) (width 0.05))
+  (fp_text user %R (at 0 -4.5) (layer F.Fab)
+    (effects (font (size 1 1) (thickness 0.15)))
+  )
+  (pad 2 smd rect (at 3.5 2) (size 3 1.5) (layers F.Cu F.Paste F.Mask))
+  (pad 2 smd rect (at -3.5 2) (size 3 1.5) (layers F.Cu F.Paste F.Mask))
+  (pad 1 smd rect (at 3.5 -2) (size 3 1.5) (layers F.Cu F.Paste F.Mask))
+  (pad 1 smd rect (at -3.5 -2) (size 3 1.5) (layers F.Cu F.Paste F.Mask))
+  (model ${KISYS3DMOD}/Buttons_Switches_SMD.3dshapes/SW_SPST_B3S-1000.wrl
+    (at (xyz 0 0 0))
+    (scale (xyz 1 1 1))
+    (rotate (xyz 0 0 0))
+  )
+)