Skip to content

R0bles/HF8-Showcase

Repository files navigation

HF8 Showcase Project

Screenshot

⚠️ Disclaimer

This code is provided for demonstration purposes only and is not intended for production use.

The information published here is not official from Next Level Racing, as no public documentation exists.

📖 Description

This project is a simple showcase built with C# .NET 8 (Visual Studio) to demonstrate how to use the HF8 device by Next Level Racing (NLR). It should also work with Realteus ForceFeel devices.

The goal is to communicate with the device when it is in USB mode. Communication is done through a virtual serial (COM) port. It is as simple as sending a properly formatted UTF-8 text string to indicate, at each moment, how strong each vibration motor should operate. The device operates in USB mode when the LED light is steady red. A more technical explanation is included in the example below.

It is intended as a reference/example for developers who want to integrate and test the HF8 in their own projects.

⚙️ Requirements

🚀 How to Use

  1. Clone this repository.
  2. Open the solution in Visual Studio.
  3. Connect your HF8 device.
  4. Build and run the project.

📦 Binaries

Precompiled binaries are available in the Releases section. You can download and run the executable without compiling the source code.

🔑 Integrity Verification

For security and transparency, you can verify the integrity of the released binary with the following hash on VirusTotal:

  • SHA256: 068b503d7f659b15a7f32140282ee33dfc7713a9a75f90b4af793e72932e13ac

💡 Example Code / Technical Information

The USB device appears with VID 04D8 and PID EE96. These seem to be the same identifiers used by Realteus ForceFeel, likely inherited after the acquisition by Next Level Racing. It seems that all devices share the same microchip. Knowing these values, it is possible to detect on which COM port the device is listening instead of probing manually in case multiple ports are available.

I tested monitoring whether the device sends any data by listening on the COM port, but it does not appear to communicate in any way. It only listens to the command shown below. Without official documentation from Next Level Racing, not much more can be done, but all eight motors work perfectly and can be controlled individually with this method.

The most relevant code can be found in the file HF8.cs. It is heavily commented for clarity and is very straightforward.

The communication protocol is based on sending a UTF-8 formatted text string over the serial port to tell each of the 8 motors at what strength they should vibrate:

  • The character M
  • The motor number 0 - 7
  • The vibration strength 0 - 100
  • Carriage return \r

Example:

M050\r
M10\r
M20\r
M375\r
M40\r
M50\r
M60\r
M70\r

In this example:

  • Motor 0 would vibrate at 50% strength.
  • Motor 3 would vibrate at 75%.
  • All other motors would be off.

In the screenshot at the top you can see the correlation between the motor number and the physical position on the pad.

🙏 Acknowledgments

Special thanks to the project melo-drama/ForceFeel-Condor2-interface for publishing code that documents how the device communicates.

This showcase was made possible thanks to that prior research and shared knowledge.

(Note: that project does not include a license.)

⚖️ License

This project is distributed without any license.

You are free to use, modify, and share the code entirely at your own responsibility.

No guarantees, warranties, or liabilities are provided.

About

A simple C# .NET 8 example demonstrating how to communicate with and control the HF8 haptic pad from Next Level Racing

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages