Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
dc8af54
Add cyaopad
cheyao Sep 15, 2024
40048d8
Cyaopad: Add silkscreens
cheyao Sep 19, 2024
c1547db
Cyaopad: Add LCD
cheyao Sep 20, 2024
b5588d8
Cyaopad: Add 3D Models
cheyao Sep 22, 2024
dc90da8
Cyaopad: Increase cover keypad hole size
cheyao Sep 22, 2024
cf6f77e
Cyaopad: Better gerber outputs, interactive bom, file names & more
cheyao Sep 22, 2024
8080aa9
Cyaopad: Fix wrong sided mounting holes
cheyao Sep 22, 2024
1875168
Cyaopad: Fix CAD usb hole alignment
cheyao Sep 22, 2024
f2f5386
Cyaopad: Add pullup resistors for I2C
cheyao Sep 22, 2024
67bf293
Cyaopad: Moved diodes inbetween keys to facilitate assembly
cheyao Sep 23, 2024
bb21b80
Cyaopad: Add plate and use insert for case
cheyao Sep 23, 2024
b169798
Cyaopad: hange side of tracks connecting to keys
cheyao Sep 24, 2024
19d1a8a
Cyao: Misc improvements
cheyao Sep 25, 2024
f326f36
Cyaopad: Use thru-hole xiao
cheyao Sep 26, 2024
73db468
Cyaopad: Redesign of PCB & case
cheyao Oct 6, 2024
a9008d3
Cyaopad: Add BOM in readme
cheyao Oct 7, 2024
8aefd34
Cyaopad: Add decoupling capacitors & verified footprints
cheyao Oct 8, 2024
1bd0ab8
Cyaopad: Revamp switch margins
cheyao Oct 8, 2024
3cb4645
Cyaopad: Adapt case to new switch margins
cheyao Oct 8, 2024
90203b8
Cyaopad: Added backlights
cheyao Oct 9, 2024
1313ee3
Cyaopad: Add silkscreens and misc improvements
cheyao Oct 9, 2024
54d52b1
Cyaopad: Firmware path + clean up tracks
cheyao Oct 10, 2024
873a1dd
Cyaopad: Change capacitor values and positions
cheyao Oct 16, 2024
5a50e69
Cyaopad: Follow best practices and use stiching vias
cheyao Oct 17, 2024
67c21ef
Cyaopad: Add slope to case
cheyao Oct 17, 2024
acc0cb7
Cyaopad: Final revision
cheyao Oct 20, 2024
29a5af3
Change submission to be in conform with the rules
cheyao Oct 21, 2024
48642e5
Fix directory structure
cheyao Oct 21, 2024
f0462e7
Remove PCB from STL
cheyao Oct 21, 2024
bf20efc
Separate case and top
cheyao Oct 21, 2024
a6951d6
Merge branch 'main' into main
qcoral Oct 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
502 changes: 502 additions & 0 deletions hackpads/cyaopad/.gitignore

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions hackpads/cyaopad/BOM.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# BOM
- 1 SEEEDUINO XIAO RP2040
- 16x [Kailh Choc V2 switches](https://www.kailh.net/products/kailh-choc-v2-low-profile-switch-set)
- 16x 1N4148 diodes
- 1x SSD1306 128x64O LED (5V VCC, 3.3V logic, I2C)
- 4x [SK6812-MINI-E LED](https://www.adafruit.com/product/4960)
- 2x 4.7k resistor
- 4x 0.1 uF capacitor (code 104, not obligatory but best have)
- 1x 1 uF capacitor (105 not obligatory)
- 4x same screws as orpheuspad and corresponding nuts
- 1kg of 99.99% gold please UwU

Interactive bom at `PCB/production/ibom.html`
Binary file added hackpads/cyaopad/CAD/case.20241021-200543.FCBak
Binary file not shown.
Binary file added hackpads/cyaopad/CAD/case.FCStd
Binary file not shown.
Binary file added hackpads/cyaopad/CAD/case/case.stl
Binary file not shown.
Binary file added hackpads/cyaopad/CAD/case/top.stl
Binary file not shown.
104,111 changes: 104,111 additions & 0 deletions hackpads/cyaopad/CAD/macropad.step

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions hackpads/cyaopad/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Copyright (C) 2024-2024 Cheyao
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

1 change: 1 addition & 0 deletions hackpads/cyaopad/PCB/fabrication-toolkit-options.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"EXTRA_LAYERS": "", "EXTEND_EDGE_CUT": false, "ALTERNATIVE_EDGE_CUT": false, "AUTO TRANSLATE": true, "AUTO FILL": true, "EXCLUDE DNP": false}
7 changes: 7 additions & 0 deletions hackpads/cyaopad/PCB/fp-lib-table
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
(fp_lib_table
(version 7)
(lib (name "seed")(type "KiCad")(uri "${KIPRJMOD}/third_party/OPL_Kicad_Library/Seeed Studio XIAO Series Library")(options "")(descr ""))
(lib (name "key")(type "KiCad")(uri "${KIPRJMOD}/third_party/kiswitch/library/footprints/Switch_Keyboard_Kailh.pretty")(options "")(descr ""))
(lib (name "screen")(type "KiCad")(uri "${KIPRJMOD}/third_party/KiCad-SSD1306-128x64-master/library/SSD1306.pretty")(options "")(descr ""))
(lib (name "LED")(type "KiCad")(uri "${KIPRJMOD}/third_party/neopixel.petty")(options "")(descr ""))
)
31 changes: 31 additions & 0 deletions hackpads/cyaopad/PCB/ibom.config.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
[html_defaults]
dark_mode=0
show_pads=1
show_fabrication=0
show_silkscreen=1
redraw_on_drag=1
highlight_pin1=none
board_rotation=0
offset_back_rotation=0
checkboxes=Sourced,Placed
bom_view=left-right
layer_view=FB
compression=1
open_browser=1
[general]
bom_dest_dir=production
bom_name_format=ibom
component_sort_order=C,R,L,D,U,Y,X,F,SW,A,~,HS,CNN,J,P,NT,MH
component_blacklist=
blacklist_virtual=1
blacklist_empty_val=0
include_tracks=0
include_nets=0
[fields]
show_fields=Value,Footprint
group_fields=Value,Footprint
normalize_field_case=0
board_variant_field=
board_variant_whitelist=
board_variant_blacklist=
dnp_field=
102 changes: 102 additions & 0 deletions hackpads/cyaopad/PCB/macropad.kicad_dru
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
(version 1)
#Kicad 7

# 2-layer, 1oz copper
(rule "Minimum Trace Width (outer layer)"
(constraint track_width (min 5mil))
(layer outer)
(condition "A.Type == 'track'"))

(rule "Minimum Trace Spacing (outer layer)"
(constraint clearance (min 5mil))
(layer outer)
(condition "A.Type == 'track' && B.Type == A.Type"))

# 4-layer
(rule "Minimum Trace Width and Spacing (inner layer)"
(constraint track_width (min 3.5mil))
(layer inner)
(condition "A.Type == 'track'"))

(rule "Minimum Trace Spacing (inner layer)"
(constraint clearance (min 3.5mil))
(layer inner)
(condition "A.Type == 'track' && B.Type == A.Type"))

# silkscreen (Kicad 7 only)
(rule "Minimum Text"
(constraint text_thickness (min 0.15mm))
(constraint text_height (min 1mm))
(layer "?.Silkscreen"))

(rule "Pad to Silkscreen"
(constraint silk_clearance (min 0.15mm))
(layer outer)
(condition "A.Type == 'pad' && (B.Type == 'text' || B.Type == 'graphic')"))

# edge clearance
(rule "Trace to Outline"
(constraint edge_clearance (min 0.3mm))
(condition "A.Type == 'track'"))

# This would override board outline and milled areas
#(rule "Trace to V-Cut"
# (constraint clearance (min 0.4mm))
# (condition "A.Type == 'track' && B.Layer == 'Edge.Cuts'"))

# drill/hole size
(rule "drill hole size (mechanical)"
(constraint hole_size (min 0.2mm) (max 6.3mm)))

(rule "Minimum Via Hole Size"
(constraint hole_size (min 0.2mm))
(condition "A.Type == 'via'"))

(rule "Minimum Via Diameter"
(constraint via_diameter (min 0.45mm))
(condition "A.Type == 'via'"))

(rule "PTH Hole Size"
(constraint hole_size (min 0.2mm) (max 6.35mm))
(condition "A.isPlated()"))

(rule "Minimum Non-plated Hole Size"
(constraint hole_size (min 0.5mm))
(condition "A.Type == 'pad' && !A.isPlated()"))

(rule "Minimum Castellated Hole Size"
(constraint hole_size (min 0.6mm))
(condition "A.Type == 'pad' && A.Fabrication_Property == 'Castellated pad'"))

# clearance
(rule "hole to hole clearance (different nets)"
(constraint hole_to_hole (min 0.5mm))
(condition "A.Net != B.Net"))

(rule "via to track clearance"
(constraint hole_clearance (min 0.254mm))
(condition "A.Type == 'via' && B.Type == 'track'"))

(rule "via to via clearance (same nets)"
(constraint hole_to_hole (min 0.254mm))
(condition "A.Type == 'via' && B.Type == A.Type && A.Net == B.Net"))

(rule "pad to pad clearance (with hole, different nets)"
(constraint hole_to_hole (min 0.5mm))
(condition "A.Type == 'pad' && B.Type == A.Type && A.Net != B.Net"))

(rule "pad to pad clearance (without hole, different nets)"
(constraint clearance (min 0.127mm))
(condition "A.Type == 'pad' && B.Type == A.Type && A.Net != B.Net"))

(rule "NPTH to Track clearance)"
(constraint hole_clearance (min 0.254mm))
(condition "A.Pad_Type == 'NPTH, mechanical' && B.Type == 'track'"))

(rule "PTH to Track clearance)"
(constraint hole_clearance (min 0.33mm))
(condition "A.isPlated() && B.Type == 'track'"))

(rule "Pad to Track clearance)"
(constraint clearance (min 0.2mm))
(condition "A.isPlated() && B.Type == 'track'"))
Loading