How we built NUIMO

A journey through inception, design and technology. We use digital tools on a daily basis. We need to be fast and we need to be good. This post shows the thoughts and the development that went into Nuimo, including user experience, product design, hardware and software.

This post shows the thoughts and the development that went into Nuimo. It includes user experience, product design, hardware and software and can be relevant to any technical and creative person.

Also see Garry Tan’s blog post on why Nuimo is important for designers and creatives.

1. The Problem

Our team consists of electrical engineers, software engineers, industrial designers and UX/UI designers.

We use digital tools like Photoshop, Illustrator, Premiere, Rhino and Eagle on a daily basis. We need to be fast and we need to be good.

We count on our tools to access our favorite actions in a fast and precise way. We want them to help our flow, not disrupt it. Kind of like a musician focusing on the music rather than the instrument.

That’s not what our work feels like right now.

Example: Photoshop

Hue, one of the hundreds of repetitive micro adjustments in Photoshop, hides behind multiple shortcuts with a 2 inch long slider and a tiny text box.

This process is extremely repetitive and imprecise, feeling more like sorting through an index card system rather than focus on the job at hand. Overall, a time consuming and frustrating experience.

I’m sure a lot of you can relate to this when you’re cutting at the right frame position in video editing, choosing the right angles in 3D-modeling or adjusting the wire thickness in laying out PCBs.

This ultimately affects productivity and quality. It adds to frustration and reduces joy and fun. Do our tools need to be that way?

2. The User Experience

The frustrations piled up. Looking through this stack, we realized that they arose out of a poorly designed user experience. In order to correct these frustrations, we worked out a manifesto including 11 requirements we needed from our solution.

We needed a programmable, haptic and dedicated device that gives us the same precision, speed and feeling as using our hand.

3. The Design

We tried many different ideas. Some evolved while others did not live up to our requirements. We looked for inspiration broadly in two areas:

“Dumb” Tools

We looked at everyday things like door knobs or light switches to professional gear like DJ sets or car interiors. We loved the simplicity of knobs and light switches. They are unambiguous and combine multiple senses (like sight, sound and haptics) which reduces your cognitive load and allow you to focus on other things.

“Smart” Tools

We also looked at modern input devices. We loved to play around with them and there were things we really liked about them but others that did not meet our requirements. Some devices were very limited in their functionality while others were an overkill for what we needed.

We ultimately worked our way towards a natural, non-intrusive and elegant design that gave us the power, precision and speed that we needed from our tool

“Good design is as little design as possible: less, but better — because it concentrates on the essential aspects, and the products are not burdened with non-essentials. Back to purity, back to simplicity.” — Dieter Rams

We wanted Nuimo to feel magical and allow us to explore ways to control in 3D space. We used an infrared based hand recognition sensor which gave us this ability. At the same time, it gave the orientation to the device that we needed. We chose high quality materials. Turned metal gave us the weight and durability that we needed; acrylic glass the sensitivity and ability to work with capacitive sensing.

4. The Technology

Hardware is hard. This is where design meets engineering. At this point, we had to translate our design requirements into technical specifications.

It is a complex equation of precision, cost, dimensions, ease of implementation, energy efficiency and availability of component. All these components have to be carefully assessed, planned and implemented.

At the time of shipping, your product simply needs to work; no bug fixing afterwards. Here are some of the sensors that we used in our prototypes.

Angular Positioning

potentiometer acts as an adjustable voltage divider by changing the resistance through rotation. Depending on the ADC, it has great resolution, is quite cheap and very easy to implement. The downside is that it is becomes more fragile over time since it requires a direct mechanical connection.

An incremental hollow shaft encoder works by overlapping pulse trains occurring at a frequency proportional to the rotation. Speed and direction of rotation is determined by the phase shift. Implementation of shaft encoders is quite easy but depending on resolution, they can be quite expensive.

Hall effect sensors measure the force of the magnetic field by its influence on charged particles in particular electrons. These sensors are standard components and thus fairly cheap with great availability. Unfortunately, during application, hall effect sensors did not show the required accuracy of measurement.

Laser sensors are already used in high precision computer mice where changes in position are measured by sensing the scattered laser light which is reflected by an object. These sensors are very precise and minimize the mechanical problems in comparison to a potentiometer and shaft encoder since no mechanical connection to the moving object is needed.

Capacitive touch

All above described sensors for angular positioning sensing are standard components and are therefore quite easy to source and implement. This does not apply for capacitive touch sensing. While larger companies need batch sizes above 10,000 to design custom circular touch surfaces, we decided to build our own multitouch surface implemented on the top layer of the PCB; at least for lower batch sizes. This gives us the freedom to add sensitivity to the areas needed, react to changes in layout more quickly and to keep fixed costs for manufacturing low. By following design guidelines for the sensitive electrodes, one can implement keyboards, sliders and rotary wheels. Available ICs on the market like the Freescale MPR121 already handle all capacitive touch events which makes integration fairly easy.

Hand Gesture Recognition

Infrared technology is a standard approach for proximity measurement and gesture recognition. IR light is emitted by an LED while a photo diode measures the intensity of reflected light of an object. By using multiple LEDs, the distance of objects can be measured as well as their movement parallel to the sensor plane. This opens the door to simple gesture recognition for movements like waving up or left. Furthermore, IR technology has the advantage of being quite energy efficient as well as working in complete darkness.

Laying Out PCBs

One of the main limitations of hardware is its immutability. Once PCB and casing are designed and manufactured, the system is fixed. An update is impossible. For that reason, it is very important to choose the right components, manufacturers and design with care. Prototyping and testing have an extreme significance. Fortunately, rapid prototyping platforms like Arduino shorten development time through the integration of sensors and their firmware into a proven microcontroller environment.

Bluetooth Smart / Low Energy

The choice of wireless technology was a critical one. There were a number of factors we had to consider before making the decision. It had to be fast. It had to be universal. It had to be energy efficient. After trying out several options such as ZigBee, Z-wave, Wi-Fi, Classic Bluetooth, we settled on Bluetooth Low Energy (BLE), also known as Bluetooth Smart.

Energy efficiency: The Classic Bluetooth is a well-known and established wireless technology. But it comes with a side-effect — energy inefficiency. Regardless of whether data is transferred, Bluetooth will consume energy. Enter Bluetooth Low Energy (BLE). It is optimised for low power use at low data rates with simple lithium coin cell batteries in mind. BLE defeated: WiFi

Designed for Sensor Data Communication: In this great post the author compares the two using simple analogies and real life examples. BLE’s Central-Peripherial roles and Generic Attribute Profile allows optimal and efficient communication. One might argue that BLE did to Bluetooth Classic what REST did to HTTP. BLE defeated: Bluetooth Classic, Wifi.

Widespread acceptance: Bluetooth Low Energy is widely available in modern computers, phones, tablets and other devices. Not many people using a modern device need to be explained what bluetooth is for. This makes it a universally known and a “friendly” technology. BLE defeated: Zig-bee, Z-wave

Developer Friendly: The widespread acceptance is not only limited to users but also it’s a popular technology in the developer community too. It’s evident that BLE is designed for non-frequent communication of sensor data. Being a universal and developer friendly technology, it just suited Nuimo which is a careful assembly of sensor technologies.

Developers

Nuimo speaks Bluetooth Low Energy which is already a very open platform for developers to dive right into. But to make it even easier, we’re building open source SDKs and configuration software for developers and other users alike to customize and personalize Nuimo to their liking. We’re building gesture recognition algorithms aimed for speed and precision, allowing developers to focus on applications rather than dwelling into interpretation of complex sensor data. AppleScript opened doors to new genre of applications. Being able to communicate with OSX applications which were not designed to be open was a breakthrough. However, not many have been able to tap into it’s potential still. Nuimo presents a unique opportunity for developers to incorporate it with Nuimo’s gestures. Developers will be able to write their own AppleScripts, Shell scripts, keyboard shortcuts and map it to Nuimo’s gestures using our SDK.

To learn exactly how you can write and share AppleScripts for Nuimo, check out this post.

Further Reading

Writing and Sharing AppleScripts for Nuimo

Part 4/8: Connecting Nuimo to Arduino (…to a Gong)