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.
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.
- .NET 8 SDK
- Visual Studio 2022 (or later)
- HF8 device (Next Level Racing)
- No specific drivers required (plug & play)
- Clone this repository.
- Open the solution in Visual Studio.
- Connect your HF8 device.
- Build and run the project.
Precompiled binaries are available in the Releases section. You can download and run the executable without compiling the source code.
For security and transparency, you can verify the integrity of the released binary with the following hash on VirusTotal:
- SHA256:
068b503d7f659b15a7f32140282ee33dfc7713a9a75f90b4af793e72932e13ac
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
0would vibrate at50%strength. - Motor
3would vibrate at75%. - 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.
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.)
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.
