My Take on a DiY Macro Hotkey Keyboard

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 ก.ย. 2024
  • Thingiverse Page: goo.gl/EAJecq
    Maker's Muses Video: goo.gl/E69F4u
    PartsNotIncluded Blog Post: goo.gl/xvoHRv

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

  • @cassiephan7003
    @cassiephan7003 4 ปีที่แล้ว +5

    The quality of this video is just stellar. Also the little jokes like unprinting the buttons were just great and had me smiling the whole time

  • @lpgoodsale3427
    @lpgoodsale3427 3 ปีที่แล้ว

    thanks a lot
    you really take care of beginners who wish to have their extra keyboard
    best wishes to you
    from Hong Kong

  • @kielerkarl
    @kielerkarl 5 ปีที่แล้ว +5

    Deine Videos sind sehr sehr gut gefilmt und geschnitten. Danke dafür!

    • @ConstantijnC
      @ConstantijnC  5 ปีที่แล้ว

      kielerkarl Danke dir für den netten Kommentar 😊

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

    That opening shot was great. I liked the teal color on the black background.

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

    Cheers for this! Making up a macro pad during quarantine to use when I get back to work.

  • @l.e.u.m.a.s4218
    @l.e.u.m.a.s4218 2 ปีที่แล้ว

    the programming tutorial was exactly what I needed to start making my own DIY macro keyboards. Thank you soo much. I built the hardware for three different sized keyboards. But none of them have code.

  • @Gixxer22
    @Gixxer22 2 ปีที่แล้ว

    Thank you for this. Just getting into programming Arduino's and this was exactly what I've been searching for.

  • @nukii.885
    @nukii.885 5 ปีที่แล้ว +5

    Really nice Design bro

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

    You've made a very clear explanation! Thanks to Maker's muse for the inspiration and your video with the explanation, I'll now be building my own macro keyboard! You're awesome!

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

      Thanks! And good luck!

    • @StrangeLake
      @StrangeLake 4 ปีที่แล้ว

      @@ConstantijnC thank you! The parts will have to be shipped all the way from china, so I'll have to wait a bit before starting, but I'm doing some research first, so this video is fantastic. Especially for the code

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

    Really enjoyed the two videos I've watched so far - subscribed!

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

    like the "search highlighted word "
    nice build

  • @MrJefferson105
    @MrJefferson105 2 ปีที่แล้ว

    Beautiful work keep it up

  • @UpcycleElectronics
    @UpcycleElectronics 5 ปีที่แล้ว +7

    Cool videography. That code looks very useful too. Why do you use delay instead of a millis flag routine and potentially multiple key press situations?
    I have an old USB auxiliary keyboard that doesn't work. I think I can make it work with this code. I've been meaning to figure out macros and a way to speed up editing my final transparency negatives for PCB etching in GIMP. This looks like just the info I needed. Thanks!
    -Jake

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

      Thanks man! I used the normal delay because I wanted to keep this code as beginner-friendly as possible. Since basically all stock Arduino examples use the delay routine, I went with that one as well, just to match the programming style as best I could to those examples. It’s the same reason why I decided not to multiplex the buttons, although that would have been the neater way to do it.
      I‘ve never really used an external hotkey keyboard before but I think it’s a really convenient tool. I think that this will especially be useful for CAD and video editing for me in the future :)

  • @Lordrip1
    @Lordrip1 4 ปีที่แล้ว

    Thanks this really helped me wrap my brain around this project.

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

    Wonderful graphics for the video.. makes the content very intuitive :) !!!

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

    What's the point of using buttons for windows shortcut keys?
    copy (ctrl-c), paste (shift-insert or ctrl-v) , Shift-F11 , Shift-F12, task manager (CRTL-Shift-Esc), etc.
    It's usefull though such a devce, but for application specific shortcuts.
    I built mine (thing 1043977 on thingiverse) mainly for sketchup.
    Learn Windows shortcuts and benefit from that on every machine, don't waste buttons on that :-)

    • @ConstantijnC
      @ConstantijnC  4 ปีที่แล้ว

      I'm just using those shortcuts as an example to show how easy it is to implement and automate basically anything you want.
      On top of that, some people just like to make stuff. Some coding, some cad design, printing and working with electronics might just be enough for people like me to start a project like this one ;)

  • @SianaGearz
    @SianaGearz 5 ปีที่แล้ว

    Oh wow how did i miss this video by Angus?
    I was going to make myself a programmable numpad that i can set beside a tenkeyless keyboard to the right and to the left, and give it a nice encoder knob which could serve for volume, plus mode buttons for overlay modes, so i could switch different control modes, maybe the knob can pull double and triple duty as something else too, like second scroll wheel or video scrubbing or MIDI device. Thinking of making it wireless. I don't see much reason to use USB specific Arduino chip for HID emulation and MIDI emulation, at least in a device used personally, i tested HID emulation on Digispark ATTiny85 with V-USB and i didn't face issues. I can have computer side an ATTiny driving an nRF24L01, a single one for a bunch of input devices i might yet make, and a network of nRF24L01 devices with ATMegas or even STM8. Didn't get around to though. Of course ATTiny is only available in short bursts while USB protocol is suspended, but nRF has ample FIFOs so it's not a big deal.

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

    Nice work, really interested in these sort of projects! I just got done assembling a custom keyboard with a 3D printed case and configuring it with the QMK firmware. I've started playing around with 3D printing my own keycaps, but I can't get the stems to behave like I want them to yet; they either aren't sturdy enough or don't fit into the space around the stem without lots of manual filing (using Kailh Box switches). I'll see if I can adapt this reduced stem design that you used for the buttons, so thanks for that idea if I get it to work!

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

      You have to be aware of your wall thickness when designing for 3D printing. Make thin walls the thickness of your nozzle diameter or a multiple of that. With a 0.4mm nozzle, that means 0.4, 0.8 or 1.2mm wall thickness. With anything thicker than that is not as important to follow this rule. That's why I didn't fully build around the stems. Of course you also have to make sure that your printer is not overextruding and that you have your tolerances right. I find a 0.1mm tolerance on both sides of the fit to be perfect for a sturdy press fit. Then, if it turns out too loose or too tight, you can adjust your extrusion multiplier slightly (+/-1%) to make it fit perfectly.

    • @miniman3112
      @miniman3112 5 ปีที่แล้ว

      @@ConstantijnC Thanks for your help, adjusting the extrusion multiplier instead of changing the model geometry each time sounds like a great idea!

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

    When i make mine, i’m gonna macro one of my keys to the “unprint” function

  • @8bitkefka
    @8bitkefka 3 ปีที่แล้ว

    thank you

  • @giedriusasnauskas1820
    @giedriusasnauskas1820 2 ปีที่แล้ว

    hello, i really enjoyed your video and this is exactly what i was looking for.
    I'm using the code you wrote and i ran into trouble
    when i write the code to the arduino micro not pro, the button works in a loop and always turns on and does not respond to the button press as if it were pressed all the time
    maybe have any ideas on how you can help?

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

    gutes Video, aber eine frage kann man deine Code bearbeiten und wo finde ich diesen?

  • @MeepMu
    @MeepMu 5 ปีที่แล้ว +8

    That's called a perfboard, not a PCB. Otherwise, really cool!

    • @ConstantijnC
      @ConstantijnC  5 ปีที่แล้ว +4

      MeepMu Oh damn! Let’s just call it a Perfed Cirquit Board then 😁

  • @ryanmouzas8463
    @ryanmouzas8463 3 ปีที่แล้ว

    this mans a God. This is exactly what I was looking for! Also thank you for also hating on the micro USB port hahaha, anyone who knows it knows its trash

  • @lynxpilot893
    @lynxpilot893 3 ปีที่แล้ว

    I am trying to add a rotary encoder instead of the push button middle top row. Any help with integrating the code into this sketch would be appreciated. Thanks for the project.

    • @ConstantijnC
      @ConstantijnC  3 ปีที่แล้ว

      I think easiest would be to copy this encoder library: github.com/PaulStoffregen/Encoder/releases/tag/1.4.1
      into your arduino library folder (usually located in your documents folder) and include it with:
      #include
      Encoder Enc_0(2, 3);
      long oldPosition = -999;
      and this in the loop():
      long newPosition = Enc_0.read();
      if (newPosition > oldPosition) {
      //your keyboard command here
      oldPosition = newPosition;
      }
      else if (newPosition < oldPosition) {
      //your keyboard command here
      oldPosition = newPosition;
      }
      Pins 2 & 3 are interrupt capable pins so it might be beneficial to use those for the encoder. That might make it feel a bit more responsive. But I don''t have an encoder handy so I can't test it. I also haven't tested this code but I'm pretty sure that something like this should work. There are also plenty of other encoder libraries out there which offer things like acceleration control. You could also just program acceleration control yourself, which should be a nice exercise :)

  • @DPTech_workroom
    @DPTech_workroom 5 ปีที่แล้ว

    Hi.
    Nice job.
    Can you help me out with digital caliper read and send the measuring to the PC (to CAD, or Excel cell) after pushing a button? (May be more buttons - 4 pcs.: tab, enter, /2 and just send measuring)

  • @gadgetlam86
    @gadgetlam86 3 ปีที่แล้ว

    Great implementation.

  • @B_aka_Scias
    @B_aka_Scias 3 ปีที่แล้ว

    is it possible to make it wireless with bluetooth? 👀

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

    Super nices Video, ich schau mir die echt gerne an :))
    Aber noch ne Frage..
    ..Wo hast den Lötkolben her ? Der sieht super nice aus :Oo

    • @ConstantijnC
      @ConstantijnC  5 ปีที่แล้ว

      Fabi du hältsch deine schnautze. th-cam.com/video/hYYMHD76H-g/w-d-xo.html

    • @ConstantijnC
      @ConstantijnC  5 ปีที่แล้ว

      An alle die sich jetzt wundern: Ich kenn ihn. Ach und das war sein Lötkolben. Jetzt ist es meiner. Er weiß es bloß noch nicht.

  • @msdesignru
    @msdesignru 5 ปีที่แล้ว

    Hello, I'm from Design Prototype Tests channel...

  • @WayneRigley
    @WayneRigley 3 ปีที่แล้ว

    HELPPPPPPPPPP SO this is my situation and need help, I got an Arduino Pro Micro and MX keys, I've programmed it to send (SHIFT +A-J) fire it up open note pad, and bingo works ABCDEFGHIJ / Opened OBS assign the hotkeys to my scenes, scene 1 SHIFT + A etc , test it with my computer keyboard and it works... but when I try it from my macro keypad it jumps to other scenes or nothing at all.. any help?

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

      Hey, my first guess is that you need some sort of delay between sending shift and the letter. Maybe those two get sent so fast in succession that OBS doesn't recognise it

  • @letsgoBrandon204
    @letsgoBrandon204 3 ปีที่แล้ว

    Definitely need a panic button on there
    if (digitalRead (Buttons[9] ) == LOW) {
    launch OpenOffice Writer (Homework.odt) //I don't know code 😞
    }

  • @MrBreakLP
    @MrBreakLP 3 ปีที่แล้ว

    Weiter so deine Videos sind großartig!!

  • @noud8868
    @noud8868 4 ปีที่แล้ว

    I'm very interested to see how this works when you use the keypad library with it. What would the code than look like?

  • @Vivanvan
    @Vivanvan 4 ปีที่แล้ว

    So cool

  • @RoxannaDourthe
    @RoxannaDourthe 5 ปีที่แล้ว

    Awesome video! Thank you

  • @andrewsutton6640
    @andrewsutton6640 3 ปีที่แล้ว

    06:06 unprinted them?

  • @justinransburg5560
    @justinransburg5560 4 ปีที่แล้ว

    Would this work with a Raspberry Pi Zero W? I’m new to this and want to try this out.

  • @peastfist1602
    @peastfist1602 2 ปีที่แล้ว

    What is the name of that black thingy that is used to join several cable at 5:07 ?

    • @ConstantijnC
      @ConstantijnC  2 ปีที่แล้ว

      That’s a DuPont crimp connector. You can get sets of many different sizes for very cheap online :) but there are also a lot of other kinds of board to cable connectors on the market

    • @peastfist1602
      @peastfist1602 2 ปีที่แล้ว

      @@ConstantijnC thanks ❤️❤️❤️

  • @MrJohnMarbles
    @MrJohnMarbles 5 ปีที่แล้ว

    How did I miss this being uploaded! We talked about this like 6 months ago!!

    • @ConstantijnC
      @ConstantijnC  5 ปีที่แล้ว

      John Marbles Aw great to see you here dude! When I was talking with you about the project I was actually thinking about something slightly different. But then I got sidetracked by Angus and changed my plans 😄

    • @MrJohnMarbles
      @MrJohnMarbles 5 ปีที่แล้ว

      @@ConstantijnC yes yes youre right. Different type of keyboard right?

  • @Opa10
    @Opa10 4 ปีที่แล้ว

    @UCJhgIOJjB2xFJiwqVD3J6qQ im a beginner when coming to Arduino, but im learning, is there a way you could create the Perfboard circuit layout in Fritzing so I can understand what has to go where, because im not able to make this out on my own looking at the perfboard images and what components and wires should go where, that would be really appreciated

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

      Hey, the connections are already all layed out within the code itself :)
      Button_0 connects between Arduino pin 2 and ground
      Button_1 connects between Arduino pin 3 and ground
      Button_2 connects between Arduino pin 4 and ground
      Button_3 connects between Arduino pin 5 and ground
      Button_4 connects between Arduino pin 6 and ground
      Button_5 connects between Arduino pin 7 and ground
      Button_6 connects between Arduino pin 8 and ground
      Button_7 connects between Arduino pin 9 and ground
      Button_8 connects between Arduino pin 10 and ground
      If you want to use different pins, you can just redefine them in the code.
      The line "pinmode(Buttons[i], INPUT_PULLUP);" determines that the connection is indeed to ground and not to 5V.
      That's all there is to it. The resistors which you can see me add in the video are just for the LEDs, because they would quickly burn up without those.
      Good luck!

    • @Opa10
      @Opa10 4 ปีที่แล้ว

      Constantijn thanks, I think I understand it. It was the ground connections that I was confused by. I see that all buttons offfcourse need to be connected to ground and a pin. (And one ground to the led)

  • @AmeshaSpentaArmaiti
    @AmeshaSpentaArmaiti 5 ปีที่แล้ว

    My printer doesn't have an undo function. Should I build a new one?

    • @ConstantijnC
      @ConstantijnC  5 ปีที่แล้ว

      Jinzo Okami Bro the undo function is the absolute best. Do whatever it takes to have one on your printer!

  • @bacfish_macfly
    @bacfish_macfly 3 ปีที่แล้ว

    Hi,
    ich habe versucht das Keyboard nachzubauen. Ich habe das gleiche Board verwendet (Arduino Pro Micro), den gleichen Code, etc... Ich habe nur dummerweise das Problem, dass mein 10.er Pin durchgängig LOW zurückmeldet und nicht nur wenn ich den Taster drücke. Nach verschieden Tests habe ich das Gefühl, dass dieser Pin keinen PULL-UP Widerstand besitzt. Ich habe es nachdem es mit 10 nicht funktioniert hat auch noch mit 0, 1, 16, 14, 15 und A0 versucht. Überall das gleiche Problem. Das heißt meine ersten 8 Hotkeys funktionieren aber der neunte (Pin 10) nicht. Ich habe es auch mit mehreren Boards versucht, hilft auch nichts. Hat jemand eine Idee?

    • @ConstantijnC
      @ConstantijnC  3 ปีที่แล้ว

      Hey, das ist mir bisher noch nicht aufgefallen, aber ich habe leider gerade auch nicht die Möglichkeit um das selbst zu testen. Ich meine aber, dass alle Pins einen int. Pullup haben. Hast du denn mal versucht, ob ein externer Pullup (ca. 20kOhm) hilft? Von welchem Hersteller ist dein Pro Micro denn und sind alle deine Pro Micros von demselben Hersteller? Vielleicht liegt das Problem beim Bootloader? Und hast du etwas an meinem Originalcode geändert?

    • @bacfish_macfly
      @bacfish_macfly 3 ปีที่แล้ว

      @@ConstantijnC Den Hersteller weiß ich nicht mehr. Warum es nur bei Pin 2 bis 9 funktioniert weiß ich immer nich nicht, allerdings habe ich jetzt einen 1MOhm Widerstand dazugeschaltet - jetzt klappts.
      Aber danke für die Hilfe.

    • @ConstantijnC
      @ConstantijnC  3 ปีที่แล้ว

      @@bacfish_macfly Alles klar. Das ist echt komisch... aber freut mich dass es geklappt hat!

  • @timof6364
    @timof6364 4 ปีที่แล้ว

    Nice video. I will build this too, but why didnt you directly connect the arduino (per micro USB to USB type A cable) to your pc

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

      Thanks! I did that just because micro usb is a shitty connector type and I'm that kind of elitist I guess ;)

    • @timof6364
      @timof6364 4 ปีที่แล้ว

      @@ConstantijnC okay. So there's no problem with connecting it directly to the pc?😅

    • @ConstantijnC
      @ConstantijnC  4 ปีที่แล้ว

      @@timof6364 Nope, none at all :) Good luck!

    • @timof6364
      @timof6364 4 ปีที่แล้ว

      @@ConstantijnC thank you. 🤩🎉 Nice that you are responding that fast 👌🏼

    • @ConstantijnC
      @ConstantijnC  4 ปีที่แล้ว

      @@timof6364 That's one perk of being a small youtuber: I can have my comment notifications on without getting spammed :D

  • @brandondh
    @brandondh 5 ปีที่แล้ว

    Who was the guy in the picture when he minimized the window? I have no clue what the joke is. Can anyone fill me in?

    • @ConstantijnC
      @ConstantijnC  5 ปีที่แล้ว

      Its Ethan Klein from H3H3 Productions. He and his wife are hilarious. Check this masterpiece: th-cam.com/video/Dkm8Hteeh6M/w-d-xo.html

  • @MineOrebaker
    @MineOrebaker 2 ปีที่แล้ว

    hii bro can you help me to make one for me i already have all parts so plz reply me

    • @ConstantijnC
      @ConstantijnC  2 ปีที่แล้ว

      I don't know. Maybe I can :) What's the issue?

    • @MineOrebaker
      @MineOrebaker 2 ปีที่แล้ว

      @@ConstantijnC bro actually my main problem is wireing, how to connect all switches and 2 potential meter in arduino pro micro pls help ;)

  • @techandtoys2055
    @techandtoys2055 5 ปีที่แล้ว

    Hi, great video. But where can I find the code?

    • @ConstantijnC
      @ConstantijnC  5 ปีที่แล้ว

      Thanks! The first link in the description, and then under "Thing files". The arduino file can be found there under the name "Shortcutinator.ino".

    • @techandtoys2055
      @techandtoys2055 5 ปีที่แล้ว

      @@ConstantijnC Thanks

  • @sanders296
    @sanders296 5 ปีที่แล้ว

    Tom scott

  • @ioj6734
    @ioj6734 3 ปีที่แล้ว

    Wery smort chose of usb type

  • @wong2b
    @wong2b 4 ปีที่แล้ว

    Not once in this video does this guy have an original thought, "and I agree with...". Blah, Blah, Blah

    • @ConstantijnC
      @ConstantijnC  4 ปีที่แล้ว

      Ey this guy can read this too ;) And my original thoughts were to use different switches and to slim down the code dramatically. Doesn't that at least count a little bit?

    • @lynxpilot893
      @lynxpilot893 3 ปีที่แล้ว

      @@ConstantijnC It does, great job.