Potentially Dangerous
Injury may result if this procedure is not followed properly. Use caution and follow all warnings.
  1. Lay HDK headset face down on a soft surface. Remove the two Phillips #00 screws from the bottom.
    • Lay HDK headset face down on a soft surface. Remove the two Phillips #00 screws from the bottom.

    • If the screws do not easily unscrew, you may need to try a different screwdriver. They are quite small and precise, and in the 1.3 and later at least, seem to be a Phillips #00 (possibly just a #0 in 1.2), but if your screwdriver set is not exact, they are easy to strip. If the screws don't turn, try another screwdriver.

  2. Turn the headset upright.
    • Turn the headset upright.

    • Behind the red box is a connector between a ribbon cable attached to the faceplate and a ribbon cable wrapped inside the body of the HMD. It's taped together in addition to the force of the connection, but is still somewhat fragile, so when opening, this left side should be treated as the "hinge".

    • There are now only two pairs of magnets at the top in the corners holding the faceplate to the body of the HMD. (In the inside image, one of the faceplate magnets is not pictured.)

    • There are two grooves on top, marked, to use in faceplate removal. Keeping in mind the minimal force holding the faceplate on, and the location of the faceplate connector, gently pull/fold the faceplate out and to the left. Do not use any tools for this step!

    • Images show an OSVR HDK 1.4, HDK 1.2 and 1.3 internally look extremely similar. The main circuit board on the HDK 2 differs, but the basic opening procedure and tracking cables should be the same. The faceplate connector cable for the HDK 2 is different, less fragile, and does allow for easy disconnection/reconnection if desired.

    • Avoid placing strain on the (1.x) connector highlighted in red: do not let the faceplate dangle from it or pull on it. If it disconnects internally, you will notice the IR tracking LEDs not lighting up. As long as the connector has not torn off, you can align and squeeze it gently to re-seat the connection and fix it; you'll feel it click.

    • Install the STLink/V2 Drivers

    • Install the ST Tools Set (Including STVP)

    • Locate the P5 4 PIN Connector on the Lower Left of the HDK.

    • Connect the "ERNI" Connector (black part) to the P5 connector and connect the other end to the STLink/V2

    • Connect the STLink/V2 USB Cable to the HDM side USB.

      • You can also connect it directly to the computer if you want.

    • Connect the HDM to the BeltBox and connect the USB and Power Adapter to the belt box.

    • Open ST Visual Programmer (STVP)

    • Select ST-LINK as the HARDWARE

    • Select SWIM as the Programming Mode

    • Select STM8S003K3 as the Device

    • Optional, but recommended.

    • Do "READ > All Tabs"

    • Click "Save As" and save the .hex file somewhere :)

    • Select "PROGRAM DATA" in the bottom

    • Click on "FILE > OPEN"

    • Select "ir_led_driver_production.hex"

    • Change the TAB to "DATA MEMORY"

    • Click on "FILE > OPEN"

    • Select "ir_led_driver_production.hex" again.

    • Repeat for "OPTION BYTE"

    • You should see the file in the "Status" tab on the left.

    • Click "Program > All Tabs"

    • If there's no Error, disconnect the P5 connector, restart the headset and check into "VideoCalibrationUtility.exe" (Normally in the "OSVR-Core/bin" Folder) that you can still see LED.

      • Some LED will be missing, it's normal !

    • If you do see the LED, do a calibration.

    • If you don't see the LED, make a post on Reddit, we will try to help.


To reassemble your device, follow these instructions in reverse order.

Sebastien Plante

Member since: 08/11/2016

101 Reputation

1 Guide authored


Looks nifty - though why STVP? The stm8flash utility used in the ir-programmer bundles can do all the same stuff, plus it's open source (GPL) and freely redistributable, and it's scriptable so it can be made very easy to use through automation. Pretty sure stm8flash can save the flash/eeprom too, which is probably not a bad idea to add to the script.

You can get the bundles on the IR driver releases page https://github.com/sensics/IR_LED_DRV/re... , but since the bundle contents themselves were all open source and in a git repo locally anyway (and there's an extra script that doesn't get added to the bundles, that actually does the work of making the zip and self-extractors), I just pushed them here: https://github.com/sensics/IR-Board-Prog... The script also takes care of splitting the hex file into "program flash" and "eeprom" (using srecord) on the fly, since all the tools want those separate but they get built (and are easier to keep together) as one hex.

Ryan Pavlik - Reply

(Oh, and FYI, I've got some other folks who I've suggested add to a guide or start a guide similarly, so don't be surprised if you see contributions roll in :D)

Ryan Pavlik - Reply

If it can work with the STM8FLASH, I would use that instant of STVP (it's more complicated). I didnt try STM8FLASH with the Official ST-LINK/V2.

It's okay to have contributions, I made this to help, but I'm not a "Instruction guy" :P

Sebastien Plante - Reply

View Statistics:

Past 24 Hours: 0

Past 7 Days: 6

Past 30 Days: 12

All Time: 1,345