Coin-operated machines have a longer history than you might think. Ancient temples used them to dispense, for example, holy water to the faithful in return for their coins. Old payphones rang a bell when you inserted a coin so the operator knew you paid. Old pinball machines had a wire to catch things with holes in the middle so you couldn’t play with washers. But like everything else, coin acceptors have advanced quite a bit. [Electronoobs] shows a unit that can accept coins from different countries and it is surprisingly complex inside. He used what he learned from the teardown to build his own Arduino-based version.
For scale, there is the obligatory banana. Inside the box there are several induction coils and some photo electronics. In particular, there are two optical sensors that watch the coin roll down a ramp. This produces two pulses. The width of the pulse indicates the diameter of the coin, and the time between the pulses tells its speed.
So what are the two coils for? They form a transformer, and the coin moving between the coils changes the coupling in a way that depends on the material. By knowing the diameter, the transit speed of the coin, and the material, you can identify the coin. A little solenoid-driven flap moves out of the way to store a recognized coin. If it doesn’t move out of the way, the coin goes out of the coin return slot.
We wondered how the machine knows about local currency and what happens if the composition of a coin changes. The video shows how you teach the device about a coin by inserting a sample coin multiple times and letting the device measure. So even if you had some custom token, it should work.
The homebrew solution is pretty easy, especially the optical part. The coils are a bit more work since you need a big coil along with the associated driver and sense electronics. Then, of course, there is also the mechanics, which he did not build, since the commercial product was only $20.
We always enjoy teardowns, but this one was especially informative, and we enjoyed the reproduction of the operating principles. Hero was a Greek who lived a long time ago and would have really been interested in this teardown. We couldn’t help but think, too, of [Peter’s] coin-operated calculator.
16 thoughts on “Coin Acceptors Are Higher-Tech Than You Think”
This is my first time seeing this guy’s videos, but I have to give credit where credit is due: He’s great.
While I share some oldbie-esque umbrage that so much information is put into videos rather than posts/text nowadays, I also believe that presenting information like this in an engaging way is (and has always been) important, and this guy’s videos hit all of the marks – they’re informative, they aren’t bone-dry in how that information is presented, and the pacing is enough that there’s time to learn without unnecessarily dragging out the run time.
Beyond that, the video editing is superb, and there are a few points that some people might even miss: Between 3:10 and 3:19 or so, there’s a shot where the handheld camera is moving and rotating, but the arrows that are overlaid are well-anchored in the scene. Really great editing skills.
Reminds me when we tried to fool them as kids with plain washers from the hardware store. Sorry for being a naughty boy and having the occasional free chewing gum from a vending machine. Luckily i was non-accountable and this is now time-barred, so I can talk about it.
Overhere we have coin acceptors that also capture coins from different countries. German Euros, Dutch Euros, Italian Euros, Spanish Euros, Greek Euros, etc., 19 different countries. :)
And sometimes they take one for another ;) But I will not tell which, as I enjoy discount on sweets – like to think about it as payment for machine pen-testing.
Impressive. I did not expect so much technology for this mechanism.
Fantastic timing – Tim Hunkin mentioned these in his recent video as being one of the best coin acceptors although somewhat plasticky.
Great! Tim just started another series of “Secret Life of Components”!
A coin slot identifier was one of the projects in the ITEC weekly encyclopaedia series from the 1980s. It too, described how simple, but effective coin slot systems could be made. In this case the project was based on a Z80 system with no RAM, because – obviously, you can manage all the state in the 18 bytes of usable registers on the Z80 :-) That’s why the Z80 was ideal as an embedded system!
It’s after ITEC08.., but it is in there!
very simple: make a small hole in coin, use small rope or wire and put many times one coin and on end get this coin himself ;-)
I worked at Vendo between 1977 and 1980, and even their 10-15 prior non-electronic coin accepters had a string/wire cutter that would avoid that ploy. They even included the cutter in their newer electronic coinage accepters. They didn’t have to use the coin to bridge the flux field as a “transformer” — they measured the eddy currents instead. On a scope, you could even “see” the “impression” of the images on the coins. Other testing means included (on both old an new): counter-balances to ‘weigh”, variable height of slots to sort by size, and a magnet trap for simple slugs that required pushing the coin return ejector to clear the subsequent jam. All the processing back then was done by a TMS-1000 4 bit microcomputer with a 1024 byte mask ROM that used 64 byte code pages that required a “load page” instruction to jump to another page — some fun! All the code was developed in assembly using GE time-share on a KSR-43. I didn’t work on that myself, but I quizzed the physicist that did all the work.
This works until they put a comb in the chute to prevent the string from pulling the coin back.
// worked on a project with a vending machine manufacturer
// their engineers had stories…
I wonder how well the speed detection works for identifying a coin. I’m fairly confident that most people that are configuring it for a new coin are going to be pretty consistent in how they insert the coin. In the real world, some people will gently insert it and then just let it go, which would be at least somewhat consistent. However, other people will use a widely variable amount of force when inserting it, giving it an equally wide range of speeds as it goes down the track. If the mechanism somehow enforced a consistent speed, such as the ones commonly found in laundromats where the coins are placed in slots and the try is inserted causing the coins to fall freely with no pressure on them, it would solve this issue.
I would also suspect that using 20 coins in various states of wear instead of the same coin 20 times when configuring the mechanism for a new type of coin would provide a much more forgiving determination of which coin it is and be less likely to reject a valid coin.
The speed detection is simple: two optical sensors spaced a known distance apart. Since they’re on the same track, at the same height on the coin, then all you need to do is `speedOfCoin = DIST_BETWEEN_SENSORS / (timeOfSensorA – timeOfSensorB)`. Once you know the speed, you can figure the size of the coin by measuring how long one of those sensors is triggered and multiplying by the speed. That way it doesn’t matter how quickly the user inserts the coin, it’s just a matter of measurement.
He actually said that all three values were needed and stated that the lookup table for coins used the three values: The diameter, the speed, and the voltage when passing between the coils. Perhaps he just assumed that the speed was a useful value in the lookup, but it could be that the commercial one doesn’t use the speed value for anything other than calculating the diameter.
Now we just need someone to reverse engineer the MDB protocol used by more complex machines with a combination of coin, note and card acceptors.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)