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.


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.)