home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
Language specific support
MediaPortal Forums Francais
MediaPortal 1 - Support
Interfaces Input / Output (VFD,télécommande)
Télécommande Sony VAIO VGC-V2S
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="afaes" data-source="post: 431597"><p>=======================================================================</p><p> A small hardware Summary of the SONY LANC Control L Protocol</p><p> October 27, 1994 (dmeed@nbnet.nb.ca)</p><p>=======================================================================</p><p></p><p> For the inside scoop on the Sony LANC Control L order the Protocol</p><p>manual for Control L/Lf from Sony. I ordered it from:</p><p></p><p> Sony Service Company</p><p> Parts Division</p><p> 8281 NW 107th Terrace</p><p> Kansas City, MO 64153</p><p> (816) 891-7550</p><p></p><p> Part # 9-972-453-11 "Protocol of Control L/LF"</p><p></p><p> You get to find out where to order it in your country, but I'm sure</p><p>they will send you a copy from the address above if you give them a</p><p>call. About $20US or so (but don't quote me!) (Somebody let me know</p><p>if they do manage to get it from the US overseas.)</p><p></p><p> Control L is a two-way serial open collector 9600 baud protocol.</p><p>Cameras (control-L) use a three pin sub-mini jack that has ground on</p><p>the sleeve, power (up to 100ma unregulated 5-9v) at the tip and LANC</p><p>signal on the ring.</p><p></p><p> VCRs with the five pin mini-DIN connector have DC out on pin 1,</p><p>LANC bus on pin 4 and GND on pin 5. Pin 3 may be a power switch line</p><p>(ground to switch power on and off) and pin 2 may put out a square wave</p><p>locked to the video frames. (pins 2 & 3 are optional, not used on</p><p>consumer equipment.)</p><p></p><p> The LANC bus is open collector so it is normally pulled high to about</p><p>5v and is pulled low to send commands or status information. You can</p><p>hook the LANC signal directly to the input of a 1488 RS232 line driver</p><p>and feed that into your PC serial port and capture the 9600 baud data</p><p>stream. It will have to be inverted before you use it (00 will read as</p><p>FF).</p><p></p><p> The data stream is 8 bytes, then a gap (1.7ms? until the end of the</p><p>current frame) then 8 bytes for the next frame, another gap and so on.</p><p>If you can write your serial driver to sync to that gap you can read it</p><p>easily. I wrote a program in modula 2 to display the signal, but I</p><p>don't know enough about PC timing to detect that gap in the data</p><p>stream.</p><p></p><p>The camcorder puts out an 8 byte data packet with each video frame.</p><p>The first two bytes are for controllers to command the camera and are</p><p>usually 00 00. The next two are for tuners and are also usually 00 00.</p><p>The last four bytes are for the VCR status and carry the counter and</p><p>several other status bits.</p><p></p><p> Reading is the easy part . . .</p><p></p><p> To send a command you have to wait until you detect the start bit of</p><p>the first byte in a frame then impose your signal on the LANC line</p><p>(remember it is open collector and inverted, so 00 is all high - you</p><p>just pull low for your command bits). I haven't the foggiest how to</p><p>send a byte on the serial port in response to an external start bit. I</p><p>think you might almost have to bit bang it in software. Wouldn't be</p><p>bad - only need to send 2 bytes in each frame. Oh yeah - and in at</p><p>least 5 consecutive frames to make sure the VCR hears and understands</p><p>your command.</p><p></p><p>I've got a Sony RM95 wired remote here. These are the codes I see by </p><p>pressing the buttons on the remote and eavesdropping on the LANC line</p><p>with a PC @9600 baud.</p><p></p><p> Button on remote Code sent on bytes 1 & 2</p><p> ================ ========================</p><p> (these buttons work in camera mode)</p><p> Zoom tele 28 35</p><p> Zoom wide 28 37</p><p> focus 28 41 (toggle between manual and autofocus)</p><p> focus farther 28 45</p><p> focus closer 28 47</p><p> start/stop rec 18 33</p><p> edit search - 18 65</p><p> edit search + 18 67</p><p> rec review 18 69</p><p> power 18 5E</p><p></p><p> (these buttons work in VTR mode)</p><p> stop 18 30</p><p> pause 18 32</p><p> play 18 34</p><p> rewind 18 36</p><p> fast forward 18 38</p><p> record 18 3A</p><p> slow 18 46</p><p> frame advance 18 62</p><p> counter reset 18 8C</p><p> data screen 18 B4</p><p></p><p>I'm looking for the codes for slow zoom, fade, index, and all the other</p><p>goodies on the side of my V101 camera. Would be nice to be able to</p><p>press those buttons without having to touch the camera jiggle jiggle).</p><p>If you find them please let me know. You could always try sending</p><p>all the possibilities and see what you get...</p><p></p><p></p><p>Update - 95/07</p><p>I've just managed to write a simple program for the PIC16C84 processor</p><p>which will control a camcorder remotely - Sort of a homemade version of</p><p>the RM100 remote control</p><p></p><p>David Meed <a href="mailto:dmeed@nbnet.nb.ca">dmeed@nbnet.nb.ca</a></p><p></p><p>=======================================================================</p><p>Additional Resources (haven't been there to check it out yet):</p><p>>>LANC info can be found in the file collection of the Amer. Soc. of</p><p>>>Reverse Engineers. It can be accessed via ftp to tracker.vet.uga.edu.</p><p>>>The files are in the /pub/asre directory. In addition to several files</p><p>>>on LANC, they have a file on the VCRPLUS protocol.</p><p>>></p><p>>>Dave Dunfield has some files on LANC in association with his DBOX project</p><p>>>(a do-it-yourself LANC controller). His files are on his BBS at</p><p>>>613-256-6289.</p><p>=======================================================================</p><p>And the rest is some stuff I was sent from "NEIL HIGGINS, SEQEB" </p><p></p><p>=======================================================================</p><p></p><p></p><p>Xref: un rec.video:39939</p><p>Path: un!bunyip.cc.uq.oz.au!munnari.oz.au!spool.mu.edu!howland.reston.ans.net!europa.eng.gtefsd.com!news.umbc.edu!haven.umd.edu!purdue!mozo.cc.purdue.edu!pasture.ecn.purdue.edu!laird</p><p>From: <a href="mailto:laird@pasture.ecn.purdue.edu">laird@pasture.ecn.purdue.edu</a> (Kyler Laird)</p><p>Newsgroups: rec.video</p><p>Subject: Re: LANC Protocol</p><p>Date: 29 Sep 1994 01:23:10 GMT</p><p>Organization: Purdue University</p><p>Lines: 852</p><p>Message-ID: <36d4tu$buq@mozo.cc.purdue.edu></p><p>References: </p><p>NNTP-Posting-Host: pasture.ecn.purdue.edu</p><p>X-Newsreader: NN version 6.5.0 (NOV)</p><p></p><p><a href="mailto:nh007@un.seqeb.gov.au">nh007@un.seqeb.gov.au</a> ( NEIL HIGGINS) writes:</p><p></p><p>>Can anyone direct me to a specification for the LANC protocol, used for</p><p>>edit control, etc. on Sony cameras? The local rep. tells me the protocol</p><p>>specification is not available. I find that hard to believe.</p><p></p><p>Reps can be so full of it, can't they...</p><p></p><p>Here's the unedited brain dump.</p><p></p><p>--kyler</p><p></p><p></p><p>Xref: noose.ecn.purdue.edu comp.multimedia:6121 comp.sources.wanted:14178 comp.sys.amiga.multimedia:2644</p><p>Path: noose.ecn.purdue.edu!mentor.cc.purdue.edu!purdue!haven.umd.edu!darwin.sura.net!zaphod.mps.ohio-state.edu!sdd.hp.com!portal!cup.portal.com!DonD</p><p>From: <a href="mailto:DonD@cup.portal.com">DonD@cup.portal.com</a> (Don Robert DeCosta)</p><p>Newsgroups: comp.multimedia,comp.sources.wanted,comp.sys.amiga.multimedia</p><p>Subject: Re: sony Control-L documentation</p><p>Message-ID: <78191@cup.portal.com></p><p>Date: Wed, 24 Mar 93 22:37:07 PST</p><p>Organization: The Portal System </p><p>References: </p><p>Lines: 759</p><p></p><p>>Does anyone have any information on where I can get documentation for the</p><p>>SONY (I guess) control-L protocol for talking to VCRs, camcorders, etc.?</p><p>></p><p></p><p>Greeting LANC fans,</p><p></p><p>I just went through this back in September... Here's the repsonses</p><p>I got.</p><p></p><p></p><p>Don DeCosta |The nice thing about sanity is| VM/Nomad2</p><p><a href="mailto:DonD@cup.portal.com">DonD@cup.portal.com</a> |you can lose it more than once| Amiga/Imagine</p><p>==========================================================================</p><p>==========================================================================</p><p>==========================================================================</p><p>=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*</p><p></p><p>You can try to get information from Sony although there is little chance</p><p>to get an up-to-date specification.</p><p></p><p>You can also find some partial information on mrcnext.cso.uiuc.edu from</p><p>someone who made a Control-L interface.</p><p></p><p>Regards,</p><p>--</p><p>Michael van Elst</p><p>UUCP: universe!local-cluster!milky-way!sol!earth!uunet!unido!mpirbn!p554mve</p><p>Internet: <a href="mailto:p554mve@mpirbn.mpifr-bonn.mpg.de">p554mve@mpirbn.mpifr-bonn.mpg.de</a></p><p> "A potential Snark may lurk in every tree."</p><p>==========================================================================</p><p></p><p></p><p>What kind of system are you working on?</p><p></p><p>I have a Mac with some Hypercard XCMDs of a company called Video Production</p><p>Controls.</p><p>Control L is essentially a 9600 baud serial line with an external (ie.</p><p>dictated by the VCR) clock. This means reading is easy: just a rs-232</p><p>9600 baud hookup works, writing commands is harder because you will have</p><p>to 'clock in' to the VCR.</p><p></p><p>Sony provided me with lists with all the codes.</p><p>I would send if I had them here.</p><p></p><p>Lex van Sonderen</p><p><a href="mailto:lex@aimla.com">lex@aimla.com</a></p><p></p><p></p><p>==========================================================================</p><p>~Date: Tue, 15 Sep 92 17:28:07 PDT</p><p>~From: <a href="mailto:jphealy@luna.dpl.scg.hac.com">jphealy@luna.dpl.scg.hac.com</a> (John P. Healy)</p><p>Message-Id: <9209160028.AA07356@luna.DPL.SCG.HAC.COM></p><p>To: <a href="mailto:DonD@cup.portal.com">DonD@cup.portal.com</a></p><p>~Subject: Re: Sony LANC/Control L</p><p>~Newsgroups: comp.multimedia</p><p>In-Reply-To: <65824@cup.portal.com></p><p>Organization: Hughes Aircraft Co., El Segundo, CA</p><p>Cc:</p><p></p><p>Have you already looked at Mark Abbate's VideoTolkit? It may do</p><p>everything you want (and more).</p><p></p><p>==========================================================================</p><p>Hi,</p><p></p><p>we are going to sell the Video Workshop, a PC based Video cut system,</p><p>where you have a Sony Control L interface and a Panasonic 5 pin</p><p>interface to control a player and a recorder VCR.</p><p>It starts from 999.-DM and comes with the PC-Titler juniour program to</p><p>generate titles during cuting.</p><p></p><p>Best regards Stefan Hartmann.</p><p>email to: <a href="mailto:leo@zelator.in-berlin.de">leo@zelator.in-berlin.de</a></p><p></p><p></p><p>--</p><p></p><p>*************************************************************</p><p>* Stefan Hartmann This is how to contact me: *</p><p>* EMAIL: <a href="mailto:leo@zelator.in-berlin.de">leo@zelator.in-berlin.de</a> *</p><p>* Phone : ++ 49 30 344 23 66 FAX : ++ 49 30 344 92 79 *</p><p>*************************************************************</p><p></p><p>==========================================================================</p><p>======================== LANC1.txt =======================================</p><p>==========================================================================</p><p>~Date: Tue, 19 Feb 91 14:32:11 PST</p><p>~From: root@shuksan (Operator )</p><p>Message-Id: <9102192232.AA13431@></p><p>~Subject: control L code</p><p></p><p> Hi there -- here is my C code and asm code for my camera</p><p>control stuff. It is uuencoded to keep the mailers happy</p><p>(I hope). The code is somewhat hardware dependant and is</p><p>not the cleanest in the world (that is what you get when</p><p>it "evolves" via a 'scope and bit fiddling!). I am running</p><p>a 10mhz AST 286 with a VGA monitor. Feel free to do what</p><p>you want with this code. When figuring the loop timing, if</p><p>you are using the assy ref. guide with TASM, the number of</p><p>clocks shown for some instructions are NOT correct! I discovered</p><p>for example on some of the jump instructions, it lists for</p><p>example 4 clocks - in reality, it is 4 clocks + the number</p><p>of bytes in the following instruction .... just a slight</p><p>difference! The interface looks very sim. to the drawing</p><p>in the ctl L manual (if you want, I will get it and describe </p><p>it for you --- I forgot it at home today!)</p><p></p><p>I will have my schematic in postscript form if you are interested.</p><p>My schematic capture routine generates postscript for a plotter</p><p>(I use a laserjet II with the Adobe ps cart.)</p><p></p><p></p><p>Mikey (yes "he likes it!")</p><p>======================================================= Mike Fields</p><p>==> uunet!bcstec!shuksan!mikey (206) 657-6136 [work] 12022 NE 138th Pl.</p><p>uw-beaver!ssc-vax!shuksan!mikey (206) 821-3492 [home] Kirkland, Wa. 98034</p><p></p><p></p><p></p><p>==========================================================================</p><p>======================== LANC2.txt =======================================</p><p>==========================================================================</p><p></p><p> </p><p></p><p>~Subject: Control-L Info (was Re: LANC interface?)</p><p>~From: <a href="mailto:lindh@uhasun.hartford.edu">lindh@uhasun.hartford.edu</a> (Andrew Lindh)</p><p>Path: ux1.cso.uiuc.edu!moe.ksu.ksu.edu!zaphod.mps.ohio-state.edu!usc!apple!news</p><p>.bbn.com!noc.near.net!uhasun!lindh</p><p>~Reply-To: <a href="mailto:lindh@uhasun.hartford.edu">lindh@uhasun.hartford.edu</a> (Andrew Lindh)</p><p>~Newsgroups: rec.video</p><p>Message-ID: <708@ultrix.uhasun.hartford.edu></p><p>~References: <1991Sep17.172210.12851@gtc.com> <1991Sep17.234413.01054822@locus.c</p><p>om> <1991Sep22.150545.11650@bilver.uucp></p><p>~Date: 29 Sep 91 01:41:55 GMT</p><p></p><p></p><p>I have a (old, 1986) copy of the Control-L protocol. It does talk about</p><p>Beta and Video 8 (8mm), but NOT VHS. Here is some short info:</p><p></p><p>Pin Color Function</p><p>1 Red DC OUT (5.9 to 9V DC 100mA)</p><p>2 White Option CTL (Lf Mode ONLY)</p><p> ________</p><p>3 Black Power SW</p><p>4 Yellow Serial Bus</p><p>5 Blue Ground</p><p></p><p>The Bus Line is a bi-directional Serial line (Async 9600 baud/1 start bit</p><p>2 stop?) The start is syncronized with each FIELD and is 8 words (8 bits each)</p><p>Pin 2 is not used in consumer units, it has to do with tape direction</p><p>you don't need it....</p><p></p><p>There must always be a Commander and a Slave. A VTR or Camera is a </p><p>slave, a Computer, Editor, VTR (with built-in a Edit Controller) is</p><p>a Commander. The commander uses the first 2 words to send commands</p><p>and the last 6 are for returnned info.</p><p></p><p>But there are other setups:</p><p>UNIT WORDS</p><p> 0 1 2 3 4 5 6 7</p><p>Console VTR R R W W W W W W</p><p>CTR with tuner R R W W W W W W</p><p>Portable VTR R R R R W W W W</p><p>Camcorder R R R R W W W W</p><p>AC Adapter - - W W R R R R</p><p>TT unit - - W W R R R R</p><p>Camera A W B - R R R R A=R(Sometimes)/W B=R(sometimes)</p><p>Editor W W - - R R R R</p><p>Computer W W R R R R R R</p><p>Remote W W - - R R R R</p><p></p><p> Word 0 Device Code (4 bits)/Guide Code (4)</p><p> Word 2 Device Code (4)/Guide Code</p><p> Word 1/3 Basic Command to VTR (8 bits)</p><p> Word 1/3 Command To Camera (8)</p><p> Word 3 TV channel (8)</p><p> Word 4 VTR Mode (8)</p><p> Word 5 VTR Status (4)/Guide Code (4)</p><p> Word 6 VTR Status</p><p> Word 7 VTR Status</p><p> Word 7 Insert Status</p><p> Word 6/7 4-digit counter</p><p> Word 6/7 Hour/Minute/Second</p><p></p><p>If you are connected from a computer to a VTR:</p><p>Shorting 3 to ground turns the VTR off.</p><p>Start bit is sent from the VTR</p><p>First 2 words (0 and 1) are commands from the computer to the VTR</p><p>the last 6 are from the VTR to the computer</p><p> </p><p></p><p> +5V</p><p> |</p><p> ~4.7K=VTR or 10K in other</p><p> | 47k /------INPUT</p><p>pint 4--+------+--|<--+-->|-----~-+-|</p><p> | | signal diode | \>+</p><p> | | | |</p><p> _ | ~----+--G</p><p> ^ \ 47k</p><p> | |----+----~------OUTPUT</p><p> G </p><p>~References: <1991Sep17.234413.01054822@locus.com> <3230@news.chips.com></p><p>~Date: 1 Oct 91 15:33:08 GMT</p><p></p><p>>Uh, I have a Sony CCDV101 Hi8 Camcorder with control-L on a mini-phono jack...</p><p>>Is this just the pin 4 serial bus? Or is it a Tip-Ring(stereo mini) with</p><p>>power or something else on the ring?</p><p></p><p>It's a Tip-Ring. One is power and the other is the TTL level serial</p><p>bus. I don't remember which is which. The power is the unregulated 6V</p><p>power from the battery.</p><p></p><p>The serial signal is sending data at 9600 baud in a standard 1 start bit,</p><p>8 data bits, and 1 stop bit format. To feed this into a standard RS-232</p><p>port you just need an RS-232 level converter (and maybe an inverter?).</p><p>The level converter needs +-12 volts, you you will also need an external</p><p>power source. Sending data back to the VCR is harder.</p><p></p><p>The serial line is normally high (+5V), the start bit is low (0V). The</p><p>data bits are inverted, i.e. 1 -> 0V, 0 -> +5V, the stop bit is high (+5V).</p><p></p><p>The VCR sends out a set of 8 bytes once every field (i.e., 60 times a</p><p>second for NTSC VCRs). Other than the stop and start bits, there is</p><p>no time gap between each of the 8 bytes. There is a gap between each</p><p>set of 8 bytes. To know when the set of 8 bytes begins, you are supposed</p><p>to watch for this time gap. However, because of the consistent format</p><p>of the data, you should be able to determine were the set begins just by</p><p>examining the data from multiple sets of bytes.</p><p></p><p>Bytes 0 and 1 (The first two bytes in the 8 byte set), are used by </p><p>"Camera, personal computer and editor" to send commands to the VCR.</p><p></p><p>Bytes 2 and 3 are used buy "Tuner and timer" to send commands to VCR</p><p>and "Status to exterior".</p><p></p><p>Bytes 4, 5, 6, and 7 are used by the VCR to send out status and counter</p><p>information.</p><p></p><p>The serial line is an open-collector type data line. This means that</p><p>the VCR normally holds the line at +5V with a pull-up resistor. An</p><p>external unit that wants to send data uses an open-collector type</p><p>TTL gate that does nothing to send a +5V signal, and grounds the</p><p>line to send a 0V signal.</p><p></p><p>The VCR will send the start bit for the first 4 words, but will leave</p><p>the line at +5V (all zeros) for the data. Command bytes of all zero</p><p>are defined to be a no-op.</p><p></p><p>A unit (like an edit controller) that wants to send a command must</p><p>wait for the VCR to send the start bit, and then start transmitting</p><p>the correct 8 data bits, in sync with the VCR. Making a serial port</p><p>on a PC do this is hard. I got e-mail from one guy that said he did</p><p>it all in software. He connected the serial data line to something</p><p>like the CD line, and used something like DTR for output. He then</p><p>wrote a timing loop in software to read and transmit the bits at</p><p>the correct time. Simple hardware but really tricky and machine</p><p>dependent software.</p><p></p><p>The serial line can also have multiple controllers connected to it.</p><p>Because of this, any controller should do bit checking. This is where</p><p>you read the commands bits as you send them to check and see if another</p><p>controller is sending a command at the same time. (i.e., you must</p><p>look for collisions.)</p><p></p><p>If two devicess send a 5V, or 0V signal at the same time, you can't see</p><p>the collision. But if one sends 5V and one sends 0V, then the 0V</p><p>signal will "win". If you try to send a 5V signal, but read back a 0V</p><p>level on the line, then you know there was a collision and you should</p><p>stop sending and let the other guy complete his command.</p><p></p><p>I don't now for sure, but I think this might happen in a device like</p><p>a camcorder if you press a button (like stop) on the unit at the same</p><p>time your computer is trying to send a command.</p><p></p><p>The manual also says that you must send evey command multiple times</p><p>to make sure the VCR responds to it. It says: "In order that the VTR</p><p>makes the command effective, it is necessary to transmit the</p><p>same code continuously over 4 fields. Therefore, it is required for the</p><p>peripheral side to transmit over 5 fields of the same code." I don't</p><p>quite understand the logic in that statement, but I think it's saying</p><p>you have to transmit every command for 5 fields.</p><p></p><p>The tables that define all the bits, and all the commands take up</p><p>6 pages (double sided) in the manual, and I don't intend to type</p><p>them all in, but here is enough to get you started:</p><p></p><p>Bits are numbered 0 to 7, with 0 being the first bit sent.</p><p></p><p>Byte 0</p><p></p><p> B0-3</p><p> 0000 Command from Camera</p><p> 0001 Command from Commander</p><p></p><p> B4-7</p><p> 0000 Use prohibited (i.e. no-op)</p><p> 1000 Basic VTR command</p><p> 0100 Camera comand</p><p> 1000 Special VTR command</p><p></p><p>Byte 1 (Depends on B4-7 of Byte 0)</p><p></p><p> Basic VTR commands - Byte 0 = 0001-1000 (This is not the complete list)</p><p> 00000000 CH-1/1 (I think this is like pressing the 1 button)</p><p> 01000000 CH-2/2</p><p> 00100000 CH-3/3</p><p> ...</p><p> 01001000 CH-10/0</p><p> more strange channel buttons.</p><p></p><p> 01010100 Power on/off</p><p> 00111010 Power on</p><p> 01111010 Power off</p><p></p><p> 00001100 STOP</p><p> 01001100 PAUSE</p><p> 00101100 PB (Play Back??)</p><p> 01101100 REWIND</p><p> 00011100 FF</p><p> 01011100 REC</p><p> 00000010 STILL</p><p></p><p> 00000110 REVERSE</p><p> 01000110 FOWARD</p><p> 00011110 PAY (should this be PLAY???)</p><p></p><p> Special VTR command - Byte 0 = 0001-1100</p><p> 10001011 + Frame advance</p><p> 10011011 - Frame advance</p><p></p><p> Camera comand - Byte 0 = 0001-0100</p><p> 11010100 Camera Power on/off</p><p> 10101100 Zoom Tele</p><p> 11101100 Zoom Wide</p><p></p><p>Byte 4 - VTR mode</p><p> (the xxx bits have different meaning for each mode which I don't</p><p> list here. For example 00100110 is REC with VIDEO INSERT)</p><p> 1000xxxx Tape Ejected</p><p> 0100xxxx Stoped</p><p> 1100xxx0 FF</p><p> 1100xxx1 RWD</p><p> 0010xxxx REC</p><p> 0001xxxx More REC modes</p><p> 0110xxxx PB (Play Back)</p><p> 1110xxxx SLOW/STILL</p><p></p><p>Byte 5 - VTR status and guide code</p><p> B0-3 status bits</p><p> B0 1 -> undefined command. (you sent a command that this VCR doesn't know)</p><p></p><p> B4-7 (defines the contents of the last two bytes (6 and 7))</p><p> 0000 Use prohibited</p><p> 1000 8mm VTR status</p><p> 0100 Decimal 4-digit counter</p><p> 1100 first half of hour, minute and second counter</p><p> 0010 second half of hour, minute and second counter</p><p> 1110 Beta VTR status</p><p></p><p>Byte 6 for decimal 4-digit counter</p><p> B0-3 first digit </p><p> 0000 0</p><p> 1000 1</p><p> 0100 2</p><p> 1100 3</p><p> ...</p><p> 1001 9</p><p></p><p> B4-7 second digit</p><p></p><p>Byte 7 for decimal 4-digit counter</p><p> B0-3 third digit</p><p> B4-7 forth digit</p><p></p><p>Byte 6 for first half of HMS counter</p><p> B0-3 units digit of seconds (encoded like above)</p><p> B4-7 tens digit of seconds</p><p>Byte 7 for first half of HMS counter</p><p> B0-3 units digit of minutes</p><p> B4-7 tens digit of minutes</p><p></p><p>Byte 6 for second half of HMS counter</p><p> B0-3 units digit of hours</p><p> B4-7 tens digit of hours</p><p>Byte 7 for second half of HMS counter (only 1 bit used)</p><p> B7</p><p> 0 +</p><p> 1 -</p><p> </p><p>On your V101, the single frame record can not be activated with the</p><p>play/rec button on the camara. It can only be activated with the play/rec</p><p>buttons on the remote. I don't know what it will do if you sent it</p><p>the REC command. Will it start a single frame record cycle? If it doesn't</p><p>then maybe they defined a new command for the V101 to make that work.</p><p></p><p>I own a V101 and I too want to test this some day.</p><p></p><p>Curt Welch</p><p><a href="mailto:curt@oasys.dt.navy.mil">curt@oasys.dt.navy.mil</a></p><p>Code 3531</p><p>David Taylor Research Center (A Navy Lab)</p><p>Bethesda, MD</p><p>(301) 227-1428</p><p>~Subject: Sony Control-L Protocol Hacke!</p><p>~From: <a href="mailto:pierce@chips.com">pierce@chips.com</a> (John Pierce)</p><p>Path: ux1.cso.uiuc.edu!uwm.edu!cs.utexas.edu!swrinde!mips!pacbell.com!iggy.GW.V</p><p>italink.COM!nocsun.NOC.Vitalink.COM!indetech!daver!news.chips.com!pierce</p><p>~Reply-To: <a href="mailto:pierce@chips.com">pierce@chips.com</a> (John Pierce)</p><p>~Newsgroups: rec.video</p><p>Message-ID: <3493@news.chips.com></p><p>~References: </p><p>~Date: 29 Oct 91 01:39:19 GMT</p><p></p><p>Well, after reading a couple of postings here about Sony Control-L protocol</p><p>we called Sony and got the official spec on Control-L. Its bad reading!</p><p>Direct translation? Lotsa typos. But. We made it WORK!</p><p></p><p>Following is a hacked up piece of C for a IBM-PC parallel port. Take a</p><p>DB-25P. Connect a sub-mini MONO jack to ground (pin 18 will do) and</p><p>pin 17 ("Select"). Voila' Build following piece of C with MS C6.0 using</p><p>at least -Oi (Optimize Intrinsics--- put I/O inline!) bunches of oneletter</p><p>commands will make my Sony CCD-V101 do all kinda tricks! Lotsa fun.</p><p></p><p>Please for to excuse hacked style of program ... This was written for</p><p>the heck of it on a Saturday afternoon, after several beers!</p><p></p><p>Oh. This has only been tested on 20Mhz 386DX (no cache) and faster boxes.</p><p>I don't know how slow a box it might work on, but it is speed independant </p><p>as long as your box is fast enuf. Note the Delay(t104/4) after start bit</p><p>detection. This can be trimmed to better align the transmitted bits with</p><p>the remote devices timing. If your computer was infinitely fast, it s/b</p><p>Delay(t104/2).... i.e. sample in mid-bit. But since pc's take time</p><p>to do anything, we just tweaked it til it looked good on a scope...</p><p></p><p>Also note that we make no attempt to display the status while there is</p><p>a command being actively sent. This is cuz its written with STDIO instead</p><p>of clever PC screen blasting, and we were losing too many messages...</p><p></p><p>Obviously this whole shabang should be in assembler.</p><p></p><p>==================cut-here=================================</p><p>#include </p><p>#include </p><p></p><p>// Copyright © 1991, Acme Software Inc.</p><p>// All rights reserved EXCEPT the right to use for NON-COMMERCIAL</p><p>// PURPOSES. I.E. Hack away but DON'T sell this!</p><p>// This copyhack must accompany all copies of this source code.</p><p></p><p></p><p>#define dataport 0x37A</p><p>// #define dataport 0x3BE</p><p></p><p>#define outbit(<img src="http://www.mp-fr.com/forums/style_emoticons/<#EMO_DIR#>/cool.gif" alt="" class="fr-fic fr-dii fr-draggable " style="" /> outp(dataport,((inp(dataport)&(0xFF^bit)) | (((<img src="http://www.mp-fr.com/forums/style_emoticons/<#EMO_DIR#>/cool.gif" alt="" class="fr-fic fr-dii fr-draggable " style="" />&1)< 45000) return 0; // OOPS, TIMEOUT!!!</p><p></p><p> rt = readpic();</p><p> delay(t104/4); // halfway (almost) into start bit</p><p> d = 0;</p><p> for(i=0;i<8;i++)</p><p> {</p><p> d >>= 1;</p><p> delay(t52); // wait start of next bit</p><p> outbit(O);</p><p> O >>= 1;</p><p> delay(t52); // wait middle of bit</p><p> if (inp(dataport)&bit) d |= 0x80;</p><p> }</p><p> delay(t104*2); // wait for stop bit</p><p> return d;</p><p> }</p><p></p><p>void DoFrame()</p><p> {</p><p> int i;</p><p></p><p> _asm {cli};</p><p> framesync();</p><p> for(i=0;i<8;i++)</p><p> In<em> = DoByte(Out<em>);</em></em></p><p><em><em> _asm{sti};</em></em></p><p><em><em> }</em></em></p><p><em><em></em></em></p><p><em><em>void main(int argc, char *argv[])</em></em></p><p><em><em> {</em></em></p><p><em><em> int i;</em></em></p><p><em><em> unsigned char data[8];</em></em></p><p><em><em> unsigned char Command = ' ';</em></em></p><p><em><em> long frame=0;</em></em></p><p><em><em> int f=0;</em></em></p><p><em><em> int Lapse = 0;</em></em></p><p><em><em> int Time = 300;</em></em></p><p><em><em></em></em></p><p><em><em> outbit(0); // clear serial line </em></em></p><p><em><em></em></em></p><p><em><em> printf("\n p - Play r - Record");</em></em></p><p><em><em> printf("\n , - Rewind . - FF");</em></em></p><p><em><em> printf("\n s - Stop S - Pause");</em></em></p><p><em><em> printf("\n < - Shuttle << > - Shuttle >>");</em></em></p><p><em><em> printf("\n t - Tele Zoom w - Wide Zoom");</em></em></p><p><em><em> printf("\n e - Eject l - Time Lapse");</em></em></p><p><em><em> printf("\n d - Display q - Quit");</em></em></p><p><em><em> printf("\n x - Start/Stop");</em></em></p><p><em><em> printf("\n - Clear command");</em></em></p><p><em><em> printf("\n");</em></em></p><p><em><em></em></em></p><p><em><em></em></em></p><p><em><em> while (1)</em></em></p><p><em><em> {</em></em></p><p><em><em> if (kbhit()) </em></em></p><p><em><em> {</em></em></p><p><em><em> Command = getch();</em></em></p><p><em><em> switch(Command)</em></em></p><p><em><em> {</em></em></p><p><em><em> case 'd': // Display ON/OFF</em></em></p><p><em><em> Out[0] = 0x18;</em></em></p><p><em><em> Out[1] = 0xB4;</em></em></p><p><em><em> f = 5;</em></em></p><p><em><em> break;</em></em></p><p><em><em> case 'l':</em></em></p><p><em><em> Lapse = Time;</em></em></p><p><em><em> case 'r': // VTR Record</em></em></p><p><em><em> Out[0] = 0x18;</em></em></p><p><em><em> Out[1] = 0x3A;</em></em></p><p><em><em> f = 5;</em></em></p><p><em><em> break;</em></em></p><p><em><em> case 'p': // VTR Playback</em></em></p><p><em><em> Out[0] = 0x18;</em></em></p><p><em><em> Out[1] = 0x34;</em></em></p><p><em><em> f = 5;</em></em></p><p><em><em> break;</em></em></p><p><em><em> case 's': // VTR Stop</em></em></p><p><em><em> Out[0] = 0x18;</em></em></p><p><em><em> Out[1] = 0x30;</em></em></p><p><em><em> f = 5;</em></em></p><p><em><em> break;</em></em></p><p><em><em> case 'S': // VTR Pause</em></em></p><p><em><em> Out[0] = 0x18;</em></em></p><p><em><em> Out[1] = 0x32;</em></em></p><p><em><em> f = 5;</em></em></p><p><em><em> break;</em></em></p><p><em><em> case '>': // Fast Forward >> continous</em></em></p><p><em><em> Out[0] = 0x18;</em></em></p><p><em><em> Out[1] = 0x38;</em></em></p><p><em><em> f = -1;</em></em></p><p><em><em> break;</em></em></p><p><em><em> case '<': // Fast Rewind << continuous</em></em></p><p><em><em> Out[0] = 0x18;</em></em></p><p><em><em> Out[1] = 0x36;</em></em></p><p><em><em> f = -1;</em></em></p><p><em><em> break;</em></em></p><p><em><em></em></em></p><p><em><em> case '.': // Fast Forward >></em></em></p><p><em><em> Out[0] = 0x18;</em></em></p><p><em><em> Out[1] = 0x38;</em></em></p><p><em><em> f = 5;</em></em></p><p><em><em> break;</em></em></p><p><em><em> case ',': // Fast Rewind <<</em></em></p><p><em><em> Out[0] = 0x18;</em></em></p><p><em><em> Out[1] = 0x36;</em></em></p><p><em><em> f = 5;</em></em></p><p><em><em> break;</em></em></p><p><em><em> case 'e': // Eject</em></em></p><p><em><em> Out[0] = 0x18;</em></em></p><p><em><em> Out[1] = 0x2C;</em></em></p><p><em><em> f = 5;</em></em></p><p><em><em> break;</em></em></p><p><em><em> case 'x': // Start/Stop</em></em></p><p><em><em> Out[0] = 0x18;</em></em></p><p><em><em> Out[1] = 0x33;</em></em></p><p><em><em> f = 5;</em></em></p><p><em><em> break;</em></em></p><p><em><em> case 'w': // Wide Zoom</em></em></p><p><em><em> Out[0] = 0x28;</em></em></p><p><em><em> Out[1] = 0x37;</em></em></p><p><em><em> f = -1;</em></em></p><p><em><em> break;</em></em></p><p><em><em> case 't': // Tele Zoom</em></em></p><p><em><em> Out[0] = 0x28;</em></em></p><p><em><em> Out[1] = 0x35;</em></em></p><p><em><em> f = -1;</em></em></p><p><em><em> break;</em></em></p><p><em><em> case 'q':</em></em></p><p><em><em> exit(0);</em></em></p><p><em><em> break;</em></em></p><p><em><em> case ' ':</em></em></p><p><em><em> default:</em></em></p><p><em><em> Out[0] = 0x00;</em></em></p><p><em><em> Out[1] = 0x00;</em></em></p><p><em><em> Command = ' ';</em></em></p><p><em><em> f = 0;</em></em></p><p><em><em> break;</em></em></p><p><em><em> }</em></em></p><p><em><em> }</em></em></p><p><em><em> DoFrame();</em></em></p><p><em><em> frame++;</em></em></p><p><em><em> if(f>0)</em></em></p><p><em><em> {</em></em></p><p><em><em> f--;</em></em></p><p><em><em> if (f == 0) </em></em></p><p><em><em> {</em></em></p><p><em><em> Out[0] = 0x00;</em></em></p><p><em><em> Out[1] = 0x00;</em></em></p><p><em><em> if (Command != 'l') Command = ' ';</em></em></p><p><em><em> f = 0;</em></em></p><p><em><em> }</em></em></p><p><em><em> }</em></em></p><p><em><em> if(Command == ' ')</em></em></p><p><em><em> {</em></em></p><p><em><em> if((In[5]&0xF0)==0x30) </em></em></p><p><em><em> {</em></em></p><p><em><em> ss = In[6];</em></em></p><p><em><em> mm = In[7];</em></em></p><p><em><em> }</em></em></p><p><em><em> else if((In[5]&0xF0)==0x40)</em></em></p><p><em><em> {</em></em></p><p><em><em> hh = In[6];</em></em></p><p><em><em> sign = ((In[7]&0x80)?'-':' ');</em></em></p><p><em><em> }</em></em></p><p><em><em> for(i=0;;i++)</em></em></p><p><em><em> {</em></em></p><p><em><em> if(Status<em>.code == 0) break;</em></em></em></p><p><em><em><em> if(In[4]==Status<em>.code) break;</em></em></em></em></p><p><em><em><em><em> }</em></em></em></em></p><p><em><em><em><em> printf("\r%c%2X:%02X:%02X %-16.16s",</em></em></em></em></p><p><em><em><em><em> sign,hh,mm,ss,</em></em></em></em></p><p><em><em><em><em> Status<em>.name);</em></em></em></em></em></p><p><em><em><em><em><em></em></em></em></em></em></p><p><em><em><em><em><em> if(Status<em>.code == 0)</em></em></em></em></em></em></p><p><em><em><em><em><em><em> for(i=0;i<8;i++)</em></em></em></em></em></em></p><p><em><em><em><em><em><em> printf(" %02X", In<em>);</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> }</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> if(Command == 'l')</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> {</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> Lapse--;</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> if(Lapse <= 0)</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> {</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> Lapse = Time;</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> Out[0] = 0x18;</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> Out[1] = 0x3A;</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> f = 5;</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> }</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> }</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> }</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> }</em></em></em></em></em></em></em></p><p> <em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>==========================================================================</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Try 1800-352-SONY. Its the VISCA Developers hotline</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>PS I have nothing to do with this stuff except personal interest. I work</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>for a different division of Sony.</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Bob Berger - SONY Advanced Video Technology Center</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>685 River Oaks Parkway San Jose, CA 95134 408-944-4964 FAX: 408-954-1027</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>INTERNET: <a href="mailto:berger@sfc.sony.com">berger@sfc.sony.com</a> UUCP: [uunet,mips]!sonyusa!sfcsun!berger</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>JAPAN: <a href="mailto:berger@sfc.sony.co.jp">berger@sfc.sony.co.jp</a>--</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>(Message inbox:279)</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Return-Path: <a href="mailto:o-intelhouse@dlb.com">o-intelhouse@dlb.com</a></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Received: from bank.ecn.purdue.edu by pasture.ecn.purdue.edu (5.65/1.32jrs)</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> id AA23943; Mon, 10 Jan 94 00:50:06 -0500</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Received: from daver.bungi.com by bank.ecn.purdue.edu (5.65/1.32jrs)</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> id AA27269; Mon, 10 Jan 94 00:49:57 -0500</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Received: from dlb by daver.bungi.com with bsmtp</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> (Smail3.1.28.1 #1) id m0pJEzB-00009Fa; Sun, 9 Jan 94 21:16 PST</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Received: from bucksm by dlb.com with bsmtp</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> (Smail3.1.27.1 #4) id m0pJDtk-0000BNa; Sun, 9 Jan 94 20:06 PST</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Received: by bucksm.dlb.com (Smail3.1.27.1 #6)</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em> id m0pJC1L-000Apea; Sun, 9 Jan 94 19:06 MST</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Message-Id: </em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>From: daver!dlb!bucksm!dlb!netcomsv.netcom.com!wheaton.wheaton.edu!sga!dougs</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>To: <a href="mailto:o-intelhouse@dlb.com">o-intelhouse@dlb.com</a></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Date: Sun, 9 Jan 94 15:48:12 CST</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Subject: RE: Sony remote control protocol</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>X-L2L: dlb.com</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Precedence: bulk</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Errors-To: <a href="mailto:o-intelhouse@dlb.com">o-intelhouse@dlb.com</a></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> > The following is a reference guide to using a microcomputer to </em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> >control Sony equipment via the SIRCS protocol. This can occur either </em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> >via an infrared interface, or with a Control-S port. It is being </em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> >released in the hope that it will be useful to some of you. Apparently </em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> >there is no documentation on the protocol available from Sony (at least, </em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> >that's what their publications office said).</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> </em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> You spoke to the wrong person/people. You need to ask for "Sony</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> Remote Control Systems" (2RM383-1). Mine was $5. SIRCS is described</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> on pages 17-27. (SIRCS intro from 17-22, System III on 22, Beta on 23,</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> and Audio on 25-27)</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>The codes are also the same as documented in the service manual "Protocol</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>of Control L/LF" (86C0943-1). However the timing is different. The</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>control L frame is 16.7ms consisting of 8 words. The first few words</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>send the command and the remaining words return a status from the device.</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>I wonder if a similar reason is why Ed didn't find the need to have the</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>packet take a full 45ms but Scott did? Could it be that room must be left</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>for a status response when using a wired interface?</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>By the way, does anyone know if a device with a Control-L port will</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>accept Control-S commands? My camcorder has a Control-L port but there</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>is almost no mention of it in the manual. According to the Control-L</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>service manual, Control-L is bidirectional and is primarily used </em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>between a VTR and peripherals. Control-S is uni-directional and is</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>used to remote control all devices.</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>The Control L manual is dated March, 1986 even though I purchased it only</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>a year ago. It is missing information on current equipment but covers</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Beta and Video 8 fairly well.</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Do you have the phone number to order documents? I can't seem to find it</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>and would like to order the manual you mentioned.</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> Good work, guys! I started observing these signals (with an</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> MC68HC11), but after I got them and was able to send them, I</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>> bought the manual. Much easier.</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>I would be glad to document the codes used on my camcorder (CCD-V101)</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>and receiver (STR-D1011) however, I don't have access to an O'scope at</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>home. Does anyone know of a simple program to poll a PC paralell port</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>bit and display the result? That should do the job when attached to</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>a Sharp IR cube.</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>-- Doug Smith, SGA * Loves Park, IL * <a href="mailto:dougs@sga.uucp">dougs@sga.uucp</a> </em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>-- AppleLink: G0231 * CompuServe: 72727,3532</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>--</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>=============================================================================</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Neil Higgins E-Mail: <a href="mailto:esa_neilh@seqeb.gov.au">esa_neilh@seqeb.gov.au</a></em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>Network Automation Engineer Ph: +61 7 223 4327</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>The South East Queensland Electricity Board Fax: +61 7 210 0149</em></em></em></em></em></em></em></p><p><em><em><em><em><em><em><em>G.P.O. Box 1461, Brisbane, Q. 4001 AUSTRALIA</em></em></em></em></em></em></em></p></blockquote><p></p>
[QUOTE="afaes, post: 431597"] ======================================================================= A small hardware Summary of the SONY LANC Control L Protocol October 27, 1994 (dmeed@nbnet.nb.ca) ======================================================================= For the inside scoop on the Sony LANC Control L order the Protocol manual for Control L/Lf from Sony. I ordered it from: Sony Service Company Parts Division 8281 NW 107th Terrace Kansas City, MO 64153 (816) 891-7550 Part # 9-972-453-11 "Protocol of Control L/LF" You get to find out where to order it in your country, but I'm sure they will send you a copy from the address above if you give them a call. About $20US or so (but don't quote me!) (Somebody let me know if they do manage to get it from the US overseas.) Control L is a two-way serial open collector 9600 baud protocol. Cameras (control-L) use a three pin sub-mini jack that has ground on the sleeve, power (up to 100ma unregulated 5-9v) at the tip and LANC signal on the ring. VCRs with the five pin mini-DIN connector have DC out on pin 1, LANC bus on pin 4 and GND on pin 5. Pin 3 may be a power switch line (ground to switch power on and off) and pin 2 may put out a square wave locked to the video frames. (pins 2 & 3 are optional, not used on consumer equipment.) The LANC bus is open collector so it is normally pulled high to about 5v and is pulled low to send commands or status information. You can hook the LANC signal directly to the input of a 1488 RS232 line driver and feed that into your PC serial port and capture the 9600 baud data stream. It will have to be inverted before you use it (00 will read as FF). The data stream is 8 bytes, then a gap (1.7ms? until the end of the current frame) then 8 bytes for the next frame, another gap and so on. If you can write your serial driver to sync to that gap you can read it easily. I wrote a program in modula 2 to display the signal, but I don't know enough about PC timing to detect that gap in the data stream. The camcorder puts out an 8 byte data packet with each video frame. The first two bytes are for controllers to command the camera and are usually 00 00. The next two are for tuners and are also usually 00 00. The last four bytes are for the VCR status and carry the counter and several other status bits. Reading is the easy part . . . To send a command you have to wait until you detect the start bit of the first byte in a frame then impose your signal on the LANC line (remember it is open collector and inverted, so 00 is all high - you just pull low for your command bits). I haven't the foggiest how to send a byte on the serial port in response to an external start bit. I think you might almost have to bit bang it in software. Wouldn't be bad - only need to send 2 bytes in each frame. Oh yeah - and in at least 5 consecutive frames to make sure the VCR hears and understands your command. I've got a Sony RM95 wired remote here. These are the codes I see by pressing the buttons on the remote and eavesdropping on the LANC line with a PC @9600 baud. Button on remote Code sent on bytes 1 & 2 ================ ======================== (these buttons work in camera mode) Zoom tele 28 35 Zoom wide 28 37 focus 28 41 (toggle between manual and autofocus) focus farther 28 45 focus closer 28 47 start/stop rec 18 33 edit search - 18 65 edit search + 18 67 rec review 18 69 power 18 5E (these buttons work in VTR mode) stop 18 30 pause 18 32 play 18 34 rewind 18 36 fast forward 18 38 record 18 3A slow 18 46 frame advance 18 62 counter reset 18 8C data screen 18 B4 I'm looking for the codes for slow zoom, fade, index, and all the other goodies on the side of my V101 camera. Would be nice to be able to press those buttons without having to touch the camera jiggle jiggle). If you find them please let me know. You could always try sending all the possibilities and see what you get... Update - 95/07 I've just managed to write a simple program for the PIC16C84 processor which will control a camcorder remotely - Sort of a homemade version of the RM100 remote control David Meed [email]dmeed@nbnet.nb.ca[/email] ======================================================================= Additional Resources (haven't been there to check it out yet): >>LANC info can be found in the file collection of the Amer. Soc. of >>Reverse Engineers. It can be accessed via ftp to tracker.vet.uga.edu. >>The files are in the /pub/asre directory. In addition to several files >>on LANC, they have a file on the VCRPLUS protocol. >> >>Dave Dunfield has some files on LANC in association with his DBOX project >>(a do-it-yourself LANC controller). His files are on his BBS at >>613-256-6289. ======================================================================= And the rest is some stuff I was sent from "NEIL HIGGINS, SEQEB" ======================================================================= Xref: un rec.video:39939 Path: un!bunyip.cc.uq.oz.au!munnari.oz.au!spool.mu.edu!howland.reston.ans.net!europa.eng.gtefsd.com!news.umbc.edu!haven.umd.edu!purdue!mozo.cc.purdue.edu!pasture.ecn.purdue.edu!laird From: [email]laird@pasture.ecn.purdue.edu[/email] (Kyler Laird) Newsgroups: rec.video Subject: Re: LANC Protocol Date: 29 Sep 1994 01:23:10 GMT Organization: Purdue University Lines: 852 Message-ID: <36d4tu$buq@mozo.cc.purdue.edu> References: NNTP-Posting-Host: pasture.ecn.purdue.edu X-Newsreader: NN version 6.5.0 (NOV) [email]nh007@un.seqeb.gov.au[/email] ( NEIL HIGGINS) writes: >Can anyone direct me to a specification for the LANC protocol, used for >edit control, etc. on Sony cameras? The local rep. tells me the protocol >specification is not available. I find that hard to believe. Reps can be so full of it, can't they... Here's the unedited brain dump. --kyler Xref: noose.ecn.purdue.edu comp.multimedia:6121 comp.sources.wanted:14178 comp.sys.amiga.multimedia:2644 Path: noose.ecn.purdue.edu!mentor.cc.purdue.edu!purdue!haven.umd.edu!darwin.sura.net!zaphod.mps.ohio-state.edu!sdd.hp.com!portal!cup.portal.com!DonD From: [email]DonD@cup.portal.com[/email] (Don Robert DeCosta) Newsgroups: comp.multimedia,comp.sources.wanted,comp.sys.amiga.multimedia Subject: Re: sony Control-L documentation Message-ID: <78191@cup.portal.com> Date: Wed, 24 Mar 93 22:37:07 PST Organization: The Portal System References: Lines: 759 >Does anyone have any information on where I can get documentation for the >SONY (I guess) control-L protocol for talking to VCRs, camcorders, etc.? > Greeting LANC fans, I just went through this back in September... Here's the repsonses I got. Don DeCosta |The nice thing about sanity is| VM/Nomad2 [email]DonD@cup.portal.com[/email] |you can lose it more than once| Amiga/Imagine ========================================================================== ========================================================================== ========================================================================== =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* You can try to get information from Sony although there is little chance to get an up-to-date specification. You can also find some partial information on mrcnext.cso.uiuc.edu from someone who made a Control-L interface. Regards, -- Michael van Elst UUCP: universe!local-cluster!milky-way!sol!earth!uunet!unido!mpirbn!p554mve Internet: [email]p554mve@mpirbn.mpifr-bonn.mpg.de[/email] "A potential Snark may lurk in every tree." ========================================================================== What kind of system are you working on? I have a Mac with some Hypercard XCMDs of a company called Video Production Controls. Control L is essentially a 9600 baud serial line with an external (ie. dictated by the VCR) clock. This means reading is easy: just a rs-232 9600 baud hookup works, writing commands is harder because you will have to 'clock in' to the VCR. Sony provided me with lists with all the codes. I would send if I had them here. Lex van Sonderen [email]lex@aimla.com[/email] ========================================================================== ~Date: Tue, 15 Sep 92 17:28:07 PDT ~From: [email]jphealy@luna.dpl.scg.hac.com[/email] (John P. Healy) Message-Id: <9209160028.AA07356@luna.DPL.SCG.HAC.COM> To: [email]DonD@cup.portal.com[/email] ~Subject: Re: Sony LANC/Control L ~Newsgroups: comp.multimedia In-Reply-To: <65824@cup.portal.com> Organization: Hughes Aircraft Co., El Segundo, CA Cc: Have you already looked at Mark Abbate's VideoTolkit? It may do everything you want (and more). ========================================================================== Hi, we are going to sell the Video Workshop, a PC based Video cut system, where you have a Sony Control L interface and a Panasonic 5 pin interface to control a player and a recorder VCR. It starts from 999.-DM and comes with the PC-Titler juniour program to generate titles during cuting. Best regards Stefan Hartmann. email to: [email]leo@zelator.in-berlin.de[/email] -- ************************************************************* * Stefan Hartmann This is how to contact me: * * EMAIL: [email]leo@zelator.in-berlin.de[/email] * * Phone : ++ 49 30 344 23 66 FAX : ++ 49 30 344 92 79 * ************************************************************* ========================================================================== ======================== LANC1.txt ======================================= ========================================================================== ~Date: Tue, 19 Feb 91 14:32:11 PST ~From: root@shuksan (Operator ) Message-Id: <9102192232.AA13431@> ~Subject: control L code Hi there -- here is my C code and asm code for my camera control stuff. It is uuencoded to keep the mailers happy (I hope). The code is somewhat hardware dependant and is not the cleanest in the world (that is what you get when it "evolves" via a 'scope and bit fiddling!). I am running a 10mhz AST 286 with a VGA monitor. Feel free to do what you want with this code. When figuring the loop timing, if you are using the assy ref. guide with TASM, the number of clocks shown for some instructions are NOT correct! I discovered for example on some of the jump instructions, it lists for example 4 clocks - in reality, it is 4 clocks + the number of bytes in the following instruction .... just a slight difference! The interface looks very sim. to the drawing in the ctl L manual (if you want, I will get it and describe it for you --- I forgot it at home today!) I will have my schematic in postscript form if you are interested. My schematic capture routine generates postscript for a plotter (I use a laserjet II with the Adobe ps cart.) Mikey (yes "he likes it!") ======================================================= Mike Fields ==> uunet!bcstec!shuksan!mikey (206) 657-6136 [work] 12022 NE 138th Pl. uw-beaver!ssc-vax!shuksan!mikey (206) 821-3492 [home] Kirkland, Wa. 98034 ========================================================================== ======================== LANC2.txt ======================================= ========================================================================== ~Subject: Control-L Info (was Re: LANC interface?) ~From: [email]lindh@uhasun.hartford.edu[/email] (Andrew Lindh) Path: ux1.cso.uiuc.edu!moe.ksu.ksu.edu!zaphod.mps.ohio-state.edu!usc!apple!news .bbn.com!noc.near.net!uhasun!lindh ~Reply-To: [email]lindh@uhasun.hartford.edu[/email] (Andrew Lindh) ~Newsgroups: rec.video Message-ID: <708@ultrix.uhasun.hartford.edu> ~References: <1991Sep17.172210.12851@gtc.com> <1991Sep17.234413.01054822@locus.c om> <1991Sep22.150545.11650@bilver.uucp> ~Date: 29 Sep 91 01:41:55 GMT I have a (old, 1986) copy of the Control-L protocol. It does talk about Beta and Video 8 (8mm), but NOT VHS. Here is some short info: Pin Color Function 1 Red DC OUT (5.9 to 9V DC 100mA) 2 White Option CTL (Lf Mode ONLY) ________ 3 Black Power SW 4 Yellow Serial Bus 5 Blue Ground The Bus Line is a bi-directional Serial line (Async 9600 baud/1 start bit 2 stop?) The start is syncronized with each FIELD and is 8 words (8 bits each) Pin 2 is not used in consumer units, it has to do with tape direction you don't need it.... There must always be a Commander and a Slave. A VTR or Camera is a slave, a Computer, Editor, VTR (with built-in a Edit Controller) is a Commander. The commander uses the first 2 words to send commands and the last 6 are for returnned info. But there are other setups: UNIT WORDS 0 1 2 3 4 5 6 7 Console VTR R R W W W W W W CTR with tuner R R W W W W W W Portable VTR R R R R W W W W Camcorder R R R R W W W W AC Adapter - - W W R R R R TT unit - - W W R R R R Camera A W B - R R R R A=R(Sometimes)/W B=R(sometimes) Editor W W - - R R R R Computer W W R R R R R R Remote W W - - R R R R Word 0 Device Code (4 bits)/Guide Code (4) Word 2 Device Code (4)/Guide Code Word 1/3 Basic Command to VTR (8 bits) Word 1/3 Command To Camera (8) Word 3 TV channel (8) Word 4 VTR Mode (8) Word 5 VTR Status (4)/Guide Code (4) Word 6 VTR Status Word 7 VTR Status Word 7 Insert Status Word 6/7 4-digit counter Word 6/7 Hour/Minute/Second If you are connected from a computer to a VTR: Shorting 3 to ground turns the VTR off. Start bit is sent from the VTR First 2 words (0 and 1) are commands from the computer to the VTR the last 6 are from the VTR to the computer +5V | ~4.7K=VTR or 10K in other | 47k /------INPUT pint 4--+------+--|<--+-->|-----~-+-| | | signal diode | \>+ | | | | _ | ~----+--G ^ \ 47k | |----+----~------OUTPUT G ~References: <1991Sep17.234413.01054822@locus.com> <3230@news.chips.com> ~Date: 1 Oct 91 15:33:08 GMT >Uh, I have a Sony CCDV101 Hi8 Camcorder with control-L on a mini-phono jack... >Is this just the pin 4 serial bus? Or is it a Tip-Ring(stereo mini) with >power or something else on the ring? It's a Tip-Ring. One is power and the other is the TTL level serial bus. I don't remember which is which. The power is the unregulated 6V power from the battery. The serial signal is sending data at 9600 baud in a standard 1 start bit, 8 data bits, and 1 stop bit format. To feed this into a standard RS-232 port you just need an RS-232 level converter (and maybe an inverter?). The level converter needs +-12 volts, you you will also need an external power source. Sending data back to the VCR is harder. The serial line is normally high (+5V), the start bit is low (0V). The data bits are inverted, i.e. 1 -> 0V, 0 -> +5V, the stop bit is high (+5V). The VCR sends out a set of 8 bytes once every field (i.e., 60 times a second for NTSC VCRs). Other than the stop and start bits, there is no time gap between each of the 8 bytes. There is a gap between each set of 8 bytes. To know when the set of 8 bytes begins, you are supposed to watch for this time gap. However, because of the consistent format of the data, you should be able to determine were the set begins just by examining the data from multiple sets of bytes. Bytes 0 and 1 (The first two bytes in the 8 byte set), are used by "Camera, personal computer and editor" to send commands to the VCR. Bytes 2 and 3 are used buy "Tuner and timer" to send commands to VCR and "Status to exterior". Bytes 4, 5, 6, and 7 are used by the VCR to send out status and counter information. The serial line is an open-collector type data line. This means that the VCR normally holds the line at +5V with a pull-up resistor. An external unit that wants to send data uses an open-collector type TTL gate that does nothing to send a +5V signal, and grounds the line to send a 0V signal. The VCR will send the start bit for the first 4 words, but will leave the line at +5V (all zeros) for the data. Command bytes of all zero are defined to be a no-op. A unit (like an edit controller) that wants to send a command must wait for the VCR to send the start bit, and then start transmitting the correct 8 data bits, in sync with the VCR. Making a serial port on a PC do this is hard. I got e-mail from one guy that said he did it all in software. He connected the serial data line to something like the CD line, and used something like DTR for output. He then wrote a timing loop in software to read and transmit the bits at the correct time. Simple hardware but really tricky and machine dependent software. The serial line can also have multiple controllers connected to it. Because of this, any controller should do bit checking. This is where you read the commands bits as you send them to check and see if another controller is sending a command at the same time. (i.e., you must look for collisions.) If two devicess send a 5V, or 0V signal at the same time, you can't see the collision. But if one sends 5V and one sends 0V, then the 0V signal will "win". If you try to send a 5V signal, but read back a 0V level on the line, then you know there was a collision and you should stop sending and let the other guy complete his command. I don't now for sure, but I think this might happen in a device like a camcorder if you press a button (like stop) on the unit at the same time your computer is trying to send a command. The manual also says that you must send evey command multiple times to make sure the VCR responds to it. It says: "In order that the VTR makes the command effective, it is necessary to transmit the same code continuously over 4 fields. Therefore, it is required for the peripheral side to transmit over 5 fields of the same code." I don't quite understand the logic in that statement, but I think it's saying you have to transmit every command for 5 fields. The tables that define all the bits, and all the commands take up 6 pages (double sided) in the manual, and I don't intend to type them all in, but here is enough to get you started: Bits are numbered 0 to 7, with 0 being the first bit sent. Byte 0 B0-3 0000 Command from Camera 0001 Command from Commander B4-7 0000 Use prohibited (i.e. no-op) 1000 Basic VTR command 0100 Camera comand 1000 Special VTR command Byte 1 (Depends on B4-7 of Byte 0) Basic VTR commands - Byte 0 = 0001-1000 (This is not the complete list) 00000000 CH-1/1 (I think this is like pressing the 1 button) 01000000 CH-2/2 00100000 CH-3/3 ... 01001000 CH-10/0 more strange channel buttons. 01010100 Power on/off 00111010 Power on 01111010 Power off 00001100 STOP 01001100 PAUSE 00101100 PB (Play Back??) 01101100 REWIND 00011100 FF 01011100 REC 00000010 STILL 00000110 REVERSE 01000110 FOWARD 00011110 PAY (should this be PLAY???) Special VTR command - Byte 0 = 0001-1100 10001011 + Frame advance 10011011 - Frame advance Camera comand - Byte 0 = 0001-0100 11010100 Camera Power on/off 10101100 Zoom Tele 11101100 Zoom Wide Byte 4 - VTR mode (the xxx bits have different meaning for each mode which I don't list here. For example 00100110 is REC with VIDEO INSERT) 1000xxxx Tape Ejected 0100xxxx Stoped 1100xxx0 FF 1100xxx1 RWD 0010xxxx REC 0001xxxx More REC modes 0110xxxx PB (Play Back) 1110xxxx SLOW/STILL Byte 5 - VTR status and guide code B0-3 status bits B0 1 -> undefined command. (you sent a command that this VCR doesn't know) B4-7 (defines the contents of the last two bytes (6 and 7)) 0000 Use prohibited 1000 8mm VTR status 0100 Decimal 4-digit counter 1100 first half of hour, minute and second counter 0010 second half of hour, minute and second counter 1110 Beta VTR status Byte 6 for decimal 4-digit counter B0-3 first digit 0000 0 1000 1 0100 2 1100 3 ... 1001 9 B4-7 second digit Byte 7 for decimal 4-digit counter B0-3 third digit B4-7 forth digit Byte 6 for first half of HMS counter B0-3 units digit of seconds (encoded like above) B4-7 tens digit of seconds Byte 7 for first half of HMS counter B0-3 units digit of minutes B4-7 tens digit of minutes Byte 6 for second half of HMS counter B0-3 units digit of hours B4-7 tens digit of hours Byte 7 for second half of HMS counter (only 1 bit used) B7 0 + 1 - On your V101, the single frame record can not be activated with the play/rec button on the camara. It can only be activated with the play/rec buttons on the remote. I don't know what it will do if you sent it the REC command. Will it start a single frame record cycle? If it doesn't then maybe they defined a new command for the V101 to make that work. I own a V101 and I too want to test this some day. Curt Welch [email]curt@oasys.dt.navy.mil[/email] Code 3531 David Taylor Research Center (A Navy Lab) Bethesda, MD (301) 227-1428 ~Subject: Sony Control-L Protocol Hacke! ~From: [email]pierce@chips.com[/email] (John Pierce) Path: ux1.cso.uiuc.edu!uwm.edu!cs.utexas.edu!swrinde!mips!pacbell.com!iggy.GW.V italink.COM!nocsun.NOC.Vitalink.COM!indetech!daver!news.chips.com!pierce ~Reply-To: [email]pierce@chips.com[/email] (John Pierce) ~Newsgroups: rec.video Message-ID: <3493@news.chips.com> ~References: ~Date: 29 Oct 91 01:39:19 GMT Well, after reading a couple of postings here about Sony Control-L protocol we called Sony and got the official spec on Control-L. Its bad reading! Direct translation? Lotsa typos. But. We made it WORK! Following is a hacked up piece of C for a IBM-PC parallel port. Take a DB-25P. Connect a sub-mini MONO jack to ground (pin 18 will do) and pin 17 ("Select"). Voila' Build following piece of C with MS C6.0 using at least -Oi (Optimize Intrinsics--- put I/O inline!) bunches of oneletter commands will make my Sony CCD-V101 do all kinda tricks! Lotsa fun. Please for to excuse hacked style of program ... This was written for the heck of it on a Saturday afternoon, after several beers! Oh. This has only been tested on 20Mhz 386DX (no cache) and faster boxes. I don't know how slow a box it might work on, but it is speed independant as long as your box is fast enuf. Note the Delay(t104/4) after start bit detection. This can be trimmed to better align the transmitted bits with the remote devices timing. If your computer was infinitely fast, it s/b Delay(t104/2).... i.e. sample in mid-bit. But since pc's take time to do anything, we just tweaked it til it looked good on a scope... Also note that we make no attempt to display the status while there is a command being actively sent. This is cuz its written with STDIO instead of clever PC screen blasting, and we were losing too many messages... Obviously this whole shabang should be in assembler. ==================cut-here================================= #include #include // Copyright © 1991, Acme Software Inc. // All rights reserved EXCEPT the right to use for NON-COMMERCIAL // PURPOSES. I.E. Hack away but DON'T sell this! // This copyhack must accompany all copies of this source code. #define dataport 0x37A // #define dataport 0x3BE #define outbit([img]http://www.mp-fr.com/forums/style_emoticons/<#EMO_DIR#>/cool.gif[/img] outp(dataport,((inp(dataport)&(0xFF^bit)) | ((([img]http://www.mp-fr.com/forums/style_emoticons/<#EMO_DIR#>/cool.gif[/img]&1)< 45000) return 0; // OOPS, TIMEOUT!!! rt = readpic(); delay(t104/4); // halfway (almost) into start bit d = 0; for(i=0;i<8;i++) { d >>= 1; delay(t52); // wait start of next bit outbit(O); O >>= 1; delay(t52); // wait middle of bit if (inp(dataport)&bit) d |= 0x80; } delay(t104*2); // wait for stop bit return d; } void DoFrame() { int i; _asm {cli}; framesync(); for(i=0;i<8;i++) In[i] = DoByte(Out[i]); _asm{sti}; } void main(int argc, char *argv[]) { int i; unsigned char data[8]; unsigned char Command = ' '; long frame=0; int f=0; int Lapse = 0; int Time = 300; outbit(0); // clear serial line printf("\n p - Play r - Record"); printf("\n , - Rewind . - FF"); printf("\n s - Stop S - Pause"); printf("\n < - Shuttle << > - Shuttle >>"); printf("\n t - Tele Zoom w - Wide Zoom"); printf("\n e - Eject l - Time Lapse"); printf("\n d - Display q - Quit"); printf("\n x - Start/Stop"); printf("\n - Clear command"); printf("\n"); while (1) { if (kbhit()) { Command = getch(); switch(Command) { case 'd': // Display ON/OFF Out[0] = 0x18; Out[1] = 0xB4; f = 5; break; case 'l': Lapse = Time; case 'r': // VTR Record Out[0] = 0x18; Out[1] = 0x3A; f = 5; break; case 'p': // VTR Playback Out[0] = 0x18; Out[1] = 0x34; f = 5; break; case 's': // VTR Stop Out[0] = 0x18; Out[1] = 0x30; f = 5; break; case 'S': // VTR Pause Out[0] = 0x18; Out[1] = 0x32; f = 5; break; case '>': // Fast Forward >> continous Out[0] = 0x18; Out[1] = 0x38; f = -1; break; case '<': // Fast Rewind << continuous Out[0] = 0x18; Out[1] = 0x36; f = -1; break; case '.': // Fast Forward >> Out[0] = 0x18; Out[1] = 0x38; f = 5; break; case ',': // Fast Rewind << Out[0] = 0x18; Out[1] = 0x36; f = 5; break; case 'e': // Eject Out[0] = 0x18; Out[1] = 0x2C; f = 5; break; case 'x': // Start/Stop Out[0] = 0x18; Out[1] = 0x33; f = 5; break; case 'w': // Wide Zoom Out[0] = 0x28; Out[1] = 0x37; f = -1; break; case 't': // Tele Zoom Out[0] = 0x28; Out[1] = 0x35; f = -1; break; case 'q': exit(0); break; case ' ': default: Out[0] = 0x00; Out[1] = 0x00; Command = ' '; f = 0; break; } } DoFrame(); frame++; if(f>0) { f--; if (f == 0) { Out[0] = 0x00; Out[1] = 0x00; if (Command != 'l') Command = ' '; f = 0; } } if(Command == ' ') { if((In[5]&0xF0)==0x30) { ss = In[6]; mm = In[7]; } else if((In[5]&0xF0)==0x40) { hh = In[6]; sign = ((In[7]&0x80)?'-':' '); } for(i=0;;i++) { if(Status[i].code == 0) break; if(In[4]==Status[i].code) break; } printf("\r%c%2X:%02X:%02X %-16.16s", sign,hh,mm,ss, Status[i].name); if(Status[i].code == 0) for(i=0;i<8;i++) printf(" %02X", In[i]); } if(Command == 'l') { Lapse--; if(Lapse <= 0) { Lapse = Time; Out[0] = 0x18; Out[1] = 0x3A; f = 5; } } } } ========================================================================== Try 1800-352-SONY. Its the VISCA Developers hotline PS I have nothing to do with this stuff except personal interest. I work for a different division of Sony. Bob Berger - SONY Advanced Video Technology Center 685 River Oaks Parkway San Jose, CA 95134 408-944-4964 FAX: 408-954-1027 INTERNET: [email]berger@sfc.sony.com[/email] UUCP: [uunet,mips]!sonyusa!sfcsun!berger JAPAN: [email]berger@sfc.sony.co.jp[/email]-- (Message inbox:279) Return-Path: [email]o-intelhouse@dlb.com[/email] Received: from bank.ecn.purdue.edu by pasture.ecn.purdue.edu (5.65/1.32jrs) id AA23943; Mon, 10 Jan 94 00:50:06 -0500 Received: from daver.bungi.com by bank.ecn.purdue.edu (5.65/1.32jrs) id AA27269; Mon, 10 Jan 94 00:49:57 -0500 Received: from dlb by daver.bungi.com with bsmtp (Smail3.1.28.1 #1) id m0pJEzB-00009Fa; Sun, 9 Jan 94 21:16 PST Received: from bucksm by dlb.com with bsmtp (Smail3.1.27.1 #4) id m0pJDtk-0000BNa; Sun, 9 Jan 94 20:06 PST Received: by bucksm.dlb.com (Smail3.1.27.1 #6) id m0pJC1L-000Apea; Sun, 9 Jan 94 19:06 MST Message-Id: From: daver!dlb!bucksm!dlb!netcomsv.netcom.com!wheaton.wheaton.edu!sga!dougs To: [email]o-intelhouse@dlb.com[/email] Date: Sun, 9 Jan 94 15:48:12 CST Subject: RE: Sony remote control protocol X-L2L: dlb.com Precedence: bulk Errors-To: [email]o-intelhouse@dlb.com[/email] > > The following is a reference guide to using a microcomputer to > >control Sony equipment via the SIRCS protocol. This can occur either > >via an infrared interface, or with a Control-S port. It is being > >released in the hope that it will be useful to some of you. Apparently > >there is no documentation on the protocol available from Sony (at least, > >that's what their publications office said). > > You spoke to the wrong person/people. You need to ask for "Sony > Remote Control Systems" (2RM383-1). Mine was $5. SIRCS is described > on pages 17-27. (SIRCS intro from 17-22, System III on 22, Beta on 23, > and Audio on 25-27) The codes are also the same as documented in the service manual "Protocol of Control L/LF" (86C0943-1). However the timing is different. The control L frame is 16.7ms consisting of 8 words. The first few words send the command and the remaining words return a status from the device. I wonder if a similar reason is why Ed didn't find the need to have the packet take a full 45ms but Scott did? Could it be that room must be left for a status response when using a wired interface? By the way, does anyone know if a device with a Control-L port will accept Control-S commands? My camcorder has a Control-L port but there is almost no mention of it in the manual. According to the Control-L service manual, Control-L is bidirectional and is primarily used between a VTR and peripherals. Control-S is uni-directional and is used to remote control all devices. The Control L manual is dated March, 1986 even though I purchased it only a year ago. It is missing information on current equipment but covers Beta and Video 8 fairly well. Do you have the phone number to order documents? I can't seem to find it and would like to order the manual you mentioned. > Good work, guys! I started observing these signals (with an > MC68HC11), but after I got them and was able to send them, I > bought the manual. Much easier. I would be glad to document the codes used on my camcorder (CCD-V101) and receiver (STR-D1011) however, I don't have access to an O'scope at home. Does anyone know of a simple program to poll a PC paralell port bit and display the result? That should do the job when attached to a Sharp IR cube. -- Doug Smith, SGA * Loves Park, IL * [email]dougs@sga.uucp[/email] -- AppleLink: G0231 * CompuServe: 72727,3532 -- ============================================================================= Neil Higgins E-Mail: [email]esa_neilh@seqeb.gov.au[/email] Network Automation Engineer Ph: +61 7 223 4327 The South East Queensland Electricity Board Fax: +61 7 210 0149 G.P.O. Box 1461, Brisbane, Q. 4001 AUSTRALIA[/i][/i][/i][/i][/i][/i][/i] [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
Language specific support
MediaPortal Forums Francais
MediaPortal 1 - Support
Interfaces Input / Output (VFD,télécommande)
Télécommande Sony VAIO VGC-V2S
Contact us
RSS
Top
Bottom