From b3c036dfb332cb1f9d25ccb4561d665420e5d536 Mon Sep 17 00:00:00 2001 From: veroxzik <43590004+veroxzik@users.noreply.github.com> Date: Sat, 13 Feb 2021 17:52:30 -0500 Subject: [PATCH] jubeat-button-board v1.0 Includes kicad project and gerbers. --- .gitattributes | 2 + .gitignore | 5 + README.md | 4 + jubeat-button-pcb/README.md | 23 + jubeat-button-pcb/fp-lib-table | 3 + .../gerbers/jubeat-button-pcb_v1.0.zip | Bin 0 -> 17751 bytes jubeat-button-pcb/jubeat-button-pcb-cache.lib | 69 ++ jubeat-button-pcb/jubeat-button-pcb.kicad_pcb | 773 ++++++++++++++++++ .../membrane-pad.kicad_mod | 27 + jubeat-button-pcb/jubeat-button-pcb.pro | 244 ++++++ jubeat-button-pcb/jubeat-button-pcb.sch | 259 ++++++ 11 files changed, 1409 insertions(+) create mode 100644 .gitattributes create mode 100644 jubeat-button-pcb/README.md create mode 100644 jubeat-button-pcb/fp-lib-table create mode 100644 jubeat-button-pcb/gerbers/jubeat-button-pcb_v1.0.zip create mode 100644 jubeat-button-pcb/jubeat-button-pcb-cache.lib create mode 100644 jubeat-button-pcb/jubeat-button-pcb.kicad_pcb create mode 100644 jubeat-button-pcb/jubeat-button-pcb.pretty/membrane-pad.kicad_mod create mode 100644 jubeat-button-pcb/jubeat-button-pcb.pro create mode 100644 jubeat-button-pcb/jubeat-button-pcb.sch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore index 853ee63..3bfea78 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,8 @@ fp-info-cache # Exported BOM files *.xml *.csv + +# Gerbers (all gerbers are released in a .zip) +*.gbr +*.gbrjob +*.drl \ No newline at end of file diff --git a/README.md b/README.md index 1a0bb92..2fb8a14 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # jubeat-boards A collection of boards related to jubeat things. + +## jubeat-button-pcb + +This is a clone of the button PCB located in the panel (qty 8 per panel). See its readme for more information. \ No newline at end of file diff --git a/jubeat-button-pcb/README.md b/jubeat-button-pcb/README.md new file mode 100644 index 0000000..f9d1940 --- /dev/null +++ b/jubeat-button-pcb/README.md @@ -0,0 +1,23 @@ +# jubeat-button-pcb + +There is only one component on the board: + +|Mfg|Part No.|Qty| +|:---:|:---|:---:| +|JST|S9B-PH-K|1| + +Official: +* https://www.digikey.com/en/products/detail/jst-sales-america-inc/S9B-PH-K-S-LF-SN/926633 +* https://lcsc.com/product-detail/Wire-To-Board-Wire-To-Wire-Connector_JST-Sales-America-S9B-PH-K-S-LF-SN_C157912.html + +Clone: +* https://lcsc.com/product-detail/Wire-To-Board-Wire-To-Wire-Connector_BOOMELE-Boom-Precision-Elec-PH-9AWD_C82518.html +* https://lcsc.com/product-detail/Wire-To-Board-Wire-To-Wire-Connector_BOOMELE-Boom-Precision-Elec-PH-9AW_C10404.html + +## How to order this board + +Upload `jubeat-button-pcb_v1.0.zip` from the `gerbers` folder to your favorite PCB website. JLCPCB is a common one. + +For best performance, choose ENIG for your surface finish. This will increase cost by quite a bit, but will significantly reduce the level of corrosion you can expect over the lifetime of the boards. It's up to you. + +All other settings can remain the defaults. Thickness should be 1.6 mm. \ No newline at end of file diff --git a/jubeat-button-pcb/fp-lib-table b/jubeat-button-pcb/fp-lib-table new file mode 100644 index 0000000..3aef4a3 --- /dev/null +++ b/jubeat-button-pcb/fp-lib-table @@ -0,0 +1,3 @@ +(fp_lib_table + (lib (name jubeat-button-pcb)(type KiCad)(uri ${KIPRJMOD}/jubeat-button-pcb.pretty)(options "")(descr "")) +) diff --git a/jubeat-button-pcb/gerbers/jubeat-button-pcb_v1.0.zip b/jubeat-button-pcb/gerbers/jubeat-button-pcb_v1.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..54743252b03aec6db24ed24d6af32987ca866b28 GIT binary patch literal 17751 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