101. Plunger Setup (TSL1410R Optical Sensor)
The TSL1410R was the original Pinscape plunger sensor, but
unfortunately, it was discontinued by the manufacturer around 2016 and
is no longer available from any source I'm aware of. I haven't
been able to find any other devices available with similar characteristics,
either, so I can't even recommend a substitute.
The TSL1410R, when it was available, was an optical sensor - basically
a camera without a lens - with all of its receptor pixels arranged in
a single row about 3⅛ inches long. This made it ideal as a
plunger position sensor, because a standard pinball plunger has a
travel of just about 3". To set this up, you positioned the sensor
just above the plunger, so that the single row of pixels was parallel
to the plunger's travel axis, with the pixel window facing down. You
also arranged a light source, preferably a point source like a single
bright LED, below the plunger, facing the sensor. In this geometry,
the plunger rod cast a shadow on the sensor. To determine the plunger
position, the software took snapshots of the "image" the sensor saw,
and found the edge of the shadow cast by the plunger - the boundary
between the bright pixels that the plunger rod wasn't blocking and the
dark pixels where the plunger cast its shadow. The TSL1410R had a
pixel pitch of 400 pixels per inch, and the shadow's edge position
could be detected to a precision of about 3-4 pixels, so the software
was able to determine the plunger's position to about 1/100 of an
inch. This is about the same as the on-screen pixel pitch in an HD
monitor, so it allowed the on-screen animation of the virtual plunger
to very closely match the actual position of the physical plunger.
Build details
Given that this sensor is no longer available and that no substitute
is available, I'm going to omit the details of how to set it up. If
you're lucky enough to find one of these devices somewhere, you can
still find the full setup instructions in the old "version 1"
Pinscape Build Guide.
Alternatives
Fortunately, the obsolescence of the TSL1410R doesn't mean you're out
of luck. There are some excellent alternatives available. The
Pinscape software is "sensor agnostic" and can work with a variety of
different sensor types. The best current options, in my opinion, are:
- The TCD1103 optical sensor. Like the
TSL1410R, this is a linear imaging sensor that takes rapid pictures of
the plunger and detects its position by analyzing the images. The
TCD1103 is more complex to set up than the TSL1410R was because it
requires a focusing lens, as well as some extra electronics to
interface with the KL25Z. But with the lens, it provides even better
resolution than the TSL1410R did, and like the TSL1410R, it has no
mechanical contact with the plunger, so there are no moving parts to
wear over time.
- The AEDR-8300 quadrature encoder. This can
yield extremely precise and stable position readings (even better than
the TSL1410R did), so it's a top pick for quality. However, it's
rather complex to set up, and moderately expensive (about $40 in
parts). It also has the downside that the sensor is mechanically
linked to the moving parts in the plunger, which can cause wear over
time.
- A potentiometer based sensor. Most people I've
talked to who have set these up are very happy with them. This
approach is quite inexpensive (about $6 to $20) and really easy to set
up.
- A VCNL4010 proximity sensor. This sensor
works by using an IR light beam to measure the distance between the
sensor and the plunger. It's not as accurate as a quadrature sensor
or potentiometer, but it's respectable, and it's cheap ($8) and very
easy to set up. It's also completely non-contact, so there's no wear
and tear from moving parts.
If you're very picky about the sensor quality, and you're not daunted
by the extra work involved, I'd go with the AEDR-8300. For most
people, though, I'd recommend giving the potentiometer a try first,
since it's so easy and cheap. If you don't end up liking it, you can
always upgrade to the AEDR-8300 (or maybe some even better option that
comes along down the road), and I think the pot is cheap and easy
enough that you won't feel like you're wasting a lot of money if you
try it and end up replacing it.
There's another option as well: come up with something completely new!
The Pinscape software is open-source C++, and it's specifically
designed so that you can plug in new code for different sensors.
(That's how it manages to support all of these unrelated sensor types
already.) The plunger is represented in the code by a C++ abstract
class that you can subclass with the interface logic for just about
any kind of physical device. Position sensing is an interesting and
surprisingly tricky problem, and I haven't come up with a perfect
solution yet - all of the current options have some tradeoffs. New
ideas for better sensor options would be most welcome. (See
Plunger Sensor Technical Notes for some ideas about future sensor experiments
I'd like to try someday.)