-
HD3D Overlay done
03/16/2015 at 19:31 • 2 commentsSo the project has moved into a very different direction... but it is a successful one!
https://github.com/SanderVocke/HD3D-Marked-Shutter
There I am working on a driver that intercepts Direct3D 9 calls from applications/games, and detects when they go into AMD's HD3D display mode. If so, it will render a small shutter mark over the application window in the corner of the screen.
The first version is already working. I have tested this with various games and Tridef's 3D driver, including their media player.
This can be used to hook up a phototransistor and get sync to the refresh times of the monitor, which can then be used to trigger shutterglasses on. I had a circuit lying around for this for a long time (a small box that allows the user to program a certain offset and eye opening time from a sync signal), which worked great with this.
This means I am happily gaming in Stereo 3D using an AMD card, NVidia 3D vision screen, and no proprietary glasses system but my own. It's satisfying!
In the time ahead I will be aiming to professionalize this driver, add DirectX 10/11 support (maybe 64-bit too), etc.
-
Another idea
03/10/2015 at 18:11 • 0 commentsOpening up the monitor to find a VSync is arguably a kind of lame solution - not very generic so nobody else would have any point reading this anymore. Not to mention I might kill my monitor in the process! There may be another way.
My personal goal for this project was to have 3D movies and gaming on my Samsung Nvidia 3D Vision-compatible screen, hooked up to my AMD graphics-powered rig, with some custom shutterglasses. I have succeeded so far in using AMD's HD3D feature to drive the screen in "3D mode" (a special low-ghosting 120Hz setting) - if you are interested to know how, let me know!
3D gaming is often done using a third-party driver that hooks into the game's render queue and adds a second camera (I use Tridef Iginition). When IZ3D was still around, I used to use their "marked shutter mode", which displays a small square in a corner of the screen. During left-eye frames, the square is black and during right-eye frames the square is white. It allowed me to hook up a phototransistor on this corner to measure the sync straight from the source. Worked great for what it was worth, but the option has disappeared for me now because of using the HD3D mode and IZ3D's quitting business.So why not re-create this marked shutter mode, allowing me to dig up my old phototransistor setup? I will have a look into AMD HD3D's SDK and see if I can create an app which writes this alternating square to the HD3D quad buffer, overlaying any game Tridef is playing. If it works, it might help out others too!
Stay tuned :)
-
Different direction
03/09/2015 at 11:39 • 0 commentsUnfortunately, aforementioned PCB's have not produced any meaningful result. The fact that the PCB's only consist of a handful of parts, which have everything integrated inside, means I can't really do anything to fix it - most likely there are high-frequency signal problems, which are though to fix without very (very) expensive scopes!
So I have decided to give up on this direction, and try something new.
It will no longer be a "DVI sync extractor", but a "monitor sync extractor"; in other words, I will try to look inside my monitor and find a V-Sync signal somewhere on the monitor's PCB! That means this project failed as a generic project, but hardcore hackers might still find it useful as an example for doing the same to their own monitors.
Stay tuned! :)
-
Trouble
12/01/2014 at 13:05 • 3 commentsThe PCBs came in and I tried hooking them up, but have not succeeded in making them work properly. The Vsync output seems to just switch every couple of seconds, and the signal to the monitor gets visibly degraded.
Hopefully I can find what's wrong.
-
PCB designed and ordered
08/01/2014 at 15:17 • 0 commentsI did a PCB design for a small extractor board and ordered. Also the components have arrived already - I just have to wait on the boards to arrive to actually start trying cable configurations out.
Having played around in Simetrix with transmission lines and stubs, I'm now convinced that it is crucial to keep the stub lines to the extractor very, very short. I am not a great PCB designer and all I managed is to keep the DVI tracks to the chip under a centimeter (but probably they have wrong characteristic impedances). This will be hit or miss without any way to measure the signals directly... Fingers crossed!
If it doesn't work I can always still opt for a 50/50 power splitter solution that limits the main cable's length, or a complete DVI repeater (expensive).
When the boards do arrive and have been tested, I will publish the PCB design here also.
-
ESD Protection
06/25/2014 at 00:15 • 0 commentsJust noticed the ADV3003, where I could do a trick to disable 50 Ohm termination, also has its ESD protection on the same line. So disabling the termination would mean disabling the ESD as well.
Considering adding a TI TPD12S520 ESD chip as well to have external ESD instead.
-
Impedance termination
06/23/2014 at 20:50 • 0 commentsOne of the challenges is that DVI is a 50 Ohm terminated signal that is quite sensitive to reflections and such: it is typically not a good idea to try to split or branch a DVI cable to two receivers because they will get half the signal power each.
I'm trying to design the "VSYNC sniffer" to be high-impadance input, which is normally a bad move for DVI as it causes reflections. But, if we put this sniffer right at the source (the graphics card), reflections shouldn't be much of a problem. That way, the signal going to the monitor/beamer shouldn't be degraded much by adding this sniffer in.
-
Component Selection
06/23/2014 at 20:45 • 0 commentsWe want a high-impedance (un-terminated) receiver, which is hard to find. All chips I've found that are designed specifically for DVI have internal termination resistors that can't be turned off during operation.
The Analog Devices ADV3003 seems to come to the rescue though. It's a DVI equalizer/buffer that passes through the raw DVI signals with some quality improvement. Like the others, it has internal 50 Ohm termination resistors - however these are connected to an independent power supply pin. So I should be able to just leave that supply unconnected, making this device act like an impedance transformer of sorts.
For the actual deserializing of the data stream I've chosen the Texas Instruments TFP401A chip. It's nice and simple - unlike some others it doesn't need to be controlled by a I2C bus but simply works standalone. It has a VSYNC output.
The next step is to combine these two parts and the necessary supplies and output buffering into a neat little PCB design.