100%
hackpad Hackpad view
Description

Imported from GitHub: skifli/hackpad · commit dd978ba · license MIT

Description

A custom macropad for Hackclub Highway

README

hackpad

CoverExploded View
cover photoexploded view photo

[!IMPORTANT]
Since submission, the BOM price has decreased to $119.89 from above $150 (check #bom for more information).

A fully wireless macropad with 14 Choc v1 Ambient Nocturnal switches, 2 rotary encoders (with a push-button each), and a small screen! The case is in two sections - a top and bottom, and joins together via 8 magnets, half in each side of the case (you can see the magnet holes in the various views).

I made this project because when programming / doing CAD design there are so many different shortcuts I use to make sketches, change orbit types, etc, and these require a lot of clicks. These all could be streamlined a lot more with the use of a macropad - which is why I made this one. I decided to also add a screen so I could easily see which profile I'm on and switch (likely by rotating a rotary encoder while it is held down), and the two rotary encoders to easily control multiple audio streams (mainly YouTube vs. Spotify).

Project Structure

[!IMPORTANT]
Only includes files / folders relevant to admin that would benefit from explanation.

└── 📁hackpad
    └── 📁design
        └── 📁cad
            ├── case_bottom.step
            ├── case_top.step
        └── 📁pcb
            ├── ... # Contains the KiCad directory for the PCB
        └── 📁plate
            ├── ... # Contains the KiCad directory for the plate, which is made from an exported DXF from the Fusion 360 Sketch (plate.dxf)
    ├── JOURNAL.md # The journal of the design process
    └── README.md # This file

[!WARNING]
The KiCad plate PCB gives malformed outline warnings and doesn't show correctly in 3D view - no idea why, but when exported with the Fabrication Toolkit and imported into JLCPCB it's totally fine 🗿 (if it works, it works™).

Journal

The journal contains each day's work, logged, with the aid of images. Total time is at the top and each day has its time logged. There is also a Table of Contents for easy navigation :).

[!NOTE]
Total time spent: 60h

PCB

Schematic

kicad schematic

PCB Design

kicad pcb design

PCB Render

kicad pcb render

CAD

Case Top Side View (from the bottom)Case Bottom Side View (from the top)
case top side onlycase bottom side only
Case PlateCase USB Port
case plate onlycase usb port

BOM

[!TIP]
The BOM is split into the different companies from which the components would be bought, with an empty line delimiting them. As well as this, at the end of each section, the total price for that provider, along with the shipping, is provided in the Price column. There is also the total price in the aforementioned column on the last row.

[!NOTE]
I found the promo code KBDNEWS for Mechboards (a UK-based merchant) 5% off so I included that in the BOM as well to explain the decrease in total price.

ComponentDescriptionNotesQtyPriceShippingProviderLink
Kailh Choc Hotswap SocketsV1 (Pack of 10)2£6.00£1.81MechboardsLink
DDC Choc (v1) PBT Blank Keycaps - WhiteWhite Keycaps / 1u (Pack of 10)1£4.50MechboardsLink
DDC Choc (v1) PBT Blank Keycaps - BlackBlack Keycaps / 1u (Pack of 10)1£4.50MechboardsLink
lowprokb Choc (V1) Ambients Nocturnal(Pack of 10)2£19.00MechboardsLink
KBDNEWS Promo Code–£0.94
Total (Mechboards)£34.11Included
nice!nano v2Compatible board1£2.99£2.99AliExpressLink
nice!viewCompatible screen (without headers)1£12.69AliExpressLink
Header Pins1x5 Pins (50 PCS)Headers for the above screen1£1.15AliExpressLink
Tiny Disc Magnet4x3mm (100 PCS)To join the top and bottom of the case1£4.86£2.96AliExpressLink
SMT SOD-123 Diodes100 PCSFor the switches1£1.11AliExpressLink
Heat Shrink TubesFor wiring between switch, battery, nice!nano v21£1.35AliExpressLink
JST PH Plug Connector with Wire (M)MALE 2P 100mm (5 PCS)For battery wiring1£0.34£1.94AliExpressLink
JST PH Plug Connector with Wire (F)FEMALE 2P 100mm (5 PCS)For battery wiring1£0.49£1.94AliExpressLink
Bumper Feet5mm x 2mm (100 PCS)For bottom of the case and PCB1£1.59AliExpressLink
Toggle SwitchK031b004-G3To power on/off the system1£1.94AliExpressLink
3.7V 150mAh1 batteryTo power the system1£4.74N/AAliExpressLink
Rotary Encoder w/ Push Button5 PCS1£1.08AliExpressLink
Total (AliExpress)£42.35Included
Plate & PCB£5.94£6.11JLCPCBN/A
Total (JLCPCB)£12.05Included
TOTAL£88.51Included

[!IMPORTANT]
Please disregard a lot of what is in the below text. After someone in the Slack (@Toby), introduced me to the world of AliExpress, I completely redid the BOM. It is now $119.89 (yes that is USD lol), so way under the limit. Thanks a lot dude :).

The BOM can be found in /bom.csv. Since this is my first ever hardware project, I decided to go for some products that were easier to find footprints / symbols in KiCad for. With hindsight, spending the amount of money I now have to on a nice! nano v2 or nice!view (which I landed on because I chose the nice! nano v2) isn't really necessary. So, in future projects I'll choose other, cheaper components - but for this one I've already designed the PCB etc, and was very new to this whole world of design, and so decided to go with components that I was more confident with.

The Seeed Studio XIAO RP2040 didn't have enough GPIO anyway since I needed a 4x4 key matrix (so 8 pins), 4 other GPIO for the 2 rotary encoders, and the screen pins. Now, unfortunately this does mean the price is way over $150. This is in part because I also forgot Hackclub operates in USD and so was sure I would be in price range until 2 days ago, at which point I had a heart attack 😭. I'll try to cover the rest myself... not really sure how that'll go because I need to buy solder and other stuff since this is my first hardware project (which is already a lot of money), but we'll see... I'm not sure if Hackclub has a thing with JLCPCB for cheaper PCBs but if so that would reduce the total cost, although it might still be just over $150.

Software

Will be mostly added once the physical components are received and assembled, as I don't want to start writing code and then find out it doesn't work because I accidentally used libraries for different components, or something similar to that.

I have added some stuff in the /software directory though.


Thanks to Hackclub for such an amazing opportunity - this project was made by @skifli with 🩷, under the MIT License.

Comments
Sign in to comment

No comments yet. Be the first to ask about this board.