How to Design a Custom Mechanical Keyboard

Sdílet
Vložit
  • čas přidán 4. 02. 2023
  • Visit pcbway.com/ for your next 3D printing project.
    In this video I will show you my process for designing a handwired keyboard with a custom layout and how you can build your own DIY handwired mechanical keyboard. With a 3D printed mechanical keyboard plate, you can create a keyboard that is one of a kind. I will be showcasing every stage of the design process including 3D modeling and programing firmware. The keyboard uses a teensy 2.0 to run QMK Firmware. This build could also be completed with a Teensy 2.0++ This video will discuss the following topics:
    How to design a custom keyboard layout
    How to build a 3D printed keyboard
    How to build a handwired keyboard
    Easy way to write QMK Firmware
    How to flash a teensy microcontroller
    // You can build the keyboard in this video
    Printables: www.printables.com/model/4553...
    PCBWay+: www.pcbway.com/project/sharep...
    // Software used in this video
    Keyboard Layout Editor: www.keyboard-layout-editor.com/
    Keyboard Plate Builder: builder.swillkb.com/
    Fusion 360: www.autodesk.com/products/fus...
    Keyboard Firmware Builder: kbfirmware.com/
    Arduino IDE: www.arduino.cc/en/software
    Teensyduino: www.pjrc.com/teensy/td_downlo...
    Keyboard Tester: www.keyboardtester.com/
    // Hardware used in this video (Affiliate Links)
    Mechanical Switches: amzn.to/3Y7qmlE
    Stabilizers: amzn.to/3RC8EEh
    1N4148 Diodes: amzn.to/3HzShU8
    24 AWG Wire: amzn.to/3RHczjm
    Teensy 2.0: amzn.to/3JKT2ww
    USB-C Breakout Board: amzn.to/3wVgnUq
    M2.5 Bolts: amzn.to/3X1Q3T7
    Keycaps: amzn.to/3HCBM9T
    // Tools I use (Affiliate Links)
    Soldering Iron: amzn.to/3HWohCj
    Fume Extractor: amzn.to/3Xc5esV
    Electric Screwdriver: hototools.com/discount/MML
    Tool Kit: amzn.to/3X8V78e
    // Follow me on Twitch
    / m0dulus
    // Support My Content
    ko-fi.com/madmodlabs
    #mechanicalkeyboards #3dprinting #madmodlabs
  • Věda a technologie

Komentáře • 94

  • @GoCreateTech
    @GoCreateTech Před měsícem +2

    came here after a few Joe Scotto videos, and what you have said in the first 1.5 minutes is more then i got in 9 of his videos. the sole fact you mentioned all the software you are using and the fact to search else where for things you won't be showing in this video, is a million times more thoughtful of the viewer.
    Thank you for you time and hard work!

  • @JosephJRyu
    @JosephJRyu Před rokem +11

    So simple and helpful! Thx a lot. Oh and like the layout!!

  • @davidMerHer_
    @davidMerHer_ Před 10 měsíci +3

    This was just what I was looking for! Thank you so much.

  • @rodolfo4063
    @rodolfo4063 Před rokem +4

    Great video! I was looking for a tutorial and this was perfect.

  • @theDude9750
    @theDude9750 Před rokem +2

    you're a GOD. Very well done, the information density is nuts and super high quality

  • @BB419.9
    @BB419.9 Před 25 dny +1

    Bro what a speed-run to build keyboard loved this so much.

  • @rauljimenez7252
    @rauljimenez7252 Před rokem +7

    S O M A N Y T H A N K S
    I was looking tutorials for doing this and you explained it so easy!

  • @djpowerboy
    @djpowerboy Před rokem +3

    man this channel is pure gold... u deserve more views mannn

  • @celestialcolosseum
    @celestialcolosseum Před měsícem +2

    I modeled my own case and did this project from scratch, did the firmware manually too since the firmware builder is too outdated. There is only one question i have before assembling everything, i don't have the CC pins on my usb type-c board, only data -/+, ground and VCC pins. I'll see if it works but other than that it went really smooth! Thanks for the amazing tutorial.

  • @syedmohhiuddin7382
    @syedmohhiuddin7382 Před 2 měsíci +1

    Best keyboard build ever!!

  • @Z.DeAllen
    @Z.DeAllen Před 9 měsíci +3

    This was fantastic. Thank you! But you went thru all that work and still kept the top row staggered >_

  • @haplopeart
    @haplopeart Před 11 měsíci +2

    Excellent and very informative

  • @semputs
    @semputs Před rokem +6

    This has been very educational and has given me hope that its possible to make my own keyboard design. Thanks so much!
    Btw I use Harimau tactile switches and Kailh Silent Midnight Pro Tactile switches.

  • @Alchemistdeignis
    @Alchemistdeignis Před rokem +1

    This is awesome!

  • @zani661
    @zani661 Před rokem +2

    bro that was awesome

  • @giangnguyentruong3141
    @giangnguyentruong3141 Před 2 měsíci +1

    thank you so much for the video

  • @acesan8s100
    @acesan8s100 Před 2 měsíci +1

    Your a natural tutor, great work

  • @gilgabro420
    @gilgabro420 Před 10 měsíci +2

    This was incredibly helpful!

    • @MadModLabs
      @MadModLabs  Před 10 měsíci

      Thanks for watching!

    • @gilgabro420
      @gilgabro420 Před 10 měsíci +1

      @@MadModLabs i am about to make a southpaw 75% with a low profile. All thanks to this video.

    • @MadModLabs
      @MadModLabs  Před 10 měsíci

      @@gilgabro420 Awesome! Can't wait to see it!

  • @alexandrapalmer3129
    @alexandrapalmer3129 Před rokem +1

    Amazing content, love the video, keep it up!! :)

  • @sanketss84
    @sanketss84 Před 11 měsíci +2

    super helpful.

  • @DaveAlkema
    @DaveAlkema Před rokem +9

    Very interesting video! I don't think I'll ever do a keyboard like that myself, but I have a ton of respect for anyone who does 🙂
    On the topic of switches, I use Gateron Oil Kings in my main boards, and Akko Jelly Blacks in my travel board.

  • @alexon2010
    @alexon2010 Před 4 měsíci +1

    Conheci agora já virei fã... show... show... show parabéns.....

  • @tylereyman5290
    @tylereyman5290 Před rokem +2

    Looks like I found another fun project to do

    • @MadModLabs
      @MadModLabs  Před rokem

      Thanks for watching. I hope your keyboard turns out awesome!

  • @sjb8178
    @sjb8178 Před 8 měsíci

    this is it this is it!

  • @Timjstewart
    @Timjstewart Před 11 měsíci +4

    Fascinating and informative video! Thank you! If you don't mind me asking, what was the approximate cost of the materials you used? I have built two keyboards using PCB and I'm wondering if hand wiring is significantly cheaper. Thanks again!

  • @n1k0n_
    @n1k0n_ Před rokem +2

    I use repurposed cherry browns (pre-hyperglide like 92-95yr model) and lube them. Ordering some akko jelly lavenders soon and some good quality cap from KBFfans. Probably the WOBs

  • @submaryne3518
    @submaryne3518 Před rokem +1

    tysm bro

  • @scharkalvin
    @scharkalvin Před 10 měsíci +6

    The keyboard firmware builder needs to be updated for the RP2040 processor. The RPi Pico and clones are fast becoming a popular keyboard controller. If you use the pico w, it should be possible to mod the firmware to connect wirelessly via bluetooth now that the bluetooth libraries have been released for the RP2040 SDK. There is also a Micro Python clone of QMK as well.

    • @720MotorWorks
      @720MotorWorks Před 8 měsíci +1

      KBfirmware is EOL as stated at the bottom of the page- Sadly, no more updates will come to it. It is over 7 years old and painfully out of date

  • @duynguyenkhanh9719
    @duynguyenkhanh9719 Před rokem

    Really cool video. Can you make a video guide on designing wireless keyboard pcb with modules, like e73 nrf52840 or something similar?

  • @lanzecki
    @lanzecki Před 11 měsíci

    Thanks for the Video. You've just answered the one question I've had, and been looking for for the last 2 days.. Ie how does the firmware know how the switches know are wired to the controller.

  • @Soupie62
    @Soupie62 Před 5 měsíci

    For a small, portable keyboard, I would reduce the width of Tab, Caps, and Left Shift. Same for Backspace, \, Enter and Right Shift.
    That alone requires a custom PCB, and we haven't even talked about switches and keycaps.

  • @Snowsea-gs4wu
    @Snowsea-gs4wu Před 2 měsíci +1

    How about creating a Commodore 64 keyboard (like the one you have on your background) with the correct layout for CBM (duh!) and some space leftover space to accommodate a raspberry pi to be able to use the awesome BMC64 project (Bare Metal Commodore 64). Thanks for the video!

  • @Snowsea-gs4wu
    @Snowsea-gs4wu Před 2 měsíci

    Would it be possible to create some sort of small wire channel in the 3D print for the column cables? I’d bet it would help with the build and make everything easier and neater. Thanks for the video!

  • @overflow7276
    @overflow7276 Před rokem +4

    Since we are already consulting PCB-Way, could you make a video how to design a circuitboars that makes the keys hotswapable, or is that too expensive for a DIY project?
    Great video by the way!^^

    • @rizen3467
      @rizen3467 Před rokem

      It wouldnt really be alot more expensive, for about $20 maybe you can get the hot swap sockets and ordering a pcb is $10 - $20 too

  • @TicTacmann
    @TicTacmann Před rokem +1

    Great Video!
    I am just getting into this topic myself and learned alot. Ill get on trying this myself and see whether I get anywhere with that!
    Do you maybe have a discord for people to discuss? Id love to learn some more, i.e. how to make an self-made RGB board with that method!

    • @MadModLabs
      @MadModLabs  Před rokem +1

      Here is a link to the discord. Fair warning, it's not very active. Most of the people here are my friends from The Twitch stream. discord.gg/tYMTA2Bb

    • @TicTacmann
      @TicTacmann Před rokem +1

      @@MadModLabs appreciate the link!

  • @johnmccardle
    @johnmccardle Před rokem +2

    Great resource. I think I'll start with a numpad so I don't screw up a huge design on my first go.
    What do you think about PCBs and/or plates? Is there any benefit to using a support plate like you designed and a PCB under the switches? Or does the PCB replace the plate entirely?

    • @MadModLabs
      @MadModLabs  Před rokem

      Most keyboards have a plate and a PCB. The PCB's main purpose is to connect the switch matrix electrically. Using a plate and PCB together will help the keyboard stay rigid, even though some keyboards have a small amount of flex. It is possible to make a keyboard with no plate at all. I would want to use a thick PCB to make sure the keyboard is not flexible.

  • @scorpio2t
    @scorpio2t Před 6 měsíci

    Can you do a video on building a custom zmk firmware with bluetooth please? Wanting to learn how to write new firmware from scratch 😅

  • @wickeddubz
    @wickeddubz Před rokem

    Suggestion: please show how to make a keyboard for UMPC (Jornada, Sony UX series, etc) and handheld pocket device.

  • @slabua
    @slabua Před 6 měsíci

    18 by 4 can be wired for example as a 9 by 8, in that case you would only need 17 pins instead of 22.

  • @RafaelDrumondRego
    @RafaelDrumondRego Před rokem +1

    I need to find a good tutorial that explains how to choose the controller board. But your tutorial is amazing!!! I am still stuck with gateron brown switches.

    • @MadModLabs
      @MadModLabs  Před rokem +1

      The biggest factor for me when choosing a controller board is the number of usable pins. I like to keep the matrix wiring simple when possible so more pins Is usually better until the size becomes a problem. Some controllers are better for for special features like wireless connections or backlighting but I usually try to keep the build simple and keep costs low. Thanks for watching!

    • @RafaelDrumondRego
      @RafaelDrumondRego Před rokem

      @@MadModLabs Thanks a lot for the answer!

  • @CesarAnton
    @CesarAnton Před 5 měsíci

    Thank you!

  • @jamegumb7298
    @jamegumb7298 Před rokem +2

    Fusion 360 is not bad bad, but there was an update not too long ago that gimped exporting and that made it less interesting for me.
    There are alternatives, one of which is SolidEdge Community Edition. It has other limits on it, but it works better for me.

    • @MadModLabs
      @MadModLabs  Před rokem

      SolidEdge is great! Recently, I have been trying out OnShape and it looks promising. It is cloudy based, so you can run it on pretty much any computer.

  • @lophixarts
    @lophixarts Před 6 měsíci

    How to modfiy this to have a volume knob and be wireless?

  • @pabloarias7917
    @pabloarias7917 Před 7 měsíci

    hey where can I get that keyboard at 14 seconds?

  • @nzpc2005
    @nzpc2005 Před 2 měsíci

    Anyone know what keyboard/caps set that is in the background at 1:52?

  • @IevgenBaziak
    @IevgenBaziak Před 2 měsíci

    Question:
    When using the arduino as your controller for the custom keyboard, - does such keyboard end up having any issues with simultaneous keys pressed (imagine Ctrl+Shift+Alt+C as example)? This would literally be a showstopper for me to refuse the idea (need big combos to work in IDEs).

    • @MadModLabs
      @MadModLabs  Před 2 měsíci

      I tested this just now. The keyboard recognizes up to 9 simultaneous keystrokes when using the modifier keys like Ctrl+Shift+Alt. If you frequently use big key combos, writing your own firmware is the perfect opportunity to simplify them. You could assign them all on a function layer or even build a keyboard with a built-in "macropad" that could input your key combos with one keystroke.

  • @l0st12
    @l0st12 Před rokem

    Hi i just want to ask how do you know what type of switch you are using ? I'm planning to make a keyboard with the leobog ash v3 switch but i don't know what type of hole will fit

    • @MadModLabs
      @MadModLabs  Před rokem +1

      LEBOG ash wood will fit in a Cherry MX plate. The switches themselves are very similar to switches manufactured by Otemu. Most switches will fit in a MX plate. If you plan on using a PCB make sure it is compatible with Otemu/Akko switches.

  • @akshatdev3596
    @akshatdev3596 Před rokem +1

    I was always trying to do something like this. Are there any communities that you recommend which can help me? Also, because this is 3d printed I was wondering if I could get this machined in acrylic or other materials on PCB way.

    • @MadModLabs
      @MadModLabs  Před rokem

      I would say CZcams is the best place to learn 3D modeling. There are lots of really good tutorials available for free. I am not really active in any mechanical keyboard communities but if you want to learn how to program a keyboard, the QMK discord is probably a good place to look.

    • @akshatdev3596
      @akshatdev3596 Před rokem +1

      @@MadModLabs for my second question, can I use the same 3d model for machining in other materials than 3d printing? Like acrylic.

    • @MadModLabs
      @MadModLabs  Před rokem

      @@akshatdev3596 for CNC machining, you will probably need to use the STL file to create a .STEP file first.

    • @akshatdev3596
      @akshatdev3596 Před rokem +1

      @@MadModLabs thank you again :)

  • @andreykolobikhin
    @andreykolobikhin Před 9 měsíci

    Hi!
    - It is very interesting - why work on keyboard starts from very not basic and pretty complex thing?
    First quetion that appear while you look at typing - what for you nee to hold palms upper than keyaboard while you use fingers? Actually it is logistics connected primitive AI task - how to simplify logistics in connection with context, as it prolongs solutions with new possibilities.
    The very simple answer to this question - keaboard surface and keys must lay lower than support for wrists, in some area much lower than border of keyaboard. Kinda in pit. In this case your wrists are fixed and fingers, and only, perform job.
    - Now you can type faster, brain and some muscles are relaxed and free of tasks. But what are the pluses?
    Borders you receive can be used easily, with low level of mistakes for computer management, like brigthness etc changes, and it is quite natural thing as these functions and its physical realizaion are different. Borders are connection between objects.
    After it you have ability to add commonly used functions like language change, layout change. You can place it on border going in pit but with something prolonging keyaboard surface to it. Thus you have mixed intermediate functionality, not that separate. It gives another plus current computers don`t have - accented simple tuning. Like changing contrast of text on screen. And so on. It can be done by software. Text, photos, browser prompt for addresses.... And a lot of other different types of interface controls, elements, you can change, copy, delete by pretty simple easy for brain direct clicking by fingers that you move shortly.
    Next thing you understand - there are some outer devices. Lamp. Teapot. Car. And area outer than border is quite interesting for it. You make some pit - and you got it. But it is not magic of real conduction between separate object with jump of differences. But your design have all possibilities for it already. Switch on teapot. Press on connection "beyween pits" and use numbers or arrows for setting up temperatue or speed of boiling. Teapot can be powered by valuable power tuning, just like your keyaboard... ;-) Switch on lights in room or in house. You don`t need addiotional house management devices any more. As next thing such solution brings - ability to connect base pit to any software pit. You need to establish remote link to some device by clicking some "remote connected surface string" either line outer of bounderies.
    You can do it in library, bar, train, airplane... In connection to devices around your place...
    - Yo can pay by it. Ask driver of bus or airplane through specific dialog programs and devices.
    By clicking several buttons. This is the magic of conduction.
    - It brings speed and profit growth ,simplifying everything same type. But not simply. With tremendous growth of comfort. And opening new possibilities. Of super magic... 😏
    It gives ability to make simple "going-through" communication and function activating.
    - What can you do with teapot?
    Well, - teapot can be located under some lamp. Near some refrigerator. So you can use arrows to access it through teapot you use very often, as compared to them. Number of devices can be pretty big. You can use direction for direct connection, or use some menu with names you open by "Show next devices" functionality. Thus it gives ability to reach any detail in any mechanism from any place... In simple comfortable way. Time, cost expenses. collision expenses of performing all of these functionalities with other users - interesting topic. Just like energy etc expenses.
    But it is not end. You can put automation on these connections.
    - Like adding same type activating of same or different objects by "glueing connection strings either functions". Turn on lamp on teapot and lamp in place you store broad. It looks like magic. In direct meaning. You can execute teapot and start warming up of car. Or say something to car of your neigbour and not known person blocking your one. Through your car. 😏

  • @djpowerboy
    @djpowerboy Před rokem

    Hey man, Im already working on mine and here are two questions that came up:
    1 - What to do when the number of columns and rows are greater than the number of pins on the board?
    2 - Is it possible to use arduino pro mini instead of teeny? its kindda cheapper down here in brazil
    thx man

    • @MadModLabs
      @MadModLabs  Před rokem +1

      You can use an Arduino for a smaller keyboard builds. They have less pins than the teensy. If you're building a large keyboard you probably want to get a Teensy 2.0 ++. amzn.to/3EfUFi5 The Teensy 2.0 ++ is an awesome controller with lots of pins and it is pretty easy to work with. There's also a way to do this with a Raspberry pi Pico but the firmware creation is completely different than the way demonstrated in this video.

    • @djpowerboy
      @djpowerboy Před rokem

      @@MadModLabs thx alottt

    • @CerebroJD
      @CerebroJD Před 8 měsíci +1

      I know you commented this awhile ago, but your keyboard wiring matrix doesn't need to follow the exact rows and columns you have. If you have a 48 key keyboard, for example, if you use a 4x12 matrix, that uses 16 pins. However if you consider you can create groups keys (from a wiring standpoint) into smaller or larger groups, you could create a matrix of 7x7 totalling a maximum of 49 keys (the last 'row' of this wiring would only have 6 keys, to bring back down to 48 actual keys). This arrangement would only need 14 pins.
      Another example is a 5x12 keyboard - 17 pins needed for a matrix that matches the physical layout, or use an 6x10 matrix only requiring 16 pins.
      The keyboard shown in the vid needs ~62 switches. If you use a 4x17 matrix, that's 21 pins. However, you can use a 7x9 matrix for 63 possible switchs using only 16 pins.
      Make sense?

  • @GothGirl_IHOP
    @GothGirl_IHOP Před 10 měsíci

    I tried downloading the personal use Fusion 360 and that didn't work so I've had to resort to using FreeCAD which works SO DIFFERENTLY to Fusion360 that I basically have to skip the modelling part of this tutorial and have to hope someone has a FreeCAD tutorial of a similar project.

  • @mfcfbro
    @mfcfbro Před 6 měsíci +1

    Is there any noticeable latency or anything doing this? I was always warned not to use arduino for a keyboard like this? I'm wondering if I was just misinformed.

    • @MadModLabs
      @MadModLabs  Před 6 měsíci

      I can't notice any latency. I'm not sure how it would compare to a top-shelf gaming keyboard. If you are unsure of using Arduino, you could build the same keyboard with a different controller. A friend of mine recently built a 3D printed keyboard and used a Raspberry Pi Pico as the controller.

  • @l0st12
    @l0st12 Před 10 měsíci

    How much infill did you use for the keyboard

    • @MadModLabs
      @MadModLabs  Před 10 měsíci +1

      20% is enough. Increasing the infill density and wall thickness will change the weight and sound of the finished product slightly. So feel free to experiment.

    • @l0st12
      @l0st12 Před 10 měsíci +1

      @@MadModLabs thanks you so much for the answer

  • @illumi1749
    @illumi1749 Před 10 měsíci

    when i try import the dxf into fusion 360 it comes up with an error "the selected dxf file does not contain units information

    • @MadModLabs
      @MadModLabs  Před 10 měsíci

      Make sure you have the units set to "millimeters" in the insert dxf menu.

  • @akunin417
    @akunin417 Před rokem +11

    Right thumbing the space... what sort of travesty is this?

    • @MadModLabs
      @MadModLabs  Před rokem +13

      Right thumb gang rise up 🤣

    • @smd824
      @smd824 Před 4 měsíci +1

      i thought this was normal , ive been doing it all my life 😭😭

  • @Treychik
    @Treychik Před rokem

    -wanna design a keyboard?!
    *I watched a video
    - ... ... ... nope

  • @AndehX
    @AndehX Před rokem

    "Oh crap, there's an emergency! I better shut this game down quick! I'll just press Alt+F..... oh."

    • @MadModLabs
      @MadModLabs  Před rokem

      Haha! Fn+Esc makes a pretty good alternative to Alt+F4. It just depends on what you set in the firmware. Thanks for watching!

  • @mascio7195
    @mascio7195 Před rokem

    *Promosm* 😍

  • @badmanPL
    @badmanPL Před 28 dny

    The sound is awful, but shoutout for the video in general. Is it possible to create a hotswap custom board instead of wiring and soldering?