Keyboard Tray and FreeCAD
Since going remote at the start of the pandemic, I’ve had a standing desk setup at home. Rather than an adjustable height desk, I kept my existing desk and put the monitor on a tall VESA mounting arm. Combined with this, I’ve used a variety of stands to sit on the desk and raise the keyboard and trackball to elbow height. These work fine, are a bit cumbersome to move out of the way when you want to use the desk at normal height. So, as a little holiday project, I decided to upgrade to an arm-mounted keyboard tray.
My initial plan was to mount this on the same pole as the monitor, but it ran into a snag — the arm I’d found was from different manufacturer, and was designed for a pole a few millimetres thicker. What I needed was a plastic sleeve, and as it happens I now have a way to make random plastic parts on demand. A few lines of OpenSCAD and twenty minutes of printing, and I had a simple sleeve to adapt the arm to the existing pole. Problem solved. Well, the first problem, anyway.
When I connected everything back up, it became rapidly apparent that the action of typing caused the monitor to wobble quite a bit. This would be annoying at the best of times, and even worse on video calls (as the camera is on top of the monitor). I reconfigured everything so that the keyboard was on a separate pole, but this didn’t solve the issue; both were attached to the desk, and the vibrations from typing still wobbled the screen to an unacceptable degree. Clearly more was needed.
Taking a step back and looking at it, I concluded that the best approach would be to add an additional brace attaching the top of the pole to the wall (the bottom remains fixed to the desk; I didn’t want to ditch the pole entirely as it allows the height of the keyboard to be adjusted). Again, the ability to make custom parts to the exact specifications needed saved the day — I’m starting to see that this will be a complete game changer for DIY jobs around the house.
I could have designed the brace in OpenSCAD, but I took the opportunity to try out FreeCAD. Where OpenSCAD is essentially a programming environment for Constructive Solid Geometry, FreeCAD is a lot closer to a traditional CAD system. Given my background and prior experience, I’d expect the former to be more natural, but to my surprise I found the latter to be a better fit for more complex designs. It’s early days, and I suspect that I’ll end up using both packages in different contexts, but from what I’ve seen so far the extra power and flexibility of FreeCAD is worthwhile even for a beginner like me.
This capability comes at the cost of complexity; my mental model of how FreeCAD actually works is very much a work in progress, and the UI is a mass of toolbars, views and states that I’m still groping around as if blindfolded. How much of this complexity is inherent to a “real” CAD package, and how much of it is due to shortcomings specific to FreeCAD, remains to be seen. I might take a look at Fusion 360 as a point of comparison, but its “free for hobbyists” license makes me wary of investing too much time into it, at least at this stage.
Back to the keyboard tray problem, I got a first version designed pleasingly quickly, but on printing it out realised that I’d based it on the measurements of the narrower pole and so the piece wouldn’t fit. Suitably chastened, I fixed the mistake, and while I was there added a few refinements like countersinking the screw holes and adding fillets. This time, I stopped the print after the first few layers to provide a piece that could physically confirm the sizing. It was spot on, so I printed the whole thing, and installed it.
I’m pleased to report that it worked like a charm — a rock solid keyboard tray arm, and no vibration of the monitor. It was a bit more of a roundabout route than originally intended, but I got there in the end, and learned some things along the way. I’ll call that a win.