Microelectronics | Deck Mini Tachometer

Synopsis

Since I like vintage audio gear, I have a few cassette decks that I use by rotation. One day, I have decided to build a prototype miniature digital tape counter. The plan is to, one day, replace all mechanical tape counters in my cassette tape decks.

The miniature 7-segment displays that I have chosen for this project are made by RFT and are of type VQB37. These are individual digit, common cathode LED bubble displays. To my knowledge, these miniature displays were used in handheld electronic calculators, digital watches, and all sorts of industrial and military applications.

The principle of operation can briefly be described as such: an IR sensor (interruptible barrier) picks rotation information from a reflective surface on a spinning wheel, and combined with a logical 1 signal from the PLAY or FORWARD command, causes the digital counter to increment. Similarly, the same rotational pulse combined with the REWIND command decrements the digital counter.

The rotation detection sensor could be of many types, such IR barrier, HALL effect, or even a simple mechanical contact (not recommended).

Schematic Diagram

Be prepared to see one of the simplest digital counter schematic diagrams in existence. I've simplified the circuit to the minimum allowed, sacrificing software simplicity.

Fig. 1: Electrical Principial Schematic

As designed, the schematic shows a minimum number of electronic components. The core of the circuit is the PIC16F628(A) microcontroller. The three 7-segment bubble displays are connected to the microcontroller in a multiplexed fashion. Thus, PORTB handles digit display data and pins 0, 1, and 2 of PORTA control the common cathodes. Internally, the software performs a second time multiplexing per LED segment. At the same time, the microcontroller monitors the control signals (RESET, ADVANCE, RETROGRADE, and PULSE).

This dual multiplexing system has both advantages and disadvantages.

First of all on the advantages list, there's no need for current limiting resistors for each individual LED segment. The multiplexing happens so fast and there are so many LED segments (i.e.: 21 of them) that the lit time of each segment is in the order of microseconds. Similar to a PWM control technique, if you will.

As a major disadvantage, the software becomes increasingly complex, and the 3-digit 7-segment display has a constant flicker. In addition, due to the very short ON-OFF duty cycle, the LEDs are dim. Lowering the frequency increases the light intensity, bur also increases the flicker.

This miniature digital tape counter requires 5 V to operate. This is obtained by means of a linear voltage regulator of type 78L05. This way, the circuit can be universally powered from a 9 to 12 V power supply rail that is commonly used in vintage cassette decks.

Software

Due to complexity, I decided to write the software in Pascal. For this purpose, I've used mikroPascal, instead of assembly language. I went with a structured data approach over program execution path descriptive steps. The display routine constantly scans a bidimensional matrix consisting of individual LED and digit display data. This happens quickly in an interrupt service routine, leaving just enough CPU time to process the counter increment and decrement operations. Practically, the PIC microcontroller spends most of its time displaying digits.

Construction and Pictures

The first candidate for the prototype is a Grundig SCF 6100 cassette deck. This is equipped with a servo cassette drawer that houses the entire tape transport and the mechanical counter. I thought it'd be a good practice subject.

This is what the printed circuit board assembly looks like. I constructed the PCB with the toner transfer method and etched the copper with ferric chloride (FeCl3).

Here's the tape counter counting upwards.

And here it's approaching 999, preparing to reset to 000.

Electrical wires are dressed in heat shrink tube and go to the mainboard to connect to the required signals.

The viewing angle of bubble displays is not their string point. Just tilt your head for a bit, and you can't see anything anymore.

I think I've proved to myself that this minimalist design is actually usable, and I can begin thinking about perfecting it. I've learned a thing or two while playing with this dual multiplexing idea, and I've cursed many times my decision of not using current limiting resistors. An SMD resistor array mounted on the other side of the circuit board would've worked wonders.

Overall, this design is arguably inefficient. A simple resistor pack would've had simplified the software by a large order of magnitude. But sometimes I am so stubborn that I challenge myself to accept high-difficulty problems and overcomplicated solutions. But read my lips, this is just a prototype. I will use current limiting resistors for the next iteration.

Thank you for reading this page, and I hope you found it useful.


Copyright © 2004- Alexandru Groza
All rights reserved.
VER. 1.0 | REV. A