My Take on a DiY Macro Hotkey Keyboard

Поделиться
HTML-код
  • Опубликовано: 20 авг 2024
  • Thingiverse Page: goo.gl/EAJecq
    Maker's Muses Video: goo.gl/E69F4u
    PartsNotIncluded Blog Post: goo.gl/xvoHRv

Комментарии • 87

  • @cassiephan7003
    @cassiephan7003 3 года назад +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

  • @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.

  • @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

  • @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

  • @plastictactics2256
    @plastictactics2256 5 лет назад +2

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

  • @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

  • @Lordrip1
    @Lordrip1 4 года назад

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

  • @littlehills739
    @littlehills739 Год назад

    like the "search highlighted word "
    nice build

  • @someoneelse1534
    @someoneelse1534 3 года назад +3

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

  • @MrJefferson105
    @MrJefferson105 2 года назад

    Beautiful work keep it up

  • @ashishbhave1993
    @ashishbhave1993 5 лет назад +1

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

  • @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 :)

  • @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!

  • @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.

  • @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 ;)

  • @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 😁

  • @8bitkefka
    @8bitkefka 3 года назад

    thank you

  • @gadgetlam86
    @gadgetlam86 3 года назад

    Great implementation.

  • @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

  • @andeasgurschler
    @andeasgurschler 3 года назад +1

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

  • @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?

  • @MrBreakLP
    @MrBreakLP 3 года назад

    Weiter so deine Videos sind großartig!!

  • @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)

  • @RoxannaDourthe
    @RoxannaDourthe 5 лет назад

    Awesome video! Thank you

  • @B_aka_Scias
    @B_aka_Scias 3 года назад

    is it possible to make it wireless with bluetooth? 👀

  • @msdesignru
    @msdesignru 5 лет назад

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

  • @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 😞
    }

  • @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

  • @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?

  • @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. ruclips.net/video/hYYMHD76H-g/видео.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.

  • @Vivanvan
    @Vivanvan 4 года назад

    So cool

  • @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?

  • @justinransburg5560
    @justinransburg5560 4 года назад

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

  • @andrewsutton6640
    @andrewsutton6640 3 года назад

    06:06 unprinted them?

  • @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 ❤️❤️❤️

  • @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!

  • @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)

  • @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

  • @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 ;)

  • @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: ruclips.net/video/Dkm8Hteeh6M/видео.html

  • @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

  • @ioj6734
    @ioj6734 3 года назад

    Wery smort chose of usb type

  • @sanders296
    @sanders296 5 лет назад

    Tom scott

  • @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.