LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

Requested Features for EMC

Note: This page is a wishlist! Features listed are most likely not implemented yet!

please add the features you would like to see in emc. Add your name and a way how to get contacted for further clarifications.

  1. modular motion controller: would allow independent development of different trajectory planners (jerk-limited, double-jerk limited etc) and blending algorithms (circles, nurbs etc.)
    added by: AW
  2. multiple motion controllers: two or more separate objects, each with its own 6 DOF reference frame relative to the earth, a kinematic description of how they are related to each other, and a mechanism to synchronize them. useful for "12 strut fscking oligopods" :) and lathe threading, multiple tool slides, stacked rotary tables, etc etc etc
    added by: fenn
  3. G06 parabolic arc support: to specify & carve parabolic shapes. This is described in the Machinery Handbook #27 in the cnc section. Similarly, but not quite exactly, the ability to carve an elipse or section thereof would be nice,
    added by: Gene/USERLIST
  4. dynamic motor limit adjustment:adjusts max accel (torque) of servos based on motor speed
    added by: fenn
  5. dynamic trajectory limit adjustment: allows a machine to accelerate faster in it's sweet spot than at the limits of motion.
    added by: fenn
  6. "hot-potato" synchronization:in combination with the above two features, this switches which variable is the "master" based on its max acceleration at that particular instant
    added by: fenn
  7. remove trajectory velocity limits: is there any reason to limit the velocity of the tool? (joint vs axis limits, why axis limits at all?)
    added by: fenn
  8. work envelope definition:ability to describe the work envelope so my hexapod doesn't go banging into walls or try to rotate too far. (this might get complicated, since for example hexapods have a reduced maximum translational offset when they are rotated. try simultaneously tilting your head to the left and shifting your head to the right. ow!)
    added by: fenn
  9. hal support for comedi: comedi is a rather big library of data acquisition card driver software.. a generic comedi component could allow access to any of these cards with the easy integration of hal. a huge increase in compatability for comparatively little development effort, versus writing a driver for each card.
    added by: fenn
  10. Packages: easily installable packages for the most common linux distributions
    added by: zwisk
  11. SERCOS support: support for a digital interface for communication between digital controls, drives, I/O, sensors and actuators, i.e. SERCOS/IEC 61491 (http://sercos.com/)
    added by: Ronald
  12. macro language: support for a macro language, the macros written should be able to command motion & io. the macros should have english-readable names and accept arguments and nesting. WIP: see PythonBindings. I swear I'm going to work on this some day...
    added by: alex_joni (on IRC) and fenn
  13. mirror image for lathes allows a tool holder on the other side of cross slide center to be used without special programming. Uses a designated g or m code to specify mirror image on or off. Mirror image automatically changes the spindle and x axis to move in the opposite direction. It also changes to a different coordinate offsets (definable). This is so a program used for the front turret could be used for the back turret just by adding a g code and specifying a rear turret tool. another option? The switch to mirror image could also be made automatic when u pick a certain tool number.
    added by: Chris Morley
  14. .DXF import: importing of a r12/r14 .dxf file with scaling (for simple 2d engraving) (i'd like stop using windows only to make this code ;)
    added by: chr0n1c
  15. JOG under PAUSE: Alow users to jog machine when program is paused (can be in middle of the line). The TouchOff? should be enabled. MDI can be useful.
    Useful feature for removing swarf and broken tools.
    added by: Slavko
  16. Jog under M0/M1/M6 ToolChange: Alow users to jog machine when program is paused within program. The TouchOff? should be enabled. MDI can be useful.
    Useful - near mandatory for spindles with collets as height is unknown.
    added by: Slavko

  1. __new feature name__: ___describe the new feature___
    added by:

IRC = #emc, irc.freenode.net
SF = http://sourceforge.net/users/<user_name>/
DEVLIST = developers mailing list, http://lists.sourceforge.net/lists/listinfo/emc-developers
USERLIST = users mailing list, http://lists.sourceforge.net/lists/listinfo/emc-users


move stuff to this list as features are implemented
  1. understandable error messages: error messages that aren't really confusing.. i18n support for error messages?
    added by: fenn
  2. coordinate system rotations: In 2.4, G10 L2 and will be able to specify a coordinate system rotation around the Z axis: http://linuxcnc.org/docs/devel/html/gcode_main.html#sub:G10:-Set-Coordinate
    added by: lesiak
  3. rotational work offsets: this would allow plunking down a block of metal, clamping it, probing 5 points and entering a command to align the program square with the block. I realized that it should be its own thing separate from kinematics. It _could_ be used to correct for certain kinematic errors like out of square errors, but that's a cop-out imho.
    added by:fenn
  4. lathe threading: support for lathe threading (aka electronic gearing).
    this would also take care of rigid tapping on a mill and jogwheel support ?
    added by: alex_joni (on SF)
    lathe threading now works (as of 2.0.2?)
  5. Improved lookahead/blending: current G64 mode has no tolerance for how close planned traj is to true g-code traj. Current G64 also functions erroneously with low max_acc values.
    added by: AW
    G64 blending now accepts a tolerance value which is respected at all times, but lookahead is still only one segment 'deep' ?
  6. hot-swappable kinematics: ability to adjust the type of kinematics and parameters of that module at run-time, to allow for automatic calibration of hexapods, correction of bearing form errors, temperature compensation, and user convenience in such matters. specification of default parameters in the .ini file, via bash scripts, or thru a GUI (and saving of modified parameters?)
    comment by mpictor: compex math would be easiest in a numerical computation package such as scilab... which can be interfaced to RTAI for real-time performance! http://www.scicos.org/demos.html#RTAI
    added by: fenn
  7. webpage i18n: quote from http://gnunet.org/i18nHTML/ :"i18nHTML is a collection of PHP files that can be used to write webpages that visitors can translate into their respective native languages." i18nHTML is released under the GPL.
    added by: Ronald
    Resolution (AJ): the linuxcnc webpage is implemented in joomla which supports internationalisation. Contact me if you want to add another language.
  8. configuration wizard: the basic setup, namely for "hobby machines", is still too complicated. A solution like Ray's (?) unfinished "emc-qconfig" would be helpfull:
    added by: Ronald
    Resolution (Jepler): Stepconf is part of emc2_2.2.x
  9. configuration verifier/troubleshooter: helper script/program for emc2. It loads a specified emc .ini file and HAL - then:
    a) Asks you to activate each input - i.e. "Activate the Negative limit switch for the X axis..." [user presses the switch he thinks is right] "Error! home switch on Y axis activated. Error in wiring or in HAL config (filename). Expected HAL-hardware-pin-name-1, got HAL-hardware-pin-name-2"
    b) Triggers each output (under user supervision) - i.e. "Click TEST to activate flood coolant." [when user clicks, the output (coolant in this case) is activated until button is released]
    c) Asks user to move each axis by hand to verify feedback channel and polarity (optional, since mechanism may be too heavy and since disabling drives may mean disabling feedback, and since it won't work with stepper motors)
    d) Slowly jogs each axis to verify drive function and polarity (only if home and limit switches are working)
    added by: mpictor -- users and developers lists i think this is satisfied by stepconf, move back to request list if not
  10. arbitrary variable synchronization: slave one variable to another with a particular ratio, conditional construct, or PID loop. allows for more than just threading, such as EDM voltage feedback, torch height control, fast capacitive probing (slave normal velocity to normal distance -yikes!), dual feedscrews, gear hobbing, constant chipload via motor current feedback
    added by: fenn
  11. english names for cl variables:boy wouldn't it be neat if classicladder automatically got the name of the hal signal that its pin was connected to
    added by: fenn this was implemented at one point by cradek, but it might have gotten bit-rotted by cmorley's upgrade to latest version of CL
    version 7.124 will allow you to click on the object to get the signal name and also allows user assignable symbol names
  12. 5 axis pivot length - tool length compensation: In addition to the current 5 axis tool length and pivot length compensation I would like to see the capability to input (possibly read from a comment line in the g code program) the pivot length and tool length the gcode program is calculated (posted) with. EMC2 could then use the posted lengths in conjunction with the actual pivot length in the configuration file and the tool length in the tool table and run a 5 axis program that was posted for a machine that needs the pivot length and/or the tool length posted into the gcode program. ex. I have 5 axis machines with 5.25, 10.65 and 12.5 inch pivot lengths. The machines with the 5.25 pivot length must have both the pivot length and the tool length (posted) in the gcode program. This means the gcode program has the pivot length and tool length compensation calculated into the gcode program. To run one of the posted programs in my EMC2 control I would need to subtract the pivot length number and tool length number posted into the gcode program from the actual pivot length and tool lengths and place the results in the config file and the tool table and then restart EMC2.
    added by: stustev

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions
Last edited July 6, 2010 7:37 pm by Chester (diff)
Published under a Creative Commons License