Bad Vibes Desk: Prototype 3

Getting Unattached

In order to test the vibration reduction of the desktop being attached to the legs, I designed a new drop-in system of anchoring. This eliminated any additional load from the legs.

Photo Nov 24, 9 47 58 AM


This worked really well. But the trade off was the fun experience of having the desk physically move away from you when the top was connected to the legs. For the presentation, this was the final design (albeit with the solid, one-piece top).

Bad Vibes Desk: Prototype 2

Lesson Learned

For the second prototype I wanted to revisit the two-part structure of the desktop. I had initially been worried about the weight, but realized quickly that with the CNC machine I could easily remove as much material from the wood as I wanted while maintaining structural integrity.

I used almost the same exact design as the first prototype with the only major adjustment being the removal of the interior leaf.


The motor was mounted to the underside of the desk and the top was clamped to the speed rail.

Photo Nov 25, 12 47 08 PM

One solid piece reduced the noise dramatically. It also produced an unexpected, but not wholly unwelcome, side effect–because the desktop and legs were clamped together, the entire table vibrated and skittered around.

Next Steps

I still wanted to know how much the legs being attached actually affected the desktop vibration, so I thought up a less permanent way of attaching the top to the legs.

Bad Vibes Desk: The Trigger

An Electrical Bridge

Things were coming together. The physical component of the desk was prototyped. I had network access. Now I needed to bridge the two.

The Circuit

In order to get enough power to run, Bertha, the vibration motor, needs 24v. The Arduino runs 5v. In this case, the Arduino acts as a gate keeper–when it gets a specific input (an SMS) it sends a little current to a transistor circuit which is the gate. The transistor does the job of electrically connecting the motor and its 24v power supply.

Screen Shot 2014-11-26 at 2.42.05 PM
A transistor circuit with an added potentiometer.

Solder City

This little circuit board was designed to fit right onto the GSM shield. This would help keep the various network-related components in a relatively contained package–something that would be easier to mount to the desk.

Bad Vibes Desk: Accessing the Network

Global System for Mobile Communications

Access to a network is basically what puts the “connected” in “connected-devices.”

For the Bad Vibes Desk, I wanted to be able to access the phone network in order to receive text messages or SMS. The Arduino Uno doesn’t have any type of connectivity, besides serial, on its own. In order to access the phone network I needed a GSM shield. That white square is a Quectel M10 radio modem, which connects to the network through GRSM (General Packet Radio Service), a data service on 2G and 3G mobile networks.ArduinoGSMShield_Front_450px

(Benedetta also happens to be a phone network wiz and she was kind enough to let me borrow a GSM shield that she had personally designed and had manufactured. That’s the smaller white shield below.)

A SIM card is also required in order to connect to the network. So for around $25 I got an AT&T SIM and a month of unlimited SMS.

Photo Nov 06, 6 39 17 PM copy

Issues with Connectivity

I had a lot of  issues during the first couple weeks of trials with both shields. Neither worked with the Arduino GSM library. So I bypassed the Arduino completely.  Using serial communication and the native language of the GSM card, AT commands, I was able to connect to the network (on both devices) with a high rate of success.

Thinking I was in the clear, I left the GSM stuff behind for a few days and when I returned, nothing was working. So I brought it in to ITP from my apartment, where I had been doing the initial tests. To my chagrin (though not my surprise) it connected without any issues. In the end it seems like I spent two-plus weeks stressing out over nothing but poor signal strength in my apartment.

Receiving SMS

Once the GSM shield was connected, this was no problem at all.  I used a slightly modified version of the Arduino GSM library’s ‘Receive SMS’ example code for my purposes.


Next was developing the circuit to trigger the vibration motor once a SMS had been received.

Bad Vibes Desk: Prototype 1

Sketching it Out

For this project I focused on designing and building the desktop and always intended to use pre-fabricated (or nearly pre-fabricated) legs.

Photo Nov 17, 6 09 20 PM

For this first prototype design I imagined a frame of sorts with a lip that was attached to legs, and a middle panel that drops into the desk, resting on the lip. The motor would be mounted to (and only transferring energy to) the lightest part of the table–the panel.

When designing the desk the most important factor from an engineering standpoint was the weight of the table: The lighter the table; the more energy would be transferred from the motor; the more intense the vibration. Which is the point.


I used Illustrator to design/create the files and the CNC machine to cut the two sections of the desktop. It worked like a charm. Although because of the diameter of the router bit I needed to do a significant amount of sanding around the corners to create a seamless fit.

I drilled the motor mount into the untouched section on the underside of the panel, which was designed as a mounting block.

Photo Nov 22, 3 35 50 PM


I clamped the desktop to legs I made of aluminum speed rail. This worked, but ended up being incredibly loud. The panel and frame knocked against each other around a hundred times a minute. This sounded like a mini jackhammer. It was unpleasant and annoyed everyone in the shop. Not ideal.

A second prototype was imminent.

Bad Vibes Desk

Shelving Knollbot™

It’s become very apparent for several reasons, including, but not limited to, the wildly complex nature of computer vision and robotics, my complete lack of experience with said things, and an extraordinarily expensive BOM, that Knollbot probably isn’t the smartest idea to pursue  for my PComp final.

I am, however, going to maintain some sort of continuity by developing a different piece of interactive  furniture. Something simpler but also conceptually driven.

The Bad Vibes Desk


Design and build a piece of furniture that takes technological integration to it’s natural (and absurd) conclusion. In this case, a desk with integrated notification vibrations.

Someone will text the desk and, like a phone, it’s vibrations will make impossible to work.

Project Plan

I’ll be working simultaneously on designing the desk itself and configuring a network-connected GSM module to receive SMS and use them to trigger an external event. In this case, turning on a motor.

GSM Module

I’m working with a couple GSM modules to get aquatinted with the technology. One of the modules isn’t an official Arduino board, so haven’t been able to get it to run with the build-in GSM library yet. However, using a serial communication workaround I’ve been successful interfacing with the module. I’m able to communicate with it using AT commands. It’s been perfectly responsive with everything so far, including sending and receiving SMS. Next I’ll need to determine if this work around is what I’m going to have to use to code the Arduino or if I’ll be able to get the GSM library to work.

There’s a second GSM module from Adafruit that I’m also going to be experimenting with.

Fabricating the Table

I’d like this to be a well designed and functional desk. I’d also like to highlight how annoying and counterproductive being constantly connected is. To be successful the table needs to be light enough to vibrate violently and strong enough to hold it together while it’s being used as a work surface.

Bill of Materials

System Diagram



November 10 – 17:

  • Complete BOM
  • Order materials
  • Configure GSM module
  • Begin coding
  • Desk design

November 18 – 24:

  • Desk design con’t
  • System testing
  • System refinement
  • Desk prototyping

November 25 – December 2:

  • Desk fabrication
  • Assembly
  • Testing
  • Troubleshooting

December 3 : PROJECT DUE