View Full Version : Pearl ImageDirector protocol
I'd like to get more direct access to gamma LUT then through ImageDirector. Today I ran RS232 sniffer to dump ImageDirector conversation with Pearl. I got commands/responses not even close to whatever described in protocol manual: preffix A5, sufix 5A, variable lenght...
Here is example of what I've logged:
Request: 11/5/2006 12:47:19 PM.49664 (+0.0000 seconds)
A5 01 00 01 00 01 05 00 01 00 01 01 01 80 05 00 „..............
03 00 33 10 A1 5A ..3.”Z
Answer: 11/5/2006 12:47:19 PM.54364 (+0.0469 seconds)
A5 05 00 01 00 01 01 00 01 00 01 01 02 80 15 00 „..............
13 00 33 10 56 50 4C 2D 56 57 35 30 00 00 00 00 ..3.VPL-VW50....
00 00 00 00 C1 5A
Request: 11/5/2006 12:48:08 PM.44964 (+0.0156 seconds)
A5 01 00 01 00 01 05 00 01 00 01 8B 01 80 04 00 „.............
02 00 01 09 5A ....Z
Answer: 11/5/2006 12:48:08 PM.46564 (+0.0156 seconds)
A5 05 00 01 00 01 01 00 01 00 01 8B 02 80 0A 00 „.............
08 00 01 00 00 00 00 00 02 0C 5A ..........Z
Request: 11/5/2006 12:48:09 PM.37164 (+0.9063 seconds)
A5 01 00 01 00 01 05 00 01 00 01 8C 01 80 07 00 „.............
05 03 00 00 00 10 18 5A .......Z
Answer: 11/5/2006 12:48:09 PM.40264 (+0.0313 seconds)
A5 05 00 01 00 01 01 00 01 00 01 8C 02 80 29 00 „...........).
27 00 00 03 00 00 00 10 00 00 00 0A 00 17 00 24 '..............$
00 31 00 40 00 4E 00 5C 00 6A 00 7A 00 89 00 97 .1.@.N.\.j.z..
00 A6 00 B6 00 C5 00 D5 43 5A .¦.¶.Å.ÕCZ
What is it? Any description of this format available? I'll appreciate any info on this and 3d gamma table access protocol[s].
Thanks
I found some limited protocol description here:
http://www.hcinema.de/pdf/bedienungsanleitungen/sonyvpl_px20_px30_vw10ht_an-en.pdf
Got it! I should be able to set gamma curve with 64 points and 10 bit precision :)
Erik Garci 11-07-06, 01:28 PM Great! Can you post a description of the protocol? :)
The 64 points are signal input levels, and the 10-bit precision (1024 values) is the light output level for each point, correct?
It's correct.
Please reffer to protocol manual from the link I posted. I'm skipping shecksums, data length bytes, etc
Basically ImageDirector set gamma preset number (01-03) with command
cmd1 = 00, cmd2= set(02), cmd3=80, data=00, data2=22, data3=00, data4=preset number (Idon't have log with me, so I may made a mistake here)
Operations for set/get gamma are modal - depend on preset number selected.
ImageDirector retrievs curve points - 16 per request.
Request to do that: cmd1=8C, cmd2= get(01), cmd3=80, data=03 00 00 00 10
(03 - set/get gamma , next byte is color chanel 00/01/02, next byte - always 00
next 00 - points offset, I've seen 00/10/20/30 - selects each of 4 parts of the curve; 10 looks like step or number of points per request)
Return data: data is 00 00 + (03 00 00 00 10; data from request)
then 16 16bit samples (00 00 - 03 FF)
You need 12 request/response pairs to get or set gamma (4 blocks * 3 color chanels).
To set gamma you need to send data in the same format that PJ sent to you on 8C 01 80 command response, but change cmd2 to 02 (set)
All commands have standard beginning:
A5 01 00 01 00 01 05 00 01 00 01
Start code: A5
"To"
Preiferal index: 01
Group index : 00 01
Device index: 00 01
"From"
Periferal index: 05
Group index : 00 01
Device index: 00 01
.
Cmd3 for all commands: 80
What I don't understand so far:
1) What Cmd1=8B Data = 00 01 read command does?
2) All read commands, except for gamma return data from request and then add "result" data, but get gamma command returns 00 00 + [request data] + [result data]. Why?
3) How to get access to 3d gamma table? ;)
Erik Garci 11-08-06, 10:29 AM Thanks for the description.
Have you tried sending/receiving these commands outside of ImageDirector?
If you send a command to change a point, can you see it take effect immediately in the projected image? Or is there a delay?
Not yet. I plan to play with it on weekend.
Thanks for the description.
Have you tried sending/receiving these commands outside of ImageDirector?
I did yesterday :)
Looks like gamma commands are not modal :) First byte in data (03 00 00 00 10) is curve number, ImageDirector can send 01, 02 or 03 depends on selected curve. Last byte (10) is number of points. Byte in the middle - ignored.
-
I also scaned all commands for Cmd3=80: 8c and 8b are the only ones available, except whatever described in protocol manual.
8c return some data outside on gamma curves indexes 01-03.
8b has 5 "subcommands" with data 00 01 - 00 05 - the rest returns errors
"A9" protocol from Protocol Manual is useles has nothing more then in protocol manual.
Scan logs are available upon request
Erik Garci 11-10-06, 01:45 PM I did yesterday :)
Were you able to see any changes in the projected image?
Can you post the factory-default values of your projector's gamma curves? I wonder if they are the same for all units.
Were you able to see any changes in the projected image?
Can you post the factory-default values of your projector's gamma curves? I wonder if they are the same for all units.
I'm playing with reading so far. The only thing I've written was "power on" so far.
I'm pretty sure that it is "user" gamma data, not actual gamma LUT, so it should be the same for all projectors. I modified gamma1 settings, but I'll post gamma2 and 3 when I'll get hands on my laptop with logs - should be ones from the factory.
Erik Garci 11-10-06, 02:57 PM I'm playing with reading so far. The only thing I've written was "power on" so far.
I'm pretty sure that it is "user" gamma data, not actual gamma LUT, so it should be the same for all projectors. I modified gamma1 settings, but I'll post gamma2 and 3 when I'll get hands on my laptop with logs - should be ones from the factory.
So you used ImageDirector to modify the gamma1 settings, correct? Did you see any changes in the projected image?
Before you modified them, did you tell ImageDirector to save the factory-default gamma1 settings to a file, so that they can be restored to the projector later?
I used ImageDirector to mofity gamma 1, not sure I saved original one.
Gamma 3:
00 00 00 0A 00 17 00 24 00 31 00 40 00 4E 00 5C
00 6A 00 7A 00 89 00 97 00 A7 00 B6 00 C5 00 D5
00 E4 00 F5 01 04 01 14 01 23 01 34 01 44 01 54
01 64 01 74 01 85 01 95 01 A5 01 B6 01 C7 01 D7
01 E7 01 F8 02 09 02 1A 02 2A 02 3B 02 4D 02 5D
02 6E 02 80 02 91 02 A2 02 B3 02 C3 02 D4 02 E6
02 F7 03 08 03 1A 03 2C 03 3D 03 4E 03 60 03 72
03 83 03 94 03 A5 03 B8 03 C9 03 DB 03 EC 03 FE
Gamma 2:
00 00 00 17 00 2B 00 3F 00 52 00 66 00 78 00 8A
00 9B 00 AE 00 BF 00 D0 00 E1 00 F3 01 04 01 14
01 25 01 36 01 47 01 57 01 67 01 78 01 88 01 98
01 A8 01 B8 01 C9 01 D9 01 E8 01 F8 02 08 02 18
02 28 02 37 02 47 02 57 02 66 02 75 02 86 02 95
02 A4 02 B3 02 C3 02 D2 02 E1 02 F0 02 FF 03 0F
03 1E 03 2D 03 3C 03 4C 03 5A 03 69 03 78 03 88
03 96 03 A5 03 B4 03 C3 03 D2 03 E0 03 EF 03 FF
Erik Garci 11-11-06, 02:44 PM Thanks for posting those values. I copied them into a spreadsheet, and I found out that both sets of values are nearly linear. Gamma2's values are slightly greater than linear. Gamma3's values are slightly less than linear. This seems to indicate that the values are offsets relative to GammaOff, since Gamma2 has a slightly lower gamma than GammaOff (1.95 versus 2.15), and Gamma3 has a slightly higher gamma than GammaOff (2.34 versus 2.15).
Today I wrote and read real gamma from/to turned off projector :)
The little trick to save gamma is to send cmd: 8b 02 80 data: 00 07 00 GammaCurve# 00 07 command to write gamma into memory after sending gamma curve data
scaesare 12-02-06, 10:04 AM Oooh... nice. So... what'cha got cooking?
I know how to use Spyder2 too, so next step is obvious :)
scaesare 12-05-06, 10:21 AM Awesome.
I'll be VERY interested in your success.
drapp1952 12-05-06, 05:38 PM Anything that might somehow speed up the 3D Gamma adjustment would be great, assuming I could understand what you're talking about. (That understanding problem is mine.)
Dan
Erik Garci 01-02-07, 11:35 AM Recently I did my own monitoring of Image Director's RS232 protocol, and it is slightly different from the one Victor posted.
The command to send 32 bytes of data to the Pearl is:
A5 01 00 01 00 01 05 00 01 00 01 8C 00 80 27 00 25 [table] [color] 00 [offset] [points] [data1] ... [data32] [checksum] 5A
table = 01, 02, or 03
color = 00, 01, or 02
offset = 00, 10, 20, or 30
points = 10
checksum = XOR all bytes after A5
The command to activate the sent data is:
A5 01 00 01 00 01 05 00 01 00 01 8B 00 80 08 00 06 00 07 00 [table] 00 07 [checksum] 5A
I created a program to send these commands, and it works. I have been using it to make my own gamma tables. In the process, I discovered a way to improve shadow detail. Usually you would send zero for black (i.e., 00 00 for the first point), but by sending a value greater than zero, the levels near black rise out of black more quickly, while the black level itself stays the same (as long as your Brightness setting is properly calibrated).
I also confirmed that the values are relative to GammaOff. Basically, I sent a linear set of values, and it appeared to be identical to GammaOff.
As you found, the protocol used by Image Director is quite different from what is in the documentation.
I have a tool for working with the gamma curves on the Pearl (same as what I did for the Ruby), which I am thinking to offer here if there is interest.
There is another "underlying" set of LUTs, by the way, which are not adjustable using Image Director...
William
Erik Garci 01-02-07, 06:01 PM I have a tool for working with the gamma curves on the Pearl (same as what I did for the Ruby), which I am thinking to offer here if there is interest.
Is your tool easy to use?
My tool is very bare bones. It merely reads 192 numbers from a text file (64 numbers per color channel) and sends the commands to the projector. I just use Notepad to edit the text file. Sometimes I use an Excel spreadsheet to generate the numbers.
Erik,
Yes, it's easy. There are some controls for the shape and level of the curve. You adjust these, generate a new curve, and send it to the projector. The levels for each color can be set independently. It's a very different approach than manual editing of the points on the curve. I also have a graphical tool that allows manual editing of each curve point by point if you want to get into it at that level. I'll try to post some images of the controls soon (but remember it's countdown to CES so I'm a bit busy).
There was a thread on this around here somewhere for the Ruby version...
William
Erik Garci 01-03-07, 11:26 AM There was a thread on this around here somewhere for the Ruby version...
Is this the thread?
Ruby, Optimized by William Phelps (http://www.avsforum.com/avs-vb/showthread.php?t=696181)
Unfortunately the screenshots no longer appear in the first post.
A/Vspec 01-21-07, 09:15 AM So I take it then the RS232 port works? I am trying to contol the Pearl with my AMX system and the pre-built modules that they (AMX) have for the Qualia and VPL-FX52 all use this "IP" protocol? Can the Pearl also us an IP protocol or is it RS232 only?
Erik Garci 01-21-07, 10:02 AM So I take it then the RS232 port works? I am trying to contol the Pearl with my AMX system and the pre-built modules that they (AMX) have for the Qualia and VPL-FX52 all use this "IP" protocol? Can the Pearl also us an IP protocol or is it RS232 only?
The Pearl's RS232 port works. It does not support IP protocol because it does not have an Ethernet port.
Simon Woodgate 01-21-07, 12:14 PM I have a tool for working with the gamma curves on the Pearl (same as what I did for the Ruby), which I am thinking to offer here if there is interest.
William
Hi William. I was wondering if you have anything that would enable me to edit gamma curves on a mac?
many thanks
Simon
A/Vspec 01-21-07, 01:02 PM Thanks Erik. Would you be able to give me an exact command string that I could try and send to the Pearl from my AMX to see if I can figure it out since AMX themselfs do not have a module.
For example in my code for my Halo C2 I have:
SEND_STRING dvPARASOUND_C2,"224,82,83,33,34" (*TURNS OFF HALO C2*)
If you could give me a sample string for the Pearl and a list of the commands or were I can find all the commands I could at least add these to my code and control the Sony and then wait and hope that AMX writes a module so that I could get two way feedback.
Erik Garci 01-22-07, 12:13 PM Thanks Erik. Would you be able to give me an exact command string that I could try and send to the Pearl from my AMX to see if I can figure it out since AMX themselfs do not have a module.
I don't know any commands other than the ones that I already posted. Also, I have not seen a protocol manual for the Pearl. There is a protocol manual for the Ruby (http://esupport.sony.com/perl/model-documents.pl?mdl=VPLVW100) (and protocol samples), but I don't know if the Pearl uses the exact same protocol as the Ruby.
Pearl protocol manual is very close to Ruby's. Parts that are obviously not relevant (networking, etc) are removed.
Erik Garci 01-22-07, 12:26 PM Pearl protocol manual is very close to Ruby's. Parts that are obviously not relevant (networking, etc) are removed.
Do you have a link to the Pearl's protocol manual?
Do you have a link to the Pearl's protocol manual?
No, I have paper version. Waste of $25
|
|