Pi Pico + KMK = the perfect combo for Custom Keyboards
HTML-код
- Опубликовано: 27 сен 2024
- ARM for Keyboards with the Pi Pico rp2040 using kmk
Links:
Circuit Python .UF2
circuitpython....
KMK Firmware
github.com/KMK...
3D Files & Config Files
github.com/Jan...
Socials
Twitch: / janlunge
Instagram: / janlunge
Discord: / discord
GitHub: github.com/Jan...
I built a keyboard with the pico recently as well and love it for many of the reasons you listed. A couple of other things worth mentioning: only $4 per board - so cheap! Also, I found KMK to be easy to work with and slightly more powerful than QMK for a few things I wanted to do. I can edit my keyboard firmware on any computer with a text editor.
lol, that's great! But watch out for bad actors who may want to keylog/or trojan macro your board while you are not at desk.
Hi, is a rotary encoder supported with this firmware?
@@neail5466 Yes, KMK supports rotary encoders. You can also easily tie in anything Adafruit has a library for (a lot of stuff), since KMK is built on Adafruit's CircuitPython language. You could even make your keyboard change colours to warn you that your room is too hot/cold using the pico's onboard temperature sensor with pretty minimal coding. That's a thing I plan to do, since I get so focused I don't realise how bad the temperature is until it's already made me unwell.
@@IOUaUsername Great, thank you for your response.
in case I could make a wish ...
a step by step guide for a 3d printed split keyboard handwired with hotswapable low profile switches :D :D :D
(with enough keys for a german layout)
videos like yours are much inspiring!
i’m just gonna let you know - handwiring hotswap sockets is absolutely hellishly bad. genuinely not worth it at all. it’s also worth noting that if you can have pcb’s manufactured for a split board, (this is much easier and usually much cheaper than you’d think, i promise, i could help you through it) kailh choc switches can have their springs swapped without desoldering. food for thought!
Your Pog system is great dude keep up the innovation
Really nice vid!
It's thanks to your videos that I started building my own micropads
Same, it was really motivating.
Thank you for making this video. Got everything working and it was a great start to custom keyboards!
Hey dude. Only just discovered this now. OMG this is so much easier than the usual way.
I'm pretty sure the Adafruit guide on CircuitPython has a way to make it so that, when the drive does not show up, the program has write-access to the storage-drive. And making the storage-drive show up when plugged into your computer IS the switch you toggle.
Thanks for this! Just started playing with KMK on a void30 board, and didn’t know I could hide the drive.
Thanks for this video, it may have gotten me a little closer to having a solution to my problem; a offline portable Bluetooth unit that will type my passwords into apps & sites at the touch of a button. As a keyboard this may work that way
Tolle Arbeit, danke. Als universeller Rückkanal könnte auch ein kleiner, simulierter USB-Stick sein. Dort kann eine Applikation Dinge reinschreiben wie Status, Farben, etc.
Ich hab sowas für ein LED-Panel gebastelt.
Projects like the GP2040-CE (which is for fighting game arcade controllers) have a built in web configurator. It kinda make me want to give a try and build a webserver within kmk. That would replace VIA with no aditional software, just by typing a url you would be able to have a gui to change the keyboard config, pretty crazy.
That would be a really interesting concept, but then the keyboard also needs to connect to your current wifi network.
@@JanLunge it would just have act as a dhcp server and act as the gateway. theres no real network running on it other than the dhcp server, but nothing will be connecting to that server anyways
There's also vial which is based on qmk which let's you see and change the config from an app (and even a webapp).
Well I decided to go with the KB2040 and installed it with the encoder and the 3d printed case you’ve got Jan (had to file the usb socket and longer screw). First time with KMK so I’m sure I’m so I’m not that far into it. Not having vial support and no obvious way of OSL(1) or whatever the equivalent of QMK is kinda tripping me up at the moment.
I have a nice little layout coming along slowly for a a portable Macropad so it’s nice to experiment with though. POG keeps overwriting my pinouts with board.GPMISO and what not so I’ve put that to the side at the moment as I’m assuming user error on the config.
Keep up the fantastic work Jan, thanks 👍
Can you make a video about how to wire the matrix? or do you already have one.
Really hoping you do a small macropad demonstration. I Followed your code and LOVE the way it be changed on the fly. My attempts with doing a simple copy/paste macropad (Sequences) came to failure. I couldn't really understand where to put the code in provided by KMK and how it related to the pin numbers. Even finding examples on the internet was pretty hard (my google foo is weak)
Glad this helped.
though i haven't yet dived into custom keyboards (lack of time, money, and a general indecision about what to get), i very much appreciate your knowledge and chill vibes :]
Nice rain world pfp!
How many key input does it support? How many input does it support all together at once?
Can I use chord typing? If not then teach us how to make chord typing keyboard...excited to see you do it
Wow, nice to hear about KMK! I didn't know it is so mature. Pico is crazy cheap... wow... while I would still like to have my keyboard wireless, I wonder if there is a possibility, to do it cheaper then nice!nano.
Hey, have you looked into the PICO W? I tried upgrading the 1UP planck with it, but failed. Supposedly, it is built with the hardware for bluetooth, but the firmware isn't supported for it yet. It seems like a quick way to basically upgrade any keyboard with the PICO to a wireless keyboard.
Internal bluetooth support has been recently added!
Stark Motorway
Awesome. Thank you.
Waelchi Roads
I'm using 2 of the USBC waveshare rp2040 for both halves of my dactyl manuform
1:40 I'm sorry I know this video is old but what is this tool I need it
Never mind I found one, thanks for showing me this exists
I recently watched your DIY keyboard project and was really impressed. I'm working on a similar project for gaming mice at and would love to explore a collaboration.
If you’re interested, let’s discuss how we might work together
Hello, greetings from Peru, I would like to know what microcontroller I should use to make a full size keyboard, that it has for the RGB lights and the LED lights, also that it has one or another encoder? Thank you for your videos, even though I don't understand English well, you explain it so clearly that it is not necessary to have advanced English to understand you.
It's great to see new content from you on YT!
I have two picos with KMK that drive two different macropads made from a NeoKey Ortho Snap-Apart. LEDs and everything works great. But I sometimes do have issues having them connected while my computer boots. Also they freeze from time to time and I have to unplug and plug them in again. Did you notice anything like that with your macropad?
I did have the boot issue with not responding in early boot phases with other qmk boards, freezing did never occur for me though is the circuit python drive mounted while these things are happening? I saw there is a soft reload feature that can reload the program when files get changed, could be something. But this did not happen to me with the macro pad yet, I will see how well it will perform on my main keyboard once I change that.
@@JanLunge Jepp, the drive is always mounted as I didn't get to disable it yet. I wanted to add a check for a keypress in boot.py so I can easily enable the drive whenever I need to. Maybe that boot issue I have sometimes has to do with the linux kernel, I'm not sure.
@@JanLunge Ok, after finally adding a "devmode" and disabling storage, midi and repl by default its running much more stable 😀
Deontae Mission
Can i make a macro keyboard that has its own MCU with the pico. My job won't allow software on my work computer. I've purchased a macro keyboard that stores the keystokes but has very little storage
Yes actually that a very good usecase the pico has a lot of storage for macros etc
Luther Wells
Great vid
but
do you need both uart pins ( full duplex) or can you just use Tx to create a half duplex connection in kmk for split keyboard?
Elsa Valleys
Bernier Grove
Just a thought. USB keyboard / HDMI or VGA to replace a VT100 terminal all in a keyboard package.
Shayne Ways
Skiles Ferry
Trantow Village
hi is there any way to add a thump joystick to a small custom keyboard using Pi Pico + KMK ?
Ashleigh Terrace
Hello Jan ! And thanks for all your nice content :)
Could you point me to what tool is it you're showing at 1:40 for wiring to the switches? Thanks a lot ! :)
That is a wire wrapping tool, I used it to wire the w65 ruclips.net/video/2c5CeuCNbw8/видео.html
Thanks a lot@@JanLunge , I'll look into it :)
Hartmann Street
Fritsch Street
Abbott Parks
Can I use QMK(the one written in C) on Raspberry Pico Pi ?
Yes that works it needs to be compiled for the rp2040 but i have used a pico and a helios with vial
Cayla Isle
Do these custom boards report to a pc/mac like standard generic keyboards?, I'd like to create my own custom keyboard with coded macros in the hardware for certain games (I have imagine storing them in an SD card or something), the problem I have with gaming keyboards and mice is that they require software to program macros and stuff that is usually detected and blocked by anticheat software.
For any purists, don't want to bot, I want to avoid unnecessary use of energy and the tedium of repeating a task over and over, also I once developed tendinitis caused by creating potions in Ragnarok Online, not a fun experience and that conversation with the doctor was pretty uncomfortable lol.
Thanks for any response.
All macros and layout customization run in the keyboard and will be sent as normal keycodes via usb hid like any other keyboard cheat tools cant detect a difference to a normal keyboard input as far as i know. The pi pico has enough storage space that you can just save the macros on there directly.
@@JanLungeMany thanks for your response Jan, I'll dig up into the project, thanks for your time and support
Hi 🙋🏻♂️,
thanks for your video. How is this tool called at 1:43, which you use to wire up the wire around the pins, I never saw this smart tool 😮
That thing is called a wire wrapping tool and with wire wrapping wire you can use it to create solder free circuits
Denesik Road
What is the 'simple solution' you mention about updating keymap from the PC? Can you post a link, ty.
You can just edit the files by hand and change the keys no software needed at all. This is easy to do and the keymap in the python file is simple enough to read but a gui tool for this should make it even easier I will post an update when I found something that works well.
Great!!!
Aww, sehe gerade Du bist ja auch aus Deutschland 😅 Danke für's Video, möchte ich unbedingt ausprobieren 😌 Funktioniert der Pico W eig. nun auch gut mit BT? Kannst Du mir verraten, wie sich dieses Werkzeug bei 1:43 nennt mit dem Du das Kabel um den Pin wickelst, sowas fehlt mir definitiv noch? Hält das auch ohne Löten?
LG aus Hamburg
Moin, der pico w hat zwar bluetooth support aber circuitpython leider noch nicht github.com/adafruit/circuitpython/issues/7693 also läuft kmk dann nicht mit bluetooth.
Das Werkzeug ist ein wire wrapping tool hab ich so auf amazon gefunden das hält sehr gut ohne löten und lässt sich auch leicht wieder entfernen.
LG auch aus Hamburg
@@JanLunge 🙋🏻♂️ Bin verwirrt, hast Du meinen Kommentar hier gelöscht? 🤔
RUclips moderiert die Kommentare etwas selbst ich lösche hier nix 😄
@@JanLunge Oh, das wusste ich gar nicht, die sind da wohl sehr streng 😖 Danke 😄
There is PEG for gui, bit annoying to use tho as it overwrites manual edited code.
I always thought it could be cool if you could switch the keyboard layout by just using a switch on the keyboard itself, do you forsee any issue with such a feature?
With what i currently tested the keyboard would then restart which has a slight delay but that’s the only thing
@@JanLunge no problem with that, sounds great! Thank you Jan 🙌🏻
I have a burning question for you regarding these things. it's for a future project.
Am I able to have 2 x raspberry pi pico's on a board. - with 5 keys, but have each key Y-lead off to both pico's?
I want 'F1', left-arrow, up-arrow, down-arrow & right arrow sent to TWO PC's at the exact same time? is that possible?
what would be the best thing to do if it is possible? like, the wiring....
thanks
this could get tricky, the matrix scans for the keys could interfere between the controllers, maybe having the diodes face in different directions could work, but i think the safest way (not the easiest) would be 3 controllers 1 for the matrix scanning and it can send data via i2c or bluetooth to the other controllers that them press keys on the connected pc kinda similar how xmk makes its magic work. or you just use an app on the pcs and connect the keyboard via wifi so it streams to both pcs at the same time but with a custom receiver app.
Include a html to read and display the config
Will there be a difference if we use Pico W instead of Pico? Will the number of available pins get reduced?
They do use the SPI pin as far as I could see, but not fully sure what limitations this will have www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html#raspberry-pi-pico-w-and-pico-wh
Does anyone know of a discord where I could get some help. I've been trying to get my new ferris sweep keyboard to work for ages now and it just won't. I did everything in this video. There was even a premade keymap on the github that I was just able to grab. Yet when I press any buttons they just don't output anything. I have no idea how this is supposed to work. Please Help I want to use my keyboard and I'm losing it
Maybe someone on my discord can help: discord.gg/ctYr5BVF7b
Dorcas Spring
Dach Ridges
Ruecker Overpass
Thompson Port
How would a simple keymap update look like for your setup?
I will likely just edit the key code list in the keymap file by hand for now, likely I will write something to write the keymap list to this file with a simple GUI tool. But this will likely take some time
@@JanLunge I hope you will do some more videos on how you do different things and different set ups (macropad/sequences) and the such. It looks like they are shutting down discord/matrix so I can’t ask my questions there. Still rather watch videos as I tend to pick up stuff easier that way.
Definitely Picos over Arduino Pro Micros at this point.
Then again these bluepill boards have a lot of pins.
The teensies with enough flash to run VIA aren't really complicated to use but if you program it once before setting the partitioning to work with VIA, that chip is never going to support it because the teensy firmware has, for some reason, locked you out of changing it forever.
Was anyone able to map Copy/Paste to their macropad?
For kmk the easiest way to do this is to use sequences, for copy you can use the keycode KC.LGUI(KC.C) on mac or KC.LCTL(KC.C) on windows/linux .
Bogan Ports
Emily View
Brown Scott Wilson Frank Brown Jennifer
'promosm' 🙃
Thank you very much! Fortunately I got two Picos laying around here and I wondered if I can use it in a Dactylus Manuform keyboard. So I'll definitely give it a try!
I hope to see you soon on Twitch again. Have a nice day! :)
Did you succeed building Dactyl Manuform with Picos?
You can do 8 bit inputs. Make sure to space digits tho so they don’t add up
I have wired everything correctly and when I try checking the LED box keyboard stops working at all. I don't know what to change in code. Please help
i'm fink people need mirror keyboard to working like bodybuilder asymmetry of brain. i fink about two keyboard in one
Hello, is there any data on the latency of a pico board? I can't seem to find any.
Garcia Robert Miller Donna Brown Donna
Nice content!!! 🔥
Buckridge Field
Marvin Prairie
Murazik Shoal
Bartell Station
Keegan Path
Schowalter Pine
Mosciski Mill
Schultz Isle
Eunice Haven
Lakin Ridge
Johnny Pass
Keep up!!!! I'm a big fan from Myanmar.
Devante Glen
Zelda Crest
VonRueden Lane
Hildegard Station
Felicia Motorway
Clovis Track
Simone Plaza
Goodwin Street
Hickle Mission
Would it be possible to use this with a laptop keyboard?
All I've been able to find about interfacing with laptop keyboards is people using a relatively expensive teensy and I am wondering why they didn't use something like the raspberry pi pico instead?
Petra Ridge
Daniel Glens
5:50 there is a tool similar to via for kmk called Peg.
I will check that out, thanks.
What was the tool used in 1:41 I want one of those
That is a wire wrapping tool (actually called that) that I got from amazon for about 20bucks