AirAPI_Windows icon indicating copy to clipboard operation
AirAPI_Windows copied to clipboard

will it support Xreal One?

Open Dracoit opened this issue 7 months ago • 20 comments

I just got my Xreal One to use it with phoenix head tracker however, it does not support ones as it has in built X1 chip for 3DOF. The Phoenix head tracker uses your DLL for getting sensor data, will you add support for Xreal ones?

Thanks

Dracoit avatar May 25 '25 08:05 Dracoit

Just got my Xreal One Pro and would really like an update for support too.

shiroledat avatar Jun 03 '25 14:06 shiroledat

I could perhaps contribute in this. @MSmithDev , @kawaharas where you guys did get reference for xreal devices? I can see Android xreal SDK only on their website.

kaomoneus avatar Jun 22 '25 18:06 kaomoneus

I could perhaps contribute in this. @MSmithDev , @kawaharas where you guys did get reference for xreal devices? I can see Android xreal SDK only on their website.

So at first glance it seems like the glasses communicate over a USB Network connection and send packets for commands and i assume the imu data. I currently don't have a pair to mess around with and can't really justify the cost if it doesn't work.

The android sdk is the only thing xreal currently offers

MSmithDev avatar Jun 22 '25 18:06 MSmithDev

I could perhaps contribute in this. @MSmithDev , @kawaharas where you guys did get reference for xreal devices? I can see Android xreal SDK only on their website.

So at first glance it seems like the glasses communicate over a USB Network connection and send packets for commands and i assume the imu data. I currently don't have a pair to mess around with and can't really justify the cost if it doesn't work.

The android sdk is the only thing xreal currently offers

Do you happen to live in NM, USA?

Fritomaster avatar Jun 26 '25 06:06 Fritomaster

@MSmithDev but where did you gen xreal air protocol? Perhaps that would be a good starting point to me to search for xreal one proto...

kaomoneus avatar Jun 27 '25 17:06 kaomoneus

@MSmithDev just found the some origins of your story

https://jakedownsdev.substack.com/p/open-sourcing-nreal-air-development

Great job!

kaomoneus avatar Jul 01 '25 10:07 kaomoneus

Let's say, I've created a python script that appears to parse the accelerometer and gyroscope data from the "Xreal One Pro" TCP socket stream. Would this help, or is more information required to make this work? From what I understand, this should enable 3DoF, right?

SamiMitwalli avatar Jul 14 '25 00:07 SamiMitwalli

@MSmithDev just found the some origins of your story

https://jakedownsdev.substack.com/p/open-sourcing-nreal-air-development

Great job!

Thanks! I only wish Xreal would have worked with us on this.

MSmithDev avatar Jul 15 '25 15:07 MSmithDev

@SamiMitwalli have you started working on the script, or do you have any working proof of concept ?

Yes, I have a proof of concept, it's a python script, but should be easy to adapt.

  1. connecting via tcp socket to the glasses (169.254.2.1) on port 52998, because of the usb-ethernet connection
  2. parsing the data stream and identifying the Gyro and Accelerometer data (Gx, Gy, Gz and Ax, Ay, Az)
  3. printing the data

(sadly no xreal eye data is streamed)

The data stream is not even encoded, so it should be quite easy for anyone to replicate this, with the knowledge above. (I'm thinking about forking or contributing to this repo, when I have a little bit more time)

SamiMitwalli avatar Jul 15 '25 20:07 SamiMitwalli

@SamiMitwalli have you started working on the script, or do you have any working proof of concept ?

Yes, I have a proof of concept, it's a python script, but should be easy to adapt.

  1. connecting via tcp socket to the glasses (169.254.2.1) on port 52998, because of the usb-ethernet connection
  2. parsing the data stream and identifying the Gyro and Accelerometer data (Gx, Gy, Gz and Ax, Ay, Az)
  3. printing the data

(sadly no xreal eye data is streamed)

The data stream is not even encoded, so it should be quite easy for anyone to replicate this, with the knowledge above. (I'm thinking about forking or contributing to this repo, when I have a little bit more time)

I'm also interesting in this

MSmithDev avatar Jul 16 '25 15:07 MSmithDev

+1

kaomoneus avatar Jul 17 '25 14:07 kaomoneus

I published the proof of concept demo here. The demo and the sensor data handling is not perfect, but gives the idea, of what could be done. I hope this helps you and I can soon use my One Pro for "PhoenixHeadTracker" or "SteamVR".

https://github.com/SamiMitwalli/One-Pro-IMU-Retriever-Demo

SamiMitwalli avatar Jul 18 '25 20:07 SamiMitwalli

@SamiMitwalli Just tried this app! Awesome! It just works! And it works for XREAL One (not pro).

kaomoneus avatar Sep 01 '25 01:09 kaomoneus

@SamiMitwalli , I also tried your script on my One Pro and it works nicely, both in console and 3D viewer versions. 3DOF but not 6DOF. One step closer to integrating with "PhoenixHeadTracker" or "SteamVR". Nice work.

shiroledat avatar Sep 02 '25 13:09 shiroledat

@SamiMitwalli how did you reverse this protocol? Is it possible to get current display mode and virtual screen location?

kaomoneus avatar Sep 08 '25 12:09 kaomoneus

Thanks for checking it out, guys. A few weeks ago, I also saw that there is more sensor information in the data stream, but I have not yet updated the project (magnetometer).

@kaomoneus I did not find the information you mentioned. I am quite certain that they currently compute such things on the X1 chip and leave it on there for performance reasons and their specific standalone application (viewing a screen in 3d space)... but this is just a wild guess. They only seem to expose minimal information that is potentially relevant to their stuff, like Unity APIs, i.e. the sensor data.

SamiMitwalli avatar Sep 08 '25 13:09 SamiMitwalli

@MSmithDev , with this new info from @SamiMitwalli , would it now be possible to update your DLL for the One Pro? We should then be able to use our One Pro with PhoenixHeadTracker and SteamVR hopefully!

shiroledat avatar Sep 15 '25 14:09 shiroledat

@MSmithDev , with this new info from @SamiMitwalli , would it now be possible to update your DLL for the One Pro? We should then be able to use our One Pro with PhoenixHeadTracker and SteamVR hopefully!

Yes it should be possible its something I can try and work on this week if not this weekend. Will probably need someone to test it with since i don't have a pair of Pro's are you in the Project MakeReal discord?

The other thing is we have been talking to an xreal developer that is currently trying to bring lower level sdk to life. Nothing confirmed yet so its still up in the air but that would certainly be the way to go with these projects moving forward since solving the drift issues is going to be redundant with the X1 chips i assume.

MSmithDev avatar Sep 15 '25 16:09 MSmithDev

@MSmithDev , with this new info from @SamiMitwalli , would it now be possible to update your DLL for the One Pro? We should then be able to use our One Pro with PhoenixHeadTracker and SteamVR hopefully!

Yes it should be possible its something I can try and work on this week if not this weekend. Will probably need someone to test it with since i don't have a pair of Pro's are you in the Project MakeReal discord?

The other thing is we have been talking to an xreal developer that is currently trying to bring lower level sdk to life. Nothing confirmed yet so its still up in the air but that would certainly be the way to go with these projects moving forward since solving the drift issues is going to be redundant with the X1 chips i assume.

That sounds promising. Might then also get 6DOF?

I can offer to test with my One Pro if it helps. Let me know what to do. I'm not in the Project MakeReal Discord, and a simple end user (my coding skills are generally geared for scientific purposes).

shiroledat avatar Sep 16 '25 21:09 shiroledat

@MSmithDev there are no tests yet. Do you test it on physical devices only?

kaomoneus avatar Sep 21 '25 05:09 kaomoneus