PIC for auto EDDY sensor board
Replacement of the PIC
Development of a replacement PIC, for automatic adjustment of proximity sensors.
Reference of the original part: 04-11001
Presentation
On some of their pinball machines, Williams and Bally/Midway used proximity sensors to detect the passage of the balls. Unlike optos switches or sensors, they are able to differentiate the nature of the ball, metal or ceramic. This detectors have been used on:
- Twilight Zone
- Red & Ted's Road Show
- Scared Stiff
- Star Trek: The New Generation
- Theatre Of Magic
- Monster Bash
- Cirqus Voltaire
Their principle is that of a metal detector: a RLC circuit oscillates at a specific frequency, disturbed by the presence nearby of a metal mass. All are built around a circuit TDA0161, specialized for this function.
Although still a coil, the sensors are often specific on each pinball. They can be in the form of a single component (A-17064, 100 μH coil), a winding (A-16533), or a printed circuit, whose drawing acts as a coil. In the latter case, the size and shape vary according to the need for implantation (A-19235, wide rectangle, A-19237, narrow rectangle, or A-20036, rounded form).
In order for the TDA0161 circuit to work properly, it is essential that its input stage be adapted to the connected sensor. This consists of two capacitors C1 and C2. Since there are different sensors, so there are also multiple boards where the values of C1 and C2 are different.
The output stage must also be adapted to the pinball machine. This is constituted by the capacitor C3. Its role is to extend the pulse duration at the output of the TD0161, but it also reduces the detection threshold. If the ball passes over the sensor too quickly, it may not be detected. In some cases, C3 should not be installed.
Sensitivity adjustment problem
On the TDA0161, a resistor allows to adjust the sensitivity and to set the detection distance.
On the very first boards, a single fixed resistor was mounted and it was impossible to adjust the sensitivity in case of drift. Subsequently, a potentiometer was installed, but again, the setting remained unreliable. One possible improvement was to replace it with a multiturn. This did not, however, dispense with periodic re-adjustment, the detectors being quite sensitive to climatic conditions.
The definitive solution was found with the "AUTO" boards, installed on Cirque Voltaire and Monster Bash. On these boards, the resistor is replaced by a DS1803 double digital potentiometer (one for coarse adjustment, one for fine tuning). This circuit is controlled in I2C by a small Microchip PIC microcontroller, which performs an automatic calibration of the setting, at each start.
PIC replacement
It may happen that PIC 12F508 (reference 04-11001) is burned out and needs to be replaced. Unfortunately, as its content is protected, it is not possible to make a backup copy. So we decided to develop our own version, compatible with all original "AUTO" boards, or reproductions.
Development
The project was totally written in 12-bit Microchip assembler. We used classic tools like MPLAB IDE and MPASM.
Validation and controls
To simplify the development, the PIC was deported to an experimental plate, which also allowed to connect in parallel a logic analyzer.
The logic analyzer ensures that the I2C protocol is correctly programmed in the PIC software. Since the 12F508 PICs do not have an integrated hardware I2C interface, the protocol has been fully implemented by hand.
The tests are performed with an auto EDDY board A-22149-1.
The DS1803 behaves as expected. The setting is fast and accurate.
Distribution
This achievement is available in our shop.