michael-betz / Foculus_Rift_Tracker_STM32F3DISCOVERY

Firmware for the STM32F3DISCOVERY board to emulate an Oculus Rift compatible USB motion tracker
62 stars 28 forks source link

Foculus rift can't recognise #12

Open maslojor2002 opened 5 years ago

maslojor2002 commented 5 years ago

Hello. I recently purchased a stm32f3discovery board. Stitched this board according to the instructions through Linux. The board is not recognized as oculus. In "Devices and Printers" it is recognized as "Tracker DK", but this board does not work in games. In Linux, recognized without letters (as in the screenshots).

Rift debug:

"Time": "2019-18-05_19:18:17",
"System Specifications":    {
    "Operating System": "Microsoft Windows 7 ???????????? ",
    "Processor":    "AMD FX(tm)-6300 Six-Core Processor             ",
    "Video Controller Name":    "NVIDIA GeForce GTX 950",
    "Video Controller RAM (MB)":    2048,
    "Total RAM (GB)":   8
},
"Drivers":  [{
        "Path": "\\system32\\OVRDisplay64.dll",
        "Version":  "1.0.22.0"
    }, {
        "Path": "\\system32\\OVRDisplayRT64.dll",
        "Version":  "1.0.22.0"
    }, {
        "Path": "\\syswow64\\OVRDisplay32.dll",
        "Version":  "1.0.22.0"
    }, {
        "Path": "\\syswow64\\OVRDisplayRT32.dll",
        "Version":  "1.0.22.0"
    }, {
        "Path": "\\system32\\drivers\\RiftEnabler.sys",
        "Version":  "1.0.22.0"
    }, {
        "Path": "\\system32\\OVRDisplay32.dll",
        "Version":  "1.0.22.0"
    }, {
        "Path": "\\system32\\OVRDisplayRT32.dll",
        "Version":  "1.0.22.0"
    }, {
        "Path": "\\system32\\drivers\\RiftEnabler32.sys",
        "Version":  "1.0.22.0"
    }, {
        "Path": "\\system32\\drivers\\OCUSBVID.sys",
        "Version":  "0.0.1.6"
    }],
"Devices":  [],
"LocalProtocolVersion": {
    "Major":    1,
    "Minor":    0,
    "Patch":    0
},
"RemoteProtocolVersion":    {
    "Major":    1,
    "Minor":    0,
    "Patch":    0
}

ocu_td

terminal

TiNredmc commented 5 years ago

That's because it isn't detect the HMD (aka head mount display) I suggest you to run the Oculus world demo 0.1.4 or other DK1/DK2 compatible game. E.G. Alone in the rift . Both working on linux wine and native windows os.

maslojor2002 commented 5 years ago

@TiNredmc Not working, I checked in vrchat and UE4Rollercoaster

TiNredmc commented 5 years ago

The original code reported the device ID as the DK1 . That's why the game doesn't detect.

BUGLESPIDER commented 5 years ago

The detection is at the display HDMI EDID not the USB head tracker. Did you spoof the EDID? (https://yetifrisstlama.blogspot.com/2014/03/the-foculus-rift-part-3-spoofing-edid.html?m=1). I went the easy way by using an hdmi two way cable and first connecting a headless edid hdmi plug they use for bitcoin miners. The plug was programmed with the DK1 device ID. Once recognized as DK1, I connected my head display hdmi cable into the splitter's second female plug. This whole setup only worked for purely DK1 demo compatible games like original rift coaster, and early DK1. Please report back if anyone somehow tricked more games like Steam and the Oculus marketplace to work with this setup.

maslojor2002 commented 5 years ago

@BUGLESPIDER Can i use a simple monitor from a computer like EDID? Or do I have to order another board under EDID? Edit: If I have to buy a new board, can I do without a screen using a mobile phone as a temporary screen?

BUGLESPIDER commented 5 years ago

I'm not following, this project is way more complicated than just swapping in a phone. I'd recommend reading Will1384 posts at mtbs3d.com AVRForum, definitely everything here: https://www.mtbs3d.com/phpBB/viewtopic.php?f=26&t=19607

Basically this project has 5 parts, and this github Foculus rift project addresses step 1:

  1. Motion tracker -- sounds like you've got that part done if it works, search for Will1384's Reddit and mtbs3d posts for alternatives.
  2. Display. A. Use a cheap HDMI screen like yetifrisstlama did. B. Mobile phone? No idea but somebody probably figure it out somewhere you can find, sounds like a seasickness lag issue would develop. Probably you'll need some software to receive the HDMI signal and send it to your phone.
  3. Display EDID to trick computer into thinking it's Oculus DK1 screen instead of the actual screen you're using. Options: A. Modify 2.A.'s onboard chip like Yetifrisstlama did B. Bypass the chip like Will1384 did with a spoofer and EDID CH341A programmer to program the 24LC21 chip. C. Probably easiest option: Buy an HDMI y splitter, and then find somebody on eBay selling a "headless HDMI EDID" to flash it with the DK1 binary (https://www.amazon.com/clouddrive/share/RPLCnW8s4Pz1EcGeg9lkxtAqw4Cqq98SW6ZG5mdtrWf?_encoding=UTF8&mgh=1&ref_=cd_ph_share_link_copy).
  4. Head mount -- This has some adjustable lenses in it to focus the screen. Easiest is just to buy one of those cheap ones you put a phone in, but then swap in your choice of small screen from step 2.
  5. Software - Getting it all to work, the hardest part and tons of trial/error, I want to say 0.6 or 0.8 were the best Oculus runtime working.

**Correction, this was years ago and I forgot, some games with native support for the open source drivers work, but not Steam/Oculus marketplaces natively. I remember playing "Alien:Isolation" and "Slender: The Arrival" were ridiculously scary. I remember it was hours and hours of driver hell and forum hunting, but those games were so scary it was worth it. I never got Oculus or SteamVR working, someone please correct with link to what makes Steam/Oculus marketplaces work for you if I'm wrong.

maslojor2002 commented 3 months ago

@BUGLESPIDER

Has been a long time after my first tries into VR and of my last messsage.

I never got Oculus or SteamVR working, someone please correct with link to what makes Steam/Oculus marketplaces work for you if I'm wrong.

So, now i got a lot expirience and SteamVR works perfect.

  1. Flash your STM32 to Foculus Rift (https://github.com/michael-betz/Foculus_Rift_Tracker_STM32F3DISCOVERY)
  2. install SteamVR and install "OpenTrack" drivers in SteamVR folder (https://github.com/r57zone/OpenVR-OpenTrack)
  3. install OpenTrack (I use 2.3.10) and setup this settings: image

(And you need a Oculus runtime (I have a lot versions, and i dont remember which works. It just runs and dont show me version of runtime)

  1. Setup steamvr.vrsettings in ..:\Steam\config\steamvr.vrsettings for run SteamVR without HMD: I added: "activatedMultipleDrivers" : true, "directMode" : true, "enableHomeApp" : false, "forcedDriver" : "opentrack",

Or try this settings: https://github.com/username223/SteamVRNoHeadset

After that run OpenTrack, start it and run SteamVR. Now it must detect and work perfectly. But mine drift a lot.

For EDID i bought LS055R1SX03 5.5 inch 2k IPS LCD MIPI from Aliexpress, but it sometimes turns off, but continues detecting like a monitor on my PC and i think its because of my USB Power (I have old case from ~2005s). But when i connect power cable with plug it works good. image

For see VR i just run SteamVR, turning on "Display VR View" and just drag n drop on my LCD and turn on fullscreen. image

If someone have a red screen, just tap on it and it will fix. But for me helped just install beta version SteamVR [oculus_win7andwin8 - v1.15.12] image

image 2024-03-28-AM_02_22_18 image image image

Now i need to calibrate my STM32 for fix drift and come up with something for better work of my EDID

UPD:

C. Probably easiest option: Buy an HDMI y splitter, and then find somebody on eBay selling a "headless HDMI EDID" to flash it with the DK1 binary

Thx for that info, will try it sometimes!

UPD2: Can you pls say or send me tutorial which headless HDMI to buy and how to flash it? Checked the internet and cant find it