Introduction: HK Tram Laser Cut Race Game (Arduino, Pure Data and GSR Sensors)

About: Masters of Interaction Design student interested in affective design, HCI, marketing and brand strategy. Star Wars admirer, dragon boater, runner, nerd and solar-powered.

This game pays homage to Hong Kong’s stressful streets, where the iconic Hong Kong “Ding Ding” trams bring locals and expats together. This project was also inspired by current research studies being done on stress and emotional responses, and our way as Masters of Interaction Design students to externalize people's physiological responses and poke fun of how one person’s stress effects another.

With a pair of inexpensive GSR sensors, which have been used in lie detectors and other biofeedback devices, players power miniature laser-cut “Ding Dings” in a race while playing the popular Liar's Dice Game.

This project took 3 weeks with a team of 4 interaction designers, who have previous experience as a web developer (Denny Hurkmans), graphic designer, illustrator and marketer.

Step 1: Tools and Materials


2 x Arduino Micro Boards

2 x Circuit Boards

50 x NeoPixel Lights

For Electronic Circuit Testing:

2 x Breadboards

Mini USB Cables


“Ding Ding” Trams:

2 x Stepper Motors

3mm thick MDF

96mm long steel rod

Wood Glue

Rack-and-Pinion Mechanism:

6mm thick MDF

6mm thick PMMA

4 x M3 Screws

Race Track Casing:

3mm thick PMMA

Liar’s Dice Game:

2 x GSR Sensors

Hot Glue Gun

2 x Liar’s Dice Set (or 2 cups and 10 die)

1 pair of socks for the ‘cup cosy’ to cover each of the Liar’s Dice cups


Adobe Illustrator

Pure Data


Step 2: Test Arduino and Pure Data Files on Your Computer

To save money, you can download the software for free on your computer. Download the following Pure Data and Arduino files first to understand how they work together. As long as you keep the Arduino file names the same in the attached file, and in the Arduino folder in your Documents, things should sync well.

We tested the connections on breadboards first and USB cables, before soldering them onto circuit boards.

  1. GSR Sensors - connect respective wires from the GSR Sensors to GND, A0 and VCC. Plug the USB cable in and click “Connect all devices/clients”. You should see the GSR take the reading from your skin conductivity and see the numbers move in Figure 1 attached. If not, check your USB modem number, here pictured as “usbmodem1411”.
  2. Stepper Motor - connect the wires as pictured below. You can follow the schematic to convert 12V to 5V in the link here.
  3. NeoPixel Lights - Solder wires onto the three copper ends and connect them to GND, VCC and any pin you would like on the DIN end (not DOUT). We used Pin 4 and 6. Connect your USB to the computer and the lights should move as per the Arduino file. You can change the colour of the lights in RGB as you wish.

  4. Sound - Download the .wav files attached onto your desktop and edit the file name on Pure Data according to the file path you have for items on your desktop. Click “start” to see if the sound plays. You may have to plug and unplug your USB cable, and edit the Audio Settings in PD (under Media) and Output Device.

Step 3: Send AI File to Laser Cut Printer

Almost the entire AI file attached is printed on 3mm thick MDF, however, just the two gears and teeth are printed on 6mm thick MDF and PMMA. In our files, the red lines (0.1pt) signal where it is mere engraving, and the black lines (0.1 pt) are where the laser cutting happens.

Step 4: Build Race Track Casing

We put the clear 3mm thick PMMA casing together first. The top of the Race Track was printed on 3mm thick MDF because we wanted the wheels that the Stepper Motor box would hang off of to have an engraved track to guide its path. The engraving just didn’t work as well on 3mm thick PMMA because it wasn’t deep enough. Next, glue the 2 3mm PMMA teeth together for the rack-and-pinion mechanism, and then sandwich the now 6mm thick teeth between the two strips of 3mm PMMA. Place this inside the casing before fitting the wooden oval arena on top. We also glued two strips of approximately 15cm long 3mm MDF to support the top of the Race Track Casing before it gets put on top of the PMMA box.

Step 5: Build HK "Ding Ding" Trams

Using wood glue, piece the car pieces together. Save for later.

Step 6: Build Stepper Motor Box

Stick the stepper motor inside the small box that fits together with joinery and use the M3 screws to secure it in place. Put a gear wheel inside the D-rod sticking out of the stepper motor. Put a 96mm long steel rod through the stepper motor box so that the box will hang from the casing after you put the wheels on either side of the rods from the top of the casing, where the engraved race tracks are. Glue the miniature “Ding “Ding” trams on top of their respective stepper motor boxes.

Step 7: Attach GSR Sensors to Liar's Cups

Flip the finger gloves of the GSR sensors inside out, so that the larger metal desk is facing outward. Fix the sensors onto the top of the Liar’s Cup (or any cup you want to use in the game) using a hot glue gun. We also snipped the foot of a pair of socks to cover the sensors, and used small holes to stick the sensors out of the ‘cup cosy’. We had tested different ways to attach the sensors, and at the end of the day, found that if there was a bit of space between the metal parts of the sensors and plastic, the sensor readings would be better. Fabric material didn’t affect the GSR readings, but metal and plastic did.

Step 8: Connecting All the Parts

Secure the soldered Arduino circuit boards as picture below into the bottom of the Race Track casing, and place them inside the clear box as pictured below. Stick the wires and sensors out of the holes of the side of the casing, so you can connect the physical GSR sensors from the outside. Attach the NeoPixel Lights.

Step 9: Downloadable Arduino, Pure Data and Illustrator Files

And that's it! Attached are files you can use as templates to make this project all work together.

Digital Life 101 Challenge

Participated in the
Digital Life 101 Challenge