Wireless Gametrak

by jekn in Circuits > Microcontrollers

57 Views, 1 Favorites, 0 Comments

Wireless Gametrak

wireless_gametrak_inside.jpg
gametrak_with_keypad.jpg
wireless_gametrak_held.jpg
wireless-gametrak_grass.jpg

photos of hand holding gametrak and gametrak on grass by Daryl Feehely

Note: this guide is in development, so may require more details. Please ask if you have questions.


The Gametrak was a short-lived piece of gaming hardware, originally designed for 3D motion tracking using retractable cables, that was widely adopted by experimental electronic music, laptop ensembles, and NIME communities. The underlying mechanism is surprisingly precise, making it so appealing for creative repurposing. In this project, we will extend the Gametrak by converting it into a wireless motion-tracking controller with a keypad.

This build is suitable for makers, musicians, and creative technologists interested in movement, interaction and microcontrollers, who want to explore real-time motion data in an affordable way.

The device transmits sensor and keypad data over Wi-Fi, making it easy to integrate into environments like Max.

This guide walks you through the process:

  1. disassembling the original Gametrak
  2. modifying the case
  3. wiring up the new components
  4. uploading the Arduino code,
  5. and receiving the data in Max

This adds significant flexibility to the gametrak and the motion sensing can also make it a two-player instrument. I've used this in solo performance and in a collaborative dance project.

Supplies

Electronics

  1. Adafruit ESP32 Feather V2 (link)
  2. LSM6DSOX + LIS3MDL IMU Sensor (link)
  3. TCA8418 for keypad matrix (link)
  4. 3.7V LiPo battery (compatible with Feather)
  5. Membrane Matrix keypad (link)
  6. SPDT slide switch for power on/off
  7. wires

Tools

  1. Screwdriver
  2. Soldering iron and solder
  3. Rotary tool (for case modification)
  4. Double-sided tape or adhesive for mounting components

Disassemble the GameTrak

  1. Remove the screws and open the case.
  2. Unscrew and disconnect the original PCB.
  3. Identify the 2 connectors which make up the XYZ for each side.
  4. X - green
  5. Y - yellow
  6. Z - orange
  7. GND - blue
  8. 3.3v - red
  9. Cut the connector from the 2 groups of wires making sure to keep them as long as possible


Modify the Case

  1. Remove one of the internal concrete blocks using a screwdriver (this is a useful place to house your microcontroller)
  2. Create a narrow hole in the top of the case for the keypad to fit through (needs to be around 30mm wide)
  3. Ensure there's enough space for the ESP32, battery, and wiring, and cut off some screw mounts if necessary


Install New Components

  1. Mount the ESP32 Feather V2 inside the case.
  2. Connect both grounds from the left and right tether and the ground from the switch so that one can be wired to the board. You might want to use a little bit of perf board for this.
  3. Connect both power wires from the left and right tether so that one can be wired to the board (again maybe use perf board)
  4. Wire both power and ground. (use header pins if you do not want to solder)
  5. Wire the switch to the enable pin (link)
  6. Connect the six analog wires to ADC1-compatible pins on the ESP32 (A2, A3, A4, 33, 32, 37). (note that using wifi means that you cannot use the ADC2 pins)
  7. Route the keypad through the hole and secure it to the outside of the case (make sure to do this before wiring).
  8. Wire the keypad matrix to the TCA8418
  9. Connect the IMU and TCA8418 using the STEMMA QT connectors.
  10. Stick the IMU inside the case, noting its orientation for accurate motion tracking.
  11. Connect and secure the LiPo battery.

Upload the Code

  1. Open the Arduino IDE and install necessary libraries
  2. WiFi
  3. WiFiUdp
  4. Adafruit TCA8418
  5. Adafruit LSM6DSOX
  6. Adafruit LIS3MDL
  7. Open the code (ino file) below in your Arduino IDE
  8. Important:
  9. Edit the Wi-Fi SSID and password in the code.
  10. Edit the IP address of the microcontroller
  11. Edit the port numbers, make sure that they are unique (you will need to know this for your max patch communication)
  12. Note that this is set to multicast to all on the network, check that your router permits this and change the 255. address to a static IP of the receiving computer if needed.
  13. Upload the code to the ESP32.

Downloads

Test in Max

wireless_gametrak.png
  1. Power on the device with the switch. Note that you can charge the LiPo directly from the board.
  2. Use the included Max/MSP patch to receive the data.
  3. instructables does not allow uploading .maxpat so instead the json is provided. Please copy the contents of the text file and in Max click - File->New From Clipboard
  4. the patch uses sadam.udp so you will need to install this package
  5. Confirm that motion and keypad inputs are being transmitted correctly.



Conclusion

With this wireless GameTrak conversion, you've transformed this unique piece of gaming hardware into a powerful motion-tracking interface, completely untethered! I found being able to pick this up and play with it gave it so much more possibilities - especially for collaboration.

By integrating an ESP32, IMU, and keypad, and transmitting data over Wi-Fi, this project could be used within interactive installations, musical performances, and as a two-player instrument.

If you build your own version, please share your results, modifications, or questions in the comments. I'd love to see how others take this even further!