Friday, 17 April 2015

Upcycling an edit controller

Some time ago (2013!), I picked up an old Panasonic edit controller (VW-EC300) that no longer worked. This edit controller originally controlled  a couple of Panasonic VCR decks, and let you build up an edit list and write it out to videotape. These days, we tend to use computers rather than VCRs, so it's time to see if we can make it talk USB!
I figured a good beginning would be seeing how the device worked originally, just to familiarize myself with it. When in use, the device has two connection cables that go to the two VCRs. These connections provide power to the edit controller as well as two way communication. This allows the VCRs to provide timecode  and the state of the drive mechanism to the edit controller, and allows the edit controller to  send commands to the VCR. In order to make sense of the jog/shuttle controls, you need to know a bit about how they're used. The shuttle ring turns through 180°, with a detent in the middle. This is typically used to control playback speed, so that the further away from the detent you move the dial, the faster playback happens - either backwards or forwards depending on which side of the detent you're on. The jog dial is just a rotary encoder, allowing you to move forwards/backwards on a quanta by quanta basis; in the case of video, this would typically be a field or a frame.

It was fairly easy to identify the power pins internally, but applying power to the device didn't result in any obvious signs of life. Fortunately the protocol (Control-M) used between the VCR and controller is somewhat documented out on the Internet  at The protocol is basically a bi-directional synchronous serial link that transmits packets of 7 bytes. The third byte contains the command for the VTR,  the fourth byte is the drive mechanism state, and the remainder appears to be tape position information. This allowed me to write some code to generate some valid-ish Control-M messages containing tape position and drive state information, and amazingly, the edit controller came to life. I did discover that one of the Control-M interfaces (for the recording VCR) was fried, so the edit controller obviously suffered some nasty trauma in it's past. 

Opening the device up reveals three PCBs, of which one is easily accessible. This makes is an obvious candidate to look at first! The main PCB appears to be where all the action happens.

Main board topside

Main board underside
Looking at the main PCB, there is a MN1882410 microcontroller in the middle, containing a 24K ROM and 432 bytes of RAM. Either side are a couple of 4bit microcontrollers with 4K ROM and 256x4bit memory (128 bytes) that handle the LCD. The LCD is split into unconnected two halves,  each driven by one of the two 4bit microcontrollers. The letters on the ends of the chips? I presume they indicates the mask program.

The second two boards provide most of the human interface except for the LCD. The larger board has the switches and LEDs on it, and the smaller board has a single switch and the jog/shuttle control. Not pictured is the 23 pin 0.2" ribbon cable that connects the main board to the human interface board. There's a total of 25 buttons, a jog dial and a shuttle ring as inputs, and 7 red LEDs as outputs.

Human interface boards

So, that's the insides of the device. From here, I can see two possibilities: one to build an external converter box that takes the Control-M protocol and translates into USB, and thus using the functionality that's already in the device; the other to replace the mainboard with a USB controller and thus gain control over everything. Of course, I chose to replace the mainboard with my own controller!

First up was the requirement to understand how the human interface boards actually operated. Given that there are no obvious active components on the human interface boards, it seems a fair assumption that the board is multiplexed. Fortunately, the silkscreen on the underside of the board is very descriptive, making life much easier - if you look you can see that components such as resistors, diodes, switches and wire links are all marked. This quickly allows us to see that every switch appears to have a diode associated with it, certainly indicating a matrix.

Taking a look at the jog/shuttle control, and you can see it has nine pins. Of those nine pins, five have diodes associated with them, and four are wired straight in. Remembering that the shuttle ring is an absolute control, and the jog dial is a relative control, I'd guess that the four pins are for the jog wheel, and the five pins are for the shuttle ring. 

Following the traces on the board shows that the first seven pins on the connector are simply just wired to the seven LEDs on the board.  Even more handy is the silkscreen that indicates these seven pins are on the cathode side of the LED - if we ground the line, the LED should come on. The other side of the LEDs is connected to a power supply of some description, and this appears to be connected to pin 9. That makes sense, as the tracks leading from pins 9 and 10 (and 18) are heavier, suggesting they carry power.  Pin 10 appears to get connected to the metal shielding around the switches, and thus is probably ground. So far, we have the following pins identified:

Pin Connected to
1 Mark In LED (D81)
2 Mark Out LED (D82)
3 Assemble LED (D83)
4 Insert LED (D84)
5 Audio Dub LED (D85)
6 Preview LED (D86)
7 Edit Start LED (D87)
8 ?? Unknown ??
9 LED power
10 Ground

Great stuff - if we carry on like this, we'll have identified all 23 pins real quick! Following the traces from pin 8 leads me over a wire bridge (W12) to a couple of diodes (D61, D62) and beyond. If you follow it on the board all the way, you'll find it ends up at the jog/shuttle control. Following the traces for pins 11, 12 and 13 all lead me through diodes to switches. I took the time to trace all the wiring here, so I knew which pin led through to which button. The results were as follows:

Pin Button Button Button Button Button Button Button Button
8 Player Recorder JS unit 7
11 Mark Out Mark In Assemble Insert A Dub E Preview E Start E stop
12 Cntr Rst Program Clear Goto Return Review Pgm Check
13 Pause Rec Search Jog/Shttl Rew Play FF Stop

If you needed any more evidence there's a multiplex in use, I think this is probably it! I've noted the pins connected to the jog/shuttle unit, but I don't know how they connect (yet). Yes, I spent more than a few hours just following traces, as it helps form a picture of how everything connects together.  Continuing on with finding out where things go, the next 8 pins have no diodes on them. There was one point that left me rather confused initially until I realised what was going on. You may well see it straight away, but I didn't.

I was following the trace highlighted in red and could only find it went off to two switches. I'd forgotten that these momentary switches have four terminals, where each pair of terminals are connected together. They'd simply used the switch as a wire bridge to elsewhere on the board! So, following that through you can see the same picture including the electrical connection through the switch.

The lack of diodes suggests that these are the counterpoints to the previous pins (8, 11..13), so I'm going to call those pins rows, and pins 14..21 columns for no reason other than it helps me think things through - remember this is a matrix!

Pin Button Button Button Button
14 Player Mark In Cntr Rst Stop
15 Mark Out Program Rew Recorder
16 Clear Assemble FF
17 Return Insert Play JS unit 1
18 A Dub Goto Pause JS unit 2
19 Preview Rec JS unit 3 Review
20 Edit Pgm Check Jog/Shttl JS unit 4
21 Stop Search JS unit 5

This is great, we can write up the matrix fairly quickly and easily in the form of rows and columns. There appear to be a couple of places where there could be switches, but there aren't. I guess if I needed to add a couple more switches, I could do. You may note a slight difference in wording, as the silkscreen is not labelled identically to the buttons on the front panel. As I'm going to be looking at the front panel, it's more helpful to have that notation.

C1 (14) C2 (15) C3 (16) C4 (17) C5 (18) C6 (19) C7 (20) C8 (21)
R1 (8) Player Recorder JS 1 JS 2 JS 3 JS4 JS5
R2 (11) Mark In Mark Out Assemble Insert A. Dub Edit Preview Edit Start Edit Stop
R3 (12) Cntr Reset Programme Clear Return Goto Review Pgm Check
R4 (13) Stop Rew FF Play Pause Rec Jog/Shttl Search

If you've been watching closely, you'll have spotted that there are two more pins not accounted for. These two pins go to the jog/shuttle unit and come out directly on pins 22 and 23. My suspicion is that they are a quadrature encoded output from the jog dial, but I'll need to put an oscilloscope on them to see what's really going on there.

In the next part, I'll break out the oscilloscope and take a look at how the board scans.

No comments:

Post a Comment