Our initial approach to getting full electronic control of the massage chair was to contact with the manufacturers. Through Alibaba we contacted over 20 sellers. We asked them about the possibilities of sharing some means for controlling the chair; Some seemed open to the idea—potentially if paid—but didn’t want us to get directly in contact with one of the engineers in order to discuss the actual possibilities. However, one of the companies did send us a picture of the control board. Although not very detailed, it was clear that there was not more going on to control the chair’s actuators than some transistors and relays. With our deadline coming closer, the discussions with the manufacturers not going anywhere, we decided it would be easier (and cheaper) to buy a chair on Taobao and hack it ourselves.
Browsing through Taobao, it became clear that there are mainly two types of massage chairs, those with fixed rotating massage heads (cheaper, but less variation of massage possible) and those with a massage mechanism on a rail (more expensive and more expressive). As we liked the idea of the chair being able to quite precisely massage you, we opted for the latter. The next decision was to choose for an I, S or L track, the difference being that the I track is fully linear, while the S track is curved to match the curve of the human back, and the L track goes all the way under the butt. And of course there was a clear price difference. We wanted to make sure the massage would actually be nice, and so we though the S track would be the most suitable, and the added expense of the L track would not be necessary. Aided by a good discount of the Taobao “618” event (mid-year celebration), we found a model that matched our requirements, was quite below our maximum budget and had that cool futuristic look.
Opening up the chair, we were happy to discover that the control board was as simple as the one the manufacturer had show us before. The board was based on an 8051 clone. With the choice of components, it seemed like the board was nothing more than a board that could’ve been made for the first massage chairs in the 1980’s, with some upgrades to cheaper parts as they became available over time. The board seemed to be able to fit parts to control 4 more airbags and 4 more motors, suggesting that an upgraded version of the chair is also available.
Find out more code&diagram of the project here.
To gain control of the board there were two options: either we would reprogram the current microcontroller, or we would hook up our own board. With some research, we found that programming a 8051 is not as simple as modern boards like Arduino’s, and without having access to the original code, it was quite a task to figure out the details of the chair’s functioning, as from the moment we would reprogram it, we would lose all possibilities of seeing the chair in its original state of operation. It would be nicer to hook up an Arduino to only the parts we needed to control and leave the rest as is. It was not clear if that could work, or if the two microcontrollers would have a negative interaction with each other. However, hooking up an Arduino to some easily identifiable paths, it seemed that it could indeed quite easily take over control. So we opted to bypass the original ‘brain’ of the chair—but leaving it in place—allowing us to keep using the original control interface to operate the chair as normal when the Arduino would be disconnected.
A next step was mapping out the board. With checking out the pin mapping of the 8051 to make some educated guesses, we could use a multimeter to follow all traces from microcontroller to transistors/relays, and confirm by letting the chair run with a scope connected and correlating chair movement to voltage change. Luckily, all but three were PWM pins, all other pins being simple digital I/O, making things quite simple.
With the pins mapped out, we could solder wires to the right traces one by one, checking their function. With everything connected, we wrote a basic program that would test all parts and allow a PC to control each part of the chair. As of now, we didn’t have time to write complex massage programs, and all parts of the chair are controlled by simply setting an on and off time, leading to quite a good impression of a massage program.
The code as linked is an Alpha version, having most basic functionality, yet a lot of potential for development. Please feel free to get in contact with us if you are to hack a massage chair on your own, we are happy to help out and are curious to see how you will take things a step further than us.
About the artist
Arvid&Marie is a duo of artists, experience designers and technological adventurers always aiming to discover new ways to stretch our world. Together Arvid Jense (NL, MSc at TU/e) and Marie Caye (FR, BA Design Academy Eindhoven) collaborate on their shared passion for art and technology. Through the use of interactive objects and performative storytelling, Arvid&Marie use their collaborative effort to explore post-human theories, focusing their creative attention on practical cybernetics and autonomous machines. They believe that researching how humans express themselves, philosophically and technologically, can lead to long-lasting, positive change.