Looking for the right Optocoupler

Tbh, I have no Idea.. my multimeter isn't accurate enough to measure the pulses in time, so my best chance of finding out when exactly the pulses fire is by hooking it up to my arduino constantly checking its input.

It basically works like this:
There's letters (A-V, omitting some like O or I) and numbers (0-8), making a total of 160 possible selections. When a combination of Letter+Number has been pressed, a motor moves a contact arm first over numbers 1-8. The contacts are wired in series, so if I'd press 5, pulses would be fired when the contact arm went over 1,2,3,4 and 5. Same thing then happens again for the letters, with a longer pause in between to detect the transition from number to letter.

Documentation on these machines (especially on the parts you usually wouldn't have to worry about when hooking it up to a regular jukebox) is quite hard to find, so unfortunately I haven't yet found anything about the pulse timing..

Greets,
Philipp

So you really need some more data before you can decide exactly how to do it but it sounds like in the end you don't need do anything clever, just count a few pulses.

Before you can do that you need the timing information so yes you're on the right track if you don't have any proper test gear.

All you need to know is the gap between each number/letter in a burst of AC pulses and and gap between the two groups of bursts.

So I would rig up the opto as we've been discussing (with or without a bridge, as this is mechanical it will be slow so the double resolution shouldn't be needed but won't do any harm) and run the pulses into an Arduino external interrupt.

You could also just use a diode or bridge and two resistors forming a voltage divider.

Either way it may also be necessary to clean up the sine wave (assuming that's what it is) with a Schmitt trigger or a comparator with some hysteresis.

In the ISR simply save the millis() value into an array.

When the sequence is finished print the values to the screen and analyse them. Each reading will be the (say) rising edge of a pulse so you will easily see the patterns. Put the values into Excel and do a graph or calculate the time between each reading .


Rob

Hi Rob!
Thank you so much for helping me out this detailed :smiley:

Apparently so, yes. From the looks of it I can't seem to find anything more complicated to the mechanism than this - considering it's a consumer machine from the late 50's, this might even hold true.

Since it's a cheap part, I'll additionally use the rectifier bridge. If the Schmitt-Trigger is needed, I'll add one, but for now I'll try with as few parts as possible to not make it too complicated for me.. been a while since I've fiddled with electronics :smiley:

Yea, that's pretty much what I was planning to do. Then once I have the correct sequences, it'll just be a matter of deciding on which device to decode them. I'll probably do it on the arduino, since I'm not too sure about sending time-critical data via bluetooth, although after some tests it shouldn't really matter.

As for the opto-coupler itself, I've been looking at this one:

http://www.produktinfo.conrad.com/datenblaetter/175000-199999/187038-da-01-en-PC817.pdf

Though I'm not sure which ratings to use to calculate my resistor values, etc.. Reading these data sheets is indeed quite hard.

Greets,
Philipp

That opto seems to need 20mA forward current which is a lot but that doesn't matter here.

Terry had the voltage numbers above, I'd use the Vf of 1v2, just under the max of 50mA (say 45) and the peak V for the LED current calcs, it doesn't matter at what point in the waveform the LED turns on.

As you say try without cleaning the pulses, if there's a problem either add the Schmitt trigger or debounce in software.

BTW I just love the idea of a 50s jukebox controlling a PC/iPad etc.


Rob

Sorry my DigiKey link went garbage. Yes, there are AC capable "Optoisolators - Transistor, Photovoltaic Output" at DigiKey and probably elsewhere.

Manufacturer is Weidmuller. 24VAC, 120VAC.

Weidmuller parts #'s -- 24VAC/DC p/n 0609860000, 24VAC/CD p/n 8234580000, 120VAC/CD p/n 8234600000

Maybe these links will work:
http://search.digikey.com/us/en/products/0609860000/0609860000-ND/491692 ---- only $60 and change
http://search.digikey.com/us/en/products/8234580000/8234580000-ND/492853 ---- a steal at $62-some
http://search.digikey.com/us/en/products/8234600000/8234600000-ND/492852 ---- likewise

Holy cow!

H11AA1, -AA2, -AA3, -AA4 AC Input/Phototransistor optocoupler, < $1
UL-recognised

With a nominal 24vac, use a 4700? resistor (for 5ma), 1/4W.

Good find there runaway_pancake, they look like they'll do everything at the sharp end.


Rob

These look really nice! I just found out that there's a german version of Digi-Key as well :smiley: Before it would've been quite annoying having to wait a couple weeks for your parts to ship from the US, so I generaly avoided any US retailers..

@GoForSmoke: Thanks a lot for these links as well! I'll be sure to check them out.

@Graynomad:
I've had the idea for a while now, but unfortunately it's quite hard to find an original Wallbox/Jukebox over here in germany at a reasonable price. I bought the box for around $200 and I must say, for that price it was a steal! The box was alomst entirely in original condition, except for the lamps, coin slot and the "Make any selection" plates, which had been replaced by cardboard with german text on them. Oh yea, there also is a german slug rejector in there (wouldn't make sense to only allow USD in Germany, huh :D)

I've replaced all the parts and quickly hacked together a power plug for a 24VAC transformer I found on eBay. The big surprise came when I first hooked everything up.. it went pretty much perfect on the first try. There's a couple of adjusting screws you'll have to take care of, because obviously they'll have losened over time, but otherwise it worked just fine :smiley:

If anyone's interested in a couple pictures of the rebuild-process, here you go :wink:

Seeburg Wallbox Arduino project - Album on Imgur (Note that obviously all the chrome parts are missing there :smiley: They're back on now)

That looks great, a few memories there for me.

BTW that page hardly works at all with Safari 5.0.5, the thumbnails just show the top few pixels and the photo the right few, I had to click on the view full res magnifier to see anything. See attached.


Rob

Wow, I guess reddit doesn't care too much about Safari.. will use Imageshack again next time :wink:

warning DISCLAIMER: Mentioning stuff from my own shop...

I hate not having stuff to build a good idea on the weekend. That was one of the motivations behind this:

http://arduino-direct.com/sunshop/index.php?l=product_detail&p=214

Several Optoisolators in there, and Other Good Stuff. More here: http://arduino-direct.com/sunshop/index.php?l=product_list&c=36

Me and Parts is dangerous. Ask my Wife :*

Would it make sense to rewire/relamp the whole box and stick an MP3 player and powered speakers in?

I thought about it as well, but not for me, no. The whole box is in such a good condition, it'd be a shame to gut the whole mechanism.. it really is a masterpiece of engineering work and a great reminiscence of a long gone time. Really, there wasn't a single wire I had to replace, not a single switch, practically no rust, little dirt, etc.

It'd just be too bad to lose all that mechanical mastery!

@terryking228: That IC assortment is awesome! And yea, you're right.. by the time the weekend has finally come and I find myself being able to figure out how I'll go about actually building a project, I always have to wait some time before I can then actually start building.. It sucks to not be able to put your toughts into practice right away :smiley:

http://www.vishay.com/product?docid=83641&query=

If you don't want the line frequency to come through you can rectify the AC and filter it and then with a current limit feed that to about any optocouple for a simple on/off.

There's an application note which may help.

Hey guys!
Thank you all again for the great advice! I've now ordered several opto-couplers, since unfortunately I was unable find any of the ones you specified in german online-shops...

Here's the one's I got:

http://www.pollin.de/shop/downloads/D120636D.PDF
http://www.pollin.de/shop/downloads/D120629D.PDF
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/187038-da-01-en-PC817.pdf
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/183721-da-01-en-Optocoupler_4N27.pdf
http://www.produktinfo.conrad.com/datenblaetter/150000-174999/153533-da-01-en-Optocoupler_ILD74.pdf

Would any of them actually be suited for the job? I've read through their datasheets, and from what I understood they usually (doesn't apply to all of them) take around 1.45V of forward voltage on the LED, around 25mA. So I should base my resistor calculations on the LED-side on those values, right?

I seem to have some problems "decoding" the Collector's ratings though.. Essentially I've read through the definitions of all of the values, but unfortunately, that doesn't make me any smarter.. It'd be awesome if you could tell me what values exactly I have to look for.

To remind you: LED side input is 24VDC (after rectifying it) at 2A max., Arduino-side transistor output is the regular 5V.

Greets,
Philipp

I found this thread googleing. I am working on a similar project, A Seeburg 3W100 very simular to yours, the same 24VAC pulse that needs to be read by my arduino.

Have you had any success or progress on this? Any information you wish to share?

Just about any regular optoisolator will do, including the first one you linked to. Things to remember:

  • the peak voltage will be about 24 * 1.414 so choose the series resistor to limit current to below the current rating of the emitter at this voltage

  • connect a diode capable of withstanding that voltage in series with the emitter, to protect it from negative voltage. Alternatively, use a small signal diode connected in parallel, in the reverse direction.

  • voltage rating of the transistor side only needs to be above 5v

  • the factor that does matter is current transfer ratio. For example, if the current transfer ratio is quoted at 20% then this means (roughly) that when there is 10mA flowing through the emitter, the transistor will sink up to 20% of 10mA. So the pullup resistor needs to be high enough for this. I suggest you use the internal pullup in the Arduino. This has a value of around 20k so the transistor only needs to sink 0.25mA. Just about any opto isolator driven with 10mA or 20mA peak on the emitter side should provide this.

Hi Philipp,

I've also got a 3w1 and found this thread while googling. It would be interesting to hear how you got on with your project.

In case you've not worked it out yet I can tell you how the pulses work based on what the 3w1 does (assuming it's more or less the same).

Christoph680:
It basically works like this:
There's letters (A-V, omitting some like O or I) and numbers (0-8), making a total of 160 possible selections. When a combination of Letter+Number has been pressed, a motor moves a contact arm first over numbers 1-8. The contacts are wired in series, so if I'd press 5, pulses would be fired when the contact arm went over 1,2,3,4 and 5. Same thing then happens again for the letters, with a longer pause in between to detect the transition from number to letter.

Not quite. Yep, it starts off with a "rivet" per number (starting with 8 ), if you select 8 all will fire, if you select 1 only the last one will fire (I'm sure you know but, for the benefit of everyone else, the buttons push to break the circuit). Then there will be a strip of rivets(11 on mine) all connected (I can just see the wire behind the selector plate in one of your photos so I assume it's the same) - if these make one long pulse it is an odd letter (i.e. A, C, E etc), if 11 separate pulses are fired, it's an even letter (i.e. B, D etc). Then comes the gap (or pause as you say), the 10 "rivets" after the gap each represent a pair, so if the first rivet is fired it is A or B, the first and second = B or C....

Easiest thing to do to check the pulses without worrying about frying your Ardiuno is to wire a bulb and battery in serial, connect one end to the signal screw and earth the other. For example, If you select A1 you should see nothing, then a single short pulse, then a long pulse, then a single short pulse, if you select V8 a short pulse should fire on every rivet.

You can also use your multimeter to check the resistance between the signal screw and each rivet while selecting buttons (unit powered off but with the cam set to credit mode - means you don't need 4 hands for this).

Christoph680:
Documentation on these machines (especially on the parts you usually wouldn't have to worry about when hooking it up to a regular jukebox) is quite hard to find, so unfortunately I haven't yet found anything about the pulse timing..

From what I can see of your photos it looks very similar to the 3w1 - the manual for that is available at www.kjq.us.com/images/3w1.pdf

Anyway hope this helps someone. Let us know how you're getting on.
Trish

Hey, take a good look at that PDF.. especially the last part about the "Slug rejector" adjustments.

We think we're so smart with the code we write and debug...

I've designed pretty complex automated machinery, but the ingenuity of the people who designed this equipment amazes me.

I gotta get one of these wall boxes for my kitchen!!