How to Set Up ZMK Firmware From Scratch
HTML-код
- Опубликовано: 22 июн 2024
- This video should hopefully help you regardless of if you just want to build firmware for an existing board or create one entirely from scratch. We'll cover both matrix wiring and direct pin wiring along with keymaps, compiling, and flashing. ZMK heavily leverages GitHub Actions meaning everything is compiled remotely making it possible to compile and flash firmware from an iPad or other device that isn't a computer.
~ Links ~
My Keyboards: keyboards.scottokeebs.com
My Shop: scottokeebs.com
Merch: merch.scottokeebs.com
ZMK Docs: zmk.dev/docs
ZMK Discord: / discord
ScottoKeebs Discord: / discord
~ Handwiring Tools ~
TS100 Soldering Iron: amzn.to/3LCsrkb
D24 Chisel Tip: amzn.to/3VFxiES
63/37 Solder: amzn.to/3uBlMPu
~ Handwiring Parts ~
1N4148 Diodes: amzn.to/3Ccljbb
16g Copper Wire: amzn.to/3xLDVvJ
Raspberry Pi Pico: amzn.to/3HglCVb
Arduino Pro Micro: amzn.to/3HkR9Fn
Ethernet Cable: amzn.to/3uyaOKr
M2x6mm Screws: amzn.to/3UI1bDH
M2x8mm Spacer: amzn.to/3Y4KzJ3
M2 Heat Set Insert: amzn.to/3WjklB9
Durock Stabilizers: amzn.to/3FgcLQR
~ 3D Printing ~
Ender-3 Pro: amzn.to/3VIWryL
PEI Magnetic Bed: amzn.to/3Hi7URx
Dual Z Upgrade: amzn.to/3h7DTJy
BLTouch Auto-Leveling: amzn.to/3UGEBv8
~ Favorite Cheap Switches ~
Gateron Milky Yellow: amzn.to/3Bk0Cci
Akko Lavender Purple: amzn.to/3VJy440
~ Social ~
/ joe_scotto
/ joe_scotto
ko-fi.com/joe_scotto
~ Community ~
ScottoKeebs Discord: / discord
Handwired Keyboards Reddit: / handwiredkeyboards
~ Timestamps ~
0:00 - Intro
0:43 - GitHub
1:15 - Preparation
3:14 - Creating the Shield
3:48 - Keyboard Config
4:33 - Matrix Wiring
7:20 - Direct Wiring
8:14 - Keymap
9:09 - Compiling
9:53 - Flashing
10:13 - Outro
~ Disclaimer ~
Some links may be affiliate links where I will make a small commission. Nothing in this video was sponsored by any outside party and I wasn't paid for the content in this video.
#zmk #firmware #mechanicalkeyboard Наука
So guys, just as usual if you have any questions… feel free to ask! Also, as mentioned in the video check out both my Discord (discord.gg/vN6X3z8eyv) and the official ZMK Discord (discord.gg/uGrqpuWaut) for even more help 🙂
I've got some nice!nanos arriving today, this really helped me feel a bit more prepared!
Do you have any plans to cover nice!view displays? I got a lot out of your OLED video as well.
Genuinely helped me a lot, I have struggled to create a shield for a very long time. I just managed it yesterday but this video would have made things much easier!
Thanks. Thanks also for the nice little tricks like &bootloader key, I was looking for this one
Nicely done. Thanks for taking the time to put this out.
ScottoGang! Thanks for the ZMK video =]
I’ll be doing a wireless Corne soon and I have been procrastinating getting ZMK set up~
Hype!
Actually testing ZMK myself, I spent like an hour on all the compiling and waiting until I found that direct pins need different GPIO_ flags than your video!!
They need to be flipped for direct, like this: ,
Like so that others don't get burned like me.
Super quick & but sharp and sufficient explanation to de-mystify this nice nano subject !
lets goo been waiting for this..... keep up the good stuff!!
Thanks man! Super clear and didactic!
Good stuff Joe!
thansk for talking about ZMK. can you maby make a video about have to use a i/o expander in zmk
Great video!! @joe scotto Would love a video tutorial explaining on how to solder the battery packs to a wireless keyboard. also guidance on how to mount the battery package. Would love to have a super thin and light ortho split keyboard which can fitt in my pocktets and which connects to my ipad mini via BT and where I can basically work from everywhere with. Ideally also sticking it to my pants with valcro tapes or a magnetic connection. Ben Vallack made a video on how he wears his BT split keyboard but never made a tutorial on how to build the BT version of the sweep...
Finally! Typing this comment from my wireless keyboard 😎 Thanks Joe
Thanks so much, this helps me a lot, quick and focused tutorial. Are interested to do explanations on the rgb modules or battery?. Also i have an example for the complete list of pins for the nicenanov2, you may know that has 3 extra middle pins than the normal arduino
Many keep asking for RGB so it’s on the content list :)
As for the battery, I have a video where I briefly explain it at the end: ruclips.net/video/DvWJjn1CbM4/видео.html
The TL;DW is that you just get a lipo and solder it to the plus and minus of the Nice Nano. Typically 100-500mah and will last about 1-5 weeks.
@@joe_scotto actually I have resolved the RGB part, is pretty cool, and thanks for your suggest
Where did you get the overlay file from
The new Keychron B1 seems to have ZMK firmware.
How would I do this with an exciting GitHub zmk firmware?Building a totem and I’m trying to get the uf2 file
This is great but how do we do this for a wireless corne?
How would you be able to reach the bootloader binding with this keymap? 9:00
It looks like it's the same position as the MO switch, so I'm just not sure how that works. Thanks!
You wouldn’t lol. I just realized that… weird it compiles actually.
@@joe_scotto Ah okay, appreciate the answer -- I thought I was missing something!
Great video, I'll definitely rewatch this a few more times before I do my nice!nano build.
Thanks for this, but... what is the prerequisite knowledge for this? I don't even know what a shield is (yeah I looked it up but I'm just using this as an example). It seems like I'm supposed to know a bunch of stuff before watching this video. I did the ZMK tutorial on getting started, but everything else in the docs also seem to assume some prerequisite knowledge. PS I do know Git and Github, as I am a web developer.
while compiling im getting an error in west build, im getting a cmake error and a zephyr error can you help?
5:40 What he is saying here does make sense. However, I am confused as to why you didn't need to use `GPIO_PULL_DOWN` for the `col-gpios`. Any idea why it's different?
I believe the column pins become outputs and the row pins become inputs. Only inputs need to be biased.
I do not know why, but for me is only works when i swapped .defconfig file and .shield file.
I'd say I prefer KMK for now; it doesn't need to be compiled, an environment nor flashing unlike QMK - everything is on the board (most likely nice!nano or raspberry pi pico), all you need is to tinker with 2 files that are accessible with a click of a button
why did he use pro micro when he was making it for a nice nano? are they interchangeable (in code)
That’s how ZMK names the pins.
@@joe_scotto thank you very much
What do you mean by 'drop the file onto it' to flash it?
You drag and drop the .uf2 firmware file that the compilation command outputs onto the controller.
hey can you please make a video how to setup vial or via on ZMK corne ❤
ZMK doesn’t support any graphical configurators.
@@joe_scotto oh sh*t, ok thank you very much, than i will switch to qmk on my corne
I think I am missing a step here. Through what terminal? My own computer? through the github's terminal. Kinda confused here.
You use the terminal on your computer and then push it up to GitHub where it’s compiled for you.
@@joe_scotto i tried the terminal on my computer but it couldnt load the list that i saw in the video. Am i suppose to download something?
does it make a difference if i use a windows computer instead of a macbook?
@@ericfayhuynh Yes. You’ll have to use the windows commands, you’ll see a tab on the website for them.
Got my firmware built for xaio ble successfully but i dont know how do i connect via Bluetooth. I have connected this to pc via usb. Can i still connect via Bluetooth if its connected via usb, can i just use usb for power ?
Key bindings are working via usb so the firmware was flashed. My only confusion is how do I use the Bluetooth pairing without battery and just usb power, is it possible?
I'm not familiar with that controller but I know on the nice!nano it can use USB as power but will default to a usb connection if you connect it to a computer. If you try powering it off a usb battery pack you could test if it works.
@@joe_scotto I figured it out. Thanks for your inputs. Got it working on usb data cable power, power bank via usb and also battery connected to the battery pins of the board.
@@joe_scotto added this to the conf CONFIG_ZMK_KEYBOARD_NAME="Sanket XIAO" and also had to key bind and press &bt BT_CLR to clear and then the board showed up.
why go through everything, but then not show the last 3 steps?
This video confused me even more smh
Fr fr
Hey, how do you get the .shield , .defconfig and .overlay files?
It would be a bit tedious having to copy out all the code from the .overlay file from your video.
Cool. But wtf is ZMK?