Repository for the IEEE VR 2025 Poster - Dynamic and Modular Thermal Feedback for Interactive 6DoF VR: Implementation and Evaluation
Sophie Villenave, Pierre Raimbaud, Guillaume Lavoué
Creating ambient thermal feedback for VR experience is a challenge, and while numerous solutions in the litterature exist to provide thermal sensation, they are often very complex and under-documented. As this makes replication tedious, we propose a simple and tried system, that uses infrared lamps and fans, which can be easily controlled and is proven to provide quality thermal sensation while in VR, which is shown to enhance user quality of experience, and can also be crucial to specific applications. This repository hosts the Unity package we developed to control our thermal feedback system from a VR application. It also contains the technical documentation required to replicate the system as it is presented in the poster.
- 4 x 300W Infrared Lamps
- 4 x Lamp Holders
- 1 x DMX 4-Way Dimmer
- 4 x DMX Fans
- 1 x Arduino Mega)
- 1 x DMX Shield for Arduino
- 1 x Shield Stack Connectors ARD85
- 2 x Jumper Wire Female to Female
- 5 x 3-pin DMX Cables
- Arduino Mega. Other arduino models won't work because the DMX shield uses the RX and TX ports of the board.
- DMX Shield
- USB-B Cable
- Arduino IDE (download from Arduino's official site)
-
Connect your Arduino
- Plug in the Arduino via USB.
- Open Arduino IDE.
-
Select the Correct Board & Port
- Use the dropdown to select the connected Arduino Mega.
-
Install Required Libraries
- Open
Sketch
→Include Library
→Manage Libraries...
- Install DMXSerial
- Open
-
Modify DMX Serial to use RX/TX 1 To free Serial Port 0 for USB connection with the computer, you need to change the port used by the DMX shield. To do so, enable the definitions for Serial Port 1 in the DMXSerial library file
src\DMXSerial_avr.h
by uncommenting the following line:
#define DMX_USE_PORT1
-
Upload the Firmware
- Open the provided firmware
.ino
file. It is available in the Samples folder of the Unity Package. - Click
Verify
(✔) to compile the code. - Click
Upload
(→) to flash the firmware onto the Arduino.
- Open the provided firmware
-
Confirm Installation
- Open
Tools
→Serial Monitor
. - Set the baud rate to 115200 (or as specified).
- If you see "DMX" in the monitor, the firmware is successfully installed.
- Open
Plug DMX Shield on the Arduino board using the stack connectors except for the RX/TX pins. Connect the DMX Shield RX/TX pins to the Serial Port 1 RX/TX pins on the Arduino board using 2 F/F jumper wires.
This package requires Unity to be configured with the .NET Framework because it relies on System.IO.Ports for Serial Port communication with the DMX controller.
Enable .NET Framework in your Unity Project
- Open
Edit
→Project Settings
→Player
. - Under the
Other Settings
section, findAPI Compatibility Level
. - Set it to
.NET Framework
. - Restart Unity for the changes to take effect.
-
Open your Unity project.
-
Navigate to
Window
→Package Manager
. -
Click on the
+
button (top-left) and selectAdd package from git URL...
. -
Enter the repository Git URL:
https://github.com/liris-xr/6dof-vr-thermal-feedback.git
-
Click
Add
and wait for Unity to download and install the package. -
Once installed, import the package's samples in your project.
TBD
- System.IO.Ports Namespace Missing
- Ensure .NET Framework is enabled in Player Settings.
GPL v3
TBD