Voice Project Note
To Voice Project  DateMay 23, 1986
From Swinehart, Stewart Location PARC
Subject Lark checkout  Organization CSL
Came from /Indigo/Voice/Documentation/LarkCheckout.tioga
Abstract This document describes how to test a Lark processor.
Environment
Find a Dorado running Cedar near a workbench or table. The table should be equipped with an Ethernet transceiver cable connected to the 1.5 Mbps voice Ethernet via a "Dorado" or 12 volt transceiver. There should also be a DLS cable for testing the RS-232 ports on the Lark. There should also be two telephone lines with modular connectors. At least one line must have a telephone instrument as well.
Set up the proper value for the pseudo-server "Voice":
PSAdd Voice $ Indigo Ebbetts.Alpine
You can make this entry permanent by booting Iago and using the SetPseudoServer command.
Add an entry "LarkTestInstance: Einstein.Lark" to your user profile, if it isn't there already. You may be told to use some name other than Einstein, but the idea is the same. Use whatever name you're given consistently.
Rollback Cedar to establish a clean starting state. Click Disconnect in any Chat windows before doing a Rollback.
Switch to the LarkTest working directory:
CDR LarkTest
Throughout this document, ® stands for "the current release". It will be the largest of the existing numerical releases that you can find. As of this writing, the correct value for ® is 6.1 .
If you haven't retrieved new versions of the software for some time (a few days, or if things stop working), type the following commands:
Bringover -p /Voice/Voice/®/Top/LarkTest.df
PushR
Bringover -p /Voice/Lark/®/Top/LarkPrograms.df
Pop
This will establish a correct test environment on your disk.
For the software to operate properly, the Thrush telephone control server (Growler) must be running. If it isn't, or you think it might not be, see an Etherphone expert. The server is probably not running if the GV commands listed below don't work.
Now type the following command, to start the test system:
LarkTest Einstein
Connecting a Lark
Most of this section is for checkout of new systems only. For debugging, proceed to the final paragraph.
Before connecting the power supply to the Lark circuit boards, adjust the voltages for plus 5, and plus and minus 12.
Be sure that all the chips are plugged in facing the right direction. Check the SIP packages for correct orientation. Check the power supply bypass capacitors for correct polarity.
Configure the Lark DIP switches. (See checklist at the end of this document for configuration)
Adjust the three analog trimpots for midrange. R25 controls the microphone volume, R32 controls the telephone ringing volume, and R64 controls the touchtone volume.
Connect the following Lark cables: Plug in the Lark connecter box to the TTY connector and plug in the DLS line to the TTYA connector on the Lark connecter box.
Connect the following Lark cables: power, Ethernet, Telephone, Speaker box, Microphone. Using jumper cables, connect Line In A to Line Out A and connect Line In B to Line Out B (maintenance note: only if you need the line levels for something). Don't connect the TeleWall jack to the outside telephone line yet.
Initial checkout
The purpose of this section is to see whether the Etherphone works well enough to load test software.
Issue the following commands in your command window:
GVOwner <hostNumber> Einstein.lark (e.g., GVOwner 110 Einstein.lark)
GVDebug <hostNumber> (e.g., GVDebug 110)
These commands take the Etherphone away from its rightful owner, if any, and give it to you.
(Once it's fixed, return an Etherphone to its rightful owner by doing the following:
GVOwner <hostNumber> <somebody>.pa
GVOperate <hostNumber>
If you have swapped Etherphones or the user has changed workstations or something like that, it's more complicated than that.)
Open the LarkControl viewer, if it is closed. Left-click the button in the top row marked Manual. The scrollable region in the center of the LarkControl viewer is indexed by Ethernet host number. The Ethernet host number of a Lark is the number on the label of the Main EPROM. (There is also a version number on the label, so be careful!) Left-Click the Mode button corresponding to the Lark under test. This action will read the entry for the Lark from the Grapevine data base.
Turn on the Lark power switch. This may take a few tries, due to heavy inrush currents which cause the circuit breaker to trip.
Right-click the Status button corresponding to the Lark under test. This action should attract the attention of the Lark. If this works, a message of some kind will appear both in the scrollable region next to the Status button and in the typescript in the bottom portion of the LarkControl viewer. The correct comment is "Power On Boot." Make a note if it is something else. Click the Status button a couple of times. If the message "Down" keeps appearing, then the Lark is too sick for this testing procedure (or the networks are down somewhere).
(maintenance note: we normally don't use the connector box; skip the next two steps.) Push the physical Reset pushbutton on the Lark connector box. A message should appear in LarkControl saying "Watchdog Timer Boot." This verifies the operation of the system reset circuitry.
Push the physical NMI pushbutton on the Lark connector box. A message should appear in LarkControl saying "NMI." This verifies the operation of the puishbutton and parts of the memory refresh software.
Left Click the Reset pushbutton (in LarkControl) corresponding to the Lark under test. A message should appear saying "Teleboot" or "4015." This verifies the operation of parts of the downloading software.
Middle Click the Reset pushbutton (in LarkControl) corresponding to the Lark under test. Roughly one second later, a "Watchdog Timer Boot" message should appear. This verifies the operation of the watchdog timer hardware.
Middle Click the Debug pushbutton corresponding to the Lark under test. This verifies the contents of most of the main EPROM. It should print '!'s, but may print a few small numbers. If it reports errors or prints "Teleload Error" then something is wrong.
Right Click the Debug pushbutton corresponding to the Lark under test. This verifies the contents of the slave EPROM. It should print 's's, but may print a few small numbers.
Left-Shift Click the Load pushbutton corresponding to the Lark under test. This loads the opeational program into the Lark and starts it. If all goes well, a new "Lark Test" viewer will appear.
LarkTest program
The purpose of this section is to describe the operation of LarkTest. LarkTest is a program which can manually exercise essentially any feature of the Lark. It uses the same Lark program as does the operational telephone system, but has no intelligence, it simply displays a control panel allowing the user to manually turn on and off various Lark facilities Some of the buttons control hardware nearly directly, but some control software features of the Lark program. LarkTest communicates with a Lark by using Remote Procedure Call. If there is much of anything wrong with the digital board, it probably won't work at all . . .
The "Lark Test" viewer consists of several regions.
Aty the top, there is a typescript in which event notifications from the Lark are recorded. Event notifications include transitions of the switch on the speaker box, the hookswitch of the telephone, and the ring detector. The output of the touch tone detector is also recorded in this window.
Next there is an eight by eight array of empty boxes. This part of the viewer controls the analog crossbar switch on the analog board. The column of names at the left represents inputs to the switch, or sound sources. The row of names accross the top represents outputs from the switch, or sound sinks. Thus, for example, clicking the box at the intersection of the Mike row and the Speaker column connects the microphone to the speaker. A black, or inverted, box represents a closed connection.
Voice sources in Lark include Codec 1 and Codec 2, which refer to the Digital to Analog (D/A) parts of the two Codec chips. These D/A converters take digital voice from the Lark computer and turn it back into an analog voice waveform. TeleSet refers to the mouthpiece of the telephone set, and also to the pushbutton touch tone pad. (The pushbutton pad is connected in parallel with the mouthpiece.) TeleWall refers to voice arriving from the outside phone line. Mike refers to the microphone. Silence is just that, and Line 1 and Line 2 refer to voice or other sound sources plugged into the Line In A and Line In B connectors.
Voice sinks in Lark include Codec 1 and Codec 2, which refer to the Analog to Digital (A/D) parts of the two Codec chips. Voice waveforms are digitized and passed to the Lark computer. TeleSet refers to the earpiece of the telphone set. TeleWall refers to the circuits which send voice from the Lark into the outside telephone line. Speaker refers to the loudspeaker. DTMF refers to the Dual Tone Multi-Frequency (touch-tone) decoder. Line 1 and Line 2 refer to the circuits which send voice or other sound to devices plugged into the Line Out A and Line Out B connectors.
One problem with the Lark Test program is that the state of the Lark is not always accurately reflected on the LarkTest display. The Silence row is a case in point. Low level software in the Lark insures that if nothing else is connected to an output, silence is connected. Thus you may imagine that the Silence row is all black if there are no other black squares.
An important case of the same effect is the TeleWall column. In fact, the TeleWall output is permanently wired to the Codec1 input. The positions of the buttons in the TeleWall column have no effect.
Below the crossbar region are several rows of individually named buttons controlling more isolated facilities:
OH -- controls the Off Hook relay, when black, telephone line is off hook.
A -- controls the A relay, when black, A lead is asserted, this is part of the telephone line circuit and should generally follow the operation of the OH relay, e.g. unless specified, click them both together.
Revert -- controls reversion of the telephone set, when black, the telephone set is connected by relay directly to the phone line.
HS -- controls reversion of the telephone set hookswitch. Like A, this relay is associated with Revert and should generally be in the same state.
Sidetone -- controls Sidetone. Sidetone refers to the bit of your own voice that is fed back from the mouthpiece of the telephone set to the earpiece. Without sidetone, the telephone sounds dead. With sidetone, the set sounds live. Sidetone is at a lower level than that produced by a direct connection of TeleSet to TeleSet.
RingEnable -- controls RingEnable. The Lark has two volume controls for the speaker. One control is adjusted by the knob on the speaker box, and the other control is located on the Analog board near the speaker box connector. When RingEnable is black, the internal volume control is activated and the speaker box volume control is deactivated. The internal control is intended to set the volume of telephone ringing. It is separate so that the user cannot inadvertantly turn ringing completely off by turning down the speaker box volume control.
LED -- controls the light emitting diode on the speaker box.
SPMode -- controls a software bit which tells the slave processor to enter "Speakerphone Mode." Normally, voice digitized by the A/D parts of Codec 1 and Codec 2 simply enter data buffers in the memory of the Lark. Voice data from different buffers is played out through the D/A parts of the two Codecs. In Speakerphone mode, the A/D and D/A parts of the two Codecs operate using the same buffers, so that any voice which is digitized is automatically and immediately played back (although a copy is retained in memory). Speakerphone Mode must be used in order to connect, say, the microphone to the TeleWall by using the crossbar switch to Codec1 and Codec1 to TeleWall (which it always is...). Then, by turning on Speakerphone Mode, voice from the microphone is digitized and undigitized and sent to the TeleWall.
O2I2 -- controls the mode of the slave processor. Because there are tight timing constraints to the operation of the slave processor, it cannot do at once everything of which it is capable. Instead, there are two copies of the program which have somewhat different capabilities. The O2I2 button switches between them. One mode, called O2I2 (for Out 2 In 2), independently digitizes voice samples from Codec 1 and from Codec 2 and places the samples in separate buffers in memory (The buffers are called in1 and in2, respectively.). O2I2 also takes samples from the buffers named out1 and out2, and plays them out through Codec 1 and from Codec 2, respectively. The other mode, called O3I1, for Out 3 In 1, does not use Codec 2 at all. Samples from Codec 1 are placed in memory buffer in1. Samples from three different buffers, named out1, out2, and out3, are added together (mixed) and played out through Codec 1. (When speakerphone mode is on, program O3I1 additionally mixes in the sample from buffer in1.) Mode O2I2 would be used for handling two simultaneous phone calls, one with Codec 1 and one with Codec 2. Mode O3I1 would be used for a conference call, in which several people talk at once, and also for generating tones. Sounds like dial tone and touch tones (tm) are actually pairs of tones. The Lark generates tone pairs by putting one tone in buffer out1 and the other in buffer out2. Program O3I1 then combines the tones and plays the resulting sound through Codec 1.
When the O2I2 button has a black background, program O2I2 is running, when it is white, program O3I1 is running.
TS12 -- controls the timeslot of Codec 2. This button does not exist for any good reason. In order for the analog board to operate properly, Codec two must be configured to operate in Time Slot 12, which it does when the TS12 button has a black background. The default condition of the Lark has TS12 on, but LarkTest does not correctly reflect it. Clicking TS12 will turn on the button. This is a good idea because if clicked twice accidently, the button would be off and the Lark would no longer work correctly.
TX1, TX2, VFS-TX, RX1, RX2, RX3 -- These buttons control Ethernet Voice connections. They are configured as pairs. The TX1 button, for example, transmits samples found in voice buffer in1 to the Ethernet address represented by the RX1 button. If RX1 is also turned on, then the received Ethernet voice packets will be placed into buffer out1. TX2 and RX2 also form a pair, but use buffers in2 and out2. VFS-TX is intended for communicating with the Voice File Server and RX3 controls reception of packets for buffer out3. These latter two are not a pair and are not directly useful.
Below the rows of named buttons in the LarkTest viewer is a box containing buttons such as PlayFile, Dial, and Tones. These buttons, when clicked, bring up additional forms containg the parameters for, say, the dial command. Only the Dial and Tones buttons are of immediate interest.
Dial -- The dial command instructs the Lark to generate a sequence of touch tones. To use it, first clik Dial to bring up the dial form. Then click the number: field in order to edit the number to dial; the caret should move to the field to the right of the "number:". After entering the number, the Do Dial button may be clicked to send the command. With program O3I1 enabled (O2I2 OFF), and Codec 1 connected to Speaker, the tones should be heard in the speaker.
Tones -- The tones command instructs the Lark to generate single kind of tone for a given interval and number of repititions. For example, the default arguments brought up by clicking Tones call for a sound composed of two frequencies, 440 Hz ad 480 Hz. These tones produce a "ringing" sound. The sound is to be on for 500 milliseconds and off for 400 milliseconds. There is to be one repitition. Click a field name to edit the corresponding value. Clicking the Do Tones button causes the command to be sent to the Lark.
Tunes -- The tones command instructs the Lark to generate Tone sequences based on musical specifications (see LarkPlayImpl.mesa). Two tunes can be merged together, offset in time from each other. The second can also be dropped down an octave. When tunes are merged together, it is also possible to specify an increment that will lower the volume. Play with it.
At the bottom of the Lark Test viewer are two other boxes which are independently scrollable. the upper such box is "connected" to the RS-232 port TTYA. The bottom box is "connected" to the RS-232 port TTYB. Connected means that keys typed into one of these boxes come out of the corresponding TTY port. Characters typed into one of the TTY ports appear in the boxes. At this writing, when characters are typed into a box, they appear in that box as well as at the TTY port. This phenomonon is called Echoing and is unintended.
Analog Board Checkout
The purpose of this section is to see whether voice parts of the Etherphone work. If you have gotten this far, a Lark Test viewer will be present on the display.
Click the LED button a few times to see if the LED on the speaker box turns on and off correctly.
Turn the switch on the speaker box both up and down. For each up or down movement, a message should appear in the viewer at the top of the Lark Test viewer. The messages should say "Speaker Box switch on" for an "on" movement of the switch and "Speaker Box switch off" for an "off" movement of the switch that restores it to the center-off position. In general, the "event: 220C" means that something has turned ON and the "event: 221C" means that something has turned OFF.
Click each of OH, A, Revert, and HS several times, establishing that each mouse click (except possibly the first one) produces a corresponding audible click from the analog board as the relays switch. End up this operation with all the relay buttons background white. If this test works satisfactorily, plug in the outside phone line.
Lift and return the handset of the telephone. These actions should produce ON and OFF messages in the upper viewer like those from the speaker box switch. The message should be "device: hookSwitch."
Lift the handset and talk into it. (If you are not good at "Test 1, 2, 3", then try pushing a touch-tone button. It will be a lot louder.) You should not hear yourself and the phone should seem "dead." (If using a touch-tone button, you may hear a slight leakage, manifested by a faint tone.)
Click Sidetone. The telephone should become "live." Try this a couple of times, ending with Sidetone OFF.
Click the crossbar button to connect TeleSet to TeleSet. You should again be able to hear yourself, but louder than with just sidetone. Turn the crossbar button back off.
Click the crossbar button to connect TeleSet to DTMF. As you push and release touch-tone buttons, you should get "device: touchPad" messages in the event window. When a touchtone button is pushed, the message will read, "DTMF" followed by the key number or sign. When the button is released, the message will read, "DTMF up".
Hang up the handset and click Revert and HS. This turns off the revert relays and reconnects the telephone set directly to the telephone line. Try making a call and try receiving a call by placing a call to the Lark.
When the Lark telephone set rings, you should also see "device: ringDetect" messages.
Click Revert and HS again to turn them off. Turn off all crossbar buttons.
Click the crossbar button to connect TeleSet to Speaker. The Lark should now work as a PA system.
Click RingEnable on and off. With RingEnable off, the speaker volume should be controlled by the knob on the speaker box. With RingEnable on, the knob on the speaker box should have no effect. In this mode, speaker volume is controlled by the internal trimpot (R25) on the analog board. It should be set near the middle. Leave RingEnable off.
Turn off all crossbar buttons.
Click crossbar buttons to connect Teleset to Line 1 and Line 1 to Speaker. Since the external cord connects Line Out A to Line In A, your voice should still come out the speaker. Turn off all crossbar buttons and try again with Line 2.
Turn off all crossbar buttons.
Click the crossbar button to connect Mike to Speaker. The Lark should now work as a PA system. Remember that there is an on-off switch on the microphone. Turn it off.
Click the crossbar buttons to connect Codec 1 to Speaker. Click TS12 ON. Make sure O2I2 is off. Click Dial to bring up the dial form. Fill in the number of a nearby phone. Click Do Dial. You should hear the tone sequence in the speaker. This checks out a substantial portion of the slave processor circuitry and also checks the D/A part of Codec 1.
Click O2I2 ON and click Do Dial. Only one of the two tones of the touch tone pairs should be heard. Turn off the Codec 1 to Speaker button and turn on the Codec 2 to Speaker button. Click Do Dial and the other tone of the touch tone pairs should be heard. Click O2I2 OFF and turn off all crossbar buttons. This checks out more slave processor circuitry and the D/A part of Codec 2.
Click crossbar buttons to connect Mike to Codec 1 and Codec 1 to Speaker. Your voice should not come out the speaker. Click SPMode to verify that it controls your voice coming out the speaker. Click O2I2 ON and try this again. Leave O2I2 ON and clear all crossbar switches. This checks the A/D part of Codec 1 and SPMode.
Click crossbar buttons to connect Mike to Codec 2 and Codec 2 to Speaker. Click O2I2 on and off to verify that it controls your voice coming out the speaker. This checks the A/D part of Codec 2 and a different aspect of SPMode.
Clear all crossbar switches, turn off O2I2, and turn on SPMode. Set crossbar switches to connect TeleSet to Codec 1 and Telewall to Speaker. (Remember that there is always a connection from Codec 1 to Telewall. Click OH and A to pick up the outside phone line. You should hear a dial tone in the speaker. Click Do Dial to dial the number of the nearby phone entered previously. The other phone should ring. Answer it. Your voice in the other phone should come out the speaker and your voice in the Lark phone should come out the other phone.
Hold down a touch-tone button on the lark phone and adjust the hybrid trimpot (R64) for minimum tone loudness in the speaker. The hybrid trimpot is on the analog board roughly in the center.
Hang up both phones and click OH and A to hang up the outside line.
Clear all crossbar switches and turn off SPMode.
Click crossbar buttons to connect Mike to Codec 1 and Codec 1 to speaker. Click RX1 and TX1 ON. Your voice should come out the speaker with a slight delay. This tests the Ethernet and DES chip. Clear the buttons. and repeat the test using Codec 2 and RX2 and TX2.
Digital Board Checkout
The purpose of this section is to see whether some other parts of the Etherphone work. Don't bother with it if you are just debugging the standard telephone stuff.
Plug the DLS line into the TTYA connecter on the Lark connector box. Be sure that the DLS line is running at 1200 baud. Type into Chat and see that the same characters appear in the LarkTest upper TTY viewer. Type into the LarkTest upper TTY viewer and see that the same characters appear in the Chat viewer. Try the same thing with the TTYB connector and the LarkTest lower TTY viewer.
CheckList
This section repeats the instructions without explanation.
Set up the system:
Type: PSAdd Voice $ Indigo Ebbetts.Alpine
Insert the entry: "LarkTestInstance: Einstein.Lark" into your user profile.
Type: CDR LarkTest
Bringover the latest versions, if necessary:
Type: Bringover -p /Voice/Voice/r/Top/LarkTest.df
Type: PushR
Type: Bringover -p /Voice/Voice/r/Top/LarkPrograms.df
Type: Pop
Type: LarkTest Einstein
Type: GVOwner <hostNumber> Einstein.lark (e.g., GVOwner 110 Einstein.lark)
Type: GVDebug <hostNumber> (e.g., GVDebug 110)
Open the LarkControl viewer.
Click Manual.
Adjust power supply the voltages for + 5, and +- 12.
Check chip orientation.
Check the SIP orientation.
Check bypass capacitor polarity.
Configure the Lark DIP switches:
K1: 1 Closed, all the rest open
F10: 1 Open, 2 Closed, 3 Closed, 4 Open, 5 Closed, 6 Closed, 7 Open, 8 Open
Adjust the three analog trimpots for midrange.
Connect cables: power, Ethernet, Telephone, Speaker box, Microphone. Line In A <-> Line Out A, Line In B <-> Line Out B. connecter box, DLS <-> TTYA.
Left-Click Mode for the given Etherphone to get Grapevine database entry.
Turn on the Lark power switch.
Right-click Status to see a "Power On Boot" message
Push the physical Reset button to see a "Watchdog Timer Boot" message
Push the physical NMI button to see an "NMI" message
Left-Click Reset to attract the Etherphone's attention
Middle-Click Reset to check the watch dog timer
Middle-Click Debug to check the main EPROM
Right-click Debug to check the slave EPROM
Left-Shift Click Load to load the Etherphone program. Lark Test viewer should appear.
Click LED a few times to check the LED
Flip speaker box switch to get speakerSwitch messages
Toggle OH, A, Revert, and HS to hear relay clicks
OH, A, Revert, and HS OFF
Plug in the outside phone line
Lift and return the handset to get hookSwitch messages
Lift the handset and talk -- should be dead
Toggle Sidetone to check if handset comes alive
Sidetone OFF, TeleSet -> TeleSet to check if handset talks to itself
TeleSet -> DTMF to test for touchPad messages
Click Revert and HS ON, place and receive a call
Click Revert and HS OFF, Clear crossbar
Teleset -> Speaker to test "PA system"
Toggle RingEnable to check separate volume controls.
Clear crossbar, RingEnable OFF, Teleset -> Line 1, Line 1 -> Speaker to test Line 1
Clear crossbar, Teleset -> Line 2, Line 2 -> Speaker to test Line 2
Clear crossbar, Mike -> Speaker to test "PA system"
Clear crossbar, Codec 1 -> Speaker, TS12 ON, O2I2 OFF, Click Dial, fill in phone number
Click Do Dial to hear tones
O2I2 ON, click Do Dial to hear only one tone
Clear crossbar, Codec 2 -> Speaker, click Do Dial to hear other tone, O2I2 OFF
Clear crossbar, Mike -> Codec 1, Codec 1 -> Speaker, Toggle SPMode to hear voice or not
O2I2 ON, Toggle SPMode to hear voice or not
Clear crossbar, Mike -> Codec 2, Codec 2 -> Speaker, Toggle SPMode to hear voice or not
Clear crossbar, O2I2 OFF, SPMode ON, TeleSet -> Codec 1, Telewall -> Speaker
OH and A ON to get dial tone
Click Do Dial to place call (answer it). Test talking in both directions
Hold touch-tone and adjust hybrid trimpot for minimum
Hang up both phones, OH and A OFF, Clear crossbar and SPMode OFF
O2I2 OFF, Mike -> Codec 1, Codec 1 -> speaker, TX1, RX1 ON to talk with delay
O2I2 ON to talk with delay
Clear crossbar, TX1, RX1 OFF
Mike -> Codec 2, Codec 2 -> speaker, TX2, RX2 ON to talk with delay
Clear crossbar, TX1, RX1 OFF
DLS -> TTYA to type to and from upper TTY window
DLS -> TTYB to type to and from lower TTY window
Type: GVOwner <hostNumber> <somebody>.pa
Type: GVOperate <hostNumber>