connecting Lego dacta 9751(Interface B control lab) to Whadda/OWI robot arm? - Page 1
Forum section: electronics / general

author: htm
author_rank: Regular Contributor
timestamp: July 15, 2021, 08:45:30 pm
content: Hii have this9751 LEGO Technic Interface Bcontroller. It's for the older 9V Lego-Technic parts.On the right side of its connector panel, there are 8 PWM outputs which can switch polarity and has 7 PWM levels.The controller is programmable using a rs232 interface. The original software runs on Windows95, but luckily people made a Python and a Java API.I want to see if i can use it to drive the'whadda' robotarm kit. This robot kit powers the motors with 3 volts. each motor has a ceramic capacitor in parallel which says '104'.I hope this is the right place in the EEVBLOG to post things about my ongoing project..i have a program cycling from1 - left, going from pwm level 0 to 7 with 1 second interval2 - right, going from pwm level 0 to 7 with 1 second intervalWhen i use the dacta controller to drive thestandard 9V DC Lego motors(pics of its internals), then the voltage on the oscilloscope roughly follows the PWM modulation.(looks the line follows the initial on-spike to 9v and then comes down a bit and stays there until the pulse goes off)But when i attach one of the DC motors of the robotarm then the signal on the oscilloscope goes to about zero with spikes looking like depending on the pwm signal. (i've got an Gould OS250TV 10 mhz oscilloscope)i thought, the voltage drawn to 0-ish looks like a short cicruit, soi put a 100 ohm resistor in series between the dacta-motor-connector and the 'whadda' motor, but then the motor doesn't turn.when i put a 10 ohm resistor in place, it starts working at pwm levels 6(90%) and 7(full on)To reduce the spikes, i had tried to a few capacitors Variations in parallel(even though it already has one). the ceramic ones(100u to 1uF) didn't seem to do much.when i put an electrolytic 50V/820uF in parallel(hoping it wouldn't blow up when in reverse, which it didn't) it does soften the whole PWM out to a smooth-ish line, so smooth that i don't see the pwm pulses, it's now jagged line. But it does seem to make the motor turn a bit better (at pwm levels 5 to 7).But still not really good. And the motor isn't responding evenly for left and right turning at same pwm level. when testing i don't have the motor connected and tried making contact when at different levels. When keeping it connected, the motor makes a high-pitch sound, but only starts moving late in level 7. when i connect at level 6 or 7 only, it starts turning almost immediately. i guess it's the big capacitor first taking the energy.i've checked some information on back-emf, but i'm not sure what to try next.Looking at the 9V Lego motor pictures, i see things which i don't recognize.on the2nd pictureit looks like there's some sort of diode inside.on the1st pictureand3rd pictureit looks like there's some sort of cell inside.i'm hoping you can tell me what i'm looking at, and how i can get the robot arm motors properly respondingThx

author: Cyberdragon
author_rank: Super Contributor
timestamp: July 16, 2021, 06:21:40 am
content: I have the earlier model of this arm, and assuming it's the same internals, it should just be driving the motors by simple switches and polarity reversal, I see no reason why an H-bridge would not work.If you have to put a resistor in series, seems like the motors are just too high power in the arm (IDK what the specs are, what batteries does it take? my older one takes Ds which put out a lot more than Lego motors use). Also...that's a 9V max output on a 3V motor, if that were to reach full power it would certainly not be healthy for the motor.Also, don't reverse caps, even if they don't pop immediately it is damaging them if the pulses are high enough.The Lego motor probably just has a thermal cutout.

author: htm
author_rank: Regular Contributor
timestamp: July 16, 2021, 07:16:12 am
content: Hi Cyberdragon,Quote from: Cyberdragon on July 16, 2021, 06:21:40 ami actually just pulled a picture from the internet. im not sure which model it is. This type also uses D type batteries. i got it for 5 euro from an online 2nd hand storeThe seller told me he got it fromwww.conrad.comQuote from: Cyberdragon on July 16, 2021, 06:21:40 amyes, 9V out on 3V motor.. not sure what can be done about it other than replacing the motor?Thanks for warning of the invisible Elco damage.Quote from: Cyberdragon on July 16, 2021, 06:21:40 amwould that be the diode-like thing i guess. any idea what the disc could be?

author: htm
author_rank: Regular Contributor
timestamp: July 16, 2021, 02:41:47 pm
content: (9751 Dacta controller)Sadly i don't have any details on the DACTA controller PWM output(2838c01 Lego Motor)I took one 9V Lego motor apart to see it's components.photo1 - top viewphoto2 - rear viewphoto3 - rear view, with the disc in placephoto4 - shows a black cylinder with part number "15B C451"Based on the partnumber i found printed on the outside of the Lego motor '70586', i found this stackExchange articlehttps://bricks.stackexchange.com/questions/6507/can-i-safely-dissassemble-a-74569-motor-the-old-fast-9v-oneis contains some nice details:The motor itself is a mabuchi 70586,The shiny disk is a resettable thermal fuse aimed at limiting current in the motor if it is stalled for a long time.The black cylinder is a 15V surge suppressor, limiting voltage spikes caused by motor brushes(on mine it says "15B C451")(Whadda robotarm motor)Here are the robotarm 3V motor specificationshttps://owirobot.com/robotic-arm-edge/Operating Voltage3VDCNo Load Current255mA Max.Stall Current3170mAThe whadda/owi robot does 'motor stall protection' by slipping, in case the robot arm can't move. So that would iliminate my need for a thermal fuse, i guess.But a surge suppressor like the Lego motor has, sounds like something useful.Q1:Would a bidirectional TVS diode as 'surge suppressor', with Vr=9.4V and Vc=15.6V, (i looked it up here) be sufficient when i use the 3V robot motor?Q2:Is there a do-able way to adjust the Dacta reversible 9V PWM signal to fit a 3V motor? Or would it be better to select another motor to use in the robot?(so that i can keep using the Lego dacta controller)

author: htm
author_rank: Regular Contributor
timestamp: July 16, 2021, 09:46:31 pm
content: I did a few tests on a Dacta Interface B output port, to see what it could drive.I set its PWM to 100% and measured the voltage drop for the following resistances;Notes;At 47Ω, the voltage shows a steady line on the oscilloscope.At 22Ω, approx 7V on the scope, i noticed a downward wobble. --‿--‿-- of about 1VoltAt 10Ω, approx 5V on the scope, i noticed a full wobble. ⁔‿⁔‿ of about 1 Volt up and 1Volt downLooks like the DACTA interface is built for delivering about 150mA maximum per PWM output port.Is that a fair conclusion?

author: Cyberdragon
author_rank: Super Contributor
timestamp: July 17, 2021, 07:08:16 am
content: You'll need an intermediate motor controller, voltage is too high, current is to low. Some sort of bipolar (differential pair) level shifter with an H-bridge driver should work (you'll need one for each pair). Resitor dividers should work for dropping the voltage, then feed that into a 3V H-bridge driver.

author: htm
author_rank: Regular Contributor
timestamp: July 20, 2021, 11:01:34 pm
content: Do you think i could use some high-current opamp for scaling down the PWM and enabling more current?i'm thinking of an opamp/comparator, because the dacta motor signal has one lead at 0v, and the other pulse between 0 and 9v, and the leads swap function when the motor turning the other way. i thought an opamp would compare both and i could get an easy output(if i have a split power supply [-5,0,+5] )i tried finding some which allow 500mA output, but those were quite expensive already.. am i looking at the right parts?https://nl.mouser.com/Semiconductors/Amplifier-ICs/Operational-Amplifiers-Op-Amps/_/N-4h00g?P=1z0z63xZ1yvbm3z

author: Cyberdragon
author_rank: Super Contributor
timestamp: July 21, 2021, 05:43:37 am
content: Well, sort of, not sure if 500mA will be enough, but you could always use a polyfuse. If you used a 4.5V dual rail supply and an open loop OP-amp, IE in comparator mode, you would get a bipolar level shifter. However, that's still 4.5V to ground, meaning the 3V motor is still overvolted, meaning the current would be higher, and it would still be stressed. Plus, you would need one of these for every motor...ouch...$$$. Also, you would stress out or even fry the OP-amp unless you level shifted anyway, as these are standard rail-rail amps, meaning they can't handle an input overvolt and 9V across the inputs would be greater than the supply rails (as it's referenced to 0V, not 2x4.5V).

author: htm
author_rank: Regular Contributor
timestamp: July 28, 2021, 10:09:58 am
content: Thanks for the infos Cyberdragon.The opamp idea seems quite fragily indeed and too $$.i've ordered H-bridge chips,the L293D(pdf). The D version so that back-emf is handled, because the documentation says:QuoteThe D version can handle 600 mA. I heard they can be stacked to handle more current.im not completely sure how to read the manual though..Chapter 6.1 Absolute Maximum Ratings, about the "Output Voltage, VO" :MINMAXSupply voltage, VCC1(2)36 VOutput supply voltage, VCC236 VInput voltage, VI7 VOutput voltage, VO–3VCC2 + 3 VIs that a warning w.r.t. voltage spikes because of e.g. back emf?

author: Zero999
author_rank: Super Contributor
timestamp: July 28, 2021, 02:39:40 pm
content: I wouldn't recommend the L293, for a 3V motor. It has far too much voltage loss. Use something which is designed for 3V operation, such as the BD6212.

author: htm
author_rank: Regular Contributor
timestamp: July 29, 2021, 01:01:44 pm
content: Hi Zero999Thanks. There's many unknowns for me. Next time i'd better ask here firstI searched for the one you mentioned.https://eu.mouser.com/Semiconductors/Power-Management-ICs/Motor-Motion-Ignition-Controllers-Drivers/_/N-41dum?P=1z0wt2g&Keyword=BD6212&FS=Truei assume for me the HRP7 package is easier to handle than the HSOP25 package.Say i use BD6211HFP-TR which allows 1A.What would be best practice to limit the current in case the motor stals? could be that i'm asking the wrong questions.(the Robot arm motor has: No Load Current 255mA Max. Stall Current 3170mA )Maybe you can point me to some reading?

author: Cyberdragon
author_rank: Super Contributor
timestamp: July 30, 2021, 06:02:55 am
content: TC1508S can handle 1.8A/channel, dual channel, 2.5A peak. It's a small chip, so a heatsink would be needed though.