Design Your Own Keyboard!
HTML-код
- Опубликовано: 29 июн 2024
- Go from zero to hero by following along as I design a PCB for a custom keyboard. Follow along as I prepare a gerber file to order boards from PCBWay! The detailed walkthrough contains everything you need to know to create a custom keyboard PCB using Ergogen and KiCad.
Thanks to my sponsor PCBWay for supporting this video. PCBWay offer PCB fabrication, CNC and 3D Printing and more. They have been super efficient and friendly with all the projects I’ve used them for and I’m very happy to recommend them. You can use this link to support the channel. www.pcbway.com/setinvite.aspx...
Links:
My fork of Ergogen: github.com/benvallack/ergogen
KiCad: www.kicad.org
Ergogen UI: ergogen.cache.works
🪛Soldering Essentials!
Tooling up with these links helps me out at no extra cost to you. Thanks! 🙏
Heat Proof Mat:
Amazon UK: amzn.to/3nn8tiB
Amazon US: amzn.to/3nn8tiB
Soldering Iron Kit:
Amazon UK: amzn.to/3Frdw87
Amazon US: amzn.to/3ouxQ1o
Lead Free Solder 0.6 (for sockets and switches):
Amazon UK: amzn.to/3co1GyM
Amazon US: amzn.to/2YSfZZs
Lead Free Solder 0.3 (for smaller work):
Amazon UK: amzn.to/30A2Yog
Amazon US: amzn.to/3HDDU0q
Flux Pen:
Amazon UK: amzn.to/3IemWVP
Amazon US: amzn.to/3Ko9lNm
--------------------------------------------------------------------------
Watch this next for more details on my custom keyboard framework: • “The REAL Ergonomic Ke...
Details on my 16 key layout:
• Has Your Keyboard Got ...
Or how about 34?
• You Won’t Believe How ...
Or if you're feeling totally excessive, 36:
• My CRAZY 36 Key 5x3 Mo...
--------------------------------------------------------------------------
Contents:
0:00 Intro
1:18 My Custom Keyboard Format
1:52 Ergogen Basics
7:24 Installing Ergogen Locally
8:08 Outlines
11:34 Creating A KiCad File
13:10 Switch Footprints and Nets
14:42 Controller Footprint
15:11 Keycap Outlines
16:05 Additional Footprints
20:03 Bind Values
22:29 Routing
32:37 Adding Artwork
38:40 Uploading to PCBWay Наука
Subscribe to my new custom keyboards channel! www.youtube.com/@BenVallacksKeyboards
Super excited to be one part of your Keyboards, Ben
Yay! Thanks for all your support!
Our pleasure 🥳🥳
Ben, great video. I love the series.
What do you think of doing a video on how to modify open-source boards that others have created? One of the beauties of open-source keyboards is building on work that others have done. So for instance the very popular Sofle keyboard was based on Lily58, Corne and Helix keyboards. It would be great to show how to take the Sofle and (for instance) add another thumb button, then create the PCB and case for that new board.
This is a great tutorial on Ergogen! Thanks for the good work Ben. Keep it up!
Thank you. Been thinking of building my own macro pad and this video will be so helpful in order to get it done. I really appreciate the time and effort you put in your videos.
Perfect timing! I had just started trying to figure out Ergogen after watching your earlier video. Fantastic content as always.
Really high quality contents here, Ben! I’ve been stalking for a while but this video is just… **chef’s kiss**! Keep up the great work, you’re heading in the right direction. ⚡️🔥
Our unofficial mascot at it again! Wonderful video... Thanks for all the work you've put into popularizing Ergogen!
Been putting off using ergogen for a while now since it looks a bit too complicated, but this video might finally push me to finally jump into the last step in completely custom keyboard.
Same!
Saw this while building one on kicad... down to the microcontroller
Fantastic work. I've worked on editing Corne PCB and I was thinking of doing an automation of the process. This is exactly what I was looking for. It's amusing the amount of ideas I had that I've just found out you've already explored.
This is absolutely astounding work. I can't wait until I figure this all out and can build my own.
Wonderful video Ben on creating custom keyboards!
Check out this new video on hot air soldering ruclips.net/video/yNOGEtqn85o/видео.html
i was about to try and design my own pcb with your old video! perfect timing on this
If you found this video useful you can help keep this content free for everyone by hitting the Thanks button below the video - super appreciated.
I built my first wireless split keyboard after I saw "The Card" and now I'm building my second one with cad files for the case. Thank You!
Another excellent content!
Great video! I got inspired by your previous videos about making my own keyboard. I hope there will be a follow up video for this to show up how your board turned out
Absolutely - PCBWay have already shipped the boards!
Yes!! Love the keyboard videos!!
Great video! Every time I watch one of your videos I get a bit closer to making my own keyboard from scratch hahaha
Thanks for this video! super helpful.
Finally got everything routed today, and just ordered the pcbs. I ended up solely using KiCad to make the board out of personal preference, but this video was still a huge help and inspiration in the first place. It feels great to know that I'll have fully designed and built this thing from the ground up. Thank you for making all these keyboard videos and getting me into this crazy hobby.
Awesome!
Hope the build went good, did everything go according to plan?
@SirPanda I made a slight error with the pcbs. I put a track right on the edge of the pcb, and when they were manufactured, the track ended up not being properly put on there due to the slight inaccuracies when cutting. Fortunately, i managed to solder a bodge wire on either side of the keeb to fix the problem, and the keyboard has been working perfectly ever since!
@@ryderr4453 that’s awesome, glad it turned out well!
Ben : **uploads any keyboard-related video**
Me : **slamdunks the Like button before even reading the full title**
Love it thanks!
Yes! I've been waiting with baited breath for this
Honestly, this to me seems extremely more complicated than just using kicad and it's tools. I feel like there is a point of diminishing returns with ergogen, where if you need to do this level of advanced tweaks you'd be better of putting in the time to learn kicad.
I can see it being really useful for a beginner to make a simple PCB prototype, but if you start to feel the need of using custom footprints, rearranging net values, editing footprints and pads, then I think it's easier to do within kicad.
I like that this video now exists, because it is certainly useful for a lot of people. But I hope that at some point they get out of the ergogen comfort zone and give a shot at actually using kicad.
That’s interesting, I think now I have my footprints all set up I am definitely going to find it easier keeping my Ergogen config in a repo and just iterating it there, then just routing in KiCad and uploading to PCBWay from there. I just can’t see a KiCad only workflow offering the rapid iteration and relational positioning simplicity that Ergogen offers. I do see your point though - there is an appeal to not be bouncing between apps.
I'll be the first to admit that integration with KiCAD could be tighter (schematics, to AND from direction, preserving routing, etc.), and that some customization could be easier (footprint sideloading, simpler and centralized net adjustments, etc.). But I believe the complete opposite about where Ergogen can (and is intended to) shine. If it's just a beginner, simple PCB, then do it in KiCAD and forget it. But if it needs to be exact, deterministic, adjustable, iteratable (all of which are pretty valid and valuable requirements for hardware design), then the more complex your board, the more you save by actually making it using a declarative workflow. In short, it's very much FOR the complex usecases, and the "worth it" tipping point will hopefully only get lower over time :)
@@denesban If this is what you think then I'll definitely try to make something in ergogen in the future. I'll let you know if I'll change my mind about this or not.
I'm still new to PCB's and attempted to use Ergogen to make a keyboard but since I have never coded before and the small attempts I made withing ergogen failed misserably I decided to properly learn to use KiCad and it's been very easy since you are basically copying alot and dragging and dropping pieces in place. For me it's alot more sensible, turns footprints into lego pieces that I need to lay out properly.
@@bd93nl45 that's how it feels to me as well (but I'm a web developer and code all day)
Thank you
It's a great video and educational
Hey Ben, thanks for the great video! I just found that KiCAD, at least my installation, actually comes with a way to edit PCBs without adding them to a project. The executable name is "pcbnew" and it just launches the PCB editor interface.
Watch next - how to build these components onto a board:
ruclips.net/video/vr8LkjsRqZs/видео.html
Where's the piano's gerber files?
@@thegrandnil764 You can download them from PCBWay actually - I think the link is in the colour comparison video.
YES THANK YOU
For anyone experiencing an issue with the ergogen `row_overrides` keyword not being recognised, i have the solution.
To exclude a key from a column you create a `rows` key and set `{row}.skip: true`
```
pinkie:
rows:
top.skip: true
```
Thanks!
it keeps getting weirder and weirder, I like it
I was considering messaging you to request this, so thank you!
This video (and the others along the journey) really inspired me to start making my own keyboard. I'm going from a 100% keyboard though, so I'll have to ease my way down, and has planned for 41 keys, a trackball (perhaps, or another key) and a rotary encoder. That'd be 43 possible key presses, a pointing device and an encoder. I assume two Elite-Cs would work with 24 I/O pins on each.
But thanks to a comment here under this video, I realized that because I'll have over 36 keys, I'd need diodes. (I was wondering why yours didn't have them).
Now there's just one more thing that I'm trying to find an answer to: Serial or I2C to connect the two halves? I read something about I2C not being able to use RGB (The trackball I am looking at has RGB, and I thought it could be fun to play with as a layer indicator, or something like that). Serial has some latency issues though, so that's something I want to avoid.
I'm having a blast watching these videos! Keep it up, and I'm sure I'll be more and more inspired for every video! The planning stage is so much fun, because I'm considering mounting holes for a future 3D-printed case, and other tenting options.
hmm still not sure why his design doesn't have diodes :/
@@jdcl3446 if you have only one key per pinout on the microcontroller, you don't need diodes if I understand it correctly.
with ortho I would have arrow keys on a layer, however if it is staggered columns then I would have a cluster for navegation
Could the form factor, weight, cost, etc. of these custom keyboards be reduced by making a purpose built microcontroller board for this purpose? Perhaps a small microcontroller board, with SMD plates for direct soldering to the main PCB? Could be a nice thing to make for custom keyboard folks - a reduced-functionality microcontroller board that uses less power and takes up less space. I'd get on that starting tomorrow if I knew anything about how to design a microcontroller PCB. From what I've seen, it's not easy, ehehe
this is very helpful I would love to try this one day but I already feel very endgame with my wireless corne soooo.....
I’ve come to realise that endgame doesn’t exist heh
@@BenVallack my pockets aren't deep enough to believe that
Hey Ben, just curious if you've found any boards like the nanos that instead of using Bluetooth they use 2.4ghz instead? Or a place i can find out if there are any boards like that
Do you have an intro video on what an mx or chock style kb is? A dummies guide for those of us just starting out would be great.
That’s a good shout - will see what I can do.
this looks amazing, but designing my own PCB is way beyond me. Would you consider opensourcing your PCB templates? or, i'm even open to buying them from you, and them maybe try modifying them a bit (moving columns up/down), if needed
cheers
Any idea where you can get small quantities of analog keys? I’d like to experiment with these, but the only way seem to be cannibalising a new keyboard.
i just wanted to learn how to make my own WASD key for a fight stick but i guess its better to just buy them or just stick All 4 keys into the wood seems like my cost would still be the same if i buy or make my own thanks for the help tho
What's up with the pricing on these sites? Using the default settings shows pcbway costing 3 times as much just to build the pcb?
Thanks for this! For the artwork it seems a bit strange to convert from vector to bitmap back to vector again, is there a way to directly import a vector artwork?
Indeed - not that I know of but this is new to me!
Hey Ben Vallack, I have been watching you so closely and really appreciate your keyboard videos. I am stuck at "installing Ergogen locally" I can't seem to get the commands right in powershell on widows 10, any recommendations to learn how to do it correctly?
If you jump on the Ergogen discord I'm sure some more Windows-familiar people will be able to help. Cheers!
@@BenVallack I figured it out! I was not running npm in the right folder. I am back on track. yay! thank you for responding.
i want to buy a prebuilt split board key board, and low-profile keys, where do I go to buy one of those? Thank you for this video.
Re: Adding Artwork (32:37) It seems that KiCad actually Re-Vectors the provided bitmap. I don't know enough about the tools at hand (yet) but maybe there's a way to directly import it as a vector?
Yep we are going from vector to bitmap to vector! I couldn’t see a way to preserve the vectors in one trip though.
would that work on keyboard with a preprogrammed pcb? bought a whole keyboard and having problems with the keybindings
so many thanks for you help Ben! Ive uploaded my gerber file to pcb way, some how everything looks good except my plots for the choc switches aren't showing up as through holes they are just blue dots, any chance you know what the fix is here?
Did you generate the drill files ( 38:37 )? Other than that I can’t think what that might be sorry! PCBWay support may be able to help too.
For this kind of bitmap you which is only text you'll always get best results using PNG over jpg. This happens because jpg is really meant for high compression which is possible in images with mid tones and gradients like photos. 😉
True - not sure why I used jpg! Massive mistrust of bitmap2component behaving itself I think!
@@BenVallack hahahaha. Since components are vector it would be nice if kicad could simply import SVGs directly.
I'm so close! but do you know if the nice!nano v2 will have enough pins for 20 keys on each side of a split keyboard?
I think the limit is 36 with two boards. You can make it to 36 :)
please put a rgb led on :)
Have you considered using a GND fill zone instead of manually routing the GND net?
Yeah I had that on the Ferris build, it messed up the connectivity when I had it on my legs!
@@BenVallack Oh really? Interesting. Did you figure out why?
@@KyekOfficial I guess just the effect of two sheets of metal essentially between the controllers (keyboard halves were on the outside of my legs facing out).
I'm trying to imagine Picasso in his Blue Period creating the images with indented lines of code...
When you have a keyboard that small, you should just use a chordal keyboard.
Do you think I could use stuff like this to make my own custom Slide-out QWERTY keyboard for my own phone? I've been dying to get something like it made for my own phone for a while now.
Sure! You might need/want to use some other kind of switches that are smaller though.
How come there isn’t a function that draws the optimized routes? Feels like a problem already solved by the work in graph theory.
There are third party plugins that can do that. Bit fiddly when I first looked but I’m sure they are worth persevering with.
What about the software? I can't find any info on the software. In your videos you show layouts and kiCad and then always stop. None of you video titles mention anything about it.
ZMK?
How exactly does one understand and know what "column_net: " is supposed to be and for which key. I am so confused by this. I'm currently trying to make a unibody ferris sweep compact with a nice nano! but I cannot wrap my head around the routing and controller stuff and where everything is supposed to go... not with ergogen and not with KiCad. It's very frustrating and I've failed to find any helpful documentation.
The column_net values are what tells KiCad which pad/hole connects to which. I cover this in the video at some stage - basically if you open the file in KiCad you can see the labels of the pins on the controller footprint - then you can look at a pinout diagram for the nice!nano and see which one you want to go where - then match them up in the Ergogen config.
This seems almost more complicated than doing the board in kicad from the beginning?
Hello, is this PCB two layers? I need to make my PCB here. help me please if you can
Okay… how did I get notified about the one key-keyboard today, but not this one! Sad. 😢
Haha notification bell 😉
your microcontroller footprint is different than other boards that I saw, what's is the benefit of this design? it seems microcontroller pad is not connected to the middle through hole, right? if you don't mind please share this board kicad design.
Yeah this is a reversible footprint, you can solder the jumpers to get the controller to face the same way on both halves
Hi, I came up with a layout I like, planning in a drawing software by moving keyboard pieces around... Now that I've figured that out, is there a company I could send my layout and have the pcb designed to make things simpler for me?
You could ask on the Ergogen discord discord.gg/ZU9acR2M but honestly what I show in this video is not as scary as it looks!
@@BenVallack - That's right! I'll sure stay tuned for more!
How do i install your fork of ergogen?
i understand that it has been a year since this video came out, but i am trying to follow along and i can not get past the whole rows_overrides: part. nothing is happening to my rows or columns like yours. i am using a different version and maybe the commands have changed? any chance you will be making an updated video?
Yeah Ergogen had an update and a lot is changed I think. I’ll try and get around to an update on my keyboard channel at some stage!
To exclude a key from a column you create a `rows` key and set `{row}.skip: true`
```
pinkie:
rows:
top.skip: true
```
Is that strictly under 36 keys? Or 36 or less? I really need those 3 thumb keys ;)
36 or less, just means you don’t need diodes so much easier to build. Should be fine to have the full 36 on a wireless nice!nano board like this
whenever i add "row_overrides" i get an error, ~~Error: Unexpected key "row_overrides" within field~~
Did you fix that? I'm gettin the same
Which custom layout you running these days?
Basically the one in my 16 key vid - plus the repeat and direct caps alpha 2 key I mention in that vid.
How fast have you gotten?
@@mrtonystafford still in the 80s - I am wondering if I’ve made some errors in the alternative positioning I’m using though. Will see if the 1.5u keycaps solve it otherwise I’ll need to rethink a bit!
At minute 2:56
pinkie:
row_overrides:
bottom:
seems not to be working, any fix?
Thank you guys!
Ergogen has a new version and a lot got changed I’m afraid. I am hoping to do an update video at some point!
To exclude a key from a column you create a `rows` key and set `{row}.skip: true`
```
pinkie:
rows:
top.skip: true
```
Any way to do this with, say, Altium or DipTrace?
I really, really, REALLY don't like KiCad.
Not sure on that - no idea if the files are compatible.
@@BenVallack I tried, I know that Altium CircuitMaker doesn't have an import function, but I'm not too sure about with DipTrace.
I know that in Altium Designer (the really expensive one), you can import it, but for CM it would have to be done entirely differently.
that USB connector is not dead end near switch ? how put it ?
The board was inverted ? the USB connector must points to ?
at video 1:20 ?
Yeah I had the footprint the wrong way around in the first version! Have to take the key off to charge it. :)
@@BenVallack and the actual PCBs ? any tip ?
Is there a write up of these steps? The video is too fast for my brain LOL
didn't understand anything from the outline part
Keep spending a bit of time with it - it starts to make sense.
This was by far the messiest workflow I've ever seen.
In what sense?
This video still assumes basic electronics knowledge so where do i learn the specific keyboard circuitry knowledge for this video of yours to make more sense?
Just think of it as circuits. Each key switch needs to complete a circuits back to one pin on the controller, and the other to ground.
"kicad is pretty complicated"
me: ok let see what is ergogen
me after 5 minutes + pause time: (ಥ﹏ಥ) I learned that it's not about complicated, it's about brain cells
Ergogen is basically just cad for programmers🫨🫨🫨😆
Thanks!
Thank you so much for this
@@BenVallack For sure, thanks for putting out amazing content. Let me know if you ever drop a Udemy course.
Thanks!
PCBs are in production 👀
Thanks so much!