Showing 1 of 1661 conversations about:
View Full Discussion With the help of this thread and skitz in particular, I think I've gotten my keyboard completely debounced. Since the bounce issue was the only reason I nearly didn't buy the keyboard, maybe it will be useful to someone else hesitating to get out the credit card to describe how it went. This is Just. The. Way. It. Really. Happened. Would I lie to you?
So was it worth it? I'm still surprised that normally ultra-conservative, not to mention ultra-cheap me spent $200 on a keyboard with known issues and then went for the problematic switches like an idiot, but since I fixed it with my very own fingers and gcc and now it works like a champ, yes. Yes, it was. Cargo culting ideas from randos on the internet? Shucks, I was just being modest. The fact is, it wasn't foolhardiness, why I knew it would work all the time, I just didn't want to bore you. When you're a seasoned engineer with decades of experience to guide you...well, at a minimum you know how to take more credit than you deserve. By tomorrow, I'll have the story down pat and ready for workk.
Wait, was that a...AAAAAHHHHH!
- Dither and procrastinate about buying the board. The CTRL and it's sister keyboards were the only ones I found that had everything I wanted. Hot-swappable keys and qmk firmware together really cuts down the field. The goal, obviously, was to play around, but as I also plan to use it for development at $DAY_JOB I need it to not be a project keyboard except when I want to play. The bounce problems were just about fatal because of it.
- In a fit of uncharacteristic impulse buying, I decide to not only buy the board but get it with halo switches because, according to $INTERNET, they're more tactile than browns. I cannot justify that decision, given that the bounce issues seem to be limited to the halo switches. I may or may not have been temporarily insane, but it was probably just severe coffee abuse. I mean...the voices sounded so *reasonable*.
- Twiddle thumbs impatiently.
- Bandage blistered thumbs. Twiddle toes instead.
- The board comes Saturday instead of the predicted Monday, so I have time to play with it. Huzzah. Looks good, I'll warm it up with easy work, internet chit-chat with a friend who I haven't seen since he moved to Taipei.
- The bounce. Dear God, the bbooounncccceee. It's like a skyscraper made of finger jello during the Valdivia earthquake (look it up). I nearly get seasick typing. No way I'm going to get code written with this thing unless it's Morse code.
- Think dark, ugly thoughts about the email I *want* to send to Drop, as opposed to the one that I *should* send for optimal service. Try to remember I'm probably old enough to be a grandfather to half the engineers in the company, and therefore allegedly an adult about such things. Adulthood is vastly overrated, frankly.
- Pull self together and check this thread. Right, then, before I write any potentially actionable missives I'd better try firmware from the configurator. Due diligence and all that first, *then* rash and unwise email. As some kind of facsimile of a wise and experienced adult, I know the importance of doing things in the right order.
- The new firmware swaps caps lock and esc like God in His infinite wisdom intended, but only moderately improves the bounce. The seasickness subsides, but backspace is still my copilot.
- Sternly remind myself that the firmware is in C, so hacking it is really more of a holiday than a chore. Until the smoke gets let out, anyway. Google, google, backspace, google...why has no one put the info I need in one place?!? It might just be the impatience talking, but eventually I have mdloader_linux, an arm toolchain, and God on my side.
- I roll up my sleeves as Drop's qmk fork clones and consider taking up smoking and drinking just so I can do shots of Scotch and puff on a Havana while heroically doing battle with the forces of darkness....FIIIIINE, you've got me. I'm lying like a hound dog on a summer day--I know nothing of Qmk and am basically going to cargo-cult skitz' suggestions, and cry like a lost puppy if they don't work. It's not a *great* plan, but it's a plan. Happy now?
- Test my repo and toolchain by building the default firmware as the qmk docs suggest and OH GOD IT DOESN'T BUILD, SOME SYMBOL HASN'T BEEN DEFINED, WHY DO THE GODS HATE ME SO...ahem, right then, what if I try Google before saying farewell to the cruel, heartless world? It's crazy talk, but I like living on the edge. <Clickety-click, backspace backspace backspace, clickety-click...> oooh, Drop's repo isn't in the best of shape, should try default_md instead. Hey, works, and nobody even had to die. Life is good again.
- Flash shiny new firmware...NOOOOOOO, THE LIGHTS, THEY GO OUT. I KILLED IT, NOTHING TO LIVE FOR...or, hey, I could re-check the docs and, uh, add the --restart flag. It could go either way, really, but I choose (b)....IT LIVES! Good thing I had a second keyboard waiting in the box with the "in case of dead board, break glass" sign that is never far from my laptop (I get stares at Starbucks, but I don't care).
- Since YanboWu was skeptical of overdoing DEBOUNCE, it makes sense to see what I can get from wait_us() first. Change the argument to 20 because that was the suggestion and I'm flying blind here. <clickety-click, clickety-click...> wait, no backspace? Hey, that's....really good. I have this urge to name our next child "skitz". Too bad we're definitely done in that department, so I will never get to find out how the wife will take *that* idea. Besides, I can just rename an existing child. It's like recycling, really, and they'll get used to it soon enough. I like it. Maybe I'll rename the wife too, she's always been a good sport.
- So if it works, and I have the firmware factory working, time to fix the keymap, right? Let's get Caps Lock-escape swapped again before I get RSI from reaching waaaaayy up there for ESC. This may make no sense to you, but vi users everywhere understand. Make it into Ctrl when used as a modifer while I'm at it. Plus this, that, and the other thing....
- Almost perfect, one or two repeats in a half-hour or so of hacking the keymap and stuff. Could write code this way, but it's not *perfect*, so back into the breach. Gonna #define DEBOUNCE until it screams for mercy....
- So what value to set DEBOUNCE to? Consider rolling a d20, but realize that would be ridiculous and stupid. The variance is too high, and besides I'm a *Champions* player. Pull out trustiest 3d6 I have and roll...10. Right, set DEBOUNCE to 10...can't lose, right?
- In between building and re-flashing, I ponder the fact that this is really the only other idea I have, and if it doesn't work...no hacking all week on my CTRL. Maybe I should take out an insurance policy. Look for candles, chalk, and a spotted he-goat while wondering if the wife will understand why there are bloodstains on the carpet.
- Goats are a lot tougher than you'd think. Ouch.
- The deck is supernaturally stacked in my favor, I can't lose...AAAH! Leap back as my keyboard bursts into flames.
- The fire extinguisher is in the kitchen, no way to get to it in time unless I slam my own body through the drywall of the intervening wall...OK, fine, no actual fire, it wasn't that awesome. But nearly so, because...IT WORKS. NO BOUNCES. Technically, I *do* owe my firstborn to the dark and merciless digital gods as part of the pact, but I think I'll just wait and explain that part to the wife later when she's in an especially good mood. We'll still have the younger two, and they eat less than the teen, so I think she'll come around.