Pioneer DV-F07 300 disc DVD changerMy main DVD player system consists of a group of Pioneer DV-F07 300 disc DVD changers.
This is a reasonable Pioneer Elite DVD player and it's main feature is of course
that it is a 300 disc changer. As the equipment is in a different room
from the viewing room, and I can page through the available discs with
PCRemote,
I don't want to go for a walk when I see the disc I want, I just want to point &
click and have it loaded for me! I have had these units for several DV-F07 RS232C Serial Port
DV-F07 Sipex SP232AEP RS232 Board
Serial Port Connections
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
![]() |
The command protocol is based on a system in which the computer gives commands and the player returns status, and is the same as that used by other industrial and educational equipment made by Pioneer like Laserdisc players and is called Communications Mode 7 (CM7). CM7 uses a method of control by issuing each execution command in turn and confirming the execution status of the command with a further request command (?J). So, first the controller sends an execution command, and the player returns the status of having received the command (R). Then the controller sends a request command (?J) and the player returns the corresponding status data relating to the command previously given (B = busy, R = done). The controller then repeats this operation until it receives the status data required. In CM7, neither completion of execution status, nor error messages are returned at the time a command is received. The only statuses returned in response to receiving a command are the "End of Received Message" (R) or "Communications Errors" (E00). To confirm completion of execution of the actual command or the occurrence of errors, the request command (?J) should be used. Also, some commands have restrictions or conditions that mean they may or may not be properly executed at any particular point.
So what does all this mean? Well from the point of view of the controller, it is very irritating because the player never sends any unsolicited or delayed data to the host application! Whatever command, garbage or otherwise you give, the player always says R to indicate that the command was received and even if it does recognize the command, it still returns R weather command execution is complete or not. I consider this to be a fundamental flaw which requires much heavier intelligence in the controller than would be needed if the R was only returned when execution was complete. You can then send ?J to see if the status is busy (B) or complete (R), but doing so may overwrite commands still waiting execution in the buffer. The player actually has a command buffer of 20 characters (space and LF are ignored) so there is no reason why you can't enter the following and it does indeed work fine:
23 ZS TI 1 SE CH 2 SE PL<CR>
This will indeed load disc 23 and search to title 1, chapter 2 and start playing. However, any host application worth its salts is going to want to poll the player for time status in order to display the currently playing title, chapter and time and display it in the controller application just like the display on the player and this can indeed be done with the command ?A (all because the player will not send this obvious data unsolicited). The problem is if this is entered too soon before the disc is loaded, part of the buffer may be over written and execution will fail. For instance, if the player is still loading the disc (23ZS part of the command) at the point that ?A is received, it will not yet have looked at the TI 1 SE CH 2 SE PL part of the command in the buffer and all that will be wiped out with the ?A and play will not start. The required solution to this according to the CM7 protocol is as follows:
| Step | Action | Comment |
| 1 | Controller sends 23SZ and receives R | Player takes time to load disc 23 |
| 2 | Controller sends ?J over & over until it receives R and not B | Player returns B for as long as disc loading continues |
| 3 | Controller sends TI1 SE and receives R | Player takes time to search for title 1 |
| 4 | Controller sends ?J over & over until it receives R and not B | Player returns B for as long as title searching continues |
| 5 | Controller sends CH2 SE and receives R | Player takes time to search for chapter 2 |
| 6 | Controller sends ?J over & over until it receives R and not B | Player returns B for as long as chapter searching continues |
| 7 | Controller sends PL and receives R | Player takes time to start plays |
| 8 | Controller sends ?J over & over until it receives R and not B | Player returns B for as long as play starting continues |
| 9 | Controller sends ?A over & over until it wants to do something else | Player returns TTCCMMMSS and application displays it |
But even that does not work! For reasons unknown at step 6, the ?J overwrites the SE from step 5 and chapter search does not complete. Even if that did work, at step 8, the ?J overwrites the PL from step 7 and play does not start. Therefore through trial and error, I have found the following the only way to get it to work:
| Step | Action | Comment |
| 1 | Controller sends 23SZ and receives R | Player takes time to load disc 23 |
| 2 | Controller sends ?J over & over until it receives R and not B | Player returns B for as long as disc loading continues |
| 3 | Controller sends TI 1SE and receives R | Player takes time to search for title 1 |
| 4 | Controller sends ?J over & over until it receives R and not B | Player returns B for as long as title searching continues |
| 5 | Controller sends CH2 SE PL and receives R | Player takes time to search for chapter 2 and start play |
| 6 | Controller waits for 600ms to avoid overwriting anything | Player can finish searching and get playing in this time |
| 7 | Controller sends ?A over & over until it wants to do something else | Player returns TTCCMMMSS and controller displays it |
Well, it is my opinion that CM7 is not much of a protocol if the only way to get it to work is to implement a timer at some point where the controller dare not send another command for fear of breaking something even when there is the ?J status command that is supposed to prevent this! If anyone knows a better way of doing this, please let me know. Just in case you were thinking to send TI1 without the SE and then do ?J, that doesn't work either. Believe me, I have been testing this for years and this is the only reliable method I have found. Even so, now knowing all this the DV-F07 will indeed do as it's told! The main unknown for the controller is how long the player will take to load the required disc. The disc may already be loaded or it may be all the way around on the other side of the carousel. So as long as steps 1 and 2 above work, the rest of the issues are not such a big deal. This ability is of course just as useful for loading CD's, so let's look at the CM7 sequence used for that.
| Step | Action | Comment |
| 1 | Controller sends 24SZ and receives R | Player takes time to load disc 24 |
| 2 | Controller sends ?J over & over until it receives R and not B | Player returns B for as long as disc loading continues |
| 3 | Controller sends TR5 SE and receives R | Player takes time to search for track 5 |
| 4 | Controller waits for 1000ms to avoid overwriting anything | Player can finish searching in this time |
| 5 | Controller sends PL and receives R | Player starts to play at once |
| 6 | Controller waits for 600ms to avoid overwriting anything | Player can get playing in this time |
| 7 | Controller sends ?A over & over until it wants to do something else | Player returns TTIIMMMSS and controller displays it |
As you can see here, the action of loading the disc and
searching for the track are separated from the actual playing. This is not
because of CM7 but is done by PCRemote
because often times when playing a sequence of CD tracks from the CD queue, the
next track is in a different player and so it can be preloaded while the current
track is still playing, so some time passes after the loading and searching ends
(step 4) before play is started (step 5). Even so, I can tell you
that ?J after step 3 will overwrite the buffer anyhow! Ahh!
.
Another supposedly useful feature is the single track play mode for CD's set
with command KP. Entering this after the track is playing makes the
response to ?J become B until the track ends whereupon it becomes
R. Now you would think that this would make the player stop after
the track ends right? No such luck! Play continues to the next
track, it's just that you get R in response to ?J rather than B
while the track is playing. This is totally useless as you are bound to be
polling the track time from the controller with ?A. All you need to
do is keep an eye on the current track and index returned from ?A and
just send RJ to stop play when you get to the end of the track you want
and save yourself the trouble of having to enter KP at the right time.
The KP thing does not work for the last track on the CD or for DVD
chapters anyhow.
So weather you choose to use KP and ?J, or just ?A like I
do with PCRemote, you need to be
polling continuously in order to catch the end of the track to send RJ
before the next track starts. Too slow and you get a snip of the next
track before play is stopped, too quick and the comms thread in the host
application uses more clicks than navigation computer in the space shuttle, and
you know what that does to Windows...
The next thing that you would think is that you could just load
a CD (or DVD for that matter) and then have the controller poll the player for
the Artist name, Album title and the names and times of all the tracks so that
the data could be saved and displayed in the controller application. Well
the CD table of contents (TOC) can indeed be fetched with ?Q so all the
track times are available, but the artist name (AO) and album title (NO)
are truncated to 12 characters and there is no way to get the track names even
if there is CDText on the disc. This is of course very poor and annoying
as you can see all this data scrolling on the players display. The
truncation to 12 characters of the
text that you can get is presumably related
to the fact that the large dot matrix display the DV-F07 has is only 12
characters wide. So still the controller application will have to go to
the internet with the TOC data and fetch the CD text from some database or the
user will have to enter the names manually by hand. So still we are no
better off than we were in 1995 with a
Pioneer PD-F100 and Windows95 where the TOC data can be recovered by putting
the CD in the CD ROM drive so the controller application can get the track
times... Even so, it's not like we lost any functionality and you can get
the DV-F07 to run quite well as a CD changer via the serial port control.
OK, so now here is the next issue: These
commands will work fine as long as the player is in the correct state. For
instance, you can't expect to select a CD track by track number if the disc
loaded happens to be a DVD. An even bigger problem is with DVD's.
Because DVD's define menu driven navigation structures and sometimes
requirements for specific titles and chapters to be played at particular points,
especially when a disc is first loaded, the player can't accept a request to
play a different track until that activity has finished because it is under the
control of the DVD itself. It's worth noting that the Sony CX-850D will
actually load a specific title/chapter with such DVD's although very slowly via
the program menu! From the host controllers point of view with the DV-F07, this
appears to make the player look awkward as sometimes it will do as requested and
other times it will not! A couple of examples of this are as follows: 1. A
DVD that insists that the FBI warning logo be displayed before
the menu is
displayed during which time SE & PL will not work. The same thing happens
if you try to skip with the remote, a little icon comes up on the screen telling
you that you can't do that at this time. 2. Some DVD's have animated menus
which must play to completion before the next menu can be accessed.
Because the only status that the player can give in these cases is E04, it is
impossible for the controller to know weather this is because of a problem that
will go away after some short time or not. So as far as I can see, a very
sophisticated controller is needed that knows all about the content and
structure of each DVD loaded and this is not really practical when you have
hundreds and hundreds of discs loaded. Another issue is that there are no
menu navigation commands in the list of supported mnemonics. This is a
problem on DVD's that probably by mistake have no defined Title/Chapter
structure. An example
of a disc like
this is
Steve Vai's
Alian Love Secret (Fantastic music video!!). When it plays, even the title and
chapter display on the player is blank! The only way to select a track on
this DVD is via the menu using the remote control interface. In my
opinion, all of these so called DVD features are crap. I just want to load
the disc, and play the track I want! Oh Laserdisc, please come back!!
So at the end of the day, my comment on all this is that the DVD format is too
open and allows discs to be produced in too many different and unnecessary ways,
and so none of this is the fault of any particular player. Even so, some
menu navigation via the serial port is needed as far as I can see. To over
come that case, my PCRemote application also uses the
remote control interface
for some functions with some of the more complex macros using interleaved
sequences of remote control and serial commands. I bet your
Philips Pronto
can't do that! Not only that, the only way to switch on and off is via the
remote control interface, there are no serial commands for that like on my Sharp
projector. For industrial use (which is the origin of this interface),
these problems probably never occur because the discs used would usually be
specifically made for the application and therefore would not need any menus to
annoy the controller (or the user). Us unfortunate consumers on the other hand, will
have to continue to suffer the dictatorship of DVD producers who think that
those stupid revolving spinning menus are of any use! To have them as an
option is fine & fun, but to be forced to use them all the time is just plain
boring! So as you can tell, I am disappointed that more can not be done
with this interface with off the shelf DVD's, but even so, just the super fast ZS disc select function
makes it all worth while for loading films and saves me from having to put down my
beer in order to load a DVD, and with a bit
of effort I can remove the menus from my music video DVD's! It's also
quite viable to use the DV-F07 as a CD jukebox controlled solely via the serial
interface, and of course the CD track selection always works as expected. I have one DV-F07 acting as a
full time CD changer and probably over time I will replace all my
CD changers with DV-F07's.
| Command | Name | Argument | Details |
| OP | Open | Opens the hood | |
| UL | Unload | 0 - 300 | Moves the specified disc to the front and opens hood |
| CO | Close | Closes the hood and checks for the existence of discs | |
| ZS | Select Disc | 0 - 300 (600) | Executes playback of the specified disc |
| RJ | Reject | 1st time stops playback, second time unloads disc | |
| ZR | Disc Return | Returns the current disc to the rack | |
| PL | Play | Executes playback | |
| KP | 1 Track Play | During one track play the status becomes busy | |
| PA | Pause | Pauses playback and displays a still picture | |
| ST | Still | Pauses playback | |
| SF | Step Forward | Plays back picture forward frame by frame | |
| SR | Step Reverse | Plays back picture in reverse frame by frame | |
| NF | Scan Forward | Scans picture forward (scanning mode is locked) | |
| NR | Scan Reverse | Scans picture in reverse (scanning mode is locked) | |
| NS | Scan Stop | Stops scanning and returns to normal playback mode | |
| SE | Search | See below | Executes search (Arguments differ from mode to mode) |
| TM | Time Mode Set | MMMSS | Sets search time (M: Minute, S: Second) |
| CH | Chapter Mode Set | 1 - 99 | Sets search by chapter |
| TI | Title Mode Set | 1 - 99 | Sets search by title |
| TR | Track Mode Select | 1 - 99 | Sets search by track |
| SU | Select Subtitle | 0 - 30, None | Switches to the specified subtitle (0 or none: Off) |
| AU | Select Audio | 1 - 8 | Switches to the specified audio |
| AG | Select Angle | 0 - 9 | Switches to the specified angle |
| AP | Select Aspect | 1 - 3 | Switches aspect to either 1: (Pan & Scan), 2 (LBX), 3 (Wide) |
| RP | Repeat Mode Select | 0 - 3 | Executes repeat mode 0 (off), 1 (Track), 2 (Disc), 3 (Function) |
| DS | Display Control | 0 - 5, None | Displays the specified OSD |
| CL | Clear | Cancels the function input, repeat mode & function in this order | |
| PM | Play Mode Set | 0 - 1 | Sets playback mode 0 (all discs), 1 (single disc) |
| CP | Custom Play Set | 1 - 20 | 1 - 10 :Audio 1 - 10 mode, 11 - 20: Video 1 - 10 mode |
| UD | Auto Update | 0 - 1 | Executes disc update 0 (Additional), 1 (All) |
| BC | Baud Rate Change | 0 - 1 | Switches baud rate 0 (9600), 1 (19200) |
| PS | Player Select | ** | Select Player. R is returned regardless of the argument. |
| ID | Disc ID Output | 1 - 300 (600) | Outputs distinction data for specified disc |
| KO | Disc Type Output | 1 - 300 (600) | Outputs disc type for the specified disc |
| NI | Disc Text Input | 1 - 300 (600) | Inputs title data for the specified disc |
| AI | Artist Text Input | 1 - 300 (600) | Inputs artist's name data for the specified disc |
| NO | Disc Text Output | 1 - 300 (600) | Outputs the title data for the specified disc |
| AO | Artist Text Output | 1 - 300 (600) | Outputs the artist's name data for the specified disc |
| ?Q | Table Of Contents | 1 - 99 | Specified TOC contents is output |
| ?J | Job Status Request | Returns the operational status of the executing command | |
| ?P | Player Active Status Request | Returns the operational status of the player | |
| ?Z | Disc Number Request | Returns the number of the disc being played | |
| ?E | Error request | Returns the last error code | |
| ?T | Time Code Request | Returns the time from the beginning of the Title/Disc to the current point | |
| ?R | Title / Track Number Request | Returns the Title/Track being played | |
| ?C | Chapter Request | Returns the chapter number being played | |
| ?A | Play Time Request | Returns the current playback time (TTCCMMMSS for DVD, TTIIMMMSS for CD) |
|
| ?K | Disc Type Request | Returns the disc type (00 unknown, 01 none, 02 CD, 10 DVD, 40 VCD | |
| ?H | Player Mode Request | Returns player mode XY, X = Play mode, Y = Repeat mode | |
| ?M | Communication Mode Request | Returns the communications mode (CM 7) | |
| ?X | Player Model Name Request | Returns the player model distinction number (P1560XX) |
Click here to see the full document.
| Code | Message | Description |
| E00 | Communications error | Communications line error due to framing error or buffer overflow |
| E04 | Feature not available | Non usable function. Either the command mnemonic is wrong or it can not be used in this mode |
| E05 | Request Error | Can not return status in current state |
| E06 | Missing Argument | Correct parameter is not specified |
| E11 | Disc does not exist | The specified disc is not loaded |
| E12 | Search Error | Search address is missing |
| E15 | Picture Stop | Playback has been stopped by a picture stop code while in autoplay mode |
| E16 | Interrupt by other device | The command was not executed before commands were sent from the remote or keyboard |
| E17 | GUI Menu Error | The GUI menu was displayed or setup while executing the command |
| E90 | Connect Error | Master - Slave communications failed |
| E91 | Slave Play Error | The Slave player received commands from a host computer |
| E92 | Master Slave Error | The Master player could not receive information from the Slave that a command was received |
| E99 | Panic | Unrecoverable error occurred. Possible that a disc can not be loaded. |
Click here to see the full document.

Just
to complete the control picture, here is some information on the remote control
side of the DV-F07 that you will need if you want to be able to power the player
on and off or traverse DVD menus etc. from a control application like
PCRemote. The actual
Pioneer Remote Control protocol is
described in detail here, so you can work out what A399 means and the
following table shows all the NEC format command codes that are used to control
the DV-F07.
Click
here to see the Pioneer version. As you can see, each button
that has two commands starts with A399.
DV-F07 IR Codes
| Button | Command 1 | Command 2 |
| Power Toggle | A399 | AFBC |
| Power On | A399 | AFBA |
| Power Off | A399 | AFBB |
| Open/Close | A399 | AFB6 |
| Display | A399 | AFE3 |
| Audio | A399 | AFBE |
| Subtitle | A399 | AF36 |
| Angle | A399 | AFB5 |
| Top Menu | A399 | AFB4 |
| Menu | A399 | AFB9 |
| Setup | A399 | AFB0 |
| Right Arrow | A399 | AF64 |
| Left Arrow | A399 | AF63 |
| Down Arrow | A399 | AFF3 |
| Up Arrow | A399 | AFF2 |
| Enter | A399 | AFEF |
| Return | A399 | AFF4 |
| A-B Repeat | A399 | AFE8 |
| Repeat | A399 | AFE4 |
| Play Mode | A399 | AF7F |
| Search | A399 | AFB3 |
| Play | A39E | |
| Pause | A39F | |
| Stop | A398 | |
| Random | A399 | AFFE |
| Forward | A39A | |
| Reverse | A39B | |
| Next Chapter | A39C | |
| Previous Chapter | A39D | |
| Program | A399 | AFEC |
| Step/Slow Forward | A399 | AFB7 |
| Step/Slow Reverse | A399 | AFB8 |
| Enter Number | A399 | AFEF |
| Clear | A399 | AFE5 |
| 1 | A399 | AFA1 |
| 2 | A399 | AFA2 |
| 3 | A399 | AFA3 |
| 4 | A399 | AFA4 |
| 5 | A399 | AFA5 |
| 6 | A399 | AFA6 |
| 7 | A399 | AFA7 |
| 8 | A399 | AFA8 |
| 9 | A399 | AFA9 |
| 0 | A399 | AFA0 |
| 10+ | A399 | AFBF |
| DNR | A399 | AF30 |
| Function Memory | A399 | AF78 |
| Subtitle Setup | A399 | AF79 |
| Hi-Lite | A399 | AFFA |
| Last Memory | A399 | AFF6 |
| Condition Memory | A399 | AFB1 |
| Previous Scan | A399 | AF69 |
| Best | A399 | AF6A |
| Track Search | A399 | AFE1 |
| Time Search | A399 | AFE0 |
| Jog + 0 | A399 | AF20 |
| Jog + 1 | A399 | AF21 |
| Jog + 2 | A399 | AF22 |
| Jog + 3 | A399 | AF23 |
| Jog - 0 | A399 | AF24 |
| Jog - 1 | A399 | AF25 |
| Jog - 2 | A399 | AF26 |
| Jog - 3 | A399 | AF27 |
| Multi Dial + 1 | A399 | AF7A |
| Multi Dial + 2 | A399 | AF7B |
| Multi Dial - 1 | A399 | AF7C |
| Multi Dial - 2 | A399 | AF7D |
| Sel Sisc + | A399 | AF6B |
| Sel Disc - | A399 | AF6D |
|
|
|
Features:
Specifications
|
Convenience Features
|
The
DV-F07's are my main DVD and CD changers in my current
5.1 system and
it is easy to get more quite cheaply on eBay for around $200 or so. To be honest, the disc
changing and automatic loading feature is now the main reason I use DVD rather
than Laserdisc and I now have all my old Laserdisc music videos transferred to
DVD with the original LPCM sound tracks intact. I am generally disappointed with the
DVD format as most of the DVD's I have are not as good as Laserdisc. Of course, there are a few (now about
20%
of DVD's) that have vastly superior video to Laserdisc and have the advantage of
being recorded in the Anamorphic Wide
Screen format. The quality of an uncompressed Wide Screen Anamorphic DVD
when viewed on my Sharp projector via
the component output of the DV-F07 is truly stunning, there is just nothing else
that can touch it apart from native 720/1080p HDTV via HDMI on my Blu-ray. I only wish that DVD's were
required to bear a quality mark that specifically stated the discs compression
ratio which would then prevent my usual disappointment. With the super
Pioneer Elite paintwork and the curved window door through which the discs can
be seen rotating around, it looks really great and has given top notch
performance so far. As they fill up, I just get more from eBay. Hopefully
soon, there will be some sort of Pioneer Bly-ray changer for my
next machine and I'm sure there will be a serial interface like on the the
Pioneer BDP-09FD
here. Then it may actually be worth getting some more Blu-ray discs.
![]()
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |