Table of Contents

The primary constraint of hardware is that it should be able to run a fully free software distribution. The secondary constraint is that designs should be specified in terms of units which a multitude of producers could provide, and which have corresponding products which can be purchased off-the-shelf today without any special inter-personal connections. The third constraint is that it should try to be ergonomic and facilitate long-term use.

For my personal use case, I boot PureOS as the base system, and do all additional configuration/installation/service setup through the GNU Guix functional package manager (primarily, guix home).

1. Primitives

Here I list some off-the shelf products which are used in the following designs.

  • compute. A device which is able to run a free software distribution. So far, this has been Librem 5's (when the compute is worn) or a desktop computer (when external).
  • input device. For all of the designs so far, this has been a split keyboard, sometimes with key combinations mapped to mouse input. In the future, I would like to include touchpads to enable easier adoption. In general, it should be possible to swap out an input device, and I am keeping myself open to more radical input devices like controllers or EEG.
  • connector. This can be wireless like bluetooth or WIFI, or wired like USB and/or HDMI.
  • storage. This is usually flash storage, often in a microSD card..
  • battery. This is usually a USB battery backup block.
  • hub. This is usually a USB-C hub with HDMI and a power in port. More generally, it is any nexus of connectors.

2. throne

Though the throne was the first design I worked on, it is likely last one I will return to. It was designed with the goal of finding the optimal method of controlling compute while sitting. I have since come to the conclusion that the optimal method is to not sit. However, humans will likely continue sitting in the future, so I will eventually return to this design concept. The throne is a chair with some input device attached. The throne may or may not be mobile (like with wheels), may or may not have compute, and may or may not double as a toilet. The throne may also have an output device, like a monitor, and is hence the only design at present that has both an input device and an output device.

2.1. throne V1

2021-10-22_wireless-chair.mp4

This version consisted of a rolling chair with two arm panels. The arm panels are marketed for mice, but I purchased two and put one on each armrest. I additionally connected keyboards to the arm pads using a hook and loop fastener (aka velcro). The keyboards were connected to each other, and to a bluetooth hub which plugged into a battery pack. The bluetooth hub received power from the battery, and passed power through to the keyboard. I was then able to pair my keyboard to my desktop. In the video, you can see me control my desktop wirelessly, and with the ability to move around. In theory, you could

3. techbelt

The techbelt is distinguished by an input method attached to it, especially when that method is attached such that your hand reaches it when hanging at rest (i.e. hanging at the sides). That input method may connect to another compute via solder point, wire, or wirelessly. There can optionally be compute on the belt which may or may not be controlled by the input device. There may or may not be a slot for a battery pack in the belt which may or may not power the compute and keyboard through a hub, like a USB-C hub.

Part of the philosophy of the techbelt is that work should be done while standing with the option to pace while working. It is not expected to be usable while sitting, though sitting support may be added if it can be done without compromising elsewhere.

3.1. techbelt V1

techbelt-thumb.jpg

This picture features the first prototype for a techbelt, complete with an accompanying halo. The halo is optional, as the belt can be used to control an external compute with its own monitor. The design is versatile: I used it regularly to control a desktop, as well as a Librem 5 in my pocket.

The design consisted of a USB-C hub glued onto a nylon belt. Attached to the belt are straps which hold up a pair of keyboards. The exact position of the keyboards are calibrated to ensure that when the user's fingers are on home row, that the user's wrists are in a neutral position, and the user has good posture. It feels a little strange to use at first because we are used to our arms being forward twisted in (thumbs down); hence, at first it feels like your hands are pushed back along your waist, and hands twisted out. Additionally, the belt has a slot for a USB battery hub. I used a 40,000 mAh battery, which was able to power the USB-C hub, keyboard, halo, and phone for 8 hours of continuous use. In contrast, the same block can power just the phone with regular use for a whole day. For me, this meant I could have a supply of charging batteries which I switch out at the beginning and end of work to have constant up time for all 16 waking hours.

One major bonus to this design is the stealth factor; in addition to the functional parts, I was able to build in a light cardigan that conceals much of the device, allowing it to be worn unnoticed. (Though, the halo is a dead give away.)

One of the main design flaws of this iteration was that it could not reliably hold my compute (Librem 5). I wanted to be able to take off the belt without removing the phone (it should always stay on my person), so I left the phone in my front pocket and connected it from there. Sometimes I would sit down and the USB connector on the phone got pushed forward enough to permanently damage the port. The port still works, but the connection is inconsistent…

3.2. techbelt V2

The techbelt V2 addressed the main flaw of the V1 by including an on-belt module that holds the phone. It consists of a sleeve on a flap with straps to restrict the motion so the phone can rest horizontally (screen pointing up) or can be secured with screen up against the belt with a strap.

<pictures of phone module here>

For political reasons, I also chose to switch my keyboard to the Ergodox for this iteration since it is an open hardware project. It is less sleek (in fact I removed many keys) but I should have more ability to modify it in the future.

<picture of Ergodox here>

The other difference between the V1 and V2 is that I kept the covering separate from the belt. In the V1, I sewed a cardigan directly into the belt, while in the V2 I created a companion jacket. For the jacket, I started with a free (as in freedom) sewing design from freesewing.org. I put in my measurements, and added an extension to make it long enough to cover my keyboards.

<picture of jacket here>

As with the previous version, I am able to type through the fabric without trouble. Since my hands do not have anything in them, and aren't in any pockets, people automatically disregard my fingers. Furthermore, the frills at the base of my jacket obscure the motion of my fingers, so it is incredibly stealthy.

3.2.1. techbelt V2.1

Though I originally designed the techbelt V2 with the halo V1 in mind, I was recently able to get the halo V2 running. Here is a preview of how that will look. (I had some trouble with USB-C hubs. You will notice the one I'm using isn't really attached)

<images courtesy of Showri Bekal CC-BY-SA>

techbelt-0-thumb.jpg

techbelt-1-thumb.jpg

techbelt-2-thumb.jpg

4. halo

A halo is similar to a techbelt in that it need not always include compute. It is complementary to the belt in two ways: the halo wraps around the head and has output method, while the techbelt wraps around the waist and has an input method. It should be able to deliver audio and/or visual information to the user, but may also do things like control lenses or hearing aids or the like that augment the user's perception of the world. A halo is often used as a complementary device to a techchain, throne, or techbelt

4.1. halo V1

halo-thumb.jpg

Though I often feel like my designs are too simple to warrant sharing, this one is particularly simple. I purchased two Vufine+ HDMI displays with two Vufine Pro mounts. I then consolidated the mounts onto one headband (mount each came with a headband). This gave me two displays which can be moved independently. At the time of this writing, I have only used one display as a display at any point in time. There are, however, a few benefits to keeping it around. (1) The second eye-piece makes for a more symmetric, and therefore more ergonomic (no neck pain) and aesthetically appealing setup. (2) Sometimes the first display gets into a locked/unresponsive state, so the second is a backup that can be switched out. (3) As I try to debug bugs in such a complex system, it is good to be able to swap out any individual piece with what should be an identical piece. (4) The combination of the two displays makes for a very natural set of social cues: two displays up means you have my undivided attention (nothing between me and them; full eye-contact possible), one display up and one down means they have half my attention, and both displays down means I am trying to focus on something other than those around me.

4.2. halo V2

For my second halo iteration, I have switched to an xreal air (Vufine for scale).

xreal-air-thumb.jpg

Getting it running off the Librem 5 ended up being a bit quite difficult. When none of my USB-C modules worked, I ordered 4 different models online; two also didn't work, a third worked a bit but caused some issue which crashed, and the fourth… worked! (Vufine for scale)

hub-thumb.jpg

Interestingly, you may notice that the far port shown is a VGA port. The reason connecting to the Librem is so difficult is that the display expects to receive an HDMI signal, and also power over USB-C, the latter of which the Librem 5 is not willing to give. The glasses have only a 1920x1080 display mode, and an absolutely massive field of view.

4.2.1. Problems compared to the V1

While the V2 can be worn with glasses, it is much better if you get the prescription lens attachments directly for the xreal. This means that you must swap glasses any time you want to go between using the display and interacting with the world with your normal glasses. Since it is AR, you can leave the lenses on, and turn off the display, but it still impairs vision. It makes various lines in your field of view, and doubles as fairly dark sunglasses, so it feels a bit like having really dirty glasses all the time. Hence, you don't really want to be wearing them when they aren't in use. The solution is to put them on your head or in your shirt neck, but then you need to juggle your actual glasses back on. This is especially problematic with social interactions, where unobstructed eye contact is so biologically important.

The other problem I have had is that the V2 is less comfortable than the V1. It is not very adjustable, and expects a smaller head, so it squeezes my ears. Even if the arms are adjusted, I don't think it will ever be as comfortable as the headband for the V1.

4.2.2. Moving forward with the V2

In my view, the general design of the V1 is superior, but the field of view is too small. I reached out to Vufine to ask if the had plans to improve the field of view, and they were nice enough to let me know that they wouldn't be improving the product further.

In the future, I'd like to see what sort of modifications I can do to the V2 without bricking it. It would be cool to be able to add similar functionality to the V1 as far as raising one display at a time.

Author: Zacchaeus Scheffer

Created: 2024-10-19 Sat 13:42

Validate