Operators Manual
for the alternate firmware for the
Montreal Doppler II and Doppler III units.

Important notice - please read:

This firmware was based on code originally written by Jacques for the Montreal Doppler II.   Many new features have been added and most of the code has been extensively rewritten without Jacques' direct involvemen:  Please read the disclaimer.  For more information, use the contact information at the bottom of this page if you have any questions.

Operational differences between the Montreal Doppler II and Doppler III hardware:

The Montreal Doppler II and Doppler III hardware are very similar to each other - but with a few important differences:

Firmware installation:

There are two versions of this firmware:  One for the Montreal Doppler II unit, and another for the Montreal Doppler III unit.  While it is theoretically possible to have one piece of firmware that will automatically detect which hardware is being used, program space limitations prevent this, so two different versions are available, with the hardware platform being selected at compile time.

Both versions have exactly the same features, with the sole exception of a larger number of choices for integration/average settings being available on the Doppler III:  This is possible only because the menu potentiometer makes it practical to choose amongst a larger number of options whereas on the Doppler II, that number of selections would involve tedious button-pressing to go through all of the possible choices.  Another difference is that on the Doppler II it is possible to perform a complete EEPROM wipe at any time, resetting all parameters to default.

Installation of the new firmware involves only the replacement of the 40-pin processor:  No other changes are made, and one may put the original firmware back at any time.  The only possible caveat to this is that on the Doppler II, if the modifications to add the audio level meter and/or compass rose are made and the old firmware is installed, these pins may be floating at an indeterminate input level and cause the processor to draw a few extra milliamps of current unless they are tied either to ground or +5.

Figure 1-  The screen showing the compile date of the firmware for versions older than 7A.  This may be used to determine which version of firmware is installed.  Starting with version 7A this screen is no longer used as the version number is always displayed on the startup screen.

Modification of the Doppler II hardware:

If you use the new firmware in a Doppler II unit, you have several options:

Modifications of the Doppler III hardware:

You also have a few options with respect to the Doppler III unit and new firmware:

Power up:

The bootup cycle will display "Mont Doplr II-CT" or "Mont Doplr III-CT" (depending on hardware) followed by software credits, and then it will display the main screen.  This cycle takes about 2 seconds, allowing power supply voltages and filters to stabilize.

Note on firmware version 7A and newer:  On these newer versions of firmware, the firmware version is displayed on the main startup screen sequence and the compile date is no longer shown.  Those versions using the PIC18F4620 processor will have a "+" symbol after the version number.

Checking compile date (versions prior to 7A only):

On both the Doppler II and Doppler III units, the firmware compile date may be checked as follows :

Figure 2 - Doppler II ONLY:  This display shows the detected status of the modifications for audio level metering ("LVL Mtr") the SPI output  ("ROSE") for the compass rose and a clock signal for an added switched-capacitor filter ("SCF")

During startup, the date of compilation will be shown briefly:  No saved settings are altered when this done except on the Doppler II when it detects a new modification (see next section.)

Doppler II only:

On the Doppler II, powering up with the center TWO buttons pressed will cause an additional screen to be displayed, (following the date on versions older than 7A) showing the detected status of the audio level metering, the drive for the switched-capacitor filter, and the SPI interface for the compass rose.

If the displayed status is "1" (as shown in Figure 2) that indicates that the firmware has detected that the modifications to add these options may have been completed, and a "0" of the circuit board traces appear to be in their original configuration. All that is done is to check to see if the traces on the circuit board have been cut and it cannot actually tell if the audio level, compass rose or switched-capacitor filter hardware is really present.

EEPROM clear (Doppler II only):  If all four buttons on the the Doppler II are held down during powerup, the EEPROM (containing user settings) is wiped.  This is followed by the display of the compile date (on versions older than 7A) and the display of the audio level metering.  This is NOT available on Doppler III.

Important note (Doppler II only):

Figure 3 - Main display before any bearing data has been received.  The asterisks (***) will be replaced with bearing information and the signal quality information will appear below the bearing.

Main Display:

Initial display:

After powering up, the main display will appear see Figure 3If no bearing data has yet been received, asterisks may be displayed instead of numbers.  This can also occur when exiting the menu system and the display has not been updated (because of quality/audio level gating.)

Note:  If there is audio present on the input when the unit is powered up, random bearing data may be displayed and you may not see the asterisks.  A random bearing may also be displayed on powerup as the circuitry may not have fully stabilized by the time the powerup cycle is completed.

Explaining the display:

The display will simultaneously display the current bearing (on the left) AND the averaged bearing (on the right) and their respective signal qualities in both numerical and graphical format. 
Figure 4 - The arrangement of the main display showing the location of the various data/status indicators.  Note the "audio level" icons surrounding the quality reading of the current ("integrated only") bearing:  This means that the buttons/knob will adjust the integration level.  Note also the diagonal bars on the left and right, which are the compass rose displays for the "current" and "averaged" bearings, respectively. (see text)

Figure 4 shows a typical display:

Comment:  On versions 7A and newer, the "Square" brackets ([]) around the quality reading will be replaced with a "greater-than" and "less-than" sign (<>) if  pin 5 of the main processor is disconnected from the +5 volt supply and is available for use with the adaptive filter - read about this under the "Average Clear" description.

The difference between the "current" and "averaged" bearings:

The "current" bearing:

On the left side of the display is the "current" or "instantaneous" reading.  This reading has had applied to it no averaging and in those cases where the bearing is being degraded due to heavy modulation and/or multipath, it will be seen to change seemingly randomly.  It is possible to "smooth" this reading somewhat by applying integration (described below) that accumulates data from several readings.  Because approximately 20 readings are taken each second, the update rate will slow by the amount of integration applied.  This is done in blocks, simply by summing the raw data "N" types, with "N" being the amount of integration, so setting the integration to 1 will yield 20 readings/second, an integration of 4 will produce 5 readings/second, and so on.

The "averaged" bearing:

On the right side of the display is the "averaged" bearing.  This bearing is based on the processing of the present and past "current" bearings and applying a sliding average to the result.  Because multiple past bearings are used and the result is "weighted" according to bearing quality, this portion of the display can be significantly "smoothed" and there is the increased possibility that even if individual "current" bearings are inconsistent, that the averaging will help identify trends.

The effects of the "Integration" and "Averaging" settings:


Internally, 20 readings are taken each second.  If the integration setting is "1" (e.g. NO integration) then each bearing is displayed as it is received.
Adjusting the integration/averaging on the Doppler III using the knob.

As mentioned, when on the main display, the knob adjusts the amount of integration (or averaging - depending on setting) to be used.  There is one potentially confusing aspect of which the user should beware, however:

The current setting of the knob is saved when the button is pressed-and-held.  This "saved" setting is restored when the user exits the menu and on powerup.

Here's the confusing part:  Because the user uses the knob to adjust various settings within the menus, the knob may not be in the same position that it was before entering the menu system - but the setting of the integration (or average) will still revert to the saved setting - at least until the user changes the knob setting again.

What this means is that if you'd set the integration to 16 (a value roughly correlating with mid-rotation) and you entered the menu system, that value would be saved.  To exit the menu system, however, you must select the "exit" icon which involves turning the menu pot all of the way to the end of rotation.  When back in the main display, you'll see that the setting is still 16 - even though the pot may be rotated all of the way to the end, which would mean a far different value.  It will "revert" to the pot's actual setting when the user turns it again.

(Did any of that make sense?)

Having a higher integration rate also means that the display update is slower:  If the integration rate is set to "8" then the new readings are displayed only after 8 readings have been collected, resulting in about 2.5 readings per second.

Integration is useful for "smoothing" out noisy signals and/or slowing the display update rate to a more manageable level.  Note that the effects of the integration aren't quite the same as averaging as the raw data is simply accumulated for a longer period and the effects of rapid changes during the integration period - including those that might skew the data - are simply lumped in.

The "Integration" ability in this firmware is intended mostly to alow the slown down the display update and to provide a modicum of "averaging" of noisy data.  Although the unit can be set for a large number of integrations, it is not recommended that a setting of more than 8 be used as this slows the unit's response to signal!  Typically, one would use an integration setting of 1 or 2.


This firmware supports a "sliding average" that takes from 2 to 32  of the most recent "current" readings and averages them together (one of these 2-32 readings being the current reading.)  This has much the same effect as integration, except that it is updated at the same rate as the integrated bearing - but "smoothed."  Because the newest reading is included and the oldest is discarded, increasing the averaging setting does not slow down the update of the display as the integration setting does, but it does slow the response of the display to changes in signals!

Also consider exactly what sort of information comprises the "averaged" bearings:  They take into account not only the phase of the bearing, but the quality as well.  When it comes down to it, an "averaged" bearing is a close approximation to a software simulation of the 8-capacitor "Roanoake" filter.  What this means is that even if you turn the "Damping" potentiometer (assuming that you have added it) to minimum damping (a "fast" response) you will still get much of the same effect of having a switched-capacitor filter.  With the "integration" turned off (set to "1") the effect of 32 points of averaging is less than that of the switched capacitor filter's damping set to "maximum" - but it does a very good job of "smoothing" out noise.

With the averaging being under software control we have additional flexibility when it comes to how to handle the data that we receive.  For example, with the "Average Clear" function you can have a mixture of some of the advantage of a very fast response to received bearings yet some of the "smoothing" and noise-reduction of a higher average setting.  As mentioned elsewhere, one can configure the "Average Clear" to erase the "average buffer" a specified time after the signal being received disappears.  When the signal reappears, the software does not require that, assuming that the "average" setting is 32, that 32 readings arrive before the average is displayed, but rather it will display the average for the number of bearings that have been received thusfar.  So, if you receive a signal that lasts only 200 milliseconds, you can expect to have up to 4 readings averaged together and the result of those averages will be displayed.

One obvious advantage of the averaging is that if the integration rate is set to 1 (e.g. no integration) you still get an update rate of  20 readings per second.  If the averaging is set to 32, you get the same "noise reduction" effect as having an integration setting of 32, but the readings appear continuously, rather than appearing in "chunks" at a rate of just one reading every 1.5 seconds as would be the case were the integration set to 32.

Keep in mind that the "Current" (integrated) bearing is the source of readings for the "Average Bearing."  What this means is that increasing the integration will not only slow down the update rate of the average bearing, but the final result will be that the number of readings taken will be multiplied.

For example:  Suppose that you set the integration rate to 8 (about 2.6 readings/second) and the integration to 32.  In reality, the averaged bearing/quality being displayed is based on the past 256 readings (8 * 32) and the averaged bearing includes bearings that were taken over 12 seconds ago (that is, at 2.5 readings per second and 32 readings being averaged, it takes 12.8 seconds for the "oldest" reading to be discarded.  Another example is that if the integration level is set to 64 and the averaging is set to 32, the displayed average is based on contributions of the most recent 2048 readings.  Note that this also means that the reading will include data received around 100 seconds ago (assuming continuous updating, of course.)

One final comment:

ONLY "good" readings (those above the pre-set quality threshold and those allowed by the AFGATE setting) actually contribute to the averaged reading:  "Bad" readings are completely ignored!

Note:  The firmware using the PIC18F4620 device allows up to 64 averages to be taken.

Adjusting the amount of integration or averaging:

It is possible to adjust both the amount of integration and averaging being applied - but not at the same time.  Experience and testing has shown that one would usually set the integration value to one's taste (usually a value of 1 or 2) and then adjust the averaging as the situation demands.

Integration or Averaging is adjusted by using the pushbuttons on the Doppler II or using the knob on the Doppler III - but which parameter (integration or averaging) is adjusted from the main display depends on a setting in the "AFGate Menu" (see below) but this information may be discerned from the main screen.
Figure 5 - This display shows the "audio level" icons around the quality level on the average display.  This indicates that the buttons on the Doppler II (or knob, in the case of the Doppler III) will adjust the amount of averaging being done:  32, in this example.

Taking a look at the display, notice that the quality factor of the averaged reading is surrounded by the audio level icon but the quality factor of the current reading is surrounded by square bracketsIt is the number that has the audio level icons that may be adjusted (using the buttons or knob) while in the main menu.

In the case of the picture, with the audio level icons surrounding the averaged quality, we know that pushing the buttons (or turning the knob, as in the case of the Doppler III) will adjust the averaging AND that the number shown in the center (on the bottom) is the current averaging setting.

If the audio level icons are surrounding the quality factor of the current bearing (as shown in the picture with the labels at the top of the page) then it is the integration that is adjusted by the buttons/knob.

Button operation in the main display:

Doppler II -  The buttons operate as follows:

Doppler III -  The button and knob operate as follows:

Figure 6 - This display shows various displays of the "audio level" icons.  From left to right:
1:  Gated audio (GATE level set to 1)  2:  Audio level of 0 (GATE level set to 0)  3:  Audio level of 1  4:  Audio level of 2  5:  Audio level of 3  6:  Audio level of 4  7:  Audio level of 5  8:  Audio level of 6  9:  Audio level of 7  10:  Audio level of 2, but a GATE setting of 3 or higher  11:  The icon displayed on a Doppler II without the added audio-level circuitry.  12:  The indicator (vertical line) that shows that the "average clear" is active.
The audio level icons:

Surrounding one of the quality level displays (the one that may be adjusted by the knob/buttons) is the audio level icon.  As may be seen in Figure 6, as the audio level increases, this icon gets both "taller" and "wider."

The left-most icon in the picture shows the "audio gated" condition by the presence of the horizontal line at the bottom of the icon.  In this example, the GATE level (read about the GATE setting below) is set to 1.  The second icon from the left shows an audio level of zero but without the gating active (e.g. a GATE level setting of 0.)

The audio level icons will display the audio level despite the GATE setting.  The second icon from the right shows an audio level of 2 but with the audio gating active, hence the line at the bottom - this situation could happen with a GATE setting of 3 or higher.

Note:  If you are using an unmodified Doppler II unit (no audio level metering added) neither the audio level icons or the AFGATE feature is available then icon #11 (next to the one on the far right) will be displayed instead.
"Why have both the audio level icons AND the audio level readout?"

These two readings are from difference sources and can indicate different things:

- The audio level icons are derived from the voltage from the diode/capacitor circuit connected to the output of the first filter (before any switched capacitor filter.)
- The numerical reading is based on the audio that the main processor gets - audio which, in the case of the Doppler III (or a Doppler II with the added switched capacitor filter) may have passed through the switched capacitor filter.

This means that the numerical indicator is less affected by noise and/or modulation on the signal and will probably read lower as the signal being received degrades.  As the signal continues to degrade the switching tone becomes more diluted with noise which means that the audio level icon may still read a high signal but the numerical value drops.

Note also that as the integration rate is increased, the update rate for the numerical value slows down, too:  The update rate for the audio level icons is not similarly affected and this is where the "AFGATE" threshold is derived from.

(Also, I couldn't think of anything else to put there...)

Also note that the icon at the far right shows the "active" indication of the "Average Clear" function see below.

The Menu system:

The major difference in operation of the software between the Doppler II and Doppler III has to do with the user interface:  The Doppler II has four buttons while the Doppler III has just one button and a potentiometer.

On the Doppler II the menu system may be entered by pressing button #4, while on the Doppler III one presses-and-holds the button for approx. one second.

Selecting menu items:

Doppler II:

Doppler III: The Calibration Menu:

This menu is used to calibrate the direction shown on the display with respect to the actual bearing.  If you are in a vehicle, this is currently set (often using the "AUTO" function) such that straight ahead is "North" (0 degrees.)  If the unit is used in a fixed location, one would typically calibrate the unit such that the bearings correlate with true-north bearings on a map.
Figure 7 - This menu is used to calibrate the direction shown on the display with respect to the actual bearing.  This picture shows the display from the Doppler III, with the cursor (a line) under the arrow on the bottom-right.  (The Doppler II does not have a cursor.)

Provisions are provided to increment the bearing in one or ten degree increments.  The calibration value ranges from 0 through 359, "wrapping around" to 0 at 360.

Doppler II:

Doppler III:

Important note about the AUTO function:

Figure 8 - This menu is used to configure and test the antennas.

The antenna menu:

NUMBER - Number of antennas:

This "NUMBER" menu item is used to configure the type of antenna system being used.  This firmware supports the following types of antenna switching:

ROT - Antenna rotation direction:

The "ROT" item selects the direction of antenna "rotation" - either clockwise (CW) or counter-clockwise (CCW.)  What your particular antenna requires depends on which order the individual antennas were connected.  If this is backwards, bearings that are left or right of the calibrated direction will be swapped right/left.

TEST - Antenna being tested:

The "TEST" item is used to select one single antenna to be turned on or, if no antenna is to be tested, one would chose NONE.  This facility is useful in testing a DF array to identify a particular antenna and/or troubleshoot it.

NOTE:  The antenna selected with the TEST parameter is always selected when displaying any menu.  When in the menu system, antenna rotation is stopped and the TEST antenna (which can include "NONE") is the one that is activated.  There are several situations were it may be useful to stop rotation:

Important Notes:
Figure 9 - This menu is used to calibrate the direction shown on the display with respect to the actual bearing.  This picture shows the display from the Doppler III, with the cursor (a line) under the arrow on the bottom-right.  (The Doppler II does not use a cursor.)

The APRS Menu:

This menu is used to configure several parameters related to the serial port.

BAUD - Baud rate selection:

 The baud rate.  Valid baud rates are 1200 (as of version 7C and later,) 2400, 4800, 9600, 19200, 38400, 57600, and 115200.  Higher baud rates are displayed as 19k2, 38k4, 57k6, and 115k, respectively.

APRS - APRS Serial data mode selection:

The "APRS" mode allows the sending of bearing data and/or GPS data from an attached receiver..  The available selections are as follows:

TIME - Data timing interval:

The time interval at which the data is to be sent.  Selections are:

Sending the last good bearing to the computer
"Sending the bearing from that last transmission - the one that I just missed..."
(When using the A, AG, aG, or Ga modes only)

My personal experience is that the most useful mode for the serial interface with the computer, using GPS, is the "Ga" mode.  In this mode, GPS data is sent continuously to the computer, but bearing data is sent only in response to a buttonpress (or, in the case of the Dopper 2, pressing the 2 center buttons at once.)  After a bit of experience and practice you can tell when you are likely to have good GPS data and a good quality bearing.

There are instances, however, when the signal being tracked appears - and then disappears before one has a chance to hit the button.  As it turns out, the most recent "averaged" bearing is stored until a new bearing overrides it - that is, if you have it set to send the "Averaged" bearing via the serial port.

What this means is that if the signal comes up momentarily - but you miss it - you still have time to press the button and send that most recent bearing to the computer, if you do so before another signal appears and replaces it.  Note that repeated button-presses will cause the most recent to be sent each time.


Format of the bearing:

The bearing data is sent using the so-called "Agrelo" format which is of the form:

Where "bbb" is the 3-digit bearing from 000-359 and "q" is the quality from 0-8 with 0 representing a signal of poor quality.
The portion containing "/ss" is the 2-digit signal level from 00-98 and is present only if enabled using the S-meter setting - See the "RADIO" menu, below.
Figure 10 - This menu is used to select which "Radio Settings" are to be used as well as the "minimum" quality factor that causes readings to be updated, and whether or not the "audio level" numerical readout (the center, top on the main display) is to show an "S-meter" reading instead.

The "Radio" menu:

RAD - Radio preset:

This unit has the capability of storing settings for up to five different radios.  The settings "remembered" for each radio are:

Note:  If you use the same radio in different environments (at home, vehicle, or with a different antenna system or bands) then you may wish to have a different "radio" setting for each situation - even if you are using the same radio.

DISPL QF - Minimum quality factor to be displayed:

This item sets the minimum quality at which the display of the current reading will be updated.  ONLY those current readings with a quality equal to or higher than this setting will contribute to the average.

Note that this setting does not in any way affect that which is sent to the serial port, except for the fact that only "current" bearings at or above this threshold actually contribute to the average.  If you configure for averaged bearings to be sent to the serial port no updates will occur as long as the current bearing is below the set threshold.  The BOTH setting does not apply to data sent out over the serial port OR to the LED compass rose display.

SMTR - S-meter display enable:

Firmware versions older than 7A:

Firmware version 7A and newer:

This voltage, if used, would typically come from the AGC line of the receiver, but it could also come from a field-strength meter or even be used to measure battery voltage.  With  the "maximum" setting of the "S-meter" potentiometer, a reading of 99 corresponds to approximately 1.93 volts:  Values higher than this will cause ">>" to be displayed on the LCD.

NOTE:  Regardless of the setting of this parameter, an "OL" indicator will appear on the LCD if the audio level is too high.

Figure 11 - This menu is used to select the "Gating" level, the source of the bearings for the compass rose display, and whether the integration or average is adjusted from the main display.
In this example, we see that "AVG 32" is displayed, indicating that the averaging setting is controlled from this menu and is currently set at 32.  This also means that it is the integration that is controlled from the main display.
Note also that the "Average Clear" setting is "NO" (turned off.)

The "GATE" menu:

This is an additional menu provided by this "alternate" firmware and it is used to adjust a number of parameters:

GATE - Audio gating enable:

With this setting one may halt readings (in the same way that the quality factor threshold does) when the audio level is too low.  An example of this would be to have the readings start/stop when the audio is squelched.

If the GATE threshold level is set to 0 (zero) this feature is disabled, while a setting of 7 (maximum) requires quite a bit of audio to be present.  For most applications, a setting of 1 works well - although some radios tend to have a bit of "squelch leakage" and may require a higher level.

A higher setting may also be used to better-reject signals with multipath distortion:  As signals degrade, the amplitude of the 500 Hz switching tone often decreases, replaced either with noise or with increased amplitude of the harmonics of the 500 Hz switching tone.  Because the harmonics cannot make it through the audio filtering, the "audio level" icon's reading will read even lower.  When it falls below the preset threshold, readings are ignored - and those readings are presumably poor-quality ones, anyway.

The main display also shows whether or not the audio gating is active, too:  If the audio input is below the set threshold, a "audio level" icon will have a horizontal line present at the bottom.  Shown in Figure 12 is an example of the audio gating being active - but the "Average Clear" not yet having cleared the average (if it is enabled):  In this state, all updates of bearing (both graphical and numerical, current and average) are frozen.
Figure 12 - An example of the "GATE" being active.
Note the line on either side of the Averaged quality (e.g. the "3" on the right side of the screen.)  If this is displayed, the reading update is halted due to the low audio level.
Also note that "double line" on the current direction graphical compass rose (the one on the left side):  This type of double line is shown when pointing North, South, East or West.

NOTE:  On the Doppler II only, if the audio metering is not present, "N/A" will appear below GATE to show that this feature is not available.  If you have made the modifications (see below) verify that you have done them properly and that the button(s) was/were held down during powerup to force detection.  This feature is always present on the Doppler III.

Versions 7O and newer using the PIC18F devices:

For these versions, there are the normal GATE threshold settings of 0-7, but when the button is pressed after a setting of 7, a plus sign (+) will appear, along with settings 1-7, as in:  0, 1, 2, 3, 4, 5, 6, 7, 1+, 2+, 3+, 4+, 5+, 6+, 7+, 0 (and so on...)

If there is no plus sign, the compass rose will continually show "bad" bearings in red - and if there is no signal present, these readings can be random.

When the plus sign (+) is present, only the first bad bearing (which is displayed in red) after the audio has dropped below the GATE threshold will be sent to the compass rose.  If the randomly display "bad" bearing (displayed in red) on the compass rose bothers you, use these settings, instead.

ROSE - Source of bearing data for the compass rose:

This setting determines exactly what is to be sent to the Compass Rose display as follows:

If the current bearing is to be displayed, DIR will appear whereas if the average bearing is to be displayed on the compass rose, AVG will be displayed.

NOTE:  On the Doppler II only, if the SPI modification is not present (see below) "N/A" will appear below ROSE to show that this feature is not available.

AVG or INT - Setting for Averaging or Integration level:
Figure 13 - In this example, we see that "INT 01" is displayed, indicating that the integration setting is controlled from this menu and is currently set at 1 (no integration.)  This also means that it is the averaging that is controlled from the main display.  Also, the "Average Clear" setting is set to clear the average 5 seconds after the audio is gated or the quality falls below the preset threshold.

The menu item on 2nd from the far right of the display allows selection of the amount of averaging or integration and which one is adjusted by the buttons/knob from the main display.  This selection works as follows:

What this means is that if INT is displayed on this menu, the amount of integration is selected from this menu and that it is the averaging that is controlled by the buttons/potentiometer on the main display.

Conversely, if AVG is displayed on this menu, the amount of averaging is selected from this menu and it is integration that is controlled from the main display.

AC - Average Clear:

On the far right edge of the display (see Figure 13) is the "Average Clear" (AC) parameter.  This is a very useful feature in that it can be used to automatically "throw away" the averaged bearings from previous transmissions that might "contaminate" new bearings and is, in fact, a form of "Adaptive Filtering."  This parameter has these available settings:

On the Doppler II only:

This feature is used to automatically purge the averaging buffer after a transmission stops.  If multiple transmissions occur in sequence, the average buffer may contain bearings from a previous transmission from a different direction, causing subsequent averaged readings to be "contaminated" with the bearings from the previous transmission(s).


Important:  This feature will only work if the audio gating (the GATE function) is enabled (nonzero.) This also means that it will not work on an unmodified Doppler II unit!


If the user has included the "damping" control on the switched capacitor filter (see here for the Doppler II, or here for the Doppler III) very brief transmissions may be detected as follows:

Figure 14 - This "vertical bar" icon is displayed when the average has been cleared by the "Average Clear" function.

On-screen indicator of "average clear" function:

If the "Average Clear" function is enabled, the "Audio Level" icons will display a vertical line (see Figure 14) when the time set for the average clear has expired and the contents of the averaging buffer have been cleared.

Note that of this indicator can only appear once the audio has been gated (according to the AFGATE setting.)  It does not appear if the average is cleared any other way.


Adaptive analog audio filtering:
Figure 15:
Diagrams showing the components added for the "Adaptive Filter" modifications - see text
Note that the TOP diagram assumes that R55 has been replaced with a 1 Meg front-panel potentiometer for "Q" adjustment.
The pin numbers in the above diagrams apply to the Doppler III ONLY.
Schematic of adaptive filter


Versions 7A and newer support an "Adaptive Filtering" modification to the Roanoake-type switched 8-capacitor filter.  Such a switched-capacitor filter for the Montreal Doppler II is described here, on the Montreal Doppler III it consists IC52, R55, and C55-C62.  This feature works in conjunction with the "Average Clear" feature described above in that when the average has been cleared (indicated by the " | " vertical bar icon seen in Figure 14) the response time of the switched capacitor filter is automatically set to a minimum value.

This feature further enhances the effectiveness of this unit when one is trying to determine the bearing of short-duration transmissions as described in the following scenario:
Suppose that you are trying to locate a transmitter that only appears briefly - but there are several other transmissions occuring in sequence on the same frequency - as might be the case if someone were interfering with an ongoing QSO.  If the "damping" control is set to a fairly high value (as it might be if some of the signals are weak - or if you don't have a damping control) the Roanoake filter will still contain a "memory" of the last signal's bearing for a second or two after the signal disappears.  If the new signal appears before the Roanoake filter has "lost" its memory (e.g. the capacitors have discharged) it will "contaminate" the new bearing with some information from the previous bearing until all of the old bearing's signal has been "flushed out" - a process that may take a second or two!  If the new transmission is quite short, it may disappear before all remnants of the old transmission have been cleared from the Roanoake filter, resulting in a useless bearing.
In other word, with the "Adaptive audio filtering," while the "Vertical Bar" icon is displayed, the "Q" or "Damping" of the Roanoake filter is reduced to a minimum value, which not only "dumps" the "memory" of the previous signal stored as charges in the capacitors and resets it, but it allow the new signal to quickly charge up the filter's capacitors when it first appears and the firmware changes the filter back to the original setting within 50 milliseconds or so after it is detected.  In this way, even a "slow" filter setting can respond very quickly to signals that appear only briefly.  Without this modification, a "slow" filter could completely miss a brief transmission!

Implementation of this feature requires a simple board modification and the addition of a single, inexpensive IC - a 4066 quad analog gate.  This modification involves isolating Pin 5 of the main processor (IC3 on the Doppler II, IC70 on the Doppler III)  from the +5 volt supply:  In each case, must cut the traces connecting pin 5 to the +5 volt supply and then "jumper around" the cut.  If the modification is successful, you will note that the "Square" brackets ( [ ] ) around the quality reading (the one without the audio level icons) will change into "greater-than" and "less-than" signs ( < > ).  Once modified, pin 5 will go high when the "vertical bar" icon is present and this signal is used to activate the 4066 gate (connected across the "damping" control) and switch the Roanoake filter into its "fast response" mode.

Note:  It is required that a capacitor in the range of 150-180pF be placed in parallel with R55 to prevent a phase shift during the operation of the damping control - see the link below for more information.

For information about proper selection of the capacitor's value to prevent an undesired phase shift, go here.

Note that either the standard 4066 or the 74HC4066 may be used, and it is not particularly important whether or not a single gate or all four available gates are used, but it is easiest to wire just a single gate.  If only one gate is used, be certain that all of the unused control pins of the 4066 are tied to either ground or the +5 volt supply to prevent them from floating.  For the ultimate in simplicity and small size, it is also possible to use the Toshiba TS4S66 - a surface-mount chip that consists of a single 4066 gate.

Performing this modification on the Doppler II:

This same modification is also possible for the Doppler II, but it requires that both the "Audio Level Metering" modification and the switched-capacitor filter be added.  (Note:  If you have a Doppler II and don't have the added switched capacitor filter then this modification is not applicable - but note that with the "Average Clear" a form of adaptive filtering is still in effect.)  Information on this modification may be found on the Doppler II switched capacitor filter page.  Also note that the pin numbers in the Figure 15 refer to those in the Doppler III.

Other features:  A "Stop Rotation" switch

Another feature that one might find useful is a Stop Rotation switch.  As of version 7O (and later), using the PIC18F devices, pin 1 (RE1) is used as an input.  On earlier versions, this was used as the microprocessor Master Clear line, so it already has a pullup resistor - but in the PIC18F devices, this pin can be redefined as an input pin.

On these later version, grounding this pin will simply stop rotation, selecting the antenna specified in the TEST parameter in the configuration menu:  When this pin is then un-grounded, the averaging is cleared (if it was enabled) and the "Adaptive filtering" described above is also reset.

There are several reasons why this "stop rotation" feature may be useful:
Automatically stopping rotation with an RF sensor:

While the "Stop Rotation" feature may implemented simply as a switch, another possibility is to incorporate an RF detector with it (in addition to the switch) to automatically stop rotation when you are transmitting.  To do this, one would probably want to add a jack to allow an external connection to a simple external RF sensing circuit.  This RF sensor could be connected inline with the transmitter being used, or it could take the form of a small probe placed in the vicinity of the antenna being used for transmitting.

In this way, when you key your transmitter, rotation is automatically stopped:  Because your bearings will likely be corrupted by the transmitter's effects on the switching diodes - even if it is on a different band - losing the ability to take bearings while transmitting isn't a problem anyway.  Another useful property is that when your transmitting stops rotations, those averaged bearings stored in the unit - or those stored in the switched capacitor filter - are erased:  This is important because when you transmit, your signal will corrupt your received bearings, anyway, and in this way, when you unkey your transmitter, those corrupted bearings will have been cleared, allowing immediate reacquisition of the signal being tracked without your having to wait a second or two for the "corrupted" bearing to be flushed from the display.

An example of a circuit that could be used to detect RF is shown in Figure 16.  Firstly, it is probably most convenient to mount a jack on the Doppler unit with C3 and R4 connecting inside to the CPU:  C3 and R4 help protect the CPU against static discharge.  It is recommended that a 2.5 or 3.5mm phono jack be used, as those will ground out any static charge on the sensor cable while it is being plugged in:  An "RCA"-type connector may make contact with the center conductor before the ground connection is made.  Alternatively, other static-protection schemes may be used, such as protection diodes (a 5-10 volt Zener across the input jack, for example) or even using an optoisolator circuit.

The actual RF sensor circuit is nothing special:  The RF is rectified by D1 and D2, with the resulting DC voltage turning on Q1, shorting CPU pin 1 to ground and stopping rotation.  The exact values aren't critical, but some care and experimentation should be done to achieve the proper values for R1 and C1.

For sensing RF, there are two possibilities:  Tapping into the RF transmit cable and sampling the RF, or placing a sense antenna near the transmit antenna.  In the former example (tapping into the RF transmit cable) one could use a small aluminum box with two RF connectors on it, connected to each other (as in a "passthrough) containing this circuit.  In this case, C1 would have a value of 5-22pF or so (the value isn't critical) while R1 could be 1k-100k, depending on the power.  It is likely that neither R1 or C1 would be necessary and that a short piece of insulated is placed near where the two connectors jumper to each other for passing RF through the system will pick up more than enough RF to trigger the circuit.  In testing, one should use the lowest power setting of the transmitter and then bring the wire (or adjust the value of R1 downwards) until Q1 is reliably triggered, and then move the wire closer (or lower the value of the resistor by 1/3 or 1/2) to assure stability.

More convenient would be to use a simple sense antenna - a short piece of wire or an extra rubber-duck antenna from an HT.  If more than a couple of watts is used for transmitting, it is likely that such an antenna would be able to pick up enough signal from being laid in either the front or rear window of the car - depending on where the transmit antenna is.  In this case, R1 could probably be eliminated and C1 would have a value of anything from 47pf to 1000pf.

One thing of which you should be aware is to avoid making the RF sense circuit so sensitive that it will trigger on any nearby transmitter, such as a cell phone, a broadcast station, or a 2-way radio in a nearby vehicle.  The value of R1/C1 should be chosen such that there is more than enough sensitivity to reliably detect your own transmitted signal on the lowest power setting.  A good test would be to use an HT to see how far away from the sense antenna one needed to get before it no longer triggered.
Figure 16:  This circuit could be used to detect RF from the transmitter to automatically stop antenna rotation.  The values of C2 and C3 could be from 0.01uF to 0.1uF, D1 and D2 are practically any silicon diode, like a 1N914, and Q1 could be about any small-signal silicon transistor, like a 2N3904 and resistors R2 and R3 could be 22k-100k and R4 would be 470 ohms to 1k.  The values of R1 and C1 would depend on the amount of RF available for sensing - see text.
RF sensor circuit for automatically
              stopping antenna rotation

Transmit Antenna Placement:

It should be mentioned that, ideally, the DF antenna array would be placed in the center of the roof of a symmetrical vehicle to obtain the most accurate bearings - and it should be the only antenna on the vehicle.  This isn't always practical, however, as car's broadcast-band radio antennas and the "normal" ham antenna may also be present - and it may not be practical to remove both or either of the additional antenna(s.)  In many cases, the use of another transmit-capable antenna is essential in coordinating efforts with other transmitter hunters, or simply as an "alternate" receiver to listen for the signal being sought.

Fortunately, the car's broadcast band radio antenna isn't usually a problem, as it is likely to be non resonant in the frequency range of the DF receiver.  Furthermore, on many vehicles, the car radio's antenna is located on the fender or in one of the car's windows, placing it at some distance from the roof, where the DF array is likely to be mounted.  In some cars, however, particularly sedans, the antenna is often on the roof, where it may have some effect.  In these cases, it may be possible to remove the antenna, but it is more likely that one could tape the antenna down to minimize its profile:  In any case, experimentation could reveal if the car's radio antenna has any significant affect at all.

The "normal" ham antenna may be another problem.  Often, this antenna is placed on the roof of the car, so the installation of the DF antenna array may require that it be removed just to mount it.  In any case, one should be aware that the presence of another antenna on the vehicle - particularly if it is on the same band as the DF array - has the potential of skewing the readings.  Here are a few ideas about how such bearing distortions may be minimized:

Comment:  On my vehicle, a Jeep Chrokee, with a DF antenna array mounted on a plate that is fastened to the luggage rack I have found that the fender-mounted 2 meter/70cm antenna located to the front of the vehicle has only a very slight effect (only a few degrees) on the bearings - if at all.  On the corners of this plate are two 1/4-wave wires that further increase the apparent size of the plate, providing a good virtual ground plane for the DF array.

Operational notes:

There are a few things that the user should know about how this software operates.

More items will be added here as they occur to me...

Modification information for the Montreal Doppler II hardware:

Addition of the audio level detector circuitry to the Doppler II unit is highly recommended.  For more information on these modifications, go to the Doppler II Modification page.

Suggested initial settings:

The following settings are recommended the first time you begin using the Doppler unit.

The Calibration menu:

This menu is used for calibrating the unit's bearings. The Antenna settings (below) must be properly configured before an antenna can be calibrated.  The "Auto" selection calibrates the current bearing as being "zero" degrees (straight ahead.)

The Antenna menu:

- NUMBER:  Set this to the number of antennas that you use.  The polarity (+ or -) will depend on how your drive circuit works:  If set to +, the antenna is selected when +5 volts appears on the Doppler unit's antenna drive terminal and a setting of - means that the output is at ground (0 volts.)

- ROT:  This is whether your antenna system should be "rotated" clockwise or counter-clockwise.  This setting is based on the order that the cables are connected to the antenna and/or antenna switch.  If set incorrectly, "left" will be "right" and vice-versa.

- TEST:  This is the antenna selected when the menu system is being displayed and the antenna rotation is stopped.  This value defaults to 1 and would normally be changed only when testing the antennas.  It is recommended that you do not leave this at "none" since the selected "test" antenna is the one that is activated if you enter the configuration menu and/or stop antenna rotation.  If you select "none" then your receiver will go deaf when you stop rotation or enter the configuration menu.

The APRS menu:

- BAUD:  If you are connecting this unit to a computer, this is the baud rate at which the DF bearing will be sent AND it is the baud rate to which the GPS must also be set.  If BOTH GPS and a bearing data is to be sent, it is strongly recommended that a minimum baud rate of 9600 be selected!

- APRS:  This determines which data should be sent and how it is to be handled - see the text, above.  If you have a GPS connected, I would recommend the "Ga" setting (with a TIME setting of 5 seconds) with the bearing being sent manually, by the user's pushing the button.  The reason for this is that one can be a pretty good judge of how good a bearing you might be getting and if you manually send bearings to the computer only when you deem it likely that they are of good quality it is more likely that the cumulative bearing information will be more accurate.  An example of instances where bearings will be bad include making a turn (e.g. the GPS receiver will take several seconds before its heading is updated) and passing through an area where one can tell that the signal is being badly distorted due to multipath and/or because it is weak - this being apparent by the skilled operator's listening to the tone.  Also, if there are multiple stations being monitored, you may want to get bearings only when the one of interest is transmitting!

- TIME:  This determines the timing related to how the data should be sent - see the text, above.

The Radio menu:

- RAD:  There are five presets available for storing configuration such as bearing calibration, antenna number and polarity, and direction.  This is useful if the same unit is used with several different radios and/or antenna configurations.  Even if the same radio and antenna is used on different vehicles, you will likely want a preset for that combination.  It is suggested that one indicates, using a label, which radio/antenna/vehicle combination is associated with each preset.  Even with the preset it is a good idea to verify the accuracy and consistency when reinstalling the radio in a known vehicle/antenna combination:  If the readings are way off, there may be a problem!

- DISPL QF:  This is the setting is the minimum quality that should be considered as a valid reading.  A recommended starting value is 3.

- SMTR:  Please refer to the section above about the S-Meter.  Depending on the version of firmware, this can be set to display a number related to the voltage on the "S-meter" input terminal, send this value via the serial port, or both.

The Gate menu:

- GATE:  This is the minimum threshold at which the audio input level will trigger calculation of a bearing.  A recommended starting value is 1.  If your radio is "hissy" or has a bit of audio leakage even with the squelch closed, you may want to set this slightly higher - but you will probably never use a setting higher than 3 or 4.  Note that higher threshold levels may also be somewhat useful in weeding out severe multipath as poor-quality bearings are often accompanied by a drop in the level of the 500 Hz  switching tone due to increased energy in its harmonics:  Because these harmonics can't make it through the bandpass filter, the detected level will also drop.  The key here is to experiment and gain experience!

- ROSE:  This determines whether the bearing displayed on the compass rose is the "current" bearing (from the left side of the LCD) or the "averaged" bearing (from the right side of the LCD.) Once you get used to the system, you will probably set this to "AVG" and leave it there.

- INT or AVG:  If set to "INT" the number below it indicates the current integration setting (and indicates that the main display will be showing the average setting) and if set to "AVG" the number indicates the current average setting (and indicates that the main display will be showing the integration setting.)  For typical use, the setting will be "INT" and 01 or 02.   I have found that if the signal is extremely weak and/or multipathy a higher integration value (say, 8) can sometimes help in indicating a general trend - that is, whether it is forward or behind, left or right.  In the cases where the signal is extremely poor one can often only hope for vague indications of the direction of the transmitter and it is these cases where both experience and, perhaps, another receiver/Yagi combination may be brought to bear to aid in following the signal.

- AC:  This is the "Average Clear" setting.  A typical value is "1/2" where the average is reset 0.5 seconds after the signal disappears.  This amount of time will prevent the bearing's history from being cleared during brief breakups in the received signal (say, due to mobile flutter) but it is short enough that it will detect when one user stops transmitting and another starts.

The main display:

- I recommend setting the "Average" to 32 (with the INT setting at 01 or 02.)  Because both the "current" (un-averaged) and the averaged bearings are displayed simultaneously, there is no reason not to provide maximum filtering in most cases.  This value provides a nice amount of "smoothing" and goes a long way in allowing one to determine a likely trend in a bearing if the signal is fraught with multipath distortion.

Setting the audio level:

Second to calibrating the direction, setting the proper audio level is very important - and it should be done BEFORE calibrating the direction as excess audio input can skew the bearing.

Here is the recommended procedure for setting the audio level:

It is normal for the quality level to bounce around a bit - even with a good signal - particularly if modulation is present.  If the audio level is set too high, the quality will be "artificially" high as well and the unit will be less-effective in its ability to reject poor-quality bearings.

Note, however, that if you are trying to location an extremely weak and noisy signal, you may have to boost the audio level and/or lower the quality threshold in order to get any sort of reading at all.  When dealing with such weak signals, you will want to have the Average set to 32 and you may also want to set the Integration to 2 or 4 - much higher than 4 is probably of little benefit when the averaging is used and it begins to slow the update rate considerably.

Comments pertaining to the use of the 36 LED compass rose display and the display of the "averaged" bearing:

For firmware versions older than 7A:

The "alternate Compass Rose" firmware has the capability of displaying a "live" bearing (in green) and an "averaged" bearing (in yellow) while "bad" bearings are displayed in red.

In order for this firmware to have been compatible with the original Doppler III firmware, the "average" bearing is calculated by the compass rose display itself, based on the bearings that it has received.  Because the original data format contains only the bearing (represented as a number 0-35) and whether or not it was a "bad" bearing, the compass rose display cannot do any averaging based on the varying quality of those bearings.

The alternate Doppler II/III firmware currently provides for being able to send either the "current" (integrated - but not averaged) bearing to the compass rose (to be displayed in green) OR the "averaged" bearing to the compass rose (to be displayed in green as well.)

This has two implications:
Personally, I normally set the "ROSE" parameter to "INT" when doing transmitter hunting.  While this doesn't provide for as well-filtered a reading as setting it to "AVG" would, when in a moving vehicle, bearing trends are the most important factors, anyway.  While in this mode, the green LED may go all over the place with multipath, the yellow LED does a good job in showing trends.

Why would you want to set the "ROSE" parameter to "AVG" then?  The main disadvantage would be that showing a bearing based only on an average may slow its response somewhat, but this can be mitigated by using the "AC" (average clear) function to allow very fast response to a brief carrier - even when a "slow" averaging is selected.  Additionally, there may be cases where the signal is very weak or the bearings of poor quality where displaying the average (and the "average of the average") may be helpful in identifying bearing trends that would otherwise be difficult to spot.

For firmware versions 7A and newer - along with Compass Rose firmware 2E or newer:

Using the "BTH" setting of the ROSE parameter, the "current" (integrated) bearing on the LCD may be displayed as GREEN on the compass rose while the "averaged" bearing is displayed as YELLOW.  A change in the firmware of both processors allows the two different bearings to be sent and displayed independantly.  In the older versions, the "average" bearing displayed on the compass rose was calculated internally by the compass rose display itself and not based on the "average" settings of the doppler unit.

For more information about how the compass rose operates, please read the Compass Rose Alternate Firmware page.

Firmware version information:

Several different firmware dates, each newer fixing minor bugs or adding features as follows.  Skipped version numbers were never released:

If you have an older version and would like to upgrade, please contact me.  Also, if you spot a bug, find something in its operation that seems awkward, or would like to suggest a feature, please let me know!


For information on availability, please go here.


This code was originally based on that of the original Montreal Doppler II DF unit by the late Jacques Brodeur, VE2EMM, and full credit is given to him for this fine work.  Because the additional modifications are my own and were not done with his involvement, Jacques cannot reasonably be asked to offer any support or assistance regarding them!

Although good faith efforts have been made to make certain that the operation of the hardware/firmware is as described, it is possible that "undocumented features" (bugs) may be present:  It is through testing, use, and feedback from the users that projects such as this may be improved, and the user is asked to be understanding of this fact.  Further developments/bug fixes may be made and such changes will be noted on this page and it is up to the user to determine if he/she wishes to receive an update.  This firmware is strictly intended only for non-commerical amateur-radio use and any other use is in violation of applicable laws.

Additional note:  Neither the author or UARC officially endorse any vendors mentioned above or assume any responsibility for the use of the devices/products described herein.  The level and satisfaction of performance of any of the above is largely based on the skill and experience of the operator and no guarantee of suitability is to be implied.  Your mileage may vary.

Do you have any questions on this or other DF-related topics?  Go here.

Return to the KA7OEI ARDF Page.

This page last updated on 20140729

Since 12/2010: