586,096 active members*
3,523 visitors online*
Register for free
Login Register
HEIDENHAIN Forum
Open Source Controller Boards > PIC Open source Servo Driver Schematics development?
Results 1 to 20 of 91
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n Rossz\r\n \r\n
\r\n Rossz is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Join Date
Mar 2004
\r\n \r\n \r\n
Posts
8
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n

\r\n Question PIC Open source Servo Driver Schematics development?\r\n

\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Hi Everyone!
\r\n I like this heidenhain/forum, it gives great advices about building machines, specially the meckanical part. What we need here is a good DIY servo driver. Of course open source schematics. The open source program is already available, Emc for instance. It is not wery likely that this gonna happen soon, but we have to push this idea around. Until money is in question, noone will give any half made
\r\nservo driver projekt in public domain. But it will happen in near future, because the technological changes. Everything becomming more affordable. In July 2000 Nuts&Volts there was published a cnc retrofit for a small tabletop mill. The electronics uses Pic chips. From the picture I can see 3 chips, one marked as Pic. It talks about another converter board not pictured. They use Pitman motors14204 continous torq is 26onc/inch. More info is on www.jrkerr.com There is a software for serial port cnc retrofit.
\r\nNow my question is, can it be made something simular, for first time with smaller motors and put in public domain?
\r\n The first clock in the world was made in China in 10Th century. But only the story survived, because the emeror kept it secret. Lather in 15th century the Italians made a clock and a watch, which a monk took it to the Cheneese emperor. He was amused, they newer see anything like that. Since the first clock was made the industrial revolution started. Can you imagin the world here all the medicine would be available and free? It wouldn\'t be sick people.
\r\nSo lets start our industrial revolution in making an open source servo driver.
\r\nThank you for your support!\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n'; pd[25276] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #2\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n cncadmin\r\n \r\n
    \r\n cncadmin is offline\r\n\r\n \r\n \r\n Community Moderator\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Mar 2003
    \r\n \r\n \r\n
    Posts
    6855
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Welcome to the site.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[41457] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #3\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n tachus42\r\n \r\n
    \r\n tachus42 is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    169
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n I have a half finished design I\'m willing to contribute. Has been tested and works but needs more testing, a few rough edges smoothed over and documentation.
    \r\n
    \r\nFeatures: Avr microcontroller - much more power than a pic (1 controler can cope with 3 axises) and only a few dollars more.
    \r\nLCD and Key pad to enter PID values and jog without controller connected.
    \r\nSeperate driver board with 3 18200 hbridge driver chips giving 3 amps at 36 volts.
    \r\n
    \r\nAttached are Eagle PCB files for the Controller and motor driver boards. If there is any interest I\'ll rustle up the source code to go with them.\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n
    \r\n Attached Files Attached Files\r\n \r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n \r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[72965] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #4\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n shahid\r\n \r\n
    \r\n shahid is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Feb 2005
    \r\n \r\n \r\n
    Posts
    1
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Hi
    \r\nI am shahid from saudi arabia and working on linear motion can u please send me the source code will talk with u later my email is [email protected] or [email protected]\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[198662] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #5\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n danadams\r\n \r\n
    \r\n danadams is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Aug 2006
    \r\n \r\n \r\n
    Posts
    1
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Quote Originally Posted by tachus42\r\n View Post\r\n
    \r\n
    I have a half finished design I\'m willing to contribute. Has been tested and works but needs more testing, a few rough edges smoothed over and documentation.
    \r\n
    \r\nFeatures: Avr microcontroller - much more power than a pic (1 controler can cope with 3 axises) and only a few dollars more.
    \r\nLCD and Key pad to enter PID values and jog without controller connected.
    \r\nSeperate driver board with 3 18200 hbridge driver chips giving 3 amps at 36 volts.
    \r\n
    \r\nAttached are Eagle PCB files for the Controller and motor driver boards. If there is any interest I\'ll rustle up the source code to go with them.
    \r\n \r\n
    \r\n
    \r\n
    Hi
    \r\n
    \r\n Yes, I woud be interested in the source code for attemt at further develpment of your driver. Thanks\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[41488] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #6\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n fyffe555\r\n \r\n
    \r\n fyffe555 is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    May 2003
    \r\n \r\n \r\n
    Posts
    550
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n the great thing about this site is that sooner or later at least two people have a similar idea.... and contribute.
    \r\n
    \r\nI\'ve been playing with a pic based servo driver for a while. Microchip.com have Application notes on the subject. Still early days. Have a working board but no step direction input yet. Used 18245\'s so thats 3a 55v. I\'ll see if I can tidy it up a bit and put it here but It\'s not going to be of much use right now.
    \r\n
    \r\nWent down a dead end trying to use a stepper motor as an encoder. Got a small stepper and a pic to produce encoder signals from a turning 1.8 degree stepper, but it only works reliably for fairly slow speeds. After that it\'s a dirty signal which looses position, which defeats the object somewhat. A hobby priced source of encoders would be nice.
    \r\n
    \r\nOne thing that was interesting while looking at J Kerr servo stuff and having the Microchip AN\'s with the sample circuits on the desk is that they\'re *very* similar. Maybe a product of the components but....
    \r\n
    \r\nRutex appear to use the Pic in thier product too in much the same way.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[41498] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #7\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n CNCAddict\r\n \r\n
    \r\n CNCAddict is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Jun 2003
    \r\n \r\n \r\n
    Posts
    125
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n I\'m very interested in a DIY servo controller. So Tachus42, I would love to see the source code and any info you would have to make reproduction easier. What is the max encoder pulse rate in your design? Oh, and if anyone wants me to host their controller design on my webpage, I would be more than happy do so.
    \r\n
    \r\nDavid B.
    \r\n
    \r\nwww4.ncsu.edu/~dsbloomf\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[47869] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #8\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n Ito-Brazil\r\n \r\n
    \r\n Ito-Brazil is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Aug 2004
    \r\n \r\n \r\n
    Posts
    170
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Amazing! I hope you be heare in the future, maybe on my 4rth CNC !!!!!
    \r\n
    \r\nThanks fou your ressearch and sorry about my english.
    \r\n
    \r\nIto-BRAZIL\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[47925] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #9\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n CNCAddict\r\n \r\n
    \r\n CNCAddict is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Jun 2003
    \r\n \r\n \r\n
    Posts
    125
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Ito, whom where your comments directed too? ESjaavik, I don\'t really need the motors to move that fast, but I really want a huge overhead in encoder speed to cover every application. I now have my motors setup and should be able to test encoder rates shortly.
    \r\n
    \r\nDavid B.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[41501] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #10\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n Greg Fill\r\n \r\n
    \r\n Greg Fill is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Mar 2004
    \r\n \r\n \r\n
    Posts
    37
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n I too have been playing and have completed a PIC based microstepping controller that I will be sharing shortly. I am just finishing up the Visual Basic front end that allows it to be programmed from the computer.
    \r\n
    \r\nFor a DIY project I stayed away from any of the IC based chopper controllers and did everything discreetly. This way I am not bound to a maximum current. If I need more current I just up my FET rating. I am running my hardware on my prototype machine 60 V @ 8Amps. My board supports Unipolar / Bipolar steppers and a Servo motor with and encoder input. I have not played with servos yet but I too read the PIC article. I want to get servos working as well but I am not sure how the STEP/DIR inputs are used with a servo. Do people just actually use the servo like a stepper? A step pulse steps the servo one small increment.
    \r\n
    \r\nfyffe55 you are right that a small stepper is not good as a position encoder. It is too slow and the output stops when the motor stops moving. I posted earlier about using a small stepper as a jog encoder and in this mode it works great. I use the small stepper motor to replace a mechanical hand crank. Turn the small stepper motor and the axis moves the requested direction. Good for quick manual positioning without a computer connected. You can make a better position encoder by drilling a disc with a hole every 0.9 degrees and using an IR RX/TX pair. The encoder resolution can be increased by using a standard 4X decoding or gearing so the encoder wheel spins faster than the motor or both.
    \r\n
    \r\nAs for the J Kerr board, one thing I learned a long time ago is that inspiration comes from many places and things will be copied if it will make money.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[41523] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #11\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n ESjaavik\r\n \r\n
    \r\n ESjaavik is offline\r\n\r\n \r\n \r\n Banned\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    678
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Greg: Yes, it\'s quite common that servo drives take step/dir input. All I have does that. Internally it counts the desired-position value up/down based on step/dir. This means the drive must do the torque, velocity and position loops computations internally. With a voltage input drive often doing just the first or the two first.
    \r\n
    \r\nAnd the step/dir servo can take pulses at high speeds. If the motor is not able to follow, it will not loose the end position. It will just loose position on parts of it\'s journey there. Not like a real stepper where a lost step will never be regained. (Unless by chance it looses the same number of steps going in the other direction.)
    \r\n
    \r\nHere is a simple approach to the main components, except step/dir input: http://elm-chan.org/works/smc/report_e.html\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[41534] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #12\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n Greg Fill\r\n \r\n
    \r\n Greg Fill is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Mar 2004
    \r\n \r\n \r\n
    Posts
    37
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Thanks that makes sense ES. The motor will resolve its final position based on commanded number of steps, direction and the encoder feedback. I guess there is probably no need to set an acceleration profile in the computer front end, you just feed the step pulses as fast as the controller can accept. In my case probably only 80 KHz or 160 kHz. So to say it another way the controller uses the constantly arriving step pulses to dynamically set a position to reach and uses the PID algorithm to get there. Is there any type of feedback the controllers and PCs use so that the front end controller will stop sending step pulses until the commanded position is reached?
    \r\n
    \r\nie goto x = 3, y = 2 then wait until it gets there before sending x = 4, y = 1
    \r\n
    \r\nI will read the document you mentioned.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[41598] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #13\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n tachus42\r\n \r\n
    \r\n tachus42 is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    169
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Ok source code for my servo controller in the attached file.
    \r\nIt\'s probably not very clear whats going on at a first look - i didn\'t comment the code with other viewers in mind. Basically all the important stuff is handled by the interupt handlers at the top of pid.c. The SIG_OVERFLOW0 handler gets excuted at a 40kHz rate and reads the encoders and updates a 8 bit postion.
    \r\nThe SIG_OVERFLOW2 handler runs at 400 Hz or every 2.5ms and transfers the 8 bit encoder and target counts into their 32 bit equivalents and then calls DoPID where the PID algorythm takes place and the PWM drive to the motors is updated.
    \r\n
    \r\nThe SIG_INTERRUPT0-2 interrupts are excuted on the falling edge of a step pulse and read the corresponding direction input and update 8 bit target postion.
    \r\n
    \r\nThe rest of the code Initialises the timers and Interrupts etc and Drives the LCD reads the keypad does the menu etc.\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n
    \r\n Attached Files Attached Files\r\n
      \r\n
    • \r\n File Type: zip\r\n servo.zip \r\n(6.6 KB, 36 views)\r\n
    • \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n \r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[41612] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #14\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n CNCAddict\r\n \r\n
    \r\n CNCAddict is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Jun 2003
    \r\n \r\n \r\n
    Posts
    125
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n tachus42,
    \r\n Do you want me to put this on my webpage so it can be referred to more easily? I am trying to learn as much as I can about AVR\'s, and this looks like a fun project.
    \r\n
    \r\nDavid B.
    \r\n
    \r\nwww4.ncsu.edu/~dsbloomf\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[41627] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #15\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n tachus42\r\n \r\n
    \r\n tachus42 is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    169
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n David feel free to put it up on page jusr credit me, Stephen Dredge ( not that i think the code is that worthy)
    \r\nThe code was compiled with the gcc-avr http://winavr.sourceforge.net/
    \r\nAnd I use pony prog to program the avr http://www.lancos.com/prog.htm with the (STK200/300) parallel port interface descibed on the pony prog page.
    \r\nThe LCD Port will connect to a standard 2 * 16 LCD with a ribbon cable and the keypad is a 4*4 matrix.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[41634] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #16\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n ESjaavik\r\n \r\n
    \r\n ESjaavik is offline\r\n\r\n \r\n \r\n Banned\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    678
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Quote Originally Posted by tachus42\r\n \r\n
    \r\n
    It\'s probably not very clear whats going on at a first look - i didn\'t comment the code with other viewers in mind.
    \r\n \r\n
    \r\n
    \r\n
    I\'ve had the doubtful pleasure of reopening my own code years later. That taught me to try to comment for other viewers. :frown:
    \r\nYou might say I\'m not the same as I used to be.
    \r\n
    \r\nThanks for sharing the code. What device do you use?
    \r\nMyself I have a fairly full setup for older AVR\'s (STK500 + ICE200). But the only design that came past the qty. one breadboard stage was with ATtiny15 where the ICE will do nothing.
    \r\n
    \r\nWould it be possible to see the schematics in .PDF .GIF or some other easily viewable format?\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[104912] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #17\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n gabrielus\r\n \r\n
    \r\n gabrielus is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Oct 2004
    \r\n \r\n \r\n
    Posts
    1
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n do you have any documentacion about this hardware?
    \r\nand what is the software can i use with this hardware?\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[41633] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #18\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n ESjaavik\r\n \r\n
    \r\n ESjaavik is offline\r\n\r\n \r\n \r\n Banned\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    678
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Quote Originally Posted by Greg Fill\r\n \r\n
    \r\n
    Thanks that makes sense ES. The motor will resolve its final position based on commanded number of steps, direction and the encoder feedback. I guess there is probably no need to set an acceleration profile in the computer front end, you just feed the step pulses as fast as the controller can accept.
    \r\n \r\n
    \r\n
    \r\n
    Yes, and no. Let\'s say you want to mill a large circle. Then you feed in all the pulses as fast as possible. The motors will start out in the right direction. But very soon the \'puter will be done feeding in all the pulses and the desired position will again be where it started. But the slow motors/mechanics will all the time try to move towards the desired position. So you will not get a circle, but just a small doodle.
    \r\nThat\'s the "no". You need to wait out at least some of each incremental movement.
    \r\nThe "yes" is that each incremental movement can be pulsed out as fast as your controller can receive them. As the pulses are not used to control the motor, there is little constraint in the timing. This makes it possible to put less realtime constraints on the PC doing the machine control task. It can output a bunch of pulses in succession, and do other computational tasks interrupting the pulse stream.
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Quote Originally Posted by Greg Fill\r\n \r\n
    \r\n
    In my case probably only 80 KHz or 160 kHz. So to say it another way the controller uses the constantly arriving step pulses to dynamically set a position to reach and uses the PID algorithm to get there. Is there any type of feedback the controllers and PCs use so that the front end controller will stop sending step pulses until the commanded position is reached?
    \r\n
    \r\nie goto x = 3, y = 2 then wait until it gets there before sending x = 4, y = 1
    \r\n \r\n
    \r\n
    \r\n
    The feedback is up to you when you design the drive. You can implement a "move done" as a status output to the PC. But I use them in stepper-emulating mode. That means the PC thinks it feeds a stepper drive. And it calculates each move as for a stepper. But as I wrote, without the timing constraints down to the spacing of each step pulse. If using a move-done output on the drive, the control software must handle this. I don\'t know about others, but neither EMC nor Mach2 does this.
    \r\n
    \r\nOne output you should have is a following error output. The drive knows the commanded and the current position. When the difference is greater than a configurable amount, you output a following error. The PC would typically use this as a fault input. It could mean that your axis have met a solid object along the path that should not have been there. Some following error must be allowed, as a PID loop with no error is an infinite improbability.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[65322] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #19\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n zekk_2\r\n \r\n
    \r\n zekk_2 is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Feb 2005
    \r\n \r\n \r\n
    Posts
    11
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Hi
    \r\nThere seems to be somthing missing from this cirut. Where is the 4 X Zenadiodes hooked up to??(left of 4 X U3)?
    \r\nregards
    \r\nZekk_2\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[83697] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #20\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n zekk_2\r\n \r\n
    \r\n zekk_2 is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Feb 2005
    \r\n \r\n \r\n
    Posts
    11
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Quote Originally Posted by ESjaavik\r\n \r\n
    \r\n
    Greg: Yes, it\'s quite common that servo drives take step/dir input. All I have does that. Internally it counts the desired-position value up/down based on step/dir. This means the drive must do the torque, velocity and position loops computations internally. With a voltage input drive often doing just the first or the two first.
    \r\n
    \r\nAnd the step/dir servo can take pulses at high speeds. If the motor is not able to follow, it will not loose the end position. It will just loose position on parts of it\'s journey there. Not like a real stepper where a lost step will never be regained. (Unless by chance it looses the same number of steps going in the other direction.)
    \r\n
    \r\nHere is a simple approach to the main components, except step/dir input: http://elm-chan.org/works/smc/report_e.html
    \r\n \r\n
    \r\n
    \r\n
    Hi Einar
    \r\nRef. your link to :Here is a simple approach to the main components, except step/dir input: http://elm-chan.org/works/smc/report_e.html
    \r\n
    \r\nCan you download the software that is posted on http://elm-chan.org/works/smc/report_e.html via the serial I/F on the schematic, or do you need a separat burner to download the software??
    \r\nRegards
    \r\nZekk_2\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[41868] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #21\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n tachus42\r\n \r\n
    \r\n tachus42 is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    169
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n I must be one of the few people on the planet without a digital camera but give me a few days and I\'ll see what I can do.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[43686] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #22\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n slp_prlzys\r\n \r\n
    \r\n slp_prlzys is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Mar 2004
    \r\n \r\n \r\n
    Posts
    222
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n I don\'t know if you guys have seen this, I actually
    \r\nposted this before but here it is again.
    \r\n
    \r\nJust trying to contribute somehow.
    \r\n
    \r\nEDIT: I just found out it\'s already been posted, sorry!\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n
    mhel
    \r\n"This is intentionally left blank."
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[47196] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #23\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n CNCAddict\r\n \r\n
    \r\n CNCAddict is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Jun 2003
    \r\n \r\n \r\n
    Posts
    125
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n tachus,
    \r\n Any updates? As soon as you can get me some pictures I\'ll post them on my page with the rest of the info.
    \r\n
    \r\nThanks,
    \r\nDavid B.
    \r\n
    \r\nwww4.ncsu.edu/~dsbloomf\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[47204] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #24\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n tachus42\r\n \r\n
    \r\n tachus42 is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    169
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Sorry for the low quality pic\'s it\'s the best i can do at the moment.\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n\r\n \r\n
    \r\n Attached Thumbnails Attached Thumbnails\r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n 

    \r\n\r\n
    \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n
    \r\n \r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[47482] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #25\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n CNCAddict\r\n \r\n
    \r\n CNCAddict is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Jun 2003
    \r\n \r\n \r\n
    Posts
    125
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n WOW, thanx alot. I\'ll post them on my webpage ASAP. I\'ve been working on my own PWM output servo control with a friend since we felt it was easier than deciphering someone elses code. Right now it\'s running a servo just fine, but we still have to implement a little better Integral term algorithm and also figure out someway to calcualate the max encoder speed. Right now the encoder section is only 30 lines or so long in assembly and with the 4 or so clocks needed for the interrupt, it should be pretty fast. I also think we\'re gonna try some AVR overclocking to see just how fast these chips can run.....Keep you posted.
    \r\n
    \r\nDavid B.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[47503] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #26\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n tachus42\r\n \r\n
    \r\n tachus42 is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    169
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n You will need to place a limit on how big the intergral term can get other wise it can build up and swap the others. I didn\'t use interupts for the encoder - just polled it at 40 kHz and read them all at once. The problem I saw was if the encoder was sitting right on the edge of a transition you could get a continous stream of encoder interrupts and not get any time to do anything else.To keep the speed up i kept a 8 bit count for the step/dir interrupt and encoder polling and then transfered them to a 32 bit counter periodically before they could overflow.
    \r\n
    \r\nAre you writing the whole thing in assembler or just the interrupts? After looking at the C generated code I decided that I couldn\'t really save much by using asm.
    \r\n The encoder polling routine was 103 instructions (for all 3 encoders) and the step/dir 23 instructions, assuming 2 clocks per instruction the total, for 3 step interrupts and a encoder poll is about 11uS with a 16 MHz clock. At 40 kHz which is as fast as most driving software will go 44% of the processor time is being used so there is a bit to spare.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[47534] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #27\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n jfong\r\n \r\n
    \r\n jfong is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    733
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n tachus42,
    \r\n
    \r\nI\'m a little bit confused on your 40Khz encoder update. I have some 500 line encoders, with 4x quadrature, that is 2000counts/per rev. I calculate a maximum rpm of about 1200. Have you done some testing to see what the real world max rpm is without any miss counts? There seems to be a much greater chance of missing counts when polled vs. interrupts.
    \r\n
    \r\nI quickly looked over your code but since it isn\'t commented, I couldn\'t easily tell if you are doing 1x or 4x quadrature decoding.
    \r\n
    \r\nJim\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[47539] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #28\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n tachus42\r\n \r\n
    \r\n tachus42 is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    169
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n I took the encoder polling rate from the expected max step rate because in practice you can\'t really have the motor running any faster than this (well unless you multiply the steps with the micro). The motors i\'m using have 200 line encoders which gives 3000 rpm with quadrature decoding.
    \r\nThe encoder polling rate should probably be a little higher than this to allow for lines which aren\'t 50% wide, but thats just a small amount of tuning when i finally get everything together.
    \r\nThe polling is started by a timer interrupt so it allways happens on time. I did consider reading the encoder on a pin change interrupt but was put off by the transistion problem and figured 1 interrupt would be faster than 6 considering that they would share a interrupt you would have the overhead of testing them all anyway to see which one had changed. If you are not using quadrature decoding the transition problem ( which might not exist, just being carefull ) isn\'t a problem of course.
    \r\n
    \r\nI didn\'t see any problem with missed counts with mach 2 at its max step rate.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[47561] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #29\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n CNCAddict\r\n \r\n
    \r\n CNCAddict is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Jun 2003
    \r\n \r\n \r\n
    Posts
    125
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n We are writing the entire program in C because assembler would drive us crazy before we ever got anywhere. I\'m still not sure about the problem with the motor sitting on an encoder, haven\'t really thought about it much. Right now we are running just one motor per MCU because I have 2500 count encoders and I think it might be too much for the AVR at 6000rpm. I am also going to add a step multiplier so the board can be used with PC driven software like Mach2 CNC. We also might provide an option to run the encoder in 2x or 4x mode by poling just one encoder signal state change for 2x or both for 4x. This would give the user some more to play with. When we get this board finalized we\'re probably going to sell them for a reasonable price with more features than the competition. But this will only be a +-10V PWM drive, so you will need an appropriate amplifier to drive a motor. In the future we might design the motor drive portion also, but right now this is enough work .
    \r\n
    \r\nDavid B.
    \r\n
    \r\nwww4.ncsu.edu/~dsbloomf\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[47575] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #30\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n tachus42\r\n \r\n
    \r\n tachus42 is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    169
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Im not sure the motor sitting on a encoder transistion is a problem either. If you use a schmitt trigger on the input it should be ok but I thought i would just avoid the possibility.
    \r\n500 line encoders and 6000 rpm seems a bit tricky it only gives you 80 clock cycles to get everything done. You might need to use a external counter.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[47644] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #31\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n CNCAddict\r\n \r\n
    \r\n CNCAddict is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Jun 2003
    \r\n \r\n \r\n
    Posts
    125
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n I think you\'re right about cutting it close. Wouldn\'t give the chip much time to do anything but read encoder pulses. It might be cheaper to set up a tinyAVR as the "counter". This code could be very very short and I\'m sure it wouldn\'t have trouble keeping up. And at $3 each, it\'s not a bad deal. Still need to check the prices of counter chips, they would save us the time of not having to program another AVR per board.
    \r\n
    \r\nDavid B.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[47646] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #32\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n ESjaavik\r\n \r\n
    \r\n ESjaavik is offline\r\n\r\n \r\n \r\n Banned\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    678
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Quote Originally Posted by tachus42\r\n \r\n
    \r\n
    Im not sure the motor sitting on a encoder transistion is a problem either. If you use a schmitt trigger on the input it should be ok but I thought i would just avoid the possibility.
    \r\n500 line encoders and 6000 rpm seems a bit tricky it only gives you 80 clock cycles to get everything done. You might need to use a external counter.
    \r\n \r\n
    \r\n
    \r\n
    A schmitt trigger alone will not help you at all. It\'s probably already there, inside the encoder if you use a commercial one.
    \r\n
    \r\nWhat you need is a low pass filter followed by a schmitt-t.
    \r\n
    \r\nWhy do you need 6KRPM!? Motors with that high speed don\'t have much torque so I suggest you use motors with max 3KRPM, even 1500 is fine. A motor of the same power (and appx size) at 1500RPM will have 4 times the torque as the motor delivering the same power at 6KRPM. You\'re still beating the steppers by a mile.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[49620] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #33\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n DragnsBane\r\n \r\n
    \r\n DragnsBane is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Sep 2004
    \r\n \r\n \r\n
    Posts
    40
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Just thought everyone would like to know the link ESjaavik posted www.elm-chan.org/works/smc/report_e.html was recently updated by adding the step and direction inputs.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[49642] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #34\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n ESjaavik\r\n \r\n
    \r\n ESjaavik is offline\r\n\r\n \r\n \r\n Banned\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    678
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Re: Encoder sitting undecisively on a transitition.
    \r\n
    \r\nThis will only happen when the motor is at standstill. So why not apply some "furry logic": If the speed is Very Slow, then switch from interrupt driven to polling. It is physically impossible for the motor to accelerate too fast for the program to change strategy. Especially since it "knows" it is going to accelerate.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[49668] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #35\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n cncadmin\r\n \r\n
    \r\n cncadmin is offline\r\n\r\n \r\n \r\n Community Moderator\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Mar 2003
    \r\n \r\n \r\n
    Posts
    6855
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Quote Originally Posted by ESjaavik\r\n \r\n
    \r\n
    Re: Encoder sitting undecisively on a transitition.
    \r\n
    \r\n"furry logic":
    \r\n \r\n
    \r\n
    \r\n
    Is that "fuzzy logic"?\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[49643] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #36\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n ESjaavik\r\n \r\n
    \r\n ESjaavik is offline\r\n\r\n \r\n \r\n Banned\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    678
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n @DragnsBane: That link just sends you to a Domain Pusher.
    \r\nHere is the correct address: http://elm-chan.org/works/smc/report_e.html
    \r\n
    \r\nHint: Use cut-and-paste from the address line of the browser.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[49667] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #37\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n DragnsBane\r\n \r\n
    \r\n DragnsBane is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Sep 2004
    \r\n \r\n \r\n
    Posts
    40
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n sorry about that sometimes mt typing skills leave something to be desired.
    \r\n
    \r\nso theoretically, these could be attached to a BOB and you would have a servo control. would the upgrade to a 32 bit chip actually be necessary since it is running of a computer? If so , what would be a good chip to start with?. I think this area warrants further R&D. Someone here who is much smarter than I am will hopefully look into this.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[49689] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #38\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n sbrpollock\r\n \r\n
    \r\n sbrpollock is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Aug 2003
    \r\n \r\n \r\n
    Posts
    143
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n I,m very impressed by this project. Nice job guys!!
    \r\n
    \r\nTachus:
    \r\n
    \r\nCan you point me where I can find the instruction set for the AVR you are using. I do all my work with PIC microcontrollers (In Assembly) and am not familliar with the Atmel products. I guess this is as good a time as any to learn!
    \r\n
    \r\n
    \r\nP.S. I\'ve suffered from a lot of "Fuzzy Logic" in the past, usually it allways ended up getting me in trouble or getting my name in the newspaper. \r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n
    Patrick;
    \r\nThe Sober Pollock
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[50348] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #39\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n tachus42\r\n \r\n
    \r\n tachus42 is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    Apr 2004
    \r\n \r\n \r\n
    Posts
    169
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Patrick avrfreaks.net is a good place to start. The code is intended for avr - gcc, look for the winavr package.\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; pd[50419] = '\r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n #40\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n heyarnold\r\n \r\n
    \r\n heyarnold is offline\r\n\r\n \r\n \r\n Registered\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Join Date
    May 2004
    \r\n \r\n \r\n
    Posts
    13
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Recently DragnsBane asked if the servo controller design at http://elm-chan.org/works/smc/report_e.html could be used with the simple BOB. I was wondering if anyone had considered it, since it now supports STEP and DIR? I beleive that should make it compatible with TurboCNC. Assuming all the parts could be obtained, would it be worth while making a board in Eagle? Is anyone interested?\r\n
    \r\n
    \r\n\r\n \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Reply With Quote Reply With Quote \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
  • \r\n'; // next/previous post info pn[25274] = "1003965,25276"; pn[0] = ",25274"; pn[25276] = "25274,41457"; pn[41457] = "25276,72965"; pn[72965] = "41457,198662"; pn[198662] = "72965,41488"; pn[41488] = "198662,41498"; pn[41498] = "41488,47869"; pn[47869] = "41498,47925"; pn[47925] = "47869,41501"; pn[41501] = "47925,41523"; pn[41523] = "41501,41534"; pn[41534] = "41523,41598"; pn[41598] = "41534,41612"; pn[41612] = "41598,41627"; pn[41627] = "41612,41634"; pn[41634] = "41627,41640"; pn[41640] = "41634,104912"; pn[104912] = "41640,41633"; pn[41633] = "104912,65322"; pn[65322] = "41633,83697"; pn[83697] = "65322,41868"; pn[41868] = "83697,43686"; pn[43686] = "41868,47196"; pn[47196] = "43686,47204"; pn[47204] = "47196,47482"; pn[47482] = "47204,47503"; pn[47503] = "47482,47534"; pn[47534] = "47503,47539"; pn[47539] = "47534,47561"; pn[47561] = "47539,47575"; pn[47575] = "47561,47644"; pn[47644] = "47575,47646"; pn[47646] = "47644,49620"; pn[49620] = "47646,49642"; pn[49642] = "49620,49668"; pn[49668] = "49642,49643"; pn[49643] = "49668,49667"; pn[49667] = "49643,49689"; pn[49689] = "49667,50348"; pn[50348] = "49689,50419"; pn[50419] = "50348,50423"; pn[50423] = "50419,50438"; pn[50438] = "50423,50449"; pn[50449] = "50438,63935"; pn[63935] = "50449,55954"; pn[55954] = "63935,55956"; pn[55956] = "55954,56062"; pn[56062] = "55956,56066"; pn[56066] = "56062,56082"; pn[56082] = "56066,73149"; pn[73149] = "56082,56268"; pn[56268] = "73149,83738"; pn[83738] = "56268,83844"; pn[83844] = "83738,73153"; pn[73153] = "83844,83882"; pn[83882] = "73153,83923"; pn[83923] = "83882,83925"; pn[83925] = "83923,83963"; pn[83963] = "83925,89943"; pn[89943] = "83963,89947"; pn[89947] = "89943,95198"; pn[95198] = "89947,104743"; pn[104743] = "95198,104751"; pn[104751] = "104743,106191"; pn[106191] = "104751,106196"; pn[106196] = "106191,204632"; pn[204632] = "106196,267810"; pn[267810] = "204632,267871"; pn[267871] = "267810,368386"; pn[368386] = "267871,392503"; pn[392503] = "368386,400899"; pn[400899] = "392503,401158"; pn[401158] = "400899,401489"; pn[401489] = "401158,642910"; pn[642910] = "401489,403185"; pn[403185] = "642910,405659"; pn[405659] = "403185,411380"; pn[411380] = "405659,411096"; pn[411096] = "411380,411780"; pn[411780] = "411096,413335"; pn[413335] = "411780,413643"; pn[413643] = "413335,413859"; pn[413859] = "413643,1012797"; pn[1012797] = "413859,1012800"; pn[1012800] = "1012797,593019"; pn[593019] = "1012800,914717"; pn[914717] = "593019,651623"; pn[651623] = "914717,1003949"; pn[1003949] = "651623,1003965"; pn[1003965] = "1003949,25274"; // cached usernames pu[0] = guestphrase; pu[83023] = "Rossz"; pu[80001] = "cncadmin"; pu[83484] = "tachus42"; pu[80584] = "fyffe555"; pu[81048] = "CNCAddict"; pu[83296] = "Greg Fill"; pu[83485] = "ESjaavik"; pu[83203] = "slp_prlzys"; pu[83472] = "jfong"; pu[85523] = "Ito-Brazil"; pu[85981] = "DragnsBane"; pu[81637] = "sbrpollock"; pu[84480] = "heyarnold"; pu[87335] = "lerman"; pu[87305] = "Hardwarekill"; pu[88810] = "zekk_2"; pu[89177] = "shahid"; pu[80627] = "jshroff"; pu[88667] = "Vider"; pu[81389] = "mmjpotter"; pu[91439] = "James Newton"; pu[80135] = "Mariss Freimanis"; pu[87558] = "SimonArthur"; pu[89761] = "smarbaga"; pu[86424] = "gabrielus"; pu[91188] = "dirk c"; pu[116486] = "danadams"; pu[83068] = "Luslugger"; pu[100189] = "venomx999"; pu[89374] = "zoltan"; pu[157906] = "spotlite"; pu[134864] = "pongthep"; pu[109536] = "agelkom"; pu[166112] = "tady"; pu[99745] = "RRR"; pu[209372] = "brave1brave"; pu[228450] = "astal"; pu[231847] = "xtrum"; pu[94044] = "pieroandreini"; pu[83850] = "berin"; pu[315584] = "Tariq Assar"; // -->

    Threaded View

    1. #1
      Join Date
      Mar 2004
      Posts
      8

      Question PIC Open source Servo Driver Schematics development?

      Hi Everyone!
      I like this forum, it gives great advices about building machines, specially the meckanical part. What we need here is a good DIY servo driver. Of course open source schematics. The open source program is already available, Emc for instance. It is not wery likely that this gonna happen soon, but we have to push this idea around. Until money is in question, noone will give any half made
      servo driver projekt in public domain. But it will happen in near future, because the technological changes. Everything becomming more affordable. In July 2000 Nuts&Volts there was published a cnc retrofit for a small tabletop mill. The electronics uses Pic chips. From the picture I can see 3 chips, one marked as Pic. It talks about another converter board not pictured. They use Pitman motors14204 continous torq is 26onc/inch. More info is on www.jrkerr.com There is a software for serial port cnc retrofit.
      Now my question is, can it be made something simular, for first time with smaller motors and put in public domain?
      The first clock in the world was made in China in 10Th century. But only the story survived, because the emeror kept it secret. Lather in 15th century the Italians made a clock and a watch, which a monk took it to the Cheneese emperor. He was amused, they newer see anything like that. Since the first clock was made the industrial revolution started. Can you imagin the world here all the medicine would be available and free? It wouldn't be sick people.
      So lets start our industrial revolution in making an open source servo driver.
      Thank you for your support!

    Similar Threads

    1. Open Source Driver electronics
      By pminmo in forum DIY CNC Router Table Machines
      Replies: 1
      Last Post: 11-22-2009, 09:42 PM
    2. Any ideas for open source CAM package?
      By galacticroot in forum OpenSource Software
      Replies: 26
      Last Post: 10-22-2007, 05:35 PM
    3. Open Source CNC Controller Specification
      By gregmary in forum DIY CNC Router Table Machines
      Replies: 28
      Last Post: 12-05-2005, 04:58 AM
    4. 2nd Generation DeskCNC servo driver released
      By imserv in forum News Announcements
      Replies: 0
      Last Post: 11-25-2004, 01:22 AM
    5. Open source driver designs
      By pminmo in forum CNC Machine Related Electronics
      Replies: 0
      Last Post: 05-05-2004, 03:29 PM

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •