I have been experimenting with EMC2 using servos. I have been trying to get a 3axis system buildt but one step at a time. So far I have managed to get one Axis with a full servo using the ETCH.hal example. This has worked well however the feedback from the computer is not as fast as I would like and the motors end up taking off. I looked into some options and found the Pluto Servo board http://www.knjn.com/ShopBoards_Parallel.html
I ordered it and installed the firmware "pluto_servo.rbf" which is in the new version of EMC2 ver 2.1.1. I have got AXIS to load, however when I connect the encoder signals I get no feedback. And nothing counts on the screen. Im not really sure if its the wiring I am using the diagram found here http://emergent.unpythonic.net/files...uto_servo.html . I connected the first inputs QA0,QB0 GND for the encoders and UP0,DN0 for the motor.
One thing which might be the problem is the HAL file I'm working with. It is the included one in EMC2 for the pluto servo. Im not that great at the writing of the HAL files i managed to modify the ETCH to get it to work but the Pluto on is another story. I know that the Pluto Servo Example is for a lathe but the inputs and motor signals should be the same for the most part for testing.
If anyone has any experience in writing a HAL file or has written a 3axis one for the pluto any insight would be greatly appreciated. I'm not really sure how to setup this system but I wanted to keep making progress.
couple things to check
-Are you hooking power to the encoder - you say you hooked up a,b and gnd.
-Are your encoders open collector? if so you will need pull up resisters on a and b.
-I have had issues with my portable that I have to hook the pluto directly into the printer port. Any type of extention cable causes it to not work or not work correctly.
-you could try loadrt pluto_servo epp_wide=0 <- it defaults to 1 and it could be your hardware isn't 'wide'
-On that note - is your printer port epp compatable - check your bios
I have a test hal file that will run a sine wave into pwm0 - pwm0 is also hooked to the power led on the pluto - it will get brighter and dimmer. It will run 2 halmeters - one will show the value going to the pwm0 pin and also the count from your encoder hooked to encoder0. http://www.electronicsam.com/images/...tart/pluto.hal
save it to your home directory
then open terminal and type..
halrun -I pluto.hal
Ok I managed to get the encoder counting ... my mistake in not changing the parallel port to EPP mode in the BIOS. I tried the pluto.hal file again in AXIS and it works for the counting. I didn't need to change the EPP mode in the HAL file like you suggested.
The motor is another story. I looked in the pluto.hal file and it seems to me that the PWM on the motor is running in "up/down" mode and I need it to run in "pwm/dir". I've looked in the documentation and it seems that it can run in this setup. Again I think that this is a HAL programming challenge on my part, if you have any setups running in this mode or can tell me how to change it that would be great. Just out of curiosity are you running a 3axis machine setup? How is your machine setup?
Any other input would be great as now im one set closer to getting this to work.
Yes. The pluto defaults to up/down mode. to change it to pwm+direction you need to add these lines to your hal file.
setp pluto-servo.pwm-0-pwmdir TRUE (for each pwm out 0,1,2,3)
I don't have anything setup yet. Have really just been testing it. If you get stuck - I would get on irc.freenode.net channel #emc. Actaully if you go to http://www.linuxcnc.org/index.php?op...emid=8&lang=en
You can use the java irc client. Usually there is someone on that can help you.
I would start with an existing servo config and modify it to work with the pluto.
I managed to get the PWM + Dir through the Terminal Window but i'll make a line in the HAL file.
I did connect everything and it seems that I can get the motor to servo. The only problem I have found now is the encoder doesn't seem to keep up. I can turn it by hand and see it change then it seems to jump up in counts. Not really sure whats going on? Things are almost working now I just need to figure out this encoder problem.