COMPASS / DF OPERATIONAL NOTES
I don’t own a laptop computer, and I never have... there are some issues involving them that deserve mention here...


SLOW COMPUTERS


I originally tried the display software on an old laptop provided by a friend... It employed a ‘486 processor, and it ran DEAD SLOW... 8 seconds between display updates... this might be ( grudgingly ) “acceptable”, except the present software only gets ONE DF message per program “loop”... if you really intend to use this thing on a slow laptop, the code can be modified to get several DF messages per program loop... maybe ten or twenty messages per loop. That will add about 1 - 2 seconds to the total loop time, but at least it will make the waiting “worthwhile”.

The program could probably be improved somewhat, but there’s just too much “math intensive” work going on... I doubt the loop time could be reduced much more that twenty percent. If you want one of these “modified” display programs, send me an e-mail, and I’ll compile a “special” version for you, that gets multiple DF messages per program loop... I think the new PIC code probably generates about 10 messages / second, so if you want 20 messages per loop, it will increase the “loop time” by about 2 seconds.


START-UP SCREEN


I have also noticed that the program ( sometimes ) starts up in a Window, with a blue background. ( I am using Windows 95 on my machine ) If you quit the program and start it up again, it should come up in a ( full-screen ) monochrome display. You can also re-start your computrer in MSDOS mode, but I have never observed any advantage in doing that.


ENABLING THE SERIAL COM PORT


When I originally tried the serial COM port on a laptop, it would NOT work... The laptop ( in this test ) was a rented Pentium, running Windows 98, and the COM port was COM1. I eventually discovered that I could enable the COM port by DISABLING the COM1 port in the Windows CONTROL PANEL, and then immediately RE-ENABLING it... that ( apparently ) caused the operating system to send a fresh batch of “start-up” code to the port, and it always ran fine after that.

Here is the sequence, ( for a windows 95 machine ) starting at the desktop :

Click the START button.
Select SETTINGS from the menu
Select CONTROL PANEL from the menu, and click it
Select the SYSTEM icon and double click it
Select the DEVICE MANAGER tab and click it
Select PORTS(COM & LPT) and double click it
Select COMMUNICATIONS PORT (COM1) and double click it
In the GENERAL tab, under DEVICE USAGE, find the entry called ORIGINAL CONFIGURATION ( CURRENT)

Click on the check box next to it, to de-select COM1. ( check box = empty )

Click on ENTER to execute the change. There should be a delay of a few seconds, then the screen should return to the DEVICE MANAGER window, showing a “red x” on the icon for COM1, indicating it is no longer available.

Select the COM1 icon again, and double - click.
Click on the check box that you previously cleared, to re-enable COM1. ( check box = checked )

Click on ENTER to execute the change. There should be a delay of a few seconds, then the screen will return to the DEVICE MANAGER page. Confirm that COM1 no longer has a “red x”.

Close out all the menus, and start the Doppler display program.

The sequence may be slightly different for later versions of the operating system, but you get the general idea... Apparently there is some “start-up” code missing from my display program which I will ( eventually ) try to identify and install...


ARROW KEYS FOR HEADING / CURSOR CONTROL


I also noticed that the laptop keyboard has no separate numeric keypad... the arrow keys on this keypad are used to control / adjust the heading, and the cursor... The numeric keypad “arrow” keys are ( apparently ) available on the regular keyboard, as an alternate function for some of the alphabetical keys, and are accessed by holding down the “FN” key while striking the desired keystroke... look for them.. they are there...

I ( accidentally ) “disabled” these keys when I selected them for use as a mouse driver. I didn’t have a mouse, and the pressure sensitive “joystick” on the keyboard was a poor substitute... the arrow keys can be selected to drive the mouse in the CONTROL PANEL, under ACCESSIBILITY OPTIONS... click on this icon and select the MOUSE tab... Enabling “mouse keys” will allow the arrow keys to drive the mouse pointer on the screen, but it will also disable these keys in the Dopper display program... disabling “mouse keys” ( in the CONTROL PANEL ) will cause the arrow keystrokes to be routed to the Doppler display program.


FUTURE POSSIBILITIES


In the future, ( probably the DISTANT future ) a few software changes are under consideration, requiring changes of code in the display software... I will mention them here, in case someone “ambitious” want to jump the gun and do it themselves. You can get the source code from me... send me an e-mail and I’ll provide it, free.

One option involves generating and using an automatic “correction table” for the compass. It would require a brief ( calibration ) procedure, to generate the data for the correction table... the vehicle would be taken to a large, open area ( or a roundabout ) and driven in a circle ( at a constant speed and constant turn radius ) while compass data is accumulated, and “tagged” with a time stamp for each reading.

Once the vehicle completes a 360 degree turn, ( hopefully at constant velocity and radius ) the total time for the turn can be directly ( and automatically ) calculated, based on the time required for the compass to finish the turn, as evidenced by the fact the compass ( eventually ) produced two equal readings... one at the start of the 360 turn, and one at the end of the 360 turn. ( Multiple turns might be better.. to average out any variations of velocity, and provide more data points. )

Dividing this time interval into 360 “steps” would allow the measured compass reading ( at each step ) to be identified, by using the time stamp for each reading. This being done, each “measured” compass reading can be translated into the ( corresponding ) “real” compass reading, ( one degree for each time step ) using an array of dimension 2 x 360. Any “gaps” in the table ( due to lack of enough compass data points ) could be automatically identified, and “filled in” with interpolated data.

It would be necessary to “manually start” the calibration procedure, ( with a keystroke ) which would ( ideally ) occur at the exact instant when the vehicle is pointing exactly to 000 degrees, magnetic. Achieving this would be nearly impossible for a vehicle which is already turning in a circle, at constant angular velocity, so some provisions would have to be made to eliminate any errors caused by ill-timed keystrokes... a compass “error” input would be necessary. Logically, that would be achieved with the left / right arrow keys on the numeric keypad, which already serve a very similar purpose.

A compass “step” feature might be useful, as well... allowing the vehicle heading to change only in fixed ( but selectable ) increments of degrees... for example, the compass “step sequence” could be limited to the following increments : 1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 45, 90, or 180 degrees. This would mostly be useful in urban areas where streets are generally organized into an orthogonal gridwork, and nearby structures / vehicles could cause the compass readings to exhibit unusually larger errors.... by limiting the compass increments to fixed values, minor fluctuations of compass heading ( due to local / temporary magnetic anomalies ) could be eliminated.

Another feature that would be very nice would be something similar to the “auto-calibrate” routine for the compass, but applied to DF bearings... drive in a circle at constant velocity and constant radius, and accumulate ( time - stamped ) DF bearing information from a distant RF source... use the data to construct an automatic “correction table” for the DF readings... again, the calibration procedure would have to be started with a keystroke, ( of dubious timing ) so it would be necessary to add a DF CORRECTION function to eliminate any “residual” DF bearing errors.

A “North up” display presentation would be VERY worthwhile as well, and not too difficult to implement. The present display presentation is usually called “heads up” because the 12 o’clock position of the azimuth scale always represent the direction ( the heading, or “head” ) of the vehicle. A “north up” presentation always has North ( either true or magnetic ) at the 12 o’clock position. With this type of presentation, the vehicle heading must be indicated by some other means, usually a single line printed from the center of the screen all the way out to the azimuth scale.

The advantage of this presentation method lies in the fact that the resulting display image can be visually correlated to a map, and ( eventually ) a map “image” can be superimposed on the display itself. It would be best to allow manual selection or “switching” between “heads up” and “north up” modes, as both have advantages in some situations... “north up” for plotting bearings on a map, ( early stages of a hunt ) “heads up” for “homing in” on a signal. ( terminal stages )

Of course, to fully exploit this feature, one would need vehicle position information, such as that provided by a GPS reciever, or “dead reckoning” position, based on compass information... and a velocity source, installed somewhere on the vehicle.... Hmmm.....


[HOME PAGE] [NEXT PAGE]