Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Binary file added hackpads/Duccs Fidget Toy/CAD/Case.FCStd
Binary file not shown.
Binary file added hackpads/Duccs Fidget Toy/CAD/Case.stl
Binary file not shown.
Binary file not shown.
Binary file added hackpads/Duccs Fidget Toy/CAD/Plate.FCStd
Binary file not shown.
Binary file added hackpads/Duccs Fidget Toy/CAD/Plate.stl
Binary file not shown.
Binary file modified website/public/docs/v2/1sketch2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/3d-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/3dmodels.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/3dwithcomponents.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/addtext.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/align.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/body.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/circletool.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/compfrontback.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/copyfootprint.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/correctneopixel3d.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/deletelayer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/dimension.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/doneplatesketch.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/draft.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/drafttosketch.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed website/public/docs/v2/edgecuts.png
Binary file not shown.
Binary file added website/public/docs/v2/edgecutsselect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/edges.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/editfootprint.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/editgrid.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/expandersym.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/expanderwired.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/public/docs/v2/exportstep.png
Binary file added website/public/docs/v2/externalgeometry.png
Binary file added website/public/docs/v2/finalpcb.png
Binary file added website/public/docs/v2/footprinteditor.png
Binary file added website/public/docs/v2/freecadbase.png
Binary file added website/public/docs/v2/freecadbaseextrude.png
Binary file added website/public/docs/v2/freecadbasewhole.png
Binary file added website/public/docs/v2/freecadbothole.png
Binary file added website/public/docs/v2/freecadcase.png
Binary file added website/public/docs/v2/freecadfinal.png
Binary file added website/public/docs/v2/freecadholesketch.png
Binary file added website/public/docs/v2/freecadkeyhole.png
Binary file added website/public/docs/v2/freecadpad.png
Binary file added website/public/docs/v2/freecadplatehole.png
Binary file added website/public/docs/v2/freecadpocket.png
Binary file added website/public/docs/v2/freecadpocket2.png
Binary file added website/public/docs/v2/freecadproperty.png
Binary file added website/public/docs/v2/freecadrectangle.png
Binary file added website/public/docs/v2/freecadselect.png
Binary file added website/public/docs/v2/freecadtrimedge.png
Binary file added website/public/docs/v2/freecadtrimmed.png
Binary file added website/public/docs/v2/freecadusbsketch.png
Binary file added website/public/docs/v2/frontback.png
Binary file added website/public/docs/v2/fusionalmost.png
Binary file added website/public/docs/v2/fusioncase.png
Binary file added website/public/docs/v2/fusioncasehalf.png
Binary file added website/public/docs/v2/fusioncircle.png
Binary file added website/public/docs/v2/fusioncircle2.png
Binary file added website/public/docs/v2/fusioncircledim.png
Binary file added website/public/docs/v2/fusioncoincident.png
Binary file added website/public/docs/v2/fusioncomp.png
Binary file added website/public/docs/v2/fusiondim.png
Binary file added website/public/docs/v2/fusionextrude.png
Binary file added website/public/docs/v2/fusionextrude2.png
Binary file added website/public/docs/v2/fusionextrudemenu.png
Binary file added website/public/docs/v2/fusionfinalsketch.png
Binary file added website/public/docs/v2/fusionfinishsketch.png
Binary file added website/public/docs/v2/fusiongfinaltop.png
Binary file added website/public/docs/v2/fusionhole.png
Binary file added website/public/docs/v2/fusionholes.png
Binary file added website/public/docs/v2/fusionholetool.png
Binary file added website/public/docs/v2/fusionlock.png
Binary file added website/public/docs/v2/fusionmidcircle.png
Binary file added website/public/docs/v2/fusionnewdesign.png
Binary file added website/public/docs/v2/fusionplate.png
Binary file added website/public/docs/v2/fusionplatefinal.png
Binary file added website/public/docs/v2/fusionrect.png
Binary file added website/public/docs/v2/fusionrect2.png
Binary file added website/public/docs/v2/fusionrect3.png
Binary file added website/public/docs/v2/fusionselect.png
Binary file added website/public/docs/v2/fusionshow.png
Binary file added website/public/docs/v2/fusiontop.png
Binary file added website/public/docs/v2/goodsketch.png
Binary file added website/public/docs/v2/grid.png
Binary file added website/public/docs/v2/halfdonefreecadsketch.png
Binary file added website/public/docs/v2/holefreecad.png
Binary file added website/public/docs/v2/keymatrixdiode.png
Binary file added website/public/docs/v2/keymatrixschematic.png
Binary file added website/public/docs/v2/kicadusbdist.png
Binary file added website/public/docs/v2/neoassoc.png
Binary file added website/public/docs/v2/neoedit.png
Binary file added website/public/docs/v2/neofinal.png
Binary file added website/public/docs/v2/neomiddle.png
Binary file added website/public/docs/v2/neopixel3d.png
Binary file added website/public/docs/v2/newfreecad.png
Binary file added website/public/docs/v2/newlibrary.png
Binary file added website/public/docs/v2/newsketch.png
Binary file added website/public/docs/v2/oledassoc.png
Binary file added website/public/docs/v2/oledhalfschem.png
Binary file added website/public/docs/v2/oledschem.png
Binary file added website/public/docs/v2/oledsymbol.png
Binary file added website/public/docs/v2/pastefootprint.png
Binary file added website/public/docs/v2/pcbsize.png
Binary file added website/public/docs/v2/placedfootprints.png
Binary file added website/public/docs/v2/pouradd.png
Binary file added website/public/docs/v2/pouraddvias.png
Binary file added website/public/docs/v2/pouraddzone.png
Binary file added website/public/docs/v2/pourfilled.png
Binary file added website/public/docs/v2/pourfinish.png
Binary file added website/public/docs/v2/pourstart.png
Binary file added website/public/docs/v2/realfinalpcb.png
Binary file added website/public/docs/v2/righttoolbar.png
Binary file added website/public/docs/v2/rotarysym.png
Binary file added website/public/docs/v2/rotarywired.png
Binary file added website/public/docs/v2/roundedrect.png
Binary file added website/public/docs/v2/roundedrect2.png
Binary file added website/public/docs/v2/routing.png
Binary file added website/public/docs/v2/ruler.png
Binary file added website/public/docs/v2/selectsketch.png
Binary file added website/public/docs/v2/silkbadsilk.png
Binary file added website/public/docs/v2/silkconverter.png
Binary file added website/public/docs/v2/silkfinal.png
Binary file added website/public/docs/v2/silkfinal3d.png
Binary file added website/public/docs/v2/silkgoodsilk.png
Binary file added website/public/docs/v2/silkgura.png
Binary file added website/public/docs/v2/silkoptions.png
Binary file added website/public/docs/v2/swoffset.png
Binary file added website/public/docs/v2/toplength.png
Binary file added website/public/docs/v2/updatefromlib.png
Binary file added website/public/docs/v2/validatesketch.png
Binary file added website/public/docs/v2/via.png
Binary file added website/public/docs/v2/xiaohead.png
7 changes: 6 additions & 1 deletion website/src/components/SideBar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ const SideBar = () => {
DIY Guide
</a>
</li>
<li>
<a href="/advancedguide" className="block py-2 px-4 rounded hover:bg-slate-200 transition-all text-slate-900 hover:text-cyan-800">
Advanced DIY guide
</a>
</li>
<li>
<a href="/resources" className="block py-2 px-4 rounded hover:bg-slate-200 transition-all text-slate-900 hover:text-cyan-800">
Resources & Tips
Expand Down Expand Up @@ -44,4 +49,4 @@ const SideBar = () => {
);
};

export default SideBar;
export default SideBar;
12 changes: 11 additions & 1 deletion website/src/main.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ import { createRoot } from "react-dom/client";
import App from "./App.tsx";

import Tutorial from "./pages/hackpad/Tutorial.mdx";
import AdvancedTutorial from "./pages/hackpad/AdvancedTutorial.mdx";
import Errors from "./pages/hackpad/Errors.mdx";
import Submission from "./pages/hackpad/Submission.mdx";
import ApprovedParts from "./pages/hackpad/ApprovedParts.mdx";
import Faq from "./pages/hackpad/Faq.mdx";
Expand Down Expand Up @@ -36,9 +38,13 @@ const router = createBrowserRouter([
<DocPage Content={Tutorial} SideBar={ SideBar } />
),
},
{
path: "/advancedguide",
element: <DocPage Content={ AdvancedTutorial } SideBar={ SideBar } />,
},
{
path: "/submitting",
element: <DocPage Content={Submission} SideBar={ SideBar } />,
element: <DocPage Content={ Submission } SideBar={ SideBar } />,
},
{
path: "/parts",
Expand All @@ -60,6 +66,10 @@ const router = createBrowserRouter([
path: "/get-keycap",
element: <DocPage Content={ GetKeycap } SideBar={ SideBar } />,
},
{
path: "/errors",
element: <DocPage Content={ Errors } SideBar={ SideBar } />,
},
{
path: "/keyboard",
element: <DocPage Content={ Overview } SideBar={ SideBarKeyboard } />,
Expand Down
444 changes: 444 additions & 0 deletions website/src/pages/hackpad/AdvancedTutorial.mdx

Large diffs are not rendered by default.

4 changes: 0 additions & 4 deletions website/src/pages/hackpad/DesignTips.mdx

This file was deleted.

60 changes: 60 additions & 0 deletions website/src/pages/hackpad/Errors.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# DRC error code compliation

Oh no! You have DRC errors? Don't worry, we got you covered. Here is a compliation of most error codes: (Press Control+F to search)

Try looking into the unconnected items tab too!

- Warning: Silkscreen clipped by solder mask:
- Warning: Silkscreen clipped by board edge:
- Warning: Footprint component type doesn't match footprint pads:
- Warning: Footprint has no courtyard defined:

Ignore, this has no importance

- Warning: Text height out of range:

Ignore, this has no importance (Your text might not get printed properly tho)

- Warning: Trace has unconnected end:

Click on the text and you should see a trace with a yellow arrow on it. Delete that trace since it has no use. (Or maybe did you forget to connect it?)

- Warning: PTH inside courtyard:

It might be a false-alarm, but double check if you accidently put some component on top of another one.

- Warning: Footprint 'xxxxxxxx' does not match copy in library 'xxx'

Open Tools > Update Footprints from Library. Select everything inside "Update Options" and click Update.

- Warning: Footprint 'xxxxxxxx' not found in library 'xxx'

You are probably missing a library! Or try re-assigning the footprints.

- Warning: Board edge clearance violation:

Your traces/pads are too close to the edge of the board. (If you are using my neopixel footprint, ignore it. I might have put the pads a little tooo close to the borders, but it won't break anything. Sowwy~~ UwU)

- Error: Board has malformed outline:

Important! You forgot to add Edge.Cuts outline/ The Edge.Cuts outline isn't closed properly

- Error: Track has unconnected end:

Important! You forgot to join two components! Check if there are thin blue lines present.

- Error: Courtyards overlap:

Important! Some of the components are overlapping (physically), click on the text to check which one.

- Error: Hole clearance violation:

Important! Something is too close to the holes, it will get drilled out

- Error: Items shorting two nets:

Important! You got two wires connected that shouldn't be connected! Click on the text to check out which ones.

- Error: Missing connection between items

Important! You two pads aren't connected together! Click on the error message to find out which ones
3 changes: 3 additions & 0 deletions website/src/pages/hackpad/Faq.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,8 @@ You can! We'll have V2's at HQ. note: please use 19.05x19.05mm spacing, or else
**I have more questions!!!** \
Join the #hackpad channel in the Hack Club slack!

**What are the footprint name for diodes/resistors?**
Diodes are D_DO-35_SOD27_P7.62mm_Horizontal.

Resistors are R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal

15 changes: 14 additions & 1 deletion website/src/pages/hackpad/Resources.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ With that in mind, there are *thousands* of other resources on the internet that

If a guide doesn't seem to work, try it again. If it *really* doesn't work, try another guide! The magic of it is to keep at it, because if so many other teens can do it, you absolutely can too.

There is also a list of [common DRC errors here](/errors)

## KiCad Libraries
- [Keyswitch footprints](https://github.com/ai03-2725/MX_V2)
- [XIAO Footprints](https://github.com/Seeed-Studio/OPL_Kicad_Library)
Expand All @@ -29,6 +31,7 @@ It has an OLED, a rotary encoder, 4 switches in a matrix, 2 addressable LEDs, an
- [XIAO RP2040 Docs](https://wiki.seeedstudio.com/XIAO-RP2040/)
- [Anatomy of a keyboard](https://matt3o.com/anatomy-of-a-keyboard/)
- [Keyboard Mounting Styles](https://www.keyboard.university/200-courses/keyboard-mounting-styles-4lpp7)
- [Holo's PCB Routing Commandments](https://libsharedobject.so/howsmypcb.html)

## Useful measurements
- Making holes for your PCB:
Expand All @@ -53,6 +56,16 @@ It has an OLED, a rotary encoder, 4 switches in a matrix, 2 addressable LEDs, an
- Most DIY keyboards are at least partially open source.
You can go to their git repositories and copy their tolerances/footprints/schematics/whatever
- You can export your KiCad PCB to a PDF and print them to check measurements
- Most Keyboards are wired in a matrix to save pins, but if you have 5 or less switches just avoid the matrix altogether
- Most Keyboards are wired in a matrix to save pins, but if you have 6 or less switches just avoid the matrix altogether
- For screens, just use a 4-pin header for footprints
- Adding graphics in KiCad is really annoying. Instead, you can design your entire thing in Figma and import it as an overlay instead
- Google is your best friend, search up anything u don't know.
- Spam vias everywhere! They are free.
- Try routing everything on one layers first, if you can't without making a big loop, move to the second layer. This keeps your board clean.
- Make multiple revisions! I rerouted my first macropad like 10 times while adding stuff.
- After routing everything, run Tools > Cleanup Tracks & Vias. You gotta press the Build changes button twice for the optimizations to apply.
- Use a ground fill, they are good!
- Try adding capacitors, they will increase your board's stability.
- With kmk, you can control your mouse with buttons! See [Mouse Keys](https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/mouse_keys.md) in the docs.
- Maybe use some thicker traces! Edit the trace width a at the top left "Track: use netclass width", click edit predefined and add yours. Then select it in the same menu.
- Use tunnels to keep your schematic organised.
Loading