DIY Macro Keyboard - Raspberry Pi Pico (Affordable & Awesome!)

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ม.ค. 2025

ความคิดเห็น • 84

  • @NerdCaveYT
    @NerdCaveYT  ปีที่แล้ว +2

    Leave a like for FLOKI - and remember to subscribe if you want a full loooong course on how to create your own custom macro keyboard.

  • @geekchameleon
    @geekchameleon 10 หลายเดือนก่อน +3

    Thank you for the video. I took this idea in a completely different direction. I provide IT support for a small office. The receptionist has confidential information up on her computer screen quite frequently as part of her normal tasks. The reception desk wraps around so customers can (and often do) position themselves so they can see the screen. They tried a privacy filter, but everyone in the office absolutely hated it. This project helped me make a "panic button" for her, which hides what she's working on and the information that should be protected. It only takes one simple action to hide the screen and an equally simple action to restore her workspace.
    I know I could do it better, but I did it in one evening and it does exactly what she needs. When she turns on her Windows 10 PC, she opens a second desktop (Windows + Ctrl + D). She returns to the first and does all of her work on it - the second is there but basically invisible and completely out of her way. I connected two capacitive touch sensors (30 cents each) to the pico. One (the "panic button") is attached on the right edge of her keyboard tray and the other (the restore button) is attached to the right back top of the keyboard tray. Both sensors are in a place she never accidentally touches. When someone comes up and can see the screen, she simply brings her hand to the edge of the keyboard tray. That activates the panic button and the second unused desktop is brought to the foreground. When the person leaves the desk area, she touches the restore button and her screen returns to exactly the same state it was in before. It's a simple "Windows + left control + left arrow" for panic and "Windows + left control + right arrow" for restore. This is faster to hide and restore than locking the screen, it doesn't require finding a remapped F7 button (for example) on the keyboard, mounting a couple of physical buttons that are awkward to find and doesn't rearrange anything on either desktop. The USB cable to the PC and the wires to the two capacitive sensors are all hidden under the desk. Interestingly, the most expensive part of this is the USB cable itself.
    Of course, this is a perfect tool for a kid to hide what he's _really_ doing on the computer when he should be doing homework, but I make stuff for good, not evil. ;-)

    • @NerdCaveYT
      @NerdCaveYT  10 หลายเดือนก่อน

      You are welcome, If you have a second desktop running does take up a lot of resources for example extra ram / cpu when you switch between the two, or it is only basically a second desktop and not different user that you need to sign out

    • @geekchameleon
      @geekchameleon 10 หลายเดือนก่อน

      @@NerdCaveYT Second desktop, same user. As far as I'm aware, this strategy uses very little RAM while still providing single-action "protection" since the second desktop is simply an organizational tool, which provides no additional access or capabilities. I haven't discovered a solution that uses less RAM and requires so little pre-planning.

  • @benpenph
    @benpenph 4 หลายเดือนก่อน

    Is it touch sensitive? Like when you press the buttons it will become louder or softer depends on how hard you push the button? 😅

    • @NerdCaveYT
      @NerdCaveYT  4 หลายเดือนก่อน

      these ones no, just normal switches so you are going to have to press the switch and hold it in to keep increasing the volume or decrease

  • @RickMunday
    @RickMunday ปีที่แล้ว

    I struggled for a week trying to implement modes into my own macro keyboard. Banging my head up against the wall last year. This last week I have found two people who implemented it the exact same way including handling it with custom files for each mode. Now I'm feeling pretty damn stupid! 🤣😅
    Great video and you taught an old man a new trick!

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว +1

      Thank you, It took my a while as well to implement it, I am not super great at coding so asking coding friends and chatgpt helped me to get it working

    • @RickMunday
      @RickMunday ปีที่แล้ว

      @@NerdCaveYT Well, the way you implemented it was very professional. So be proud of what you did! It was a damn fine job. I subscribed too.

  • @1997AlexB
    @1997AlexB 11 หลายเดือนก่อน

    You've got some pretty cool projects Mr Cave. I gotta try one out some day.

    • @NerdCaveYT
      @NerdCaveYT  11 หลายเดือนก่อน

      Thank you, I am trying to make more but procrastination is awful

  • @nacs
    @nacs ปีที่แล้ว

    Thank you so much for making this and making a written version!

  • @RegentLemay_FullReg
    @RegentLemay_FullReg 7 หลายเดือนก่อน

    Sorry for my question, but i didn't find any file, for printing case and file to get pcb, where i can find it ?

    • @NerdCaveYT
      @NerdCaveYT  7 หลายเดือนก่อน

      My apologies I just saw the links are not on my site will update in the meantime here you can download the PCB and STL github.com/Guitarman9119/Raspberry-Pi-Pico-/tree/main/MacroKeyboard%20Budget%20Version

  • @Ruchary
    @Ruchary 5 หลายเดือนก่อน

    Amazing, i want to make this macropad but without the led strips and just one rotary encoder (i have a Ky-040). It's still necessary to use the resistors?

    • @NerdCaveYT
      @NerdCaveYT  5 หลายเดือนก่อน

      If I am correct the KY-040 module has resistors on the bottom of the PCB, but you can get away with not using resistors because you can use internal pull down resistors from the Pico that I have set in the code

    • @Ruchary
      @Ruchary 5 หลายเดือนก่อน

      @@NerdCaveYT Yes the module has 3 103 SMD Resistor, thanks for the advice.

  • @pdrmanuel
    @pdrmanuel 11 หลายเดือนก่อน

    Can you do a version with QMK and Vial? With layers too

    • @NerdCaveYT
      @NerdCaveYT  11 หลายเดือนก่อน

      I will look into it, someone asked QMK before I think there is support for the RP2040 few years ago there wasn't any.

  • @Morget
    @Morget ปีที่แล้ว

    I made my own version with cherry mx switches. Thx for the work you put in to the code. 😊

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      No problem 👍 the code does need some work still but for now I think it does what it needs to

    • @Morget
      @Morget ปีที่แล้ว

      @@NerdCaveYT ATM it does what I want. Keep up the work. 👍

  • @MrWallyGattor
    @MrWallyGattor ปีที่แล้ว

    great project
    i could not find the gerber file to sent to pcbway on your website, am i missing it?

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      Thank you, I see now I didn't link to it - github.com/Guitarman9119/Raspberry-Pi-Pico-/tree/main/MacroKeyboard%20Budget%20Version here is the github article showing you how to send it to JLCPCB ;)

  • @paulb36utube
    @paulb36utube ปีที่แล้ว +2

    New and improved. Now with 2 knobs.

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว +1

      and more modes XD the previous one could not change modes so that is the game changer right there ;)

    • @paulb36utube
      @paulb36utube ปีที่แล้ว

      @@NerdCaveYT its a great setup and the code looks good and easy to modify.
      Im a KMK fan. Its even easier to modify, but sadly I haven't gotten any OLED to work like your project (which is really cool)

  • @CesarNova
    @CesarNova 11 หลายเดือนก่อน

    The video is very good. Do you believe it is viable to use a board with buttons connected in a matrix to expand the inputs? Thank you very much

    • @NerdCaveYT
      @NerdCaveYT  11 หลายเดือนก่อน +1

      yes, you can definitely do that, my last video on the super cheap macro keyboard I used a keypad that is in a matrix and the code on that video how you would do it, if you are making your own matrix I would say include diodes to avoid the ghosting effect

    • @CesarNova
      @CesarNova 11 หลายเดือนก่อน

      @@NerdCaveYT i already made the board with diodes. You learn the hard way to use diodes when you build your first matrix. Thank you very much, I will download and analyze the codes. Thank you very much

  • @o5tusk804
    @o5tusk804 ปีที่แล้ว

    Amazing. Is there a possibility to add mouse into the code. Like middle click, left, right? Thanks

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      Hello, yes there is a mouse library -> docs.circuitpython.org/projects/hid/en/latest/api.html#adafruit_hid.mouse.Mouse which will allow you to do left right middle or even use a joystick to move mouse around

    • @o5tusk804
      @o5tusk804 ปีที่แล้ว

      Thanks. I've found the library but I couldn't get it work. All sorted now. 👍@@NerdCaveYT

  • @Trolencioperez
    @Trolencioperez ปีที่แล้ว

    hello, first i need to tell you that your work its awesome.
    and last, i have a question, how can you bind a custom key in the code (like f20) for keyboard buttons in programs.
    let me expalin,i have severeal keys for my keyboard assigned for specific stuff in premiere, but i dotn want to use the "a" key, i want to use a key that not phisically exist that i can put in the macrokeypad to bind it
    thanks for all your videos, im a junnior programer and i think this is very usefull

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว +1

      Hi you are welcome, I am not sure if it is possible the library goes up to F12 - docs.circuitpython.org/projects/hid/en/latest/_modules/adafruit_hid/keycode.html
      but if you can do something like ctrl or alt plus a key as a shortcut / macro then it should be possible to assign more shortcuts keys then possible on a normal keyboard

  • @309electronics5
    @309electronics5 ปีที่แล้ว +1

    Great project! I love that its made in python and that the code is somewhat easily readable for people to understand (i understand because i am a hobbyist programmer), would deffinitly give it a try and maybe tweak it to my taste.

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว +1

      I like using micropython, and also use it in the classroom to teach students about microcontrollers, my first experience with microcontrollers was using assembly

  • @kamae79
    @kamae79 3 หลายเดือนก่อน

    Nice! I love it!
    Question❓: How many keys this design potentially supports? Only 12? Or could I make a full keyboard of 106 keys?
    Idea💡: On Line 207 you could count the amount of elements instead of set a constant of 5.

    • @NerdCaveYT
      @NerdCaveYT  3 หลายเดือนก่อน +1

      Hello, in this case I used a pin per GPIO pin but if you create a matrix that is 13*13 so you can do 169 keys if needed. Yes thank you, I have updated it to len() I am busy working on something to create a gui to change the macros

  • @ITSYEBOISteven
    @ITSYEBOISteven ปีที่แล้ว

    Great vid man. I just have one question, how would I use an L2C display where the oled display is?

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว +1

      Thank you, I have a video on it: th-cam.com/video/Unfr-vbTpkU/w-d-xo.html

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      it is a bit old but good starting point

  • @MohsenMashkour
    @MohsenMashkour ปีที่แล้ว

    please make a video about connecting WIFI module to the pico pi

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      You mean the Pico W? There is the pico W with a wifi module and bluetooth

    • @MohsenMashkour
      @MohsenMashkour ปีที่แล้ว

      @@NerdCaveYT no. I have i regular pico pi and i have bought a wifi module to connect to it but i couldn't do it.

  • @armand9910
    @armand9910 ปีที่แล้ว

    Awesome video, awesome intro ❤

  • @AtaGunZ
    @AtaGunZ ปีที่แล้ว +3

    for a project like this to get better open source support you gotta make a deal with some manufacturer and start selling this stuff. I'd gladly buy one to use just because of the flexibity it provides in software, but I have no time to make my own.

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว +1

      I understand completely it is an effort to source all the components etc. I am actually looking at creating a store on gumroad or something where I can sell kits of the projects I make. Still figuring out the process of it all.

  • @lorisrobots
    @lorisrobots ปีที่แล้ว

    Nice project. Thanks for posting!

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      Thank you for watching

  • @belenhedderich3330
    @belenhedderich3330 ปีที่แล้ว

    Awesome waiting on the update with Cherry MX Switches

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      hopefully soon I moved again, should stop moving around so much hopefully now once I unpacked can be making videos nonstop

  • @theadventurousprogrammer6449
    @theadventurousprogrammer6449 ปีที่แล้ว +2

    Videos are looking more and more polished. Good job.

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      Thank you, to be honest I was very self conscious and keep trying to create this professional studio and setup and hated to be infront of the camera, but then I just thought one day "screw it" I want to just be myself show my goofy dog and make videos and projects I enjoy and share it and hopefully it helps other people.

  • @TheUnofficialMaker
    @TheUnofficialMaker ปีที่แล้ว

    got my board ordered

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      great, but I am actually doing a follow up video soon on this, I think most people probably prefer normal keys then these push buttons I used.

  • @LaCompulab
    @LaCompulab 9 หลายเดือนก่อน

    Excellent job! Thanks for sharing

    • @NerdCaveYT
      @NerdCaveYT  9 หลายเดือนก่อน +1

      Thanks for watching, I am planning to do a more detailed video once I have free time, but got a new puppy so been putting this channel to the side.

    • @LaCompulab
      @LaCompulab 9 หลายเดือนก่อน

      @@NerdCaveYTsure, family is always the first 😂 enjoy and thanks again!

  • @metokule
    @metokule ปีที่แล้ว

    keep it up man!

  • @poisontoon-yt
    @poisontoon-yt ปีที่แล้ว

    bro your videos are sooo good.
    i saw (kinda) all of your videos about this macro things you do
    and i have a question.
    can you do a next level video and make a simple application for this keyboard???
    it's gonna be so damn good if you can make that

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      Hello thank you, what do you mean in terms of application, because you can program this to be used with any software you want to use it for. So if you are doing for example photoshop and have specific macros you can just code it or do you mean something else?

    • @poisontoon-yt
      @poisontoon-yt ปีที่แล้ว

      ​@@NerdCaveYT no no, i mean a application that is .exe and when you open it you can change the macro of each key in the app with out any coding
      i love doing codes but i think that be so much cooler,
      and i know it's kinda hard but we need it too be simple at first you know

    • @ITSYEBOISteven
      @ITSYEBOISteven ปีที่แล้ว

      @@poisontoon-ytyou could always get some self locking push buttons and then code it to where if that buttons is pushed then they'll do that code and each locking push button can be for a certain application

    • @poisontoon-yt
      @poisontoon-yt ปีที่แล้ว

      @@ITSYEBOISteven thanks

  • @gggg-bk7md
    @gggg-bk7md ปีที่แล้ว

    hello! me again...
    I like your implementation and it fits almost perfectly to what I want to do.
    I want to add 2 ports for Atari Joysticks.
    I plan to use mechanical keyboard switches (9 keys). So, from your configuration, I would have to remove 3 buttons... 1 click of one encoder and the led strip, in order to have enough gpios available for the 10 atari Joystick port cables.
    According to what I understood, soon you will make another video using key switches instead of buttons like in this one... Could you help me by creating a configuration similar to the one I mentioned above (my setup) mainly for the pcb, since I don't know how to design it accordingly to my needs.
    The modified code would also work for me, although I know something about Python (thanks to you), so there wouldn't be a problem if you don't implement the atari Joysticks ports, for example.
    The most critical thing for me would be the PCB, especially the part of the distribution, centered, of the keys.
    I understand if you can't do it, as it's a very specific personal request, which might not suit general users.
    I thank you in advance for your help and I congratulate you for your videos, which are very interesting, clear and useful!!
    Greetings from Chile..

    • @gggg-bk7md
      @gggg-bk7md ปีที่แล้ว

      Un saludo para Floki!!

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      Would it be possible that you can send me a link of the Atari joystick or part number so I can read a bit more about it on how it works, since you want to add two of them are you planning on building a multiplayer controller box or something. If you are able to send me sketch or something that would be useful. Here is my discord community link discord.gg/BWerHKKVZF it would be better to talk there under the project chat help

  • @batinayunsel
    @batinayunsel 10 หลายเดือนก่อน

    define the loop variable at the top of the code

    • @NerdCaveYT
      @NerdCaveYT  10 หลายเดือนก่อน

      You mean for the rotary encoder? or which one

  • @TheTitaniumBunker
    @TheTitaniumBunker 8 หลายเดือนก่อน

    Instead of hard coding the number of elements for the dictionary in the code, could you not simply get the length of the dictionary?

    • @NerdCaveYT
      @NerdCaveYT  8 หลายเดือนก่อน

      I could have done that yes, do you mean the section where I check which mode is active

    • @TheTitaniumBunker
      @TheTitaniumBunker 8 หลายเดือนก่อน

      @NerdCaveYT yeah that way you only have to enter the mode name into the dictionary.

    • @NerdCaveYT
      @NerdCaveYT  8 หลายเดือนก่อน

      @@TheTitaniumBunker Thank you will update the code

  • @johan_juhic
    @johan_juhic 11 หลายเดือนก่อน

    yööööööö, so schön hünd

    • @NerdCaveYT
      @NerdCaveYT  11 หลายเดือนก่อน

      Thank you, he is super awesome

  • @Conrad500
    @Conrad500 ปีที่แล้ว

    This is very cool, but way better to just buy a used stream deck off of facebook marketplace or something 😆

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      if you can get it for very cheap and more cost effective then this project then it won't be bad idea. Can the stream deck allow you to create any custom macros and operate as keyboard input?

  • @OghamTheBold
    @OghamTheBold ปีที่แล้ว

    Choose any [s]haft length if mode > len(mode_names) removes the need for a *magic number*

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว

      Did I do something wrong? Been coding so long on this I hope I didn't make a mistake - but well done for watching the code section that is the part everyone skips

    • @OghamTheBold
      @OghamTheBold ปีที่แล้ว

      @@NerdCaveYT Your code works 💯 but my short Python example improves it (a little) by removing the need to update the _number_ on that line (it prevents errors and reduces work)

    • @NerdCaveYT
      @NerdCaveYT  ปีที่แล้ว +1

      Great will update it