victor 884 basics

does anyone know the basics of the pmw inputs on this esc? what controls the output speed? for simplicitys sake, say that the power is 12vdc @ 18amp.
what kind of signal controls the speed, duty cycle of a square wave of 5v or voltage itself. as you can guess, i know nothing at all.
(ps, almost forgot, for coast/brake, what do you connect the pin to for which setting?)

It’s the same as a hobby servo…

Period is up to 20ms or so (the crio updates it at 10ms, it can’t be too long or it will time out and stop)

Center is 1.5ms high, with the remainder of the pulse low
Default calibration puts the forward/reverse at 1ms and 2ms, but you could expand that range to about .5ms-2.5ms if you recalibrate it.

The Victor then takes this and converts it back into a signed number, which it uses to determine the output pulse forward or backward. In Brake, it will short both of the outputs to ground, in Coast it will leave the outputs open. The jumper determines this (B or C depending on if you want Brake or Coast)

The only control mode you have is % voltage. Amperage and input voltage can vary as long as they are in the working range.

You probably also want to take a look at the user’s guide on the manufacturer’s website.

i have already seen the user guide from victor, and it didnt help much. il look ito over again just in case. what im realy trying to do is control a 12v motor using a 555 chip. i wire a potentiometer to the r1 and r2 of the timers astable curcuit, then use the knobs to speed up and slow down the motors.(just part of somethin bigger i have in mind for a personal project)

If you want to use a Victor as your speed controller, and a 555 as the source of the control signal, look up “servo tester” schematics. Here’s one that seems pretty simple:

A quick note- whatever circuit you end up using to control the Victor, be sure to make use of the Victors calibration function. This ensures that you get the full operating range regardless of the output limitations of the controller. Typically this is/was used to match a Victor to the sometimes crummy joysticks, but it’s invaluable when using Victors with ‘hobby’ style control systems.

'Course, calibrated Victors drive programmers bonkers…

Sorry for bumping/hijacking an old thread, but does anyone know if its possible to get an even wider duty cycle range out of the Victor without increasing the total period length? For a personal project, I’m using Victors with CIMs, and they don’t seem to have quite the variety of speeds I’m looking for. I get around 12 distinct power settings in the forward direction and about 3 in the reverse–this is definitely a problem that needs fixing. (As a note, when I connect the same CIM to a Jaguar and give the Jag the same inputs as I gave the Victors, I get variance smooth enough that I can’t count distinct speeds going forward, and about five speeds going back.)

Are you using a pulse generator as Alan showed earlier or some other type of generator? The Victor is capable of decoding more than 100 steps in either direction. (127 - dead band - protected bits)

Attached are two PPT slides in jpeg format from my workshops given at Chatsworth, CSUN, El Camino College and BCR Team 294

The V884 is an H-bridge
H-defined: 2 connections each to battery & motor forming an ‘H’ with a switch in each of the 4 legs

… 2open+2closed opposite switches define motor direction by reversing battery connections to motor,

… motor speed is set by the PWM input varying the ON time of selected ON switch from 0% motor stopped to 100% full motor current

… note supplied to the motor is always full battery voltage
… i.e starts at 12.6v (no load) dropping ~1v for every 50A drawn due to battery ~.02ohm internal resistance (Vdrop = 50A*.02ohm = 1v)

(example: for each CIM at start up =133A spec at 12.0v constant)
…for few hundred mS battery Vdrops ~2.6v ea CIM which in turn drops the stalled I in practice (spec Rcim= 12/133=.09ohm)

1 CIM at start up 12.6-2.6 = ~10v/.09=~111A for TBD mS

2 cims ~8v/.09 ea = 89A ea for TBD mS etc up to 4 or 6 CIMs used)

while in neutral (1.5mS PWM 127 +_5 deadband)
jumper selects either all switches OPEN for COAST
for BRAKE two ground side switches close shorting Rotor aka dynamic Brake

Spike switches are mechanical… aka relay

In Victor & Jaguars they are FETS
(3 in parallel in each of 4 places to reduce ON resistance sharing current to reduce P=I^2R heating most of which occurs only during the fast <1uS rise & fall times between 0v & ~12.6v for the applied variable duty rectangular wave if the FET ON resistance is << .09ohm (like ~.009 ohm) It has a positive temp coefficient so it is essential keep the switches cool else they may smoke and burn

example: Team 702 at LA Regional smoked V884… most likely from voltage breakdown ‘punch thru’ spike from highly inductive motor inductance upon switch OFF kickback, shorting the source to drain of a FET = tied directly to the Battery which caused one of the biggest smoke + fire event I’ve seen in 14 years serving FIRST.

Note: Victors & Jag’s have good internal spike protection which rarely fail but when it does it’s spectacular!! ++

I’m curious as to how you have found these numbers. How are you measuring the distinct power settings? Its been too long for me to be able to pull up the numbers, but when we tested the vics and the jags we found MANY more than you indicate.

I’m using the Cypress PSoC 5 PWM functionality to send pulses. I think part of my problem was that I was using just about the default PWM configuration that they have, which was running on 8-bit resolution off a 15kHz clock. I haven’t tested it yet, but I changed the resolution to 16-bit and the clock speed to 3.8MHz, which (since it’s just doing integer math on the clock counts and the “on-times” that I give it) should increase the variance in the outputs while keeping the period about the same. What I’m confused about now is why it gave so many more steps in one direction than the other.

Eric, I have the Victor driving a CIM on a 12:1 P80 using PWM values that I adjusted using input from a linear potentiometer, and I could tell about how many different speeds it was going by listening to the gearbox and watching the output shaft. Not exactly scientific, but it was precise enough for my needs. :stuck_out_tongue: On the FRC robots that I’ve worked on, I’ve never noticed a problem with smoothness of speed changes, so it must be a problem with either how I’m handling the PWM–very likely, I’ve never done anything with PWM deeper than WPILib’s Set()-- or the specific Victors that I’m using.

… I was hoping that you had actually measured the number of speeds. This is an extremely flawed test plan.

8 bits of resolution across the entire servo pulse range gives you less than 4 bits of resolution across the active range. To properly run this test, you need at least 9 bits of resolution across 0.5ms-2.5ms, preferably more. apalrd did a great job of explaining what the signal looks like, and you need your test signal to be more precise that the measurement equipment (the vic/jag).

Calculate what your test signal resolution is, and use that to predict how many steps a “perfect” (infinite resolution) device would give. If you later measure a number of steps within a factor of 2 or 4 of this, your test signal doesn’t have enough resolution.

Second, you need a better way of actually measuring the number of steps. Your ears just ain’t going to cut it. An honestly, I wouldn’t even really trust a method that involves measuring the rotational speed: That would put the motor’s imperfections into your measurement of the speed controllers’ quality.

Stick an oscilloscope across the outputs and measure duty cycle. Plot output duty cycle vs input duty cycle. You should get a piecewise step function. Again, you should have at least 4 input duty cycle points per step, or the test is flawed.

There wasn’t actually any measurement involved, as I wasn’t actually testing how many steps the Victor gave. I had just calibrated the Victor and was turning the pot when I noticed it jumping. The numbers I posted above were merely meant to illustrate the general problem that I was having of an extreme lack of precision in one direction, not as hard data on what was actually happening. Sorry for any confusion there, and thanks for the tips on how to actually measure it.