I got my board today and it looks amazing Ryan! The quality shows the painstaking detailed work you put into it! I got two, one to follow your build guide and another to use a QMK compatible wireless MCU and MX/kailh hto swap sockets, when I get it done I'll share my struggles.
Just a note at 23:13 -- the `sizeof()` operator tells you how many bytes a variable has. In the case of a `char` array, it works out to the length of the array, but that is only because a `char` is one byte. If you tried the same thing with an `int` array (`int` is 2 bytes on Arduino Uno) you would get double the length. The project looks great though! It's been a big help in building a macro pad of my own.
What are the chances. Yesterday, I found the 1st vid, and subscribed immediately. And one day later I get this Christmas treat. Wow. Both are awesome videos!!!
I had so much fun building and programming the micro version! First time soldering SMD components as well, and this was a forgiving project for that. Looking forward to your latest ideas.
Once upon a time, I played a FPS online, that had artillery vehicles (among others) that had arcing shell trajectories and pretty long ranges. You controlled the aiming with a mouse. Those rotary encoders would have been rather nice to have for hitting long range targets blind, or with the help of a spotter. Now though, I'm interested in 3D stuff. VR, 3D modeling, 3D input devices, etc. The macro keys look useful for tying extra key binds to for a feature rich program like Blender. There might be a way to use it in a social VR game as well, for emote keybinds, to control facial expressions and such of the avatar. Though it's already generally the practice to do that with the hand gestures on your 3D controllers. If you had both though, you could have extra functionality. The rotary encoders might at least be useful to somehow control how open the mouth is without needing to make sounds for the viseme system to use as cues for jaw control. Another use could be to control the speed of a repeating idle animation. Turn the nob for faster or slower.
Wow, it is rare that I find such niche question answered, but you have done that with this friend, and even better offers it at a unbuilt option for full customisation and affordability. I was just looking for how to add 1 "rotary controller". Guess I could use better keywords than dial or pot. Thanks!
Hey I'm a mechanical engineer from Pittsburgh too! Randomly found you looking for something along these lines! I'll be picking up one of your pcbs today!
Hey, Just wanted to say thanks for sharing your project. I loved watching the video update for both version. Enjoyed your humor and learned several things along the way. Keep up the good work.
LOVE the revision counter, I am still on number 1, but the list of changes (aka bugs) gets longer and longer. AND I started from the existing Lotus58 ... ❤❤❤
This project looks perfect for a live stream OBS 'hotkeys' macro controller. I'm going to also make a prototype that is MIDI compliant and see how this design holds up for a Synthesiser interface. Cheers Ryan!
It may worth it if you need a macro keyboard frequently. Instead I use an old tablet and TouchPortal. Even the free version offers enough functionality if you are not a pro streamer. What I could use though, a split keyboard with 3 or 4 parts, and with a button which could switch between layouts, so now I wonder what this channel can offer in terms of information even I can understand :)
I'm attempting to build this and referencing the video as I go. Here are some timestamps that may be helpful if you're following along and soldering, though no guarantees for accuracy and some may/may not include the explanation. 3:44 Diodes for anti-ghosting 4:09 Diode bypass jumpers 4:33 Rotary encoder enable jumpers 4:51 LCD breakout connector 5:49 Right-angle header to connect screen 6:13 Individually addressable LED 7:51 LED capacitors 8:10 Resistor for data-in 8:30 Reset button for programming 9:06 Volume/potentiometer knob 9:22 Arduino Pro Micro 10:13 Soldering encoders and keys 10:45 Encoders (flush cutting tabs) 11:58 Final Assembly (case) Thanks to Ryan for this awesome project, I'm super excited to build it
Just ordered mine yesterday, can't wait to put it together. Just wish the LED's didn't have to slow-boat from china, but at least I'll have it working in time before those come in.
This was very fun to watch. And it looks even more fun to build one. The rotary encoders are a cool addition, I really like having dedicated volume nobs. And as you said in the description this might not be new but is way more advanced than any commercial product I've seen!.
Nice stuff mate! I ordered 2 of each board a moment ago. Don’t know when I’ll get around to building them but it was worth supporting you at the least. Thank you!
One revision you could make in the future for the PCB is to add the two small fixing pins per the Cherry MX standard. That way you can use PCB mount (5-pin) switches and they will align properly.
One useful function would be sending a keyboard or mouse event periodically every few minutes to the host machine. This is to prevent screen lock on timeout. I would buy such device ))
This can be done! Is a current feature/bug in my code. Will wake my computer from sleep unless you tell windows to ignore this USB device while in sleep.
i cant wait for this board to be available again on tindie! the price is right and ive been wanting to build a macro keypad forever. i just ordered my arduino pro micro and as soon as i can afford the keys, caps and encoders it will be an awesome build
Thank you so much for this great board, the awesome documentation and this video . While I‘m still awaiting the board, after watching this video I feel perfectly prepared for the task. I might go the route of Shreyas, but your good board design doesn’t stay in the way. Keep up the good work, stay creative and go on inspiring others! I feel so much empowered by this!
Try using the Open Macro Keyboard project. Instead of four modes you will gain unlimited screens with macros along with an option to configure colors per button per screen. You'd need to reprogram your keyboard to send information about key presses and/or encoder rotations through COM (via USB). But I guess it is worth the effort.
This video is an absolute treasure trove of information and explanation. This is very inspiring and approachable to anyone looking to get into custom hardware. Thank you so much for sharing this awesome project and your iterative design work. Absolute legend!
8:00 I'm pretty sure the caps required for the LEDs by the manufacturer are simply to help eliminate any flicker from irregular powers supplies etc, can't be sure tho as I'm an amateur electronics engineer and I basically know just enough to be dangerous and confident enough to make a comment without actually knowing anything at all lol.
@@RetroBuiltGames No, but I still have a couple XP computers and those keys would be great for launching a 15 year old e-mail program or perhaps a USENET client.
Some very nice work. Thanks for the video. I really like the flaws and design problems you faced along the way. Your tindie is sold out so maybe I’ll try to design and make one myself. Mostly for the experience. Thanks.
Yeah. Less than a minute into this video and I just want to compliment you on your delivery, professionalism, humor and quality. I know this is going to be a great video and I haven’t even finished it. Where did you get those blue,white & grey buttons? Really like their shape.
its a shame the shipping price and shipping time are out of proportion (to the netherlands) otherwise i would've definitely bought your design. Keep up the good work !
Rgb led resistors: if you would use a brightness pwm value of 255 or just constant 5V then the leds would burn eventually, but since you're using pwm value of 120, resistors are not mandatory.
Is it possible to get the PCB design files so I can order my own boards from a Chinese PCB manufacturer? I live in the UK, so clearly it's quicker and cheaper for something to be sent from China than it is from the US 🤦♂️
maybe you can add a microsd card slot for upload custom .profile files that the arduino can read properly to avoid to upload the sketch every time that you want to change a macro
I like this, but it would be even more perfect if it was compatible with Feather form factor boards. I think that would open it up to a lot more options for add-ons such as displays that could just be plopped on top of the MCU, as well as giving options for Arduino C or CircuitPython as the language. Hell, that would let you start with a basic feather that uses the same MC as the Pro Micro, and then later swap it out for a Bluetooth enabled Feather like the nRF or Bluefruit models, made even better by the fact that all the Feathers have built in LiPo connectors and chargers
Also, the reason I bring up CircuitPython is because when a UF2 supporting board is loaded with CircuitPython firmware, it looks like a USB Mass Storage device (while also appearing as a USB HID device if you are using it for that) where you can drag and drop your code to the board on any OS without needing a compiler or programmer
The password checking site you used only accounts for true brute force methods (so AAAA > AAAB) so it claiming any amount of time is highly inaccurate (as with most of them) because it 1) depend on the hackers PC speed, and 2) relies on the true brute force method. The best solution to the generated password is give (either programmatically or static) a random number 0-3 to each char type and then randomly generate a number (0-3 or potentially a 14+ string only containing 0-3) and then pulling a character from that. I do love the idea for the physical button to generate passwords; However, it would be nice to also be able to share it somewhere else so if I paste directly in a website I don’t have to reset it everytime I try to login because, at least for me, I’m not going to remember a secure length true random password. On a side note: potential encryption in memory might also be nice to have incase your computer’s memory is currently being watched by malware (but for some reason isn’t reading key inputs) although this is probably not as likely to happen as its easy to read keys and requires so much more work to read memory. But there isn’t really a way, without something on the browser, that would fix this... so a password generator on a external decide is probably not a great security solution for people who are worried about cyber security. I do love the project so this is just really an idea how to make the program better!
@@RetroBuiltGames Have you thought about something similar, but with 8 Rotary Knops - as a 3D "Manipulation Device" - like the 3DConnexion Space Mouse? (3 for Rotating X,Y,Z ; 3 for "moving" along the x, y, z-axis, one for Zoom in/out, and one for spare use... and some additional MX-Keys?) I'm thinking of a 5 by 5 matrix with rotarys on every corner and one between every corner... and a TFT Display above.
If u have a sec, I just have a quick question for ya: I have an Arduino nano, and I want to use the Keyboard library. Is there any way I could trick it into working?
You can, but the results are mixed. The library will try to bit-bang USB protocols (like brute force the communication), so it for the most part it acts like a USB device. However with all the background stuff (LCD, RGB lights) it will probably behave like a wireless keyboard that is 1foot out of range...
@@RetroBuiltGames I'm trying, but when I try uploading it it just spits out errors, and if I try changing the board type in the software to a compatible one, it just gets stuck uploading...
Looks cool. Browsing the files quickly it looks like you wrote your own code to run the board. Have you looked into QMK Firmware? I believe it's GPL and has a ton of support for macros, encoders etc. There is also the VIA Configurator that works with QMK Firmware and adds a GUI to program the board. I use it for several keyboards I bought, and it's great.
are you using interrupts for the key switches? Shouldnt that get rid of the worry of overburdening the arduino's processing? Been a while since I played with Arduino so idk.
no. iirc there's only 2 or 3 interrupts on this microcontroller. --personal opinion -- relying on interrupts was a non-optimal choice; a crutch to avoid making better code. so there was emphasis to make it efficient (ish)
@@RetroBuiltGames ahh yes. Thats right. I developed some factory equipment using arduino to drive it. Had to switch to a due core as every io pin is an interrupt pin and I had a lot of switches and sensors sending input as that needed immediate actions.
really amazing project Ryan!Do you plan to have also a different layout for the keys?Could be interesting a macro keyboard for Lightroom control...with 3 knobs and some keys...and the knobs can be associated to a particular function (shadows, midtones, highlight) ...ecc =D
Thank you for putting this together! I just recieved my PCB and was wondering if there are links to the CAD models for the enclosure. You mentioned there would be CAD files available, but I didn't see anything in the zip containing the 3mf files.