1. Get a through hole supported usb connector instead of a pure smd one, since the latter likes to fall off.
2. I would avoid routing under the switches for durability, this might just be superstition though.
3. You can route the x and y of the matrix on different sides of the board to make things easier.
4. If you want to pick and place or wave solder it is probably easier to have the smd and through hole parts on different sides of the board.
5. No reason not to use the supported switch footprint, especially since you can connect your ground planes with the additional holes. (well, I guess space is a reason but still).
6. If you are going to assemble by hand, make the pads longer as needed. Probably especially on the microcontroller and diodes.
7. Solder in order of cost and success rate.
8. Always add switches, leds and connectors for debugging even if you don't intend to use them.
9. Some traces are quite close to the center hole, which might also be too small? Anyway, some margin is good for reliability/yield. (especially mixing 'technologies' e.g. holes/edges and traces).
Edit: Oh, I forgot. You might consider scripting the placement of the switches/diodes.
Thanks for this. I guess I've always gotten lucky here but now I'm imagining the frustration of getting done with all the discretes on a board just to blow it all on the uC. Great advice, thanks again.
Been doing a design proposal for a yet another ultrathin laptop, this time with "pro gaming" spin.
One of client requirements was "be it the end of the world, but switches must be mechanical."
That sounded like an easy task... , but we ended up spending a week on the switch and having them custom made by a watch parts factory.
It is remarkably difficult to design a purely mechanical mechanism for making a "snapping action" that will be small and moderately wear resistant.
We almost thought of "screw that, lets make the mechanism electrostatically actuated," but finally made a parallelogram mechanism with just enough set of spring loading there, and there
https://support.wasdkeyboards.com/hc/en-us/articles/11500927...
I would recommend that if you're new to surface mount, to get a couple of SMD practice boards so you can exercise your skills and get a feel for what will be hard/risky and what will be easy/repairable. They're a few dollars online.
No idea how can i make DC to DC UPS with easily available items
I've 12v 0.5amp requirement @6watt.
I need this appliance to be running for 5-6 hours when power has failed.
Does anyone know of the community where I can ask such question?
For folks interested in doing this themselves there are some communities out there - others have mentioned qmk, here are some useful forums to check out:
* https://www.reddit.com/r/MechanicalKeyboards
Depending on your level of interest/commitment you don't have to design your PCB and software from scratch, there's a spectrum from designing your own PCB, case, etc. to putting together components designed and sold by somebody else.
Basically, as an example - i wouldnt be fond of the size of that spacebar, and would like other modules.
What if each horizontal row of the standard length on a qwerty were its own module, and you can snap several together to make the board you want.
Want a touchpad? Snap it to the base or side. Want a touchbar oled strip: snap it to the top. 9-key? No problem - gamer config wsad side module? Yep.
Want to just pull out the small qwerty section for some reason - just unsnap whatever you need.
Also, from a connection perspective, they should be little round rare earth magnet cylendars in dowl posts and you just mate the pieces this way.
Fyi, Daiso Japan carries these in packs of 8 for $1.50.
There is no need to spend any time on the software side of things. It's already been done to death.
The first person to build a "row" based multi layout platform will really start to hit the right spot because some people would want a function row, others not, some would want an ISO enter, others ANSI, and as long as it was plug and play, it would eat the market whole.
People on Geekhack seem to love collecting keyboards. I just want one, that I can use, that will match my mac layout.
A design requires an effort (the TFA author worked for 3 months on it) and future changes to it requires extra effort. Plus you need to have the knowledge, the time, and the will to go through all this.
Whereas a modular component could be assembled by anybody, tested, changed to a different format if their needs change or they don't like the first one etc, at a moment's notice.
If you wanna see a step into this direction you can look at the "Ultimate Hacking Keyboard". They have a collection of modules to be attached on the side of the keyboard. You will also see some of the problems of such a design there.
Personally I would aim more for single-key-modules. Make lego-like parts for a keyboard where each single key can be arranged on a board as you wish, like with lego-bricks. Does also scale far better across all used layouts, because at the end you have only a handful module-types which can be used for all designs equally. Makes mass-production cheaper on the long run.
I have something similar with my tiny bluetooth ipad keyboard which magnetically attaches to the ipad case
Backstory: My fingers slide smoothly across my ThinkPad laptop keyboard, so I was playing with optical hand tracking (with a surface mirror to better track touch) to make the entire keyboard (and surrounding laptop) into a multitouch surface. There were occlusion and jitter issues, even with fingernail markers, and I set it aside while still not quite working. But I was left thinking "I should get back to this" rather than "never again". Stroking a keycap as a trackpad seemed nice, even already having a touchpoint. Merely touching modifier keys (emacs) rather than having to press them. With a 3D display, I overlaid video of the keyboard, slightly above the screen plane so it was easily seen but only moderately annoying. And thus could overlay a multitouch control panel that doesn't require shifting attention from the screen, or hands from the keyboard. With screen-comparable VR/AR seemingly only a year or three away now, with attendant changes in UI constraints, there seems an opportunity to escape decades-old HID fetters, at least with professional UIs.
Myself, I really want more touch feedback from my keys, not less, but to each her own!
But as you say, not a high-end keyboard experience.
The optical hand tracking I mentioned was cameras on sticks perched on an existing laptop. So the multitouch was in addition to, not a replacement for, a niceish-for-a-laptop thinkpad keyboard. Well, except for modifier keys without the pinky exercise of actually pressing them (which may or may not be actually viable). If you ever say tactilely run your hands over your keyboard, and say drum your fingers, but all without sufficient pressure to press any key, it was that experience, added to the usual keyboard experience. With 3Dish hand pose and motion available, the two modalities might demultiplex fairly cleanly.
Even for programming in VR, I'd like to avoid UX regressions, and so start with a nice keyboard. Though I was happily surprised by being able to hold a chopstick without it much degrading typing. Providing a nice in-hand high-precision 6DOF controller. And potential 6DOF (pressure) stylus - ball on the end let it sort-of glide over keys... but jitter and pragmatics would need improvement to be viable.
Product-wise, they seem to be in a multi-year struggle to get to production.
Web-dev lesson: A video-based ui, emphasizing closeups, where the video visuals stall, but music continues, with a hidden-by-default slider and no spinner, is an unfortunate combination.
A depth camera can give rough finger height[1], and multi-camera care and kludgery can do even better, but, that last little bit, of high-speed high-reliability millimeter-ish is-it-touching-the-key-yet/still-or-not contact determination, is something I've not seen well addressed.
Given this unicorn-like keyboard, I wistfully note that having pressure sensing would be very nice too...
FWIW, I also note one way a company can easily support linux, often overlooked, is to provide only an as-is unsupported binary-blob library with any secret sauce, and leave it to the community to link it, wire it to IO systems, and deal with OS variants. The payoff, for a product throttled in part by community innovation and/or adoption bootstrap, is that while linux is often a small market, it's a highly-disproportionately innovative one. For this keyboard, the envisioned market may be mostly gaming, and thus mostly Windows. But it might be a youtube "look at my neat hack" video, which prompts some game dev to support it.
For those who have previously tried them, and been unimpressed, I note that driver configuration can make a _big_ difference. A new-linux-driver and old-firmware issue has me now at merely "it's ok", but switching to an older setup was an "OMG - how could I have forgotten this?!" experience.
Interesting thought: The microcontroller in that keyboard is more powerful than the first IBM PC.
What I love about the UHK is the programmability: I can make the keyboard do lots of things, which makes switching between OSs much easier. The UHK makes heavy use of the "layer" concept.
One of supposed benefits of planck is reduced wrist pain. But I feel the opposite after years of using just the laptop keyboard. Because with a standalone keyboard I now use a mouse, I need to move my right hand a lot to reach it, whereas before I would just tilt it a bit to reach the touchpad. But also, because it is a mech keyboard, it's taller then the laptop, so my wrists are at an angle. I guess I need to learn how to keep my wrists above, floating in the air.
Having extra keys for your pointer finger sounds good (those 1.5U side keys on the ergodox next to tgb and nhy), but it is actually difficult to precisely decide among 3 columns that you have to absolutely position your finger to hit. I feel like my accuracy in deciding between b or v suffers and having another possibility doesn't help.
So my suggestion is to go small. Not having a number row may be overkill; they are far away but I have yet to remap them. Figuring out what keys are most important to press and making them easy is crucial. I know I hated where {}, -, =, etc. were on traditional keyboards, so I was careful to put those on home row. It was worth it. Having an extra row of normal-sized keys instead of control, meta, super, space... probably not worth it. The 1u keys next to the 2u thumb keys on the ergodox... I basically never use them (they're arrow keys and page up/page down, but I navigate with emacs style keybindings so only use them for skipping through YouTube videos and things like that; nice to have, but impossible to use during normal typing).
Not using your pinky for enter and backspace is also great.
For completeness, my layout: https://github.com/jrockway/qmk_firmware/blob/master/keyboar...
* https://github.com/kata0510/Lily58
* https://github.com/omkbd/ErgoDash
This blog shows how the Lily58 designer took the ErgoDox design and removed the keys he found superfluous:
That said - the kinesis is curved which probably makes it a lot easier to get your fingers to things?
I have those 1u keys on the thumbs assigned as media keys but I could do without them if I had to as well.
As far as orthos go I went from Kinesis Advantage to Planck to JJ50 to 75Keys/XD75. I use a lot of keyboard shortcuts and the Planck didn't have enough keys for me. I think I could've made the JJ50 work but the extra keys on the 75Keys/XD75 are really nice to have. Typically people put them in the center and it's almost like having a split keyboard.
If you use a lot of keyboard shortcuts I would suggest starting big and working your way down.
[Context] I was using AutoHotkey for some years before this to rewrite my keyboard. My main goal was to get rid of moving my hand to the arrow keys and back when programming to be more efficient, and have a fast way of moving around in text. Like Ctrl+arrows for jumping words, using Shift for chars/words/lines for quick selection, etc. For anyone not into this, the problem with the AutoHotkey solution is "keyboard shadowing": most keyboards don't use dedicated wires to each key but a matrix of wires instead, so, if you press 2 given keys, the system won't be able to tell if you pressed a given 3rd key or not. Also, different keyboards use different wires, so you can't use the same configuration on every keyboard.
I do miss a normal keyboard when I'm on the phone and want to use the arrows with one hand. Newer Vortex models do include dedicated keys so I might experiment with them. Also, I'm so much more efficient this way that I basically carry it with me everywhere and it's quite heavy. (I have 2: 1 at office, 1 at home.) The programmability of the thing is quite limited but still a huge win for me.
The build quality if the Pok3r is outstanding. I can't recommend it enough. I'm not affiliated.
I don’t get the apparent fascination that (mech) keyboard enthusiasts have with small keyboards. I can understand moving or removing the keypad since it displaces the mouse (then again, “don’t use the mouse!”), but beyond that I don’t see the appeal except for the aesthetics.
I think the happy hacking keyboard has the missing keys on the FN layer. Hopefully the FN key is programmable, or else you are stuck with whatever the manufacturer wants the FN key to mean. (Pet peeve of mine: cheap keyboards now seem to come with those dang FN keys which can’t be reprogrammed like the regular keys and are just for garbage multimedia functionality.) With a regular boring full-sized keyboard I can program/re-purpose whatever the key is on the equivalent position to the FN key, or choose another key entirely. Right now I can access all F1–F36 keys by using a series of modifier keys right in reach of the glorious Home Row (prostrates). That’s just by modifying my standard keyboard in X. And of course I can access F1–F12 without using modifier keys since I have an (almost) full-sized keyboard. That way I get the best of both worlds: I can use modifier keys to access every key from near the home row, or just one-key while using a fidget spinner with the free hand.
On mine I have a key that flips into a symbols layer, placing characters commonly used in programming either on or close to the home row, and flips hjkl into vim style cursor keys. I’ve also got another layer on a different key which disables almost all my customisations and turns it into a standard qwerty keyboard for gaming.
If you’re deep into layout customisations via X I suspect you’d really like a decent mechanical with customisable firmware, and probably a few spare keys for mapping to layer shifts.
The Planck was designed to be small, not ergonomic. The popularity of the layout is (imho) due to good market timing, low cost, competent business operation, and good electronics design work.
On my Mitosis Anaphase, I occasionally miss having dedicated punctuation from my big board.
The Kickstarter version cost $250, they go for $329 now. It's really comfortable, and I use the palm-switch and thumb keys very naturally.
Basically, I took an USB keyboard controller from a cheap secondhand Dell keyboard, reversed its matrix, and then rewired every combination to the USB controller board using a wires peeled off from an IDE connector.
Very time intensive, and to say the truth, not really working well in the end, but, hey, I was a student at the time.
It was far less ambitious than the titled project, but here are the pictures:
http://blog.kakwalab.ovh/IMG_6920.CR2.jpg
http://blog.kakwalab.ovh/IMG_6921.CR2.jpg
(yes, it's a mess).
What I’m thinking about is to actually make a custom physical user interface. Less of a keyboard and more the bridge of USS Enterprise.
This one happens to emit standard qwerty key codes, but there are many more that do other things. For example, there are standard key codes to launch a browser or the calculator (and some keyboards have buttons to do that too). You could also make it emulate any kind of standard usb HID (human interfact device). This one is a keyboard, but you could make something that identifies itself as a mouse, game controller, etc.
What I learned during that prank was that keyboards are very complicated. A keyboard is essentially a giant switching system where pressing keys closes circuits, and a microprocessor looks to see what lines are high/low and infers which keys have been pressed. There's whole systems designed around avoiding "ghost keys", which arise because the number of combinations of possible simultaneous button presses of the switching system far outnumber the possible combinations of signals.
That's how NKRO keyboards work.
https://japantoday.com/category/tech/japan%E2%80%99s-first-d...
As an experiment, place your fingers on the home row and naturally curl them out/up or in/down and see how straight or curved the path they follow is. For me, on a normal keyboard, I find that the buttons above the home row are positioned well for my fingers but for the ones below, my fingers naturally curl over the gap between the keys, meaning I have to also bend sideways. With a grid I can press both the keys above and the ones below without any sideways motion (for the four keys on each hand above and below the home row testing keys).
Nowadays I use a kinesis advantage, though, which has not only grid layout but also has them in a curved height to more naturally let your fingers reach the rows without any additional movements and I love it. But even on a flat keyboard, I find a grid works better for me.
I used a Planck as my daily driver for about 6 months before finally getting around to building an Ergo.
Though real optical would require optical equipment in the desktop's or laptop's chassis or motherboard, and OS support, since it wouldn't be USB at any stage.
If that's not DIY enough you can make a mold and cast them from silicone (the method used by most artisan keycaps) or make them out of wood.
But standard FDM printing will not get you keycap that are smooth on the top, as they tend to be sculpted to fit a finger better, and you're still looking at ~0.4mm layers at best. You may be able to do it with SLA 3D printers which are able to do higher resolutions than FDM printers.
https://imgur.com/a/AalpV1r is an interesting project that 3d printed the keycaps too
Although, I must admit, whilst I've had all my components (including RGB LEDs and transparent Gateron switches) for what must be over a year now, I still haven't gotten around to finishing the project!
Great project scope, execution, and write up.