Making an Interactive Marionette Puppet: From Wired to Wireless, and Everything in Between

Many people say that experience is the best teacher. And I do believe in that. These past two weeks, exploring our midterm, was definitely a period which I learned so many things. Not only from technical aspect, but also learning about myself: reminding me what I want to do, keeping in mind how design process should be, and what principles should I embrace.

Start Small

In this project, I collaborated with Sam Hains. We worked together from the beginning, brainstorming from scratch. We spent a week thinking and brainstorming what we wanted to make. Doing a lot of brainstorming with him gave me a new perspective of how we should start doing project. When we’re making a project, we don’t want to just jump up to what kind of technology we want to use, but start from the higher level, the basic idea what we want to make. Start small.

As a UX designer, I realized that making a project is actually solving a problem. The problem could be anything, human problems that we notice on daily basis, our routines that somehow we don’t ever think as a problem anymore, or just a silly problem that no one ever think of.

So, for me, first thing I want to keep in mind when doing a project is what problem I want to solve. That would give me more ideas what I want to make. From that, we then think about the ‘how’. How that problem could be solved with interactivity. Also, how to design the interaction so that it won’t become more problem. The technical parts come last, after we design what interaction can solve the problems.

Design Thinking Triangle

The problem we wanted to solve might be a silly problem: about a marionette puppet. It basically is just a doll. What about it? We noticed that when we play a marionette puppet, we barely see how we interact with it. Because we play it by the strings while holding the stick, we just see how it moves from the above (see the picture below). Then the question is how might we enjoy playing marionette doll as we watch it moving around?

Marionette Show

That question is our approach when making this project. How were we going to do with the doll, strings, and the stick. Further, we were thinking about how the interaction should be. How could we interact with it without breaking the mental model. We wanted to make the interaction as natural as possible. How usually people interact with it.

We came up with the idea of making it wireless. So basically, user can play with it from the distance, without really touching the doll. We knew that it would be too ambitious making it wireless. But since we’ve learned about using bluetooth with Arduino, we thought it worth a shot.

The Process

As we broke down into the technical parts, we realized that there were 3 basics components that we needed to learn: servo motors to move the marionette doll, accelerometer as a controller, and wireless connector to make communication wireless between the controller and the doll.

Servo Motors

We used 4 servo motor FS5106B. Each servo will attach to the head, both hands, left and right foot of the doll. So it would create a natural movement. For me, I had used a servo motor before, so I had an idea how did it work. But this time, we wanted to run multiple servo motors. Unfortunately, it wasn’t as simple as we thought.

At first, we couldn’t make 2 servos worked simultaneously. The second servo always ran strangely, it was slower than the first one. We looked at the datasheet here. It said that the voltage range needs to be between 4.8-6V and the stall current is 980-1100mA. So, we assumed that there wasn’t enough current to supply both servos. We thought we needed an adapter that could increase the current for 4 servos. Since each servo needs around 1A, so we bought a 5V 5A power supply from Amazon.

Servo Motor FS5106B
5V 4A Power Supply

The other thing to notice is how to map the movement into servo rotation. We wanted to make the movement as natural as possible. Since the strings are attach to the both hands (front), head (back), right foot (left), and left foot(right), we mapped the servo movement based on those movement. When we tilted the controller to the left, the right foot will go down and the left foot will go up, and vice versa. That happened to the head and hands too. When we tilted the controller to the front, the hands will move up, and the head (which at the back) will move down, and vice versa.


We used Accelerometer MMA8452 for the controller. This accelerometer can measure triple axises (X, Y, and Z). But since we only want to move it to the right-left and front-back, we only used X and Y axises. We learned the tutorial here. And basically just followed what’s in the tutorial.

Accelerometer MAA8452



We wanted to make our project wireless. And we thought we could use 2 bluetooths to connect to each microcontroller. That was what I learned in class last week. At first, we used Bluetooth Mate Silver and Bluetooth Module HC-06. Pretty much we followed the instruction to setup the bluetooth and how to use it here. It worked fine to connect the bluetooth and the computer, but when we connect to other bluetooth, the connection was always terminated.

Everytime we wanted to send data from one to another, we needed to open the connection first. And after sending some data, the connection just got interrupted. We assumed that the other bluetooth might not as good as the first one. And the connection was not reliable because we needed to open the connection every time we send data.

We talked to the residents and she gave us an advice to use radio instead of bluetooth. So, we used XBee Radio instead.

Bluetooth Mate Silver
Bluetooth Module HC-06


XBee Radio

We used XBee radio series 1. This thing is just more reliable than bluetooth for a wireless connection. I knew nothing about this XBee thing, and I just learned how to setup and use it in this tutorial. And in order to setup the connection, we need the third party program called XCTU. Using this XBee radio, we could perfectly send data from one microcontroller to another.

XBee 1mW Wire Antenna


Before we went wireless, we went wired first to make sure everything worked perfectly. Here’s the video of the wired marionette puppet.

Marionette Puppet Wired from Vidia Anindhita on Vimeo.


And here’s our final Wireless Marionette Puppet.

Marionette Puppet Wireless from Vidia Anindhita on Vimeo.

Learning Experience

Always Goes Step by Step

There were a lot of things happened when making this project. I was basically just too overwhelmed learning all of these in just 2 weeks (well, actually just a week to jump up to the technical parts). In this project, we kinda underestimated wireless connection, we thought it wasn’t that complicated. We were 100% wrong. It was way more complicated.

After we got our servos working, and we knew how to deal with the accelerometer, we jumped up straight on the wireless connection. We skipped the wired part at first. And it was a bad decision. We noticed that something went wrong with our servos, but we didn’t know why it was, because we skipped so many parts (the wired parts). So, there were so many factors that could happen. And it might be too late to just start all over again. Next time, we would 100% go wired before wireless.

Making My First Enclosure and Thinking the Real Interaction

By making this project, I keep in mind that the representation of the product is very important. It will reflects the user’s impression and how they’re going to use it. Not only that, but we also need to think deeply about the mental model and how usually people interact with the product. Since it’s a marionette doll, which (hopefully) everybody knows, then we needed to design the interaction that everyone familiar with.

Things Got Real (Learning More about Voltage and Current)

I never thought that the components would actually be burned. But things got real. And I meant it. Doing this project really opened my eyes that I do really need to think about electrical stuff carefully. What I’m saying is about the voltage and current and stuff (to be honest, I never really thought about it before). Getting false voltage and current could be really dangerous. First, we needed to check the component’s datasheet to make sure how many voltage and current should we supply.

Getting more voltage than needed could really fry the circuits! And also, when using the power supply or whatever components that we don’t know, just ask somebody for help!

Leave a Reply

Your email address will not be published. Required fields are marked *