4 ms·
This is awesome! I've been developing firmware in Rust for a Hall Effect keyboard (with springless, magnetic separation switches!) I'm developing/inventing (ju
by riskable 6y ago
This is awesome! I've been developing firmware in Rust for a Hall Effect keyboard (with springless, magnetic separation switches!) I'm developing/inventing (just ordered the first PCBs!). I really wish we had something similar in the embedded Rust ecosystem as a lot of the crates mentioned don't support #![no_std] (declaration you make at the top of your Rust code to indicate that the compiler should not include the standard library).
The world of embedded Rust seems to be developing incredibly fast. Especially since there's so much hardware that you can use with it now and more is on the way (especially in the world of RISC-V... Holy crap there's a lot of interesting and exciting hardware coming!). As a result of that I seem to be regularly encountering situations where I try to do something basic but no one has "made a crate for that yet" (that works with #![no_std]).
Just the other day I found out just how difficult it is to benchmark something (i.e. grab the current time, do something, get the time again, then subtract the difference... It's really, really complicated! Way moreso than it should be). If someone wanted to make a name for themselves by developing widely-used software now is the time to make your mark! The world of embedded Rust is waiting for you!
FYI: I'm still a newbie when it comes to Rust but I was able to develop a universal driver (works with any hardware platform) for working with 74HC4067 and 74HC4051 analog multiplexers in just a few days... https://crates.io/crates/analog-multiplexer https://crates.io/crates/analog-multiplexer
- agumonkey 6y agoEverytime I play with magnets, the first thing that comes to mind is "would be a nice key feel"
- slezyr 6y agoMany Dell XPS 2-in-1 users hated them. https://www.dell.com/learn/ap/en/apdhs1/videos~en/documents~xps15-maglev-v16-video-en.aspx https://www.dell.com/learn/ap/en/apdhs1/videos~en/documents~...
- agumonkey 6y agowell.. here goes my innovation
- chrismorgan 6y agoIn my little bit of searching, most people seem to be saying they like it (many a lot), and most of the dissenting opinions seem to be more about the very low key travel (0.7mm), which is merely something that the maglev keyboard made possible and more bearable, rather than something fundamental about magnetic switches or movements (whichever it is). (I’ve never seen one of these keyboards or even heard of them before, and am thus speaking from an uninformed position.)
- riskable 6y agoYeah, magnetic levitation is the exact opposite of magnetic separation. Magnetic levitation switches are basically just linear switches that get harder to press the farther down they get. Magnetic separation switches are the opposite: The force is strongest at the start but then gets weaker the farther down the key travel you go. Here's a force curve that I've measured for my 3D printable magnetic separation switch: https://imgur.com/qHrgo4s https://imgur.com/qHrgo4s
- andrewshadura 6y agoMy first keyboard was like that. It used magnetic switches from the Soviet IBM PC clone.
- andrewshadura 6y agoCan you write more about your keyboard?
- riskable 6y agoSure, it's a 3D printable key switch design (yes, it's smooth--not scratchy). I've already made one hand-wired prototype and I posted about it on Reddit here: https://www.reddit.com/r/MechanicalKeyboards/comments/iojmyk/im_working_on_a_3d_printable_super_smooth/ https://www.reddit.com/r/MechanicalKeyboards/comments/iojmyk... Here's a gif of the switch mechanism in action: https://gfycat.com/agedadolescentbat https://gfycat.com/agedadolescentbat Here's a video where I talk about the macro pad and demonstrate some of the features of my key switch design: https://youtu.be/LooWLaJOLWU https://youtu.be/LooWLaJOLWU I've made two PCB (prototype) designs for using my hall effect switches: https://imgur.com/a/cYdKfM6 https://imgur.com/a/cYdKfM6 I've also designed two keyboard stablizers: One that's "regular" (Cherry compatible) and one that's meant to work with my hall effect switch design that incorporates magnets to ensure it never rattles. I haven't released them yet though (Soon™). My key switch design was created in OpenSCAD and is parametric. So if you want you can customize every little detail of the switch from the size of the magnets to the travel to the initial force required to depress a key (by controlling how close the magnets get at rest). Once I have a working keyboard firmware I'll release the whole thing open source so everyone can play around with it. Oh! I also made a keycap design library for OpenSCAD to go along with all of this called the "Keycap Playground"... https://youtu.be/WDlRZMvisA4 https://youtu.be/WDlRZMvisA4
- chrismorgan 6y agoThat video is so frustrating: I’m just trying to look at the thing, but your LEDs keep on cycling through annoying and distracting patterns that quite ruin the picture by throwing the camera’s light metering off and adding lens flare. I got about halfway through before it was altogether too much for me. I would have really enjoyed watching the same video with the LEDs turned off. Anyway, I’m going to look more closely into this now, because other that that it looks like a really interesting project! :-)
- davidhyde 6y agoTake a look at the well maintained Awesome Embedded Rust GitHub page here https://github.com/rust-embedded/awesome-embedded-rust https://github.com/rust-embedded/awesome-embedded-rust There is a section called no-std crates which lists a couple of useful crates like bbqueue and heapless. I find it insightful to browse through the public repos of the authors of popular embedded rust crates and see what crates they use most often.