[DIY] Universal sutterglasses controller

Tutorials on how to create your own rigs, pics, movies, and everything that has to do with S-3D at home!
evgenln
One Eyed Hopeful
Posts: 18
Joined: Tue Sep 28, 2010 5:28 am

Re: [DIY] Universal sutterglasses controller

Post by evgenln »

Unfortunately I was unable to identify a clear sequence of pulses on the provided Samsung logs. I tried to emulate some sequence of pulses from log so far without success. But I discovered that my SAMSUNG SSG-2100 glasses clear run from the RC-5 remote control pulses. Keep looking....

I hope your next tour to the TV shop will bring interesting results :D
User avatar
Petrus
Two Eyed Hopeful
Posts: 95
Joined: Thu Mar 04, 2010 12:50 pm
Location: France

Re: [DIY] Universal sutterglasses controller

Post by Petrus »

I rebuilt and improved the IR pulse recorder, went to two different stores, but I didn't record exploitable data. maybe it is not sensitive enough now :?

That's all I recorded : http://www.megaupload.com/?d=WPFEXVAX" onclick="window.open(this.href);return false;
Maybe you can find something that works with your glasses, evgenln
evgenln
One Eyed Hopeful
Posts: 18
Joined: Tue Sep 28, 2010 5:28 am

Re: [DIY] Universal sutterglasses controller

Post by evgenln »

Thank you for your time Petrus.
I'm disassemble glasses, and that's what I found.
1. SSG-2100 use the integrated IR-receiver. Сarrier frequency 36-38 kHz.
2. Glasses are working on the fixed frequency 120 Hz.
3. To get started, SSG-2100 must be initialized with a certain sequence of pulses (unfortunately at this moment I could not figure sequence, but if I press button "2" 2 times and "1" 1 times on the Twinhan remote glasses start. I always thought that this remote uses RC-5 protocol but oscilloscope checking showed that it uses NEC protocol).
4. To maintain glasses in the working condition is sufficient to send 400 microseconds pulses (carrier frequency 36-38 kHz) with frequency 120 Hz.

If you're curious to see SSG-2100 inside, here is photos
http://evgen-ln.front.ru/SAMSUNG%20SSG- ... LE0032.JPG
http://evgen-ln.front.ru/SAMSUNG%20SSG- ... LE0033.JPG
Glasses are based on HA1508-I/SL and MAX4583 chips. There is no information about HA1508-I/SL. Chip manufactured by Microchip, looks like a factory-programmed PIC.

I got the idea to extend functionality of the SSG-2100 replacing HA1508-I/SL by PIC with custom firmware, perhaps with multiple protocols support.

By the way, do you try to read/change firmware in yours Xpand 101.
User avatar
Petrus
Two Eyed Hopeful
Posts: 95
Joined: Thu Mar 04, 2010 12:50 pm
Location: France

Re: [DIY] Universal sutterglasses controller

Post by Petrus »

So, when you activate the glasses with your remote control, shutters starts flickering at 120Hz without IR pulses ? is the glasses synchronized with the 400µs pulse you send ?

It certainly needs an activation signal and sync pulses. that's why I almost only recorded single 15us Ir pulses.

Can you try this : activate your glasses and sent periodic 15us IR pulses and see if the glasses follow the frequency of the pulses.

I didn't tried to read the Xpand 101 firmware.
evgenln
One Eyed Hopeful
Posts: 18
Joined: Tue Sep 28, 2010 5:28 am

Re: [DIY] Universal sutterglasses controller

Post by evgenln »

After activation SSG-2100 by the remote control glasses continue blinking 5-3 seconds and stop. If I'm start sending pulses as shown below with a frequency 120 Hz glasses blinking without stopping. If I'm send this pulse once glasses do not react.
Image
IR-receiver removes carrier frequency and blocks not modulated pulses.
User avatar
Petrus
Two Eyed Hopeful
Posts: 95
Joined: Thu Mar 04, 2010 12:50 pm
Location: France

Re: [DIY] Universal sutterglasses controller

Post by Petrus »

OK, I see
If you reduce the frequency of the 400µs signal, is the glasses follow that frequency ?
Does it works down to 85Hz instead of 120 ?

And how the glasses makes the difference between left and right ?
evgenln
One Eyed Hopeful
Posts: 18
Joined: Tue Sep 28, 2010 5:28 am

Re: [DIY] Universal sutterglasses controller

Post by evgenln »

Glasses don't follow frequency of the 400µs signal. After change frequency of the 400µs signal glasses don't continuously switching. Switching occur, but with some pauses.

I don't know how glasses make the difference between left and right. Perhaps the 400µs signal initiates switching to one of the positions, and further glasses working with fixed 120 Hz frequency. I need to do something such as your device for the glasses test to understand it.

I have added to the my ir-emitter firmware carrier frequency filling function, and now much easier try a different combinations of pulses. I will continue experiments, maybe find something new.
User avatar
android78
Certif-Eyable!
Posts: 990
Joined: Sat Dec 22, 2007 3:38 am

Re: [DIY] Universal sutterglasses controller

Post by android78 »

evgenln wrote:Thank you for your time Petrus.
I'm disassemble glasses, and that's what I found.
1. SSG-2100 use the integrated IR-receiver. Сarrier frequency 36-38 kHz.
2. Glasses are working on the fixed frequency 120 Hz.
3. To get started, SSG-2100 must be initialized with a certain sequence of pulses (unfortunately at this moment I could not figure sequence, but if I press button "2" 2 times and "1" 1 times on the Twinhan remote glasses start. I always thought that this remote uses RC-5 protocol but oscilloscope checking showed that it uses NEC protocol).
4. To maintain glasses in the working condition is sufficient to send 400 microseconds pulses (carrier frequency 36-38 kHz) with frequency 120 Hz.

If you're curious to see SSG-2100 inside, here is photos
http://evgen-ln.front.ru/SAMSUNG%20SSG- ... LE0032.JPG
http://evgen-ln.front.ru/SAMSUNG%20SSG- ... LE0033.JPG
Glasses are based on HA1508-I/SL and MAX4583 chips. There is no information about HA1508-I/SL. Chip manufactured by Microchip, looks like a factory-programmed PIC.

I got the idea to extend functionality of the SSG-2100 replacing HA1508-I/SL by PIC with custom firmware, perhaps with multiple protocols support.

By the way, do you try to read/change firmware in yours Xpand 101.
Just a few questions about this:
1. Are you able to see what the IR receiver module manufacturer and part number is?
2. Have you tried connecting an oscilloscope to the data lead on the output of the IR receiver module when the glasses are on and just pointing it at a TV? If you get a one-shot capture for 50ms then you should see 6 full cycles of the switching (assuming 120hz) so you should see the sync and maybe can confirm if it's a single left sync, or different left and right sync.
3. you could try getting the trigger of the oscilloscope from one of the outputs of the HA1508-I/SL chip (assuming that there will be at least one for left and one for right LCD on) and get the waveform from the data out from the IR receiver to find out what is happening just before the lcd switches on. This should get the sync.

Hope this helps.
evgenln
One Eyed Hopeful
Posts: 18
Joined: Tue Sep 28, 2010 5:28 am

Re: [DIY] Universal sutterglasses controller

Post by evgenln »

1. No I can't, the IR-receiver is shielded. During the experiments, I'm found that it is a regular IR-receiver that are used for remote control. Works with the carrier frequency from 25 to 56 kHz.
2-3. Unfortunately I don't have TV with SSG-2100 support. I have find the initialization pulses combination (pulse 180 µs, pause 8.7 ms, pulse 180 µs, pause 2.65 ms, pulse 180 µs). To maintain the blink enough to send pulses 180-400 µs with a period about 8 ms. I'm use the 38 kHz carrier, but it may be different because the IR-receiver work in a wide carrier range.

Thanks for the advice. I'm very well aware it myself, my limits is the absence TV which I could use for the loging . I couldn't do it in a store because it required bulky equipment.
User avatar
android78
Certif-Eyable!
Posts: 990
Joined: Sat Dec 22, 2007 3:38 am

Re: [DIY] Universal sutterglasses controller

Post by android78 »

Thanks for the reply evgenln.
Just wondering how hard it is to take the glasses apart? I actually have the TV and a single pair of glasses (as well as oscilloscope) but since I currently only have a single pair of the very expensive glasses, I don't really want to break them.
It looks like there are only two tiny screws holding them together... or am I missing something? Maybe I could be convinced to take mine apart and attach my oscilloscope to the output of the IR module when the TV is in 3D mode if you could confirm that they are easy to get apart without breaking them - some photos showing how to take them apart would be great!

I'm not quite sure about your findings regarding the initialization since the TV can be in 3D mode before switching the glasses on and they have no problems syncing. Unless the TV periodically sends an initialization, I believe that they are just looking for syncing codes.

Regarding the carrier - how did you test the frequency of the IR receiver module? If you already have a variable frequency IR emitter circuit, what is the most reliable frequency for getting a logical 1 or 0 on the output of the receiver module?

Also, have you managed to identify any pins, or if there are any testpads that would be for left or right LCD to be switched on in the glasses? If I do take the glasses apart, this could save me some time for determining an appropriate trigger for capturing the sync codes.
evgenln
One Eyed Hopeful
Posts: 18
Joined: Tue Sep 28, 2010 5:28 am

Re: [DIY] Universal sutterglasses controller

Post by evgenln »

android78 wrote:It looks like there are only two tiny screws holding them together... or am I missing something?
Glasses consist of two parts, which are twisted four screws and glued. Carefully dismantle them difficult but possible. I wouldn't recommend you do it. I'm broke 2 plastic racks pattern during disassembly.
But if you have the opportunity to find any device with an integrated IR-receiver and which is easy to dismantle, you don't have to disassemble the glasses. Try connecting an oscilloscope to the output of the IR-receiver, switch TV to 3D mode and control the signal at the receiver output. I think this way you can log IR-signal if the IR-receivers carrier frequency isn't much different from that used in glasses.
android78 wrote:I'm not quite sure about your findings regarding the initialization since the TV can be in 3D mode before switching the glasses on and they have no problems syncing. Unless the TV periodically sends an initialization, I believe that they are just looking for syncing codes.
Glasses don't react to any set of pulses until init signal sent. Perhaps it is repeated over time.
android78 wrote:Regarding the carrier - how did you test the frequency of the IR receiver module?
I built IR-emitter based on a USB-microcontroller. I have written firmware which allows me to fill pulses by any carrier frequency. I don't know exactly IR-receivers carrier frequency. It accepts signals over a wide carrier frequency range (from 25 to 56 kHz). For my the experiments, I'm chose the mean value.
android78 wrote:Also, have you managed to identify any pins, or if there are any testpads that would be for left or right LCD to be switched on in the glasses? If I do take the glasses apart, this could save me some time for determining an appropriate trigger for capturing the sync codes.
Yes, I'm shot waveforms during the glasses operation. I'll post them in the evening.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: [DIY] Universal sutterglasses controller

Post by OzOnE2k10 »

Hi,

Nice work so far. We just need to find the L/R frame sync method now.

It probably doesn't help much, but I noticed that my SSG glasses activate when they are put close to my LCD monitor (Dell SP2208WFP) when it has a bright image? This suggests that the Samsung's have a fairly wide tolerance for IR / Visible light as well as the carrier frequency?

I wasn't tempted to take my glasses apart at this stage, so it's great to see some photos on here. Thanks for that!

I also couldn't find a datasheet for the HA1508 chip yet, apart from it possibly being a ultra low-power and low-pin-count version of the PIC16F882 ?? Again, not too helpful, but you never know. :oops:

@evgenln - Do you possibly have a photo of the IR receiver itself? Does it look similar to the TSOP35D25 ?...

http://www.vishay.com/docs/83298/tsop35d2.pdf" onclick="window.open(this.href);return false;

I read that many of the current wireless glasses will be using a 25KHz carrier, so the 35D25 looks like a possible candidate (judging by what I can see through the front of the glasses)?

There are some interesting suggestions on page 3 of the PDF for the IR pulses. This doesn't mean it's a proper "sync" signal though unfortunately.

Do you think that it will important to have a 25KHz carrier for the sync pulses? You've shown that the glasses react fairly readily to different carriers, but does it work at all below 25KHz? Strange that it also works with 38KHz like many IR remotes? - maybe the IR module works more like a high-pass filter than it was designed to?

tbh, the easiest way of recording the real IR protocol in a shop is to connect the output of the SGG's IR module directly to a small audio recorder (like Petrus' original circuit / suggestion). I know that many recorders won't have a high enough sample rate to capture perfectly, but maybe a 96KHz recorder will be good enough?

Due to the fact that the SSG IR module will be pre-filtering the carrier (like in your diagram), you might have better results with extracting the proper sync pulses?

Thanks,
OzOnE.


EDIT: I just realized something - maybe you've already found the frame sync code!... The glasses might already start switching say LEFT first as soon as the "sync" code is sent, then the TV only sends this out once every couple of frames. This might be all that we need!!

(Your o'scope traces might show that the sync code always corresponds to either LEFT or RIGHT shuttering!)

Oh, also - many of these new IR modules are designed to be put into standby during times when the glasses aren't expecting a sync pulse. The glasses then only re-activate the IR module on the last two or three "frames" to catch the next sync pulse from the TV (or to see if sync has flipped for some reason). This is how they can make the small battery last even longer and is another reason why the glasses will self-shutter for a few seconds.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: [DIY] Universal sutterglasses controller

Post by OzOnE2k10 »

Hi,

I'm wondering if there is a direct relationship between the 120Hz frame period (8.33ms) and the "init" pulses you have found?

Your original init pulses are...
(pulse 180 µs, pause 8.7 ms, pulse 180 µs, pause 2.65 ms, pulse 180 µs)

As these init pulses were found mainly through a trial-and-error approach, could it be that the timings are closer to a direct division of 8.33ms?
So...

The LEFT sync pulse is just one 180µs pulse at the start of the frame,
and the RIGHT sync pulse is one 180µs pulse (8.33ms after the Left pulse) followed by another 180µs (2.083ms later, or 1/4 into the 120Hz frame period)?

(timings corrected to a division of the 8.33ms period.)

The glasses obviously continue shuttering for a few frames, but maybe the TV really does generate these sync pulses for every frame (L+R)?

@evgenln, could you possibly give these timings a try as an "init" pulse at first, and then try repeating the relevant code for each L/R frame?

It's possible that it will still work when the 8.7ms pause is changed to 8.33ms, but it could be that the RIGHT frame code actually has a pause closer to 2.65ms than 2.083ms?

The glasses probably have a set "window" where they re-enable the IR module to wait for the next sync pulses. It's interesting that you mentioned 8ms for maintaining the shuttering, so this might also be close to the 8.33ms point for 120Hz?

(btw, the "LEFT" and "RIGHT" codes are still guesses at this stage.)

@Petrus, if you have time, could you possibly plot the latest Samsung IR capture as a graph and see if there is any correlation to the above codes? I'm rubbish with Excel etc.

I will try adding the pulses to Petrus' AVR software. Hopefully it should be fine to use 4 or 5 repeats of 40µs pulses to generate 180µs + 25KHz carrier?
Luckily, the AVR's Timer1 compare is 16-bit, so should be plenty for a 2.65ms / 2.083ms pause.


Thanks,
OzOnE.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: [DIY] Universal sutterglasses controller

Post by OzOnE2k10 »

OK, this is getting interesting...

I have added the init code for the Samsung glasses to the AVR board and it now FINALLY "activates" the glasses! (Thanks evgenln / Petrus! :D)

The problem is, the glasses only start blinking if I start on Samsung mode, then switch to either nVidia or XpanD mode (ironically)?

The glasses keep going out of sync with the image and usually reverse parallax quite rapidly.
Ocasionally I can switch to XpanD mode and get the glasses to slow down enough (almost in sync) to see a 3D image for a few seconds, and it's looking pretty nice so far.

btw, I'm running the Acer H5360 in XGA 120Hz because I need to use VGA to extract VSYNC atm. I don't think it supports 720p @ 120Hz unless using HDMI?. I'm also only using simple VSYNC toggling to run the glasses, but that's working fine according to my o'scope.

I haven't added the 400µs pulse at every frame yet. The glasses don't seem to toggle at all if you just repeat the "init" codes for each frame. Again, it's only when I switch to another mode that the glasses start shuttering?

I have tried sending the init code periodically (every 12 frames, like XpanD) and only sending a 180µs pulse on each frame in between. This does seem to keep the glasses shuttering (although always out of sync, and only if I switch to nVidia / XpanD and back to Samsung again??)

The glasses are obviously seeing a long pulse during the nVidia / XpanD codes and trying to stay in sync afterwards?

So, it looks like it does need the longer 400µs pulse on each frame (like evgenln said), and maybe only send the init code periodically on a LEFT (or RIGHT?) frame.

I just need to add the 400µs stuff now. Petrus wrote some clever bits of programming here, so it doesn't take long to modify things once you see how the code works. :)

Back later,
OzOnE.
evgenln
One Eyed Hopeful
Posts: 18
Joined: Tue Sep 28, 2010 5:28 am

Re: [DIY] Universal sutterglasses controller

Post by evgenln »

Pulses were recorded using a sound card as an oscilloscope so there may be inaccuracies.

Glasses don't perceive the pulses not filled with the carrier frequency. If you send Xpand code at the output of the glasses receiver you will get a pulse duration equal to the sum of all pulses in the packet.
I was able keep glasses switching if I sent after initialization code 180-400 ms pulses (filled carrier frequency) with a period of about 8 ms and repeting initialization code every 10 seconds (can be less).

Synchronization occurs in the middle of 2.65 ms pause in the initialization code, I saw it clearly when I was shooting oscillogram at the outputs of the MAX4583 multiplexer.

If you send the initialize code to the glasses very often it go into a strange mode. Blink less often and power button start flashing. It looks like that there is a failure and triggers HA1508-I/SL watch dog.

Unfortunately I have no time to experiment in recent times. Perhaps you will be able find out the code before me.

Here are some photos of the receiver. This is not Vichy.
Image
Image

And sorry for my poor English.
lish
One Eyed Hopeful
Posts: 31
Joined: Mon Jan 18, 2010 6:16 am
Contact:

Re: [DIY] Universal sutterglasses controller

Post by lish »

evgenln wrote:1. No I can't, the IR-receiver is shielded. During the experiments, I'm found that it is a regular IR-receiver that are used for remote control. Works with the carrier frequency from 25 to 56 kHz.
2-3. Unfortunately I don't have TV with SSG-2100 support. I have find the initialization pulses combination (pulse 180 µs, pause 8.7 ms, pulse 180 µs, pause 2.65 ms, pulse 180 µs). To maintain the blink enough to send pulses 180-400 µs with a period about 8 ms. I'm use the 38 kHz carrier, but it may be different because the IR-receiver work in a wide carrier range.

Thanks for the advice. I'm very well aware it myself, my limits is the absence TV which I could use for the loging . I couldn't do it in a store because it required bulky equipment.
It is a customer design IR reciever, it is 20khz as I know. You can use a photo diode modulate to 20khz to recieved the IR protocols of Samsung 3D TVs. And the same method to get the protocols of Sony/Panasonic/LG.... 3D TVs only changed the carrier frequency to 25khz, 36khz, 38khz maybe.
So maybe some one can design a shutter glasses to comfortable with all the 3D TV sets, awaiting :)
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: [DIY] Universal sutterglasses controller

Post by OzOnE2k10 »

@evgenln,

No problem with your English at all. Even with the technical stuff. ;)

Did you manage to record the real IR output of a 3DTV yet? I actually found some of your posts on the "curtpalme" forum last night - it's a shame Craig hasn't released the Samsung codes yet though. :(

Thanks for the photos btw. I think you've hit on an important point - if the glasses start the frame sync during the 2.65ms pause, then you have to wonder if they need the pulse after the 2.65ms pause at all?

I'm convinced that the glasses can be made to work at slower speeds than 120Hz. From a few experiments with the code last night, it seems that the glasses do wait for the first pulse AFTER the init pulse to determine the shuttering frequency?

I couldn't seem to get the glasses working by just sending the init code periodically then sending 400µs pulses on each frame. Maybe I was sending the init code too often (I tried between 12 and 30 frames gap)?

Although, the glasses DO keep on shuttering if I switch back to XpanD mode? They were shuttering at a different (slower?) rate than VSYNC, and they keep on shuttering at the same speed even if I turn the IR emitter off.

The other thing I noticed was that they didn't start blinking if I reduced the XpanD mode's default delay value (set by Petrus - normally 5.85ms I think). So, the glasses are seeing something in the delay between the init code and Delay + XpanD code to determine the shutter freq??


UPDATE: OK, I just tried removing some of the XpanD code and found that the glasses respond well to the LEFT on / Right off code for XpanD! I also completely disabled the XpanD init code output but the glasses still worked! (still out of sync though)...

I'm fairly certain they started blinking without even needing to send the Samsung init code first! Unfortunately, I was over-driving my IR LED and it just burnt out, so I'll have to fix it to confirm this. (the glasses were reset between tests btw).

The XpanD "LEFT On" code is usually...

(on 15µs, off 69µs, on 15µs). This was only sent on alternate frames.

What else I found is that I could change the (apparent) speed of the shuttering by modifying the 69µs pause between the two XpanD "LEFT ON" pulses. I was testing values between 300-600µs before the LED failed and got very close to staying in sync with the S3D image.

I can't confirm the actual shutter speed 'cos I don't want to dismantle my glasses, but I could definitely see the change in speed relative to the S3D image.

I'm confident that the Samsung's can respond to a fairly wide window of shutter speeds, but we need to find the correct codes.

I'll carry on with the testing. I got SO close to the correct sync before the LED died.

tbh, the only easy way we're going to solve this is by recording a 3DTV's signals using the output of the glasses' IR module. I wouldn't worry too much about having enough recording resolution for the carrier signal because we can figure that out later on.

If anyone does try recording the TV again, could they please remember to disable, then re-enable the 3D mode to see if the TV sends a different init code at the start? I wouldn't have thought this is the case though - the whole point is that a person wearing the glasses can turn them on at any time and have them sync to the TV image.

Right, that's it! - I'm going to modify a PDA or iPhone to add an IR receiver to the Mic input! :twisted:

OzOnE.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: [DIY] Universal sutterglasses controller

Post by OzOnE2k10 »

SUCCESS !! (ish)

OK, I can confirm that the Samsung glasses appear to be able to sync at different speeds...

It also seems that they don't require an "init" code at all!

I replaced the burnt LED on my controller and tried again - this time, I could clearly see the shutter speed changing as I modified the pause between the XpanD's "LEFT On" code!...

I finally hit on a value which syncs perfectly to the 120Hz S3D image on my Acer H5360 and gives good 3D! I checked the IR output with my o'scope and found that I'm actually only sending a pulse at the start of every FOURTH frame? So, on every fourth LEFT frame (each 33.33ms), I'm sending JUST this...

(pulse 15µs, pause 585µs, pulse 15µs). (38KHz carrier for testing).

Strangely, the 585µs pause is a division of Petrus' default delay value for the XpanD mode (11700µs)! Although, this is probably a coincidence?

So, if you modify the 585µs pause in between the two short pulses, the glasses seem to change the shutter speed.

EDIT: Ooops, of course there is no "carrier" needed as such, just the 15µs pulses. On the scope, it's closer to 17µs apparently (could be that my scope is very old). The thing is, I can't see the second 15µs pulse at all, only ONE 17µs pulse every FOURTH (Left) frame?

Whatever is being output, I just watched about ten minutes of Avatar in 3D (don't ask) with excellent sync and great 3D! I need to confirm the IR pulses, but it's looking good so far.

I think that this will keep L / R sync as well, provided we can find a proper sync signal. I'm only using VSYNC toggling atm though, so I can't confirm this 100%.

If we assume that there is a direct relationship between the 585µs pause and the frame rate, maybe it's closer to this...

120Hz frame period = 8.33ms...
8.33ms / 16 = 0.52083ms (520.83µs)!

We might also assume that you can leave more than FOUR frames between IR pulses because the glasses will keep shuttering for a few seconds, but I haven't tried this yet.

I'm off to test the 520µs theory to see if it still keeps sync.

OzOnE.
P.S. I'm not using any Samsung init codes at all, only the code above!
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: [DIY] Universal sutterglasses controller

Post by OzOnE2k10 »

Hmmm,

I was just confirming the pulses using the o'scope and I found that I'm not outputting the two pulses after all. (My 'scope seems to be picking up the HSYNC pulses from the controller, so it's a bit noisy and I couldn't be sure what was going on before.)

To cut a very long story short - I messed with Petrus' original code a bit too much and screwed up the flag stuff. I've fixed it now, but found that...

(pulse 15µs, pause 585µs, pulse 15µs) = NOT WORKING (sorry about that).

But when I'm using VSYNC toggling (for the real tests, when the glasses DO WORK), I'm actually only outputting ONE short 17µs pulse at the start of every FORTH frame. And that's it! 8-)

So, the glasses only seem to need ONE short pulse every few frames.

It works very well when the pulse is on every FORTH frame. I tried it at every Eighth frame, but it went out of sync and the delay was also wrong for some reason?

I believe the glasses stop working if the pulse is on every frame, or on every other frame. They NEED to have a delay of a few frames because they self-shutter (this made it difficult to find the code before).

I now DON'T think that the width of the pulse determines the shutter frequency - I've tried 17µs / 40µs / 60µs and it doesn't make any noticeable difference to the S3D image.

I can also confirm that 100Hz is working too! It doesn't look like the glasses will sync properly below 100Hz though. (85Hz and 75Hz looks screwy, could be the Acer?)

(100Hz compatibility makes sense because I think it's part of the standard for many 3DTV's, especially for 50Hz 3D broadcasts etc.)

It was tricky to find what I'd messed up in the software at first. All I needed to find is a way of inhibiting the IR output on certain frames. In the end, the solution was simple...

In the VSYNC interrupt, I added "frame_count++;", then I added the following to the "ir_out()" routine...

if(inhib_tx == 0 && (frame_count&3) == 0)

This is a kind of "FPGA" way of doing things (masking the frame count), but it works fine for testing.

Petrus' code was designed to always output an IR sync pulse on every frame (as most glasses need this), so it was easier for me to just inhibit the "ir_out" routine instead.

The additions for the Samsung IR code is very simple now...

#define ssg_lh 30 //17µs (changed slightly to compensate timing)

case 4 : //Samsung / Mitsubishi
switch (next_sync)
{
case 0 :
ir_tx[0]= ssg_lh - t_comp;
nbr_pulses= 1;
break;

case 1 :
ir_tx[0]= ssg_lh - t_comp;
nbr_pulses= 1;
break;
}

You still need to have "nbr_pulses= 1" for Left and Right pulses, even though the "frame_count" part only outputs one pulse every four frames. Otherwise, the software gets a bit angry. :lol:

As it stands, this will likely change the Left / Right sync randomly each time the controller is powered up. Unfortunately, I don't have a decent method for decoding the proper frame sync yet, so I'm using simple VSYNC toggling, and the above issue makes no difference.

Also, Blue-Line marking has been removed from Stereoscopic Player due to patent issues, so we'll have to find another sync method. My code never worked reliably for this anyway.

Having said that, (I hate to say this) it should be perfectly possible to use an nVidia IR dongle with Petrus' controller to save you from toggling the frame sync when a movie / game starts.

The next mission is to see if I can decode the e-Dimensional frame sync code using this controller.

In the mean time, I can finally enjoy some S3D using my Samsung glasses and the lovely Acer!!

I seriously need to build a powerful IR emitter though - this LED only works from about three feet away. :cry:

I will try to clean up this code so I can upload the Samsung / Mitsubishi version. Then again, I'm sure Petrus or someone could fix the Left / Right swapping problem. ;)


Have fun,

OzOnE.
P.S. The delay setting is also working, but the delay on the Acer is almost zero anyway!
evgenln
One Eyed Hopeful
Posts: 18
Joined: Tue Sep 28, 2010 5:28 am

Re: [DIY] Universal sutterglasses controller

Post by evgenln »

OzOnE2k10 wrote:Hmmm,
Also, Blue-Line marking has been removed from Stereoscopic Player due to patent issues, so we'll have to find another sync method. My code never worked reliably for this anyway.
If you still do not have the nvidia 3d vision and you like to work with electronics you can save lots of money and get the space for creativity. To do this you need buy a test board on CY7C68013A-56 (20-30$) and flash the firmware from the original 3d vision controller. At the outputs of this controller you can get a good synchronization signal, and most importantly accurate data about the eye changing. For signal processing, you can use the Petrus controller as you have it already, it would require only small modifications of the firmware. In this case you get really universal USB controller. It will work with any software, supporting the nvidia 3d vision.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: [DIY] Universal sutterglasses controller

Post by OzOnE2k10 »

Hi,

I've been keeping an eye on the nVidia USB hacking stuff. It's a great idea and should work fine, the only minor problem would be that if people were to build Petrus' controller (including a Cypress USB chip), they would need to add the nVidia firmware themselves - otherwise, I'm not sure about what nVidia would say about it? :|

You can find a nice CY7C68013A board from eB*y for around £12, so this should be a good solution. Does the iZ3D driver output to an nVidia USB dongle even with an ATI graphics card though?

Has the original communication method between the nVidia API and the Cypress firmware been found? If so, it might be possible to write our own "nVidia emulation" mode (without using the nVidia ID strings?), as well as use the Cypress chip to run the entire the shutter glasses controller itself !!


OK, slightly off-topic...

I'm now looking at the feasibility of building a board for generating 720p 120Hz from 720p 60Hz "frame-packed" format. If most 3D Blu-Ray players can be forced to output 720p frame-packed instead of 1080p (mandatory?), then it might just be possible to bypass any scaling and output 720p 120Hz sequential directly?...

Assuming the frame timing will be close enough for proper operation, it might be possible just to insert the SAV/EAV sync codes into the HDMI stream for the second (RIGHT?) image and that might be enough to generate a proper 720p 120Hz frame-sequential stream?? Hell, if the timing is OK, it might even be possible to do it with a cheap PLD chip! (This will also allow extraction of a proper L/R sync output.)

This makes me wonder what would happen if you inserted a VSYNC (SAV code in HDMI terms) during the active "space" in a frame-packed stream?...

http://www.hdtvexpert.com/wp-content/up ... Format.jpg" onclick="window.open(this.href);return false;

Would be a nice experiment to see how an HDMI-to-Component or HDMI-to-VGA adapter reacts to 3D frame-packing (given the correct EDID)? If people could cope with using analog, this would be even easier to modify for 120Hz sequential output. If this really is the case, then these new 3D "adapters" are looking a bit pointless for 3D Blu-Ray on 720p 120Hz projectors. ;)

From what I've read, most 3DTV's need to repeat each 3D (frame-packed) frame pair at least twice to achieve the faster shutter rate - So, the original 24Hz LR frame becomes L/R - L/R to get to 96Hz.

I know that 24Hz * 5 = 120Hz, but I'm not sure how this would work?...

LR 24Hz becomes...
L/R/L/R/L then the next "LR" frame becomes R/L/R/L/R etc.?

I've read that the 3DTV's could be using 3:2 pull-down to convert 24Hz into 30Hz, and then repeating the frames to display at 120Hz. I don't think this would give a very smooth image though?

This explains why the Samsung glasses self shutter - the TV only needs to output ONE sync pulse at the start of the original 24p / 30p LR frame.

Side-by-Side and Over-and-Under processing is a lot more complex and would require scaling etc. I think the Optoma adapter is a tad expensive atm, but it must contain a fair bit of processing power for converting the SbS / OaU formats? As I understand it, the adapter doesn't output separate Left / Right streams simultaneously? (a shame, as people with dual PJ setups would need to buy TWO adapters!). It seems that using a PC is still WAY cheaper and more flexible for the time being.

A few things to think about.
OzOnE.
evgenln
One Eyed Hopeful
Posts: 18
Joined: Tue Sep 28, 2010 5:28 am

Re: [DIY] Universal sutterglasses controller

Post by evgenln »

OzOnE2k10 wrote:Hi,

only minor problem would be that if people were to build Petrus' controller (including a Cypress USB chip), they would need to add the nVidia firmware themselves
I wrote about this because it is already done. I'm and the guys from Viaccess for Free Forums've spent some time for a device able to emulate the NVIDIA 3D Vision, based on various microcontrollers. Finally stopped at CY7C68013A-56. The original controller is also built on this chip, only the more expensive version of CY7C68013A-100.
The peculiarity of this chip is that it loads the firmware each time you connect to USB. The main firmware is located in the driver and loaded it after the device identification. So we do not need to write it yourself.
Firmware in the flash of the test board only need to give a board opportunity be defined as the NVIDIA 3D Vision emitter. It is very simple and I wrote it. Also, the user kostasoft downloaded the original firmware from the NVIDIA 3D Vision emitter which he had. Only you need to choose a test board with flash more than 2 kb (preferably more).

The output of PD1 - switching signal outrunning vertical sync pulse at 1 ms.
The output of PD2 - the value of the eye (left or right depends on the level - high or low).
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: [DIY] Universal sutterglasses controller

Post by OzOnE2k10 »

Excellent! 8-)

Yep, I saw a few of your posts on Viaccess a while ago. Some nice work you guys have done there. I'm guessing you'll know all about DVBViewer then. :lol:

(As a side-note, you can apparently use the "3DFier" plugin with DVBViewer to do basic realtime 2D-to-3D conversion when watching TV and movies. I have just installed this under StereoScopic Player but I've yet to try it with shutter glasses.)


It seems that many manufacturers are using the Cypress FX2 chip for a product and selling it for a much higher price...

http://hackaday.com/2009/03/06/tools-sa ... -analyzer/" onclick="window.open(this.href);return false;

Funny enough, I actually have a 56-pin FX2 chip sitting here for an FPGA project. I still haven't figured out how to solder the FPGA though. :(

So, it should be easy to use the nVidia API and add USB to the Shutterglasses Controller... Are you saying that you can make the FX2 enumerate as an nVidia emitter and load the driver (+firmware) without needing to program any nVidia code to the chip in the first place? Is it just the VID/PID stuff which allows the nVidia driver to load?

Also, do you think the FX2 will have enough resources free to output other shutterglasses protocols with accurate timings (and possibly print to LCD) while using the nVidia API to keep L/R sync?

This would mean that only an FX2 chip and a few other components would be needed to make a universal controller. The use of the LCD will mean it could run in standalone mode too (running from simple VSYNC toggling or external VESA / DDC input).

I'm ready to help get this running if the above is possible. I will buy a small FX2 board soon (cheaper and easier than soldering a chip yourself).

Thanks,
OzOnE.
evgenln
One Eyed Hopeful
Posts: 18
Joined: Tue Sep 28, 2010 5:28 am

Re: [DIY] Universal sutterglasses controller

Post by evgenln »

Yes, soldering FPGA at home is not an easy task. That's why I bought the test board, unfortunately on it was installed 1 kb flash. I had to replace flash to larger.

All you have to do it flash to the board's flash firmware needed to initialize. It's not quite VID/PID. This is a typical firmware allows CY7C68013A run in high speed mode and containing a set of necessary descriptors. Funny but the firmware written by me has the same size as on the original device. Probably the programmers did not severely tried, and took the project from SDK.

The CY7C68013A has enough resources to handle tasks you wrote above. But the creating "all in one" device will require a driver patch. Since the driver loads the manufacturer's firmware every time you turn it on. And I couldn't solve this problem. If you had to use not signed driver under Windows 7 or Vista you know what I mean.
I chose this way because it's not a problem for me. Therefore, I recommend you use for processing signals from the CY7C68013A by the Petrus emitter. In this case, you will not need to patch the driver. Need just a little fix for the Petrus emitter firmware.
But if you decide to make the all in one device I'll share with you an unfinished project for CY7C68013A (LCD support, 3 glasses protocols). I stopped developing it a few months ago and before the end of February I'll haven't time to continue it.
User avatar
cybereality
3D Angel Eyes (Moderator)
Posts: 11406
Joined: Sat Apr 12, 2008 8:18 pm

Re: [DIY] Universal sutterglasses controller

Post by cybereality »

I seriously doubt the iz3d devs would add hacked Nvidia support into their driver, for obvious reasons.

Also, I was under the impression that 3DTVs use 3:2 pulldown on 3D Blu-Rays. So the glasses and the TV remain locked at 120Hz, you just see multiple of the same image a few times refreshed.
lish
One Eyed Hopeful
Posts: 31
Joined: Mon Jan 18, 2010 6:16 am
Contact:

Re: [DIY] Universal sutterglasses controller

Post by lish »

evgenln wrote:Yes, soldering FPGA at home is not an easy task. That's why I bought the test board, unfortunately on it was installed 1 kb flash. I had to replace flash to larger.

All you have to do it flash to the board's flash firmware needed to initialize. It's not quite VID/PID. This is a typical firmware allows CY7C68013A run in high speed mode and containing a set of necessary descriptors. Funny but the firmware written by me has the same size as on the original device. Probably the programmers did not severely tried, and took the project from SDK.

The CY7C68013A has enough resources to handle tasks you wrote above. But the creating "all in one" device will require a driver patch. Since the driver loads the manufacturer's firmware every time you turn it on. And I couldn't solve this problem. If you had to use not signed driver under Windows 7 or Vista you know what I mean.
I chose this way because it's not a problem for me. Therefore, I recommend you use for processing signals from the CY7C68013A by the Petrus emitter. In this case, you will not need to patch the driver. Need just a little fix for the Petrus emitter firmware.
But if you decide to make the all in one device I'll share with you an unfinished project for CY7C68013A (LCD support, 3 glasses protocols). I stopped developing it a few months ago and before the end of February I'll haven't time to continue it.
Hi evenln,
Can you share the solution to us about the CY7C68013A? What I mean is a firmware used CY7C68013A to activate the NVIDIA 3D vision, and then use the other emitter and glasses such as iz3d. What a cheaper solution!! :lol:
Last edited by lish on Tue Jan 04, 2011 9:42 pm, edited 1 time in total.
evgenln
One Eyed Hopeful
Posts: 18
Joined: Tue Sep 28, 2010 5:28 am

Re: [DIY] Universal sutterglasses controller

Post by evgenln »

Maybe I did not explain clearly. Discussed device requires installed original NVIDIA 3D Vision drivers or other software able to activate the 3D Vision emitter. As far as I know iz3d does not support Nvidia 3D Vision emitter.
lish
One Eyed Hopeful
Posts: 31
Joined: Mon Jan 18, 2010 6:16 am
Contact:

Re: [DIY] Universal sutterglasses controller

Post by lish »

evgenln wrote:Maybe I did not explain clearly. Discussed device requires installed original NVIDIA 3D Vision drivers or other software able to activate the 3D Vision emitter. As far as I know iz3d does not support Nvidia 3D Vision emitter.
I see...
What I mean is to use the other glasses, not the iz3d driver.
When we activate the 3D vision, we can get a 3D vsync form the VGA, and we can driver another glasses base on the vsync.
Is it right?
evgenln
One Eyed Hopeful
Posts: 18
Joined: Tue Sep 28, 2010 5:28 am

Re: [DIY] Universal sutterglasses controller

Post by evgenln »

Probably, but why do we need to take any signals from the VGA? We have all the necessary signals on the CY7C68013A outputs.
Here is firmware, which can be flashed to any CY7C68013A test board. It must contain more than 2KB flash chip. Firmware can be flashed using CYPRESS console.
You do not have the required permissions to view the files attached to this post.
User avatar
tritosine5G
Terrif-eying the Ladies!
Posts: 894
Joined: Wed Mar 17, 2010 9:35 am
Location: As far from Hold Display guys as possible!!! ^2

Re: [DIY] Universal sutterglasses controller

Post by tritosine5G »

Guys, once someone has success with Sony shutters, don't forget to pm me.

You can ask them to ship the outer polarizer layer to you ,they goin to give it to you 4 free (& thats how they use it with sequential LCOS projector I guess), then you apply it.
-Biased for 0 Gen HMD's to hell and back must be one hundred percent hell bent bias!
lish
One Eyed Hopeful
Posts: 31
Joined: Mon Jan 18, 2010 6:16 am
Contact:

Re: [DIY] Universal sutterglasses controller

Post by lish »

evgenln wrote:Probably, but why do we need to take any signals from the VGA? We have all the necessary signals on the CY7C68013A outputs.
Here is firmware, which can be flashed to any CY7C68013A test board. It must contain more than 2KB flash chip. Firmware can be flashed using CYPRESS console.
Thank you very much.
I know nothing about CY7C68013A, so this IC made the Nvidia 3D vision activated and also get a vsync from the PC by USB connected?
What a good job :)
Shake please, Those poeple who sells 3D vision kit higher than $150!
:lol:
User avatar
Petrus
Two Eyed Hopeful
Posts: 95
Joined: Thu Mar 04, 2010 12:50 pm
Location: France

Re: [DIY] Universal sutterglasses controller

Post by Petrus »

evgenln wrote:Probably, but why do we need to take any signals from the VGA? We have all the necessary signals on the CY7C68013A outputs.
Here is firmware, which can be flashed to any CY7C68013A test board. It must contain more than 2KB flash chip. Firmware can be flashed using CYPRESS console.
Sync from the nvidia emitter drift with CPU usage on my PC, that's why I sync my emitter on VGA.
OzOnE2k10
Sharp Eyed Eagle!
Posts: 436
Joined: Wed Jan 13, 2010 7:12 am
Location: UK

Re: [DIY] Universal sutterglasses controller

Post by OzOnE2k10 »

Ok, so I'm probably going to buy a Cypress board from China to have a play with - they're very cheap for what they do, it's just that I don't really want to be tied to using a specific graphics card for S3D...

I'd always bought nVidia cards for my PC's in the past (for over 12 years), but I changed to ATI a few years ago. I mainly use the PC for watching HD video and S3D movies etc. so I'm not too bothered about S3D games at this stage.

The thing is, one of the main goals of having a universal controller is so that users aren't tied to using a particular brand of glasses. Ideally, it would be nice to make it GPU universal too - the software for generating the Left / Right images is already available (iZ3D), and is GPU universal - we just need a decent sync method for the L/R reversing problem...

Thanks to Petrus (and to anybody else who has helped), I can currently use my glasses controller with S3D movies / iZ3D games on any graphics card and choose between 5 different brands of glasses (although not simultaneously as yet). The only minor inconvenience is sometimes having to hit F7, or press a button on the controller to swap L/R parallax when first starting an S3D movie or game.

It's even possible to use the controller on any 3DTV with a 3-pin VESA output. This will allow the use of any of the 5 glasses brands on any 3DTV, as well as adding a variable delay control.

The question is, does everyone really want to be tied to a specific brand of GPU purely for the convenience of not having the L/R swap issue?

(btw, I realize now why they wouldn't have nVidia dongle support under iZ3D. :oops: I just wish ATI would get their act together now and release proper S3D drivers too.)

@evgenln, thanks for the firmware. If possible, could you please post (or PM) your code for the glasses controller on the Cypress chip? I would be very grateful for this as it looks like a neat and quick way of building an advanced controller. At the very least, the Cypress board will come in extremely handy as a fast logic analyser. :)

@tritosine, Are you looking for the Sony glasses IR protocol? I don't know anything about them I'm afraid. They are quite expensive glasses I think, but are they much better than any other brands? If you have access to a Sony 3DTV, then you might be able to record the (rough) IR output using a small solar panel connected to a PC's sound card (via a resistor!).


I just realized that I've never posted any photos of my glasses controller - I'm just waiting for parts to build into a proper case (cheap HDMI switch) and adding basic VSYNC support via HDMI using Petrus' sync extractor. I'm also waiting for some Osram Golden Dragon 2.2W LEDs for building a mega IR emitter! When I've got everything looking nicer, I'll post some pics.

OzOnE.
User avatar
tritosine5G
Terrif-eying the Ladies!
Posts: 894
Joined: Wed Mar 17, 2010 9:35 am
Location: As far from Hold Display guys as possible!!! ^2

Re: [DIY] Universal sutterglasses controller

Post by tritosine5G »

I don't care about the grand scheme of things , I am selfish LOL.
I would buy:

1. cypress emitter with sony sync
or,
2. modified sony glasses that sync to nvidia emitter

that's all. AMD full3d is full of holes afaik, and being an early adopter once was just enough.

Sony is known to have the best spec, most comfortable, and it isn't like it's anything expensive either. Plus you get the chance to play with the outer layer polarizer ( that can possibly translate into +20% brightness if other criterias are met).
-Biased for 0 Gen HMD's to hell and back must be one hundred percent hell bent bias!
User avatar
Petrus
Two Eyed Hopeful
Posts: 95
Joined: Thu Mar 04, 2010 12:50 pm
Location: France

Re: [DIY] Universal sutterglasses controller

Post by Petrus »

About the Sony's glasses, I tried them in a store, they are comfortable and look solid.
But the lack of outer polarizer is a real issue, even with the Sony LCD TV. Just tilt your head a few degrees and you will see an horrible ghosting.

Do you have some pictures of the additional filters and instructions about how to apply them ?
User avatar
tritosine5G
Terrif-eying the Ladies!
Posts: 894
Joined: Wed Mar 17, 2010 9:35 am
Location: As far from Hold Display guys as possible!!! ^2

Re: [DIY] Universal sutterglasses controller

Post by tritosine5G »

http://www.kb.sony.com/selfservice/micr ... 0189737969" onclick="window.open(this.href);return false;
If these tips don’t resolve this to your satisfaction, Sony does offer a pair of optional polarizer filters that can be fitted or inserted over the existing lenses in the Sony 3D glasses. These are provided free of charge. They will reduce the double image noticed with the head tilt. However, they will make the picture slightly darker and some home lightning could appear to flicker when viewed through the glasses. These filters are non-permanent and are easy to install and remove. To order a pair, call the Sony Customer Information Service Center at (239) 768-7547.
http://www.avsforum.com/avs-vb/showthread.php?t=1285861" onclick="window.open(this.href);return false;
-Biased for 0 Gen HMD's to hell and back must be one hundred percent hell bent bias!
lish
One Eyed Hopeful
Posts: 31
Joined: Mon Jan 18, 2010 6:16 am
Contact:

Re: [DIY] Universal sutterglasses controller

Post by lish »

Petrus wrote:About the Sony's glasses, I tried them in a store, they are comfortable and look solid.
But the lack of outer polarizer is a real issue, even with the Sony LCD TV. Just tilt your head a few degrees and you will see an horrible ghosting.

Do you have some pictures of the additional filters and instructions about how to apply them ?
Actually, the filter can remove as Sony done, because there is a filter the same as it in front of TV panel except of PDP TV(and some LCD maybe because of different technology from Sony). It will cause light leakage to get a crosstalk in 3D mode or a strange color with some LCD, and no 3D mode with PDP:)

I need to check in home, I have got a struct of the filter long time ago.
User avatar
tritosine5G
Terrif-eying the Ladies!
Posts: 894
Joined: Wed Mar 17, 2010 9:35 am
Location: As far from Hold Display guys as possible!!! ^2

Re: [DIY] Universal sutterglasses controller

Post by tritosine5G »

Exactly, LCD is polarized . 120hz DLP projector + filter + silverscreen is polarized.

Also ,the better "non-depolarizing" attribute the silverscreen has, the brighter it is (pure aluminium 7x , 10x brighter than white!) , so putting the filter in front of the projector is beneficial...
-Biased for 0 Gen HMD's to hell and back must be one hundred percent hell bent bias!
User avatar
Petrus
Two Eyed Hopeful
Posts: 95
Joined: Thu Mar 04, 2010 12:50 pm
Location: France

Re: [DIY] Universal sutterglasses controller

Post by Petrus »

I've made some photos of the finished universal emitter :
Image Image Image Image

The small circuit between the rear panel and the main board is an optional circuit that toggle the power ON and OFF.
I switches the emitter ON after a push on the white button on the rear and it allow the emitter to switch itself OFF after 30min of inactivity or by selecting the off function on the LCD.

Source, schematic & PCB :
Image

Software improvements :
- Buttons are filtered
- LCD backlight management
- OFF function and Auto-off after 30 min (need power switch circuit).
User avatar
cybereality
3D Angel Eyes (Moderator)
Posts: 11406
Joined: Sat Apr 12, 2008 8:18 pm

Re: [DIY] Universal sutterglasses controller

Post by cybereality »

Looking good man.
Post Reply

Return to “Do it Yourself!”