Open Source Release of Rift DK2
Oculus Developer Blog
|
Posted by Nirav Patel
|
October 10, 2017
|
Share

On the eve of our fourth(!) Oculus Connect, it seems only fitting to call back to our first Connect where we announced the open source release for DK1. Today, we’re excited to announce the open source release of Rift Development Kit 2 (DK2). Our progress since the release of DK1 has been thanks in no small part to this community working tirelessly alongside us. We’re doing this both to preserve and share what we learned about VR in the early days, and to let anyone use the design in their own projects.

The open source release of the DK2 hardware follows on from our earlier releases of Rift DK1 and Latency Tester. This includes schematics, board layout, mechanical CAD, artwork, and specifications under a Creative Commons Attribution 4.0 license, and firmware under BSD+PATENT licences. We present a guided tour of DK2 for those interested in digging in deeper.

Exploded view of DK2 headset

Evolving DK1 to DK2

We started working on DK2 in parallel with releasing to DK1 in 2013, but not before taking a detour on a headset called DKHD. DKHD was smaller and lighter than DK1 and had a fantastic pixel density, but was ultimately a dead end because it was unable to deliver presence in VR with a high persistence screen and orientation only tracking. With DK2, we wanted to solve for enabling developers on the areas we had determined were critical for comfortable high quality consumer VR: low persistence, high refresh rate displays, and low latency, robust positional tracking.

Moreso, we needed to do this with a team not much larger than what we had on DK1 on a tight launch schedule. To make this crash course possible, we needed to reuse as much as we could from DK1. We also needed to get creative about using off-the-shelf parts, since we were still a small startup at the time.

Headset

This use of off-the-shelf parts is most readily visible in the middle of the released CAD in Headset/Mechanical, where you’ll find for reference a representation of an entire screen assembly from a Galaxy Note 3. Reusing the AMOLED panel from a handset let us shortcut the schedule significantly, though it took a few months of trial-and-error on the registers to get it running at a 75 Hz refresh rate with low persistence.

DK2 Mainboard

The rest of the electrical and firmware system in Headset/Electrical and Headset/Firmware is much more refined. The LED driver circuitry is designed to modulate the IR emitters through a set of patterns for our early implementation of Constellation tracking. Like on DK1, an STM32 microcontroller handles inertial sensor data and also manages microsecond-precision timestamping of all of the systems, including the built-in latency tester that reads the display directly. We also put a USB port on the headset to experiment with developments like cameras for future headsets and also to see what the community would do with it.

On the rest of the mechanicals, there is a much more complex assembly overall due to the flex holding the IR emitters and the removeable cable. Otherwise, we kept much of the design the same as DK1 for schedule and cost reasons. For the optics in Headset/Optical, we designed the most optimal conventional bi-convex lens that we could, before switching our focus to more advanced architectures like Fresnel for Rift.

Exploded View of DK2 Sensor

Sensor, Cable, and Packaging

For the positional tracking sensor in Sensor/Electrical, we used a global shutter image sensor synchronized to the IR emitter illumination on the headset. If you dig into the CAD in Sensor/Mechanical, you’ll see that we were working on a wireless synchronization system using an IR receiver, but in the end we fell back to using a cable that plugged into the end of the headset cable.

The headset cable in Cable/Electrical and Cable/Mechanical is actually one of the most complex parts of the product. Electrically it needed to handle high speed signals over long distances without EMI issues. Mechanically it needed to be removable, have Y-splits on both ends, and be robust to repeated use. It also needed to feel flexible. The design work on the cable is probably one of the most directly valuable areas of knowledge we carried on to the Rift.

The packaging in Headset/Artwork is much simpler and smaller than what we shipped in DK1, but a lot less re-usable. We still have DK1 cases in use across Oculus to carry assorted headsets.

We wanted to caveat that some of the components of DK2 are challenging or impossible to source today, so it may not be possible for an individual to build a full headset from the provided files. We hope that parts of this release are useful though as learnings if nothing else!