Yeah, I was wondering about that. I thought it was my problem - that somebody else has it makes me think it’s not. IFI might have goofed, you never know…
Well…who knows how many times we have hooked our compressor up “backwards” then. The pneumatics manual gave a warning about not putting reverse voltages through the compressor, but i have not seen any problems (the PSI steadily increases, regardless).
I have had the same problem. However, I dont believe the aliases are wrong but rather the LEDs are incorrect. Red now means the M+ is at 12v (M- gnd) and Green means M- is at 12V (M+ gnd). I say this beacause I am using a single solenoid which is spring return, so I only power M+, which the red wire of the solenoid is hooked up to. I simply toggle that relay’s fwd bit to operate the solenoid and it works. I would not go changing the polarity of your compressor because reverse polarity could seriously damage it.
the solonoids are not polarity sensitive - if current flows through the two wires they will trip
and I would be really surprized if the compressor cares which way it runs - the motor makes the piston go up and down - I dont think it cares if it goes down and up instead.
I believe the single solenoid was connected to an external ground not on the spike (as we generally do for all our double or single solenoids, but I did not wire it personally). I will have to take a good look at the program, wires, and pneumatics to figure it out.
Quote from the 2004 Pneumatics Manual:
“Ensure that the relay is programmed to provide “forward” power only to the
compressor. Do not reverse the compressor!”
I haven’t hooked up a multimeter to the relays yet, but I’m almost 100% postive you’re incorrect about this. If this were true, it would imply that the robot controller not only tells the relay what polarity to set itself to, but what color to light the LED to. This would require 4 bits of information to represent, and we’re attaching the relay to the controller with 2 signal wires. I seriously dobt they implemented a serial communication protocol between the controller and relay.
The claim you made holds some incredibly serious implications… You might want to back such claims up in the future, because even though I’m sure you’re wrong, I’m going to have to test this myself because it’s not worth blowing out components a week before ship.
I tested the relays with the multimeter - when I set relay1_fwd to 1, the spike turns red and the multimeter reads -12v. When relay1_rev is 1, it’s green and the multimeter reads 12v. This seems backwards to me…
I also checked a relay with a multimeter today (as I said I would last night) and came the to the same conclusion as steven114. With relay5_fwd set to 1 (relay5_rev = 0 and LED was red), the multimeter common probe on the M- of the spike connected to relay output 5, and the multimeter voltage postive probe connected to M+, the multimeter read -12V. The relay output cable was connected correctly. I also checked the same spike with the common probe on ground. I read 12v on the M- and 0v on the M+. It seems that the IFI aliases are incorrect.
I was wrong about this and my sincere apology to anyone I may have confused. My knowledge of the matter was based on a false assumption. The single solenoid I was basing this on was wired to the M- of the Spike. It was the only one of our 5 solenoids (2 double, 3 single) wired without an external ground (it has been rewired now).
I have rewritten ifi_aliases.h to change the aliases from fwd to rev and visa versa. I loaded the modified program into my bot and confirmed that relay 5 (my compresser) was getting +12V. A zip file with my new ifi_aliases.h file is attached to this post. Hope it helps. I am posting from MOE HQ workshop (not my dorm as usual) so I have get back to work now. Once again I’m sorry.
All spikes run backwards (Red light when relay forward bit is set). Relay 5 was just the one I tested beacuse it is my compressor and the easiest to test. I needed to comfirm that the red LED on on these new spkies was correct and the compressor was running on -12V (I should have checked that before posting anything but that was my mistake). The single solenoid I was previously talking about is now wired correctly to M+ and external ground. It runs perfectly by setting relay3_fwd=1 in my corrected (ifi_aliases.h) code.
And as I prevoiusly stated
The relay output cable was connected correctly.
and that applies to all the 3-pins cables. Unlike before, I have now check and double checked every part of the system (program, electrical, pnematics). Before I was operating with only the knowledge of the program (I am in charge of that) and the wiring directions I gave the electrical team.
There are two reasons why the manufacturer of the compressor would like the polarity observed for the compressor motor.
A) The fan in the motor was designed to move the most air with the least noise/power when turned in one direction only(axial fans). That direction will be when you observe the correct polarity. (result- motor will run cooler and longer)
B) Almost all series wound DC/AC universal motors or PM DC motors have the commutator shifted with respect to the main magnetic field to minimize commutation arcing. So they are most efficient when turning in the direction of the default polarity( e.g. the recommended polarity). This is the reason why the motor will not produce the same rpm/power in either direction. (Also, a radial fan operates equally well in either direction, an axial fan (like the compressor has, does not.) When such a motor is reversed, the commutation can be seen to arc more than the forward case, this arcing will cause the brushes and commutator life to be reduced, the commutator temperature to rise. Further, the arcing represents energy lost and hurts the overall efficiency of the motor. (Efficiency is what you get/what you pay for…)
Motors can be designed to work the same in either direction, but at an overall loss in efficiency.
So, bottom line: wire the compressor backwards will work, but will run hotter, use more power and produce less work, and will have a shorter life than normal.
We at Innovation First have confirmed the problem you have noticed. The root cause is that the silkscreen labels (REV/FWD/GND) on the Robot Controller are incorrect, and the aliases in the Default Code were set to match them. The simplest fix is to swap the reverse/forward aliases in ifi_aliases.h, as some of you have already done, and to ignore the REV/FWD/GND labels.
Another option is to swap the connections on the M- and M+ outputs of the Spike Relay Module to achieve the correct polarity.
New Default Code with these aliases fixed will be on our web site soon. A note will also be placed in the 2004 Robot Controller Reference Guide regarding the incorrect labels.