Ultimate Workstation
The plan is to have this be my primary workstation and leave the desk/treadmill setup for occasional use (writing, watching movies).
The controls should be "at my fingertips" but arc out. The arm rests should be more wedge shaped - my elbows will stay in one place, but my wrists will follow an arc to each set of controls. There can also be extended interfaces directly in front of my fingertips - usb controls, possibly the optical disk.
I'd also like to incorporate foot pedals. Possibly as a mouse, also to launch other features.
Alpha
My knee is getting really bad and I need to do something soon. My thought is to use the red chair. The all I really need is something for the monitors, keyboard and mouse.
What I'm thinking is to get rid of the desk (put it by the window). a small platform goes over the treadmill. The red chair and black stool go on that. The monitor stand/lift goes at the head of the tread mill, it's base is a fork going around the treadmill.
I've done some rough measurements, and the height may not need to change all that much because when I sit in the chair, I'm most relaxed looking up at about 25°. So the whole monitor configuration needs to tilt down by that much. I can get the correct positions with a near-parallelogram. If the bottom's a little shorter than the top, it will tilt as it moves. Springs should be able to give enough counter balance to make it easy to raise and lower. I'll have it with a slight positive weight, with a stop at the bottom and a latch at the top.
I think I could even do the mount super cheap by getting long screws that fit into the monitors and drilling all the way through 2x4's. Or some steel strip, or something like that.
Neat trick, I can have a rope connecting the arm of the monitors to the top of the treadmill cover. Raising the monitors will lift the cover. It needs a little slack so I can lift the monitors to get into the chair.
V2
Goals:
- Use sitting with legs up or at treadmill
- this requires tilting monitors
- and mobility
- dock for work computer, possibly laptop
- need to be able to adjust mouse/keyboard
Supported overhead by gantry.
Use individual mounts for monitors. Ditch the subwoofer, get basic speakers.
The console has a few feature that will constrain its shape. I need to be able to sit comfortable in the chair, so it need to fit to the arms. I'd like a space to incorporate a dock for my work computer then I could work from home more effectively. I'm going to be building the computer into this, so the optical drive will be right there. Need to route a lot of the rear hookups - USB and headphones. Though I'd be better with speakers that can switch to headphones. The motor control interface will also need to be exposed.
UPDATE
Looking at going back to a desk design. Use this, add locking caster wheels.
Monitors
I want the 1:2:1 monitor layout. Individual mounts are $15 on Amazon. I'll also put the speakers (not woofer) and camera up on this.
The monitors need to sit in a position so that when I'm reclined they are as close as possible without need to move my head at all or my eyes too much. I want the reclining action to bring them down. This will require one of those linkages where the reclined and upright positions are both local minimal.
One thought is that I could do this with motors and threaded rod or lead screws. That would make everything adjustable and I could program multiple positions in. I don't need it to be fast getting from one position to another.
Chair
The chair should be reclined, comfortable and supportive. Part of the reason this project is taking a higher priority is that my current set-up is hurting my neck and knees.
This is cited often as the very best chair for this sort of thing. This is a high res picture. I should be able to pull the angles and make a decent replica. That chair is motorized, but I would just add a toothed break to hold the desired position.
Angles
- Should -> Back : 150°
- Back -> Thighs : 120°
- Thighs -> Calves: 125°
I'm going to get one big piece of OSB and create a trace of the side of the chair. Then cut (jigsaw) ~6 copies of this. Drill holes in the side and connect them. I want the pads to be removable and washable. I'd like to add a better headrest that supports most of the weight of my head at the base of my skull.
Keyboard
samples
- http://lifehacker.com/make-a-custom-bluetooth-mechanical-keyboard-gamepad-1790532920
- http://lifehacker.com/build-your-own-fancy-glowing-usb-volume-knob-1790293450
- http://hackaday.com/2016/06/12/quickie-usb-keyboard-device/
https://github.com/tenderlove/tmk_keyboard
Surprisingly, this is the tricky part. No great options (at least none yet), so I'll build one. Need to prototype the layout with Lego or cardboard.
- Arduino Clone $4
- lcd $2
- shft reg 3x$0.1
- switches $40
- pedals
- Springs $5 for 5
- joy pads 2x$1.20
- Diodes (1N4148) $1.40 for 200
- keycaps
- Main 104 $26
- Wide blanks $8
- Stabilizers
- Plate aluminum $10
Total ~ $90
Integrate a USB hub, just have the keyboard be one of the devices. I also like the built in, hidden storage.
The Leonardo is easier to use as a mouse/keyboard, eBay clones at $4. Each hand will have two shift registers, I should be able to share some of the pins on the Arduino between them. Keyboard is a wire matrix with a diode on each key. The RasPi 0 may be a good choice.
I'd like to add an LCD display (16x2 HD44780, probably also with a shift reg) and internal functionality. The primary one is macro record/playback. I may do media keys this way, but I don't use media keys often. Adding a clock would be nice. I don't want it to rely on any feedback from the computer, so no "monitors" of any kind - maybe can pull time from NIST radio.
Put a few pedals on and let the Arduino code remap them.
The 1212T switches are common and cheap, but I can't find keycaps for them.
There are some good vanity keycaps
- portal
- power
- lock
- "gentlemens" set
- coffee
- red lightning bolt
- atom
- creeper
- zelda
- biohazard
Switches
I want something MX compatible because otherwise, the keycaps become a major pita.
- Cherry MX Blue: 110 for $54 ($0.49 each)
- Gateron Red: 120 for $35
https://www.reddit.com/r/MechanicalKeyboards/wiki/switch_suppliers
Best source so far: http://mechanicalkeyboards.com/shop/index.php?l=product_list&c=43 The other (non Cherry) switches are cheaper. Also, look for "Gateron", found 120 on Amazon for $40, they're MX compatible. Found one Kalih seller on eBay. The common clones are Kalih, Gateron, Greetech and Gaote.
It's also worth noting, I've been looking at tactile switches. They're super cheap ($5/200) but I'd need to add the resistance myself and figure out how to adapt them to the keycaps. However, they may be a good choice for the "extra" keys.
The MX mount is a + 4.1mm wide with each arm being 1.17mm wide and 1.365mm long.
The Gateron switches I want to use are plate mounted, so I'll need to build a plate. I'll use 1.5mm or 1/16in thick aluminum. I'll put together a jig to cut each hole. Start by drilling a hole in the center and use that to align the jig. I'm not sure what would be better, a punch style, or pantograph style (dremel+561 spiral bit). I'm leaning towards pantograph. Holes need to be 14mm square.
http://www.slideshare.net/obrajesse/building-a-keyboard-from-scratch
Layout
Wrist padding.
Four modules; Left, Right, Core and Pedals.
The core is a RasPi. I think each module will have an Arduino running. I think the best setup is to have the arduino constantly polling, updating a queue of events. Then the RasPi can enable an interrupt to read from the queue. The core will also have a small touch screen run by the RasPi. This can run any ancillary features I can think of. I'd also like to add at least one rotary encoder on the core for stuff like volume.
Need to experiment with pedals, I think a layout of 3 buttons for each foot is good. I can probably also control a wheel. All of this is configurable within the keyboard. I envision using the pedals to enable functional modes; shift, ctrl and changing the function of the keyboard (see alternate modes).
The right and left correspond pretty closely to the two halves of a standard keyboard. On the right hand, I want a scroll wheel between I and O. A lot of the side buttons will be moved under the thumbs. The layout is more like an Ergodox, but the fingers are splayed a bit. I want to be able to control the mouse without moving my hand. One option is something like the TouchPoint, though I'd place it between H and U. The other option is if I can get a small mouse ball on the thumb, that would be great. I've ordered one module to try, I'll have to test it's accuracy. I also need to put the left and right mouse buttons somewhere.
There will be at least one alternate mode, possibly more. The primary alternate mode is for navigation. JKL; become right, down, up and left (which should particularly drive vim users crazy). Above that UIOP will be Home, PgUp, PgDown and End.
Software
This is actually the first step. I want to do this is C, not Processing. Maybe use [V-USB]
What makes more sense is to use a RasPi in OTG mode. Then I won't be fight with speed issues.
Features
- On board macro recorder
- Password vault
- text-to-speech?
I might be able to get it working as a bluetooth keyboard - that might even be easier that USB.
It should boot as an HID device normally, but have the ability to reboot in a way that I can log in and change it.
It looks pretty easy to add ethernet over usb, so I could make the keyboard act as a wifi dongle.
RasPi has 25 GPIO pins.
Reading
Maybe (someday) add a second camera and spot for a book so I can read on the monitors while laying back.
Motor Driven
I've looked at a lot of designs and they all suffer from the intersection of motion, precision and adjustment. It's really hard to make something that is stable in both the up and down position, and move between them and provides enough adjustment or precision to be at the right level.
So I think the better approach is to make the whole thing motor driven.
- Forward/backward
- Up/down
- Tilt forward
Up/down may be a little challenging because I'd rather not have a pole hanging down, but realistically for a viable version I can base it off an approximation of the range of travel necessary.
I'm also not sure how the keyboard/mouse factors in. It will move forward/backward with monitor and it won't tilt, but it may need a separate up/down in addition to the monitor. I'm also not sure where the tilt pivot should be located relative to the keyboard.
Positioning doesn't need to be super accurate and the movement doesn't need to be fast. Basic brushed dc drill motors with rotary encoders on the threaded rod should be fine. I'll also need end stops. I'll also need some sort of speed reduction like a work gear.
Update 10/14/2016
I've built a frame for the monitors and got a temporary frame setup, already much better. The plan is to build a second temporary frame very soon because I want the monitors higher than they currently are, and they aren't quite as stable as I'd like. With the tmpFrm2, I'll work on getting a mouse and keyboard setup perfected. Once that's done, I'll need to test out a standing frame for a few days (not looking forward to that!). Then I can build the whole thing.
Stage 2 will be to start testing and building a keyboard/mouse setup. When that is completed and deployed, I'll move on to building a new chair.