Controller Input Adapter

A adapter for the ps4 controller that allows the controller to be used in Virtual Reality system - HTC Vive and Valve Index.

Similar projects worth following
A DIY virtual reality controller with multiple types of inputs and trackable in VR.


The idea is to take the Tundra Labs HDK and create a controller that works in virtual reality (with the HTC VIVE/ valve index).

Items needed for project :


- SteamVR Tracking HDK

- TundraLabs Reference design HDK

- Arduino Zero

- PS4 Controller

- Tracking item (3d printed model that fits the PS4 Controller)

The idea is take the ps4 controller and connect it to the Arduino zero. The Arduino zero takes inputs and sends them to the Tundra Labs HDK over spi. The Tundra Labs HDK takes that info and sends it to the computer. In addition the Tundra Labs HDK comes with optical sensors which will be glued onto the controller to enable tracking in virtual reality. 

The SteamVR Tracking HDK will be used to generate files for the tracking. The sensors will need to be tested, then using the file generated from the SteamVR HDK, sensors will be placed in specific places on the controller. The SteamVR Tracking HDK - IMU calibration will be used to calibration motion. Then the sensor calibration will be done. all this data will need to be stored on a "Json" file which will be uploaded and stored on the Tundra Labs HDK. 


Will continue updating as project continues.


The optical sensors are calibrated and object now tracks in Virtual Reality!

MPEG-4 Video - 18.10 MB - 09/25/2020 at 16:33



Demonstrate controller and Arduino Zero working with the SteamVR HDK.

MPEG-4 Video - 45.35 MB - 05/22/2020 at 22:46


  • 1 × Arduino Zero The arduino zero was used to program and read data from the PS4 Controller.
  • 1 × Tundra-Labs Reference design The HDK from Tundra-Labs TL448K6D-GP-HDK, is the part with the optical sensors. It is the SPI master and takes SPI Slave from the arduino. Also packs in the sensor data to send over Bluetooth
  • 1 × PS4 Controller Just the regular PS4 Controller. Bought from Walmart.
  • 1 × SteamVR SDK/HDK SteamVR was used extensivly to create JSON files, upload/download configs, calibrate the reference design and more.
  • 1 × HTC VIVE/VALVE INDEX In the testing of the CIA, we used HTC VIVE and the Valve Index, depending what was available.

  • Hack it Back Competition entry

    Zeke Barsan07/25/2022 at 01:28 0 comments

    Submitted the Project to Hack it Back competition

    Please Follow & Link the new Project page! 

    I want to put more time in this project and your support can enable that.

  • Software debugging

    Zeke Barsan06/22/2022 at 23:12 0 comments


    There have been some issues with the SPI communication.

    PLEASE NOTE: the Arduino board manager only works using 1.8.2 software version for the Arduino Zero board. This software much be manually selected when installing the board to the Arduino IDE.

    At the moment I'm having an issue with the SPI communications. It'll take some time to debug and figure out where it's going wrong - mostly because time constraints. 

    Don't lose hope, this worked well before. It'll work again. 

  • All files available for review

    Zeke Barsan03/28/2022 at 19:53 0 comments

    Hello All!

    Here are all the files and directions to start, create and finish this project.

    I appreciate any comments, questions, compliments, job offers, etc.

    I am graduating with a Bs in Electrical Engineering in August 2022. School work is sucking up all of my free-time so I don't anticipate finishing any projects this year.

  • September 25th 2020 log

    Zeke Barsan09/25/2020 at 16:43 0 comments


    As you know, the SteamVR controller is made up of four components: The tracker, the ps4 controller, the Arduino zero and the Tundra Labs/SteamVR HDK. 

    The tracker is now tracking in Virtual Reality!!

    The Arduino Zero had been working as seen in the "TrimTrim" video. However, there was an update to Arduino and I uploaded a new version of the code and now it doesn't work :).

    The steamvr software is almost complete. I've built a render model, created a driver for the controller and a json file. 

    At this point arduino is being anoying, so I'm considering just tossing out the ps4 controller and code a few buttons which will be glued on the tracker. This option would be quick and dirty but the project would be closer to being finished. 

    The steamvr software: well honestly it's technically done, but the json file is not on the hdk because of the arduino code issue. So once the arduino can talk nicely to the tracker, we can upload a nice render model. 

View all 4 project logs

Enjoy this project?



Anran wrote 04/30/2022 at 18:38 point

Super impressive work!

  Are you sure? yes | no

Zeke Barsan wrote 05/31/2022 at 03:36 point

Oh thanks! I've been thinking bout this project recently. I think I know what I did wrong in the arduino code. Hope to post a video of this device working in a few weeks

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates