SB-6667 / SB-6668



Processor used:Siemens SDA30C163 (8051 derivative)
Software version:V1.1
Year of development:1996
Supported meter models:Philips PM-6667 and PM-6668.
Main features: Same excellent accuracy as the original software
SB-Bus connection
Collect readings on the computer
Stand alone Scaling and Offset calculations
Tape speed and deviation measurements
Manual operation through one-key menu


I got lucky and was able to buy myself a nice little second hand frequency counter from an old colleague, a Philips model PM-6668. There was only one little problem though: the display had become completely black, something that I had witnessed with a similar counter before. Fortunately I was able to obtain a new old stock display so I could restore the counter to its original glory.
However that was many, many years ago. I've received some questions about the availability of this display from visitors of this web page in the past. The best I can do is give you the original Philips part number though, which is 5322 130 94021. I can't help you any further in obtaining a new display for this marvelous little counter, sorry about that.

Reciprocal Frequency Counting

What is so special about this little counter then? The answer is simple: its resolution is independent of the measured frequency. This means that frequencies down to 10Hz are still measured with a 7 digit resolution, just like frequencies of 1GHz!
How is this possible without increasing the gate time to an unacceptable long duration? Well by using a revolutionary new way of counting called reciprocal frequency counting. Remember that the counter was designed in the late seventies, when microprocessors were still rare and expensive.
Traditional counters used a fixed and accurately timed gate time of let's say 1 second. All incoming pulses are counted during this gate time and the result is automatically the measured frequency given in Hz. Obviously this causes a few problems mainly affecting low frequency accuracy. A 10 Hz signal for instance will generate from 9 to 11 counts if observed unsynchronized during such an inflexible gate time. Not only does this result in a very low resolution of only 1 or 2 digits, there is also an error of ± one digit. This uncertainty is 10% of the displayed frequency! Thus you can hardly call this a measurement, it's more like an indication.
Reciprocal frequency counting is done completely different. The gate time is no longer fixed or accurately timed. The gate is now opened by the leading edge of the incoming frequency and is closed about 1 second later, again at the leading edge of last pulse to be counted from the incoming frequency. This way we eliminate the traditional ±1 count error. During the 1 second gate time we count the number of incoming pulses and simultateously the number of pulses originating from an accurate reference oscillator of 10MHz. After some calculation this will result in the applied frequency with a resolution that is only influenced by the resolution of the reference oscillator and the duration of the gate time.
A more detailed description of the reciprocal frequency counting method can be found in the description of the original PM-6668 software.

Although I keep talking about the PM-6668, this description also applies to its little brother the PM-6667. The only difference between the two models is that the PM-6668 has an extra HF input, allowing it to extend its maximum frequency up to 1GHz.

New Features

So far I have been talking about the standard features of the PM-6668. I'll have to add some new features to the counter to justify the complete project description that I'm writing here. Here is a list of all the new features that were added to the standard PM-6667 / PM-6668 models by this project:

  • SB-Bus Connection (enabling remote control).
  • Manual operation with one-key menu.
  • Offset and Scaling calculations to ease measurements in receivers and transmitters.
  • Direct RPM measurements are made possible.
  • Tape speed measurements (using CCIR or DIN norm tapes).
  • Internal/external reference source is now front panel or remotely selectable.

In order to add these extra features we have to take out the original processor and replace it with our own. I've used the Siemens SDA30C163 as main processor here, just because it was available to me for free. This processor is originally intended to be used in European TV sets, I'm not sure if you can find the processor elsewhere in the world. You might try Ebay to find a surplus source if you're interested in building this project.
The processor contains the ever so popular 8051 core, expanded with some extra's like 1kb of internal RAM, extra pointer registers, PWM outputs, and some analog inputs. Apart from the extra RAM and extra pointer registers no other extra features of the processor are being used by this project.

Before I could build this project I had to know how reciprocal frequency counting actually works (in assembly language, what else?). What better teacher is there than the original software? I read the ROM contents of the original microcontroller using the 8049 Spy, and disassembled it completely until every program byte was understood. That was easy enough for the program was just 1kB in size. Equipped with this knowledge I was able to translate the original functionality of the counter to the new processor core. And after that it was only a matter of adding the new features.
It took me about 72 hours to complete the project, not counting the time to disassemble the original software and describing the project on this site. During these 72 hours I had to start the assembler 734 times to complete the 9.5kB long program.

Are you interested in this project? Use the the navigation keys in the top right hand corner of the page to read more.