Re: [Emc-users] Stepper Musings
Date: Mon, 29 Nov 2010 15:54:22 + From: andy pugh bodge...@gmail.com Subject: Re: [Emc-users] Stepper Musings To: Enhanced Machine Controller (EMC) emc-users@lists.sourceforge.net On 29 November 2010 15:20, Belli Button be...@iafrica.com wrote: Unfortunately when a stepper looses synchronisation, one needs to 'stop' the motor for the poles to realign and then you can move the motor again. ?I cannot see how a motor travelling at a velocity near its maximum capable velocity can loose just a single step with out stopping altogether. I think you are right about that, and tripping f-error is all you will get there (which is better than nothing). Where the scheme might work is in slow overload situations (I have heard my lathe missing steps on very slow feeds when trying to push too big a drill). In that case slowing the feed and recovering the steps might work (in the case I mentioned the drill did keep feeding, but the hole depth came out wrong and machine position was lost. At first I was not really big on this but the more I think about it, the more I like it. I play with small, benchtop size machines, where inexpensive steppers and drives generally work well and cost half or less of what servos would. A pseudo-servo mechanism that simply tripped a fault when something bad started to happen would provide most if not all of the benefit that true servos would, at much less cost. It's not magic and won't make the machine more precise, but it would make it more fault-tolerant and that seems significant. It would also be a unique competitive edge that could bring a lot of users over to EMC2. Is this something that could be done just by wiring a few ~$50 encoders into a parport, or would you need more specialized IO hardware? -- Increase Visibility of Your 3D Game App Earn a Chance To Win $500! Tap into the largest installed PC base get more eyes on your game by optimizing for Intel(R) Graphics Technology. Get started today with the Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. http://p.sf.net/sfu/intelisp-dev2dev ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] OT: breathing coolants
Date: Fri, 19 Nov 2010 12:50:31 -0500 From: Dave e...@dc9.tzo.com Subject: Re: [Emc-users] OT: breathing coolants Propylene Glycol has been used for fog generation in stage productions and it is also used in Cigar Humidors.. (go figure..) Good cigars like to be kept at 70% humidity, otherwise they swell and split, burn poorly, and get moldy. A block of florist's foam soaked with a 50/50 mix of water and PG in a sealed container will equilibrate to right around 70% with no fuss or machinery needed. -- Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today http://p.sf.net/sfu/msIE9-sfdev2dev ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] Arduino EMC pendant, phase II
Thanks to help from people on the list and IRC, my pendant/MPG project has continued to make progress. This video shows the Arduino interfaced to a 25-key matrix keypad as well as the encoder and LCD from the last round. The board seems capable of handling it well though I did slow the DRO update rate down to 5x/sec to lighten the load. Still fast enough to be very useful. http://www.youtube.com/watch?v=n9YMpQjsab4 Right now I have the spindle and feed rate override controls working but it is in a very hacky way that isn't really good. I need to do some more research to understand how to share the encoder output directly with all three controls (jogging, feed rate, spindle). I also got the start/stop controls working with Axis, but the stop button still is a little odd and sometimes throws an EMC error on Axis when I hit it. I think it may be a timing problem, though. At this point though I'm pretty confident the idea will work well and will probably get a PCB order put together over the weekend to keep moving towards a more formal design. I will share the software as soon as I get all the functions finished and have time to clean it up a bit. Thanks everyone for your help! -- Centralized Desktop Delivery: Dell and VMware Reference Architecture Simplifying enterprise desktop deployment and management using Dell EqualLogic storage and VMware View: A highly scalable, end-to-end client virtualization framework. Read more! http://p.sf.net/sfu/dell-eql-dev2dev ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Physical cycle start button with Axis GUI?
Stuart, Thanks for the pointer. AFAICT, you're using ClassicLadder to trigger things, yes? However, I can't really make much sense of the files on your site beyond that--I'm just not seeing how and where the parts line up :( From: Stuart Stevenson stus...@...http://gmane.org/get-address.php?address=stustev%2dRe5JQEeQqe8AvxtiuMwx3w%40public.gmane.org Subject: Re: Physical cycle start button with Axis GUI?http://news.gmane.org/find-root.php?message_id=%3cAANLkTimbSJLgd9dMZLJvu2bxirkjGKPbHT1XLDikVQHa%40mail.gmail.com%3e Date: 2010-11-09 23:15:33 GMT (1 day and 15 minutes ago) Gentlemen, http://www.mpm1.com:8080/machines/dahlih has the configuration files of a machine with Axis and hardware button for cycle start/feed hold. There is a lot of information there. Have fun, Stuart -- Centralized Desktop Delivery: Dell and VMware Reference Architecture Simplifying enterprise desktop deployment and management using Dell EqualLogic storage and VMware View: A highly scalable, end-to-end client virtualization framework. Read more! http://p.sf.net/sfu/dell-eql-dev2dev ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] Axis program control from a pendant
I'm running the latest LiveCD and using Axis as my GUI. I'm trying to wire up a pendant to have buttons for cycle start, stop, and pause, and running into an error I can't make any sense of. Right now, I have a button wired up to halui.program.run and another to halui.program.stop. If I click the button connected to run, I get an error message in Axis saying, can't do that (EMC_TASK_PLAN_RUN) in manual mode. Likewise, if I hit the stop switch while a program is running, I get nothing--the program keeps running. Looking in the halui docs, I see there are pins for halui.mode.auto and halui.mode.manual. Do I need to set these before sending program run/stop/pause commands? Or is there something else I need to do? -- Nokia and ATT present the 2010 Calling All Innovators-North America contest Create new apps games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Suitable Keyboard/Mouse. was: Suitable touchscreen?
Frank Tkalcevic wrote: Keyboards and mice are another issue. These need to be protected and kept clean. So what do people use for keyboard/mouse? I got one of these flexible silicone keyboards for $10. You need to put it on a solid, flat surface and you don't want to use it as a primary keyboard, but for a machine, it's great. Totally sealed, you could wash the thing down with the coolant hose if you want. http://www.short-circuit.com/product/mini-flexible-keyboard.html -- Nokia and ATT present the 2010 Calling All Innovators-North America contest Create new apps games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Arduino as MPG and DRO for EMC
Thanks for the positive feedback--I'm happy to contribute some value back into the community for a change! In terms of platform, I'm going to stick with the Arduino until and unless I hit a wall that really compromises things. Right now, I'm working up a board that will have a 25-key matrix keypad, just basically maxing out the pins I have left after handling the LCD. Assuming it can handle that, then I think I'm in pretty good shape. For comparison, I looked at the keypad on a Haas control, and once you get rid of the keys for g-code editing, cursor movement, and the alphanumeric keys, you're left with around 40. Of those, some are for high-end VMC functions (i.e. spindle orient) and a good number could be compressed into modal keys. For instance, the jog-rate selector could easily be a single button that scrolls through the options (remember, I have the LCD to display the selection) rather than 4 individual keys as on the Haas. So I think it's very feasible to squeeze most of a real control into this (relative) toy. Assuming there's plenty of headroom, moving to an Arduino Mega would be easy enough for someone who wanted a lot more stuff, or even wanted to try integrating a full keypad like from a dead FANUC control or some such. In performance terms, the Arduino is definitely not the leader of the pack, but I've been in IT long enough to know the value of a large installed base. For one thing, a lot of people already have the boards laying around, which knocks $30 off the cost right there, and for anyone who wants to hack theirs, there's a ton of tutorials and resources out there to help them. And if nothing else, I am trying to keep the cost of this as far under $100 as I can. -- Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today. http://p.sf.net/sfu/beautyoftheweb ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] Arduino as MPG and DRO for EMC
Just thought I'd share a quick update on my project to build an Arduino-based control pendant for EMC. http://www.youtube.com/watch?v=flajZMff28U This video shows an Arduino communicating with EMC and functioning as both an MPG and remote DRO. I will be publishing more details along with source code over on my blog at http://ckcnc.wordpress.com as I get the various loose ends more tied up. In the meantime I am starting to feel like this is approaching robustness. The serial protocol may need a little more work to ensure that things either can't get out of sequence, or that it can recover from such events without requiring a reset. Otherwise it seems to run happily at 9600bps. The DRO is limited to update 10x/sec to avoid saturating the line. As a human-machine interface, things seem to be real-timey enough to function effectively. In this setting, I think the only limitation on the number of I/O signals is the Arduino's memory and processing power. I am using 7.3k of the 16k flash, and I don't know how much of the SRAM and CPU. Most of that is going to the LCD and encoder-reading functions. With 6 outputs to drive the LCD, I have 10 left over, which could theoretically support a 25-key matrix. With all the room on the LCD, I'm curious to see how much more I can squeeze in, e.g., by adding multiple pages to the display. -- Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today. http://p.sf.net/sfu/beautyoftheweb ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Encoder as MPG over serial?
I'm starting up a blog at http://ckcnc.wordpress.com to document what I'm working on. There's nothing much there yet but there will be more over the next couple weeks. I've got all the pieces working, what I need to do know is tighten everything up. I'm designing a board that will have two encoders (MPG and Spindle/FRO) and switches for axis and scale selection, continuous feed, and cycle start/pause/single block, plus maybe a few extra depending on what I can squeeze in. What I'm playing with right now is adding an LCD display that could act as a remote DRO, which would be really nice to have on a pendant. It's tempting because a 20x4 display can convey a ton of information with 6 output pins from the Arduino. But, I am running tight on pins as it is, and I feel like I'd prefer to have hard LEDs for things like the axis and scale selections, rather than forcing people to read an LCD. Of course, a Max7219 -segment LED driver gives me 64 outputs from 3 pins, so maybe if I can get both to work more power! But I'm also unsure about how much data I can reliably push through the wire. I can do all the core stuff with single-byte messages very easily, but a DRO message requires 7 for a value like X12.345 (using ASCII), and it gets messier if your messages have different lengths. So I'm just not sure how far I am from running into contentions between, say, HAL pushing position updates to the DRO, and the MPG wanting to move the axis. In principle there's plenty of bandwidth at slightly higher speeds like 19200 or 57600bps, but my sense is these can be sufficiently less reliable that I'd prefer to be really conservative, especially if I start selling the board. Anyway, for your hacking in the meantime, my main suggestion is to build the stack up in stages like this: - Write your Arduino sketch with one or two inputs and outputs. Test it with the serial monitor until it's doing exactly what you think it should. - Write a minimal Python program you can run from the command line, and make it talk to the Arduino, again using the serial monitor to verify everything. - Add the HAL component to the Python program, and test it from the command line with halrun to verify it's setting pin values as you expect. - THEN, and only then, link it up with your GUI of choice. Basically, my experience was that the vast majority of my problems were actually in getting Python and the Arduino to communicate as I wanted. Getting Python to communicate with HAL was almost trivial. Colin- Your post was quite timely for me as I just recieved an Arduino with the intention of creating exactly the same setup for my gantry router. If you could share your code it would be a tremendous help and quite possibly save me from having my head explode. :) -- Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Encoder as MPG over serial?
For anyone who was curious, I figured this out last night and it turned out to be a lot easier than I thought. Basically, all I needed to do was use the MPG howto from the wiki ( http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Hooking_Up_A_MPG_Pendant), and instead of mapping the encoder inputs to the parallel port pins, I created a phaseA and phaseB pin in my Python HAL component, and mapped to those. For once, everything actually worked on the first try. I did notice one small error on the wiki page, which was the omission of 'setp' in the calls to set axis.N.jog-vel-mode. I edited the page to add this. On Tue, Sep 28, 2010 at 1:14 PM, Colin Kingsbury ckingsb...@gmail.comwrote: So, thanks to an assist from Jeff Epler and Chris Radek, I've gotten my Arduino-HAL interface more or less fully functional with both inputs and outputs. My purpose for this is to build a human-machine interface (read: control panel for my mill). So far I've gotten it to turn input pins in HALUI on and off, and turn external LEDs on and off based on the status of output pins. What I'm wondering about is how best to work an encoder into this. Currently, the way I'm doing it is to have the arduino read the encoder outputs and convert them to a signal which represents one pulse in the CW or CCW direction. The Python script receives the signal, and then jogs the appropriate axis in the + or - direction for 1/10th of a second. So far, the motion seems smooth (on screen, I haven't tried it on one of my machines yet), but I'm wondering if there's a better way. The catch is that I'd like to keep this on the serial connection, both to save the parallel port pins, and also for the elegance of being able to do everything over the Arduino's USB cable. -- Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] Encoder as MPG over serial?
So, thanks to an assist from Jeff Epler and Chris Radek, I've gotten my Arduino-HAL interface more or less fully functional with both inputs and outputs. My purpose for this is to build a human-machine interface (read: control panel for my mill). So far I've gotten it to turn input pins in HALUI on and off, and turn external LEDs on and off based on the status of output pins. What I'm wondering about is how best to work an encoder into this. Currently, the way I'm doing it is to have the arduino read the encoder outputs and convert them to a signal which represents one pulse in the CW or CCW direction. The Python script receives the signal, and then jogs the appropriate axis in the + or - direction for 1/10th of a second. So far, the motion seems smooth (on screen, I haven't tried it on one of my machines yet), but I'm wondering if there's a better way. The catch is that I'd like to keep this on the serial connection, both to save the parallel port pins, and also for the elegance of being able to do everything over the Arduino's USB cable. -- Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] (no subject) or, old system vs new system
Date: Wed, 22 Sep 2010 12:05:07 -0400 From: Kent A. Reed knbr...@erols.com Subject: Re: [Emc-users] (no subject) or, old system vs new system I feel your pain and I know that trying to explain why you have it doesn't make it go away. A lot of us on this mail list and its companion developers list have been hoping/struggling/arguing to find a path forward that minimizes the pain. There's been little enough joy so far. For what it's worth, I've had good luck so far with an Atom D510-based system running the latest 10.04 LiveCD. I'm using it to run a stepper-based system which needs 16,000 steps per inch, and can run it at 60IPM before the motors stall. Since a larger machine would likely not use 1/4-20 leadscrews, I think this comes close to a worst-case scenario. I flight plan with a latency of 15000us. It occasionally exceeds that, but seems to only be when I throw something big at it like a file copy. I'm using a hard drive right now, but I've tested running it from a USB stick, and I think the latency there is more stable. If I run it with glxgears already running and don't push big files around, it stays under 10k. I've cut a few PCBs on it, which involve fairly complex g-code programs, and didn't see any obvious errors. This setup was purchased new for around $175 shipped from Newegg. $75 for the board, $40 for a chassis/PSU, $40 for 1GB of RAM, $25 for a refurbished HD, and a few odds and ends like this parallel port header cable: http://www.newegg.com/Product/Product.aspx?Item=N82E16812196220cm_re=parallel-_-12-196-220-_-Product I'm just one person and I may yet run into problems, but I wanted to add a report of this combo looking promising. If there are any other tips besides disabling hyperthreading that will help with latency (e.g. maybe a particular flavor of RAM is better? Would 2GB be better than 1GB?) I'd like to know them, but as it stands, I'm 100% happy with my setup. -- Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] EMC2 on Ubuntu 10.04 Lucid Lynx LTS - some early observations
Kent, b. If I override the warning and continue anyway, I get a different popup stop window with the message Linear movement on line 20 would exceed joint 2's positive limit / Position relative actual. I had the same problem. The issue was caused by the axis soft limits, which are set in the machine.ini configuration file. In my case, using stepconf, I seemed to end up with the Z axis having a default envelope from 0.010 to -4.000. I was having problems changing them in stepconf (I had multiple values get set to their defaults rather than my entries, not sure if there is some bugginess there) so I just edited the ini file and things worked fine. -- This SF.net Dev2Dev email is sponsored by: Show off your parallel programming skills. Enter the Intel(R) Threading Challenge 2010. http://p.sf.net/sfu/intel-thread-sfd ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] Do I understand the EMC/HAL/UI architecture properly?
This is probably going to seem like a ridiculously obvious question, but before I start buying and cutting too much material I wanted to double-check my understanding of how the various parts of a complete system interact. The project I'm working on is to build a really comprehensive physical interface panel for my milling machine. Namely I want to have dedicated buttons for lots of functions, some with LEDs to indicate current status. For instance, I'd like a button that toggles flood coolant on and off, with an LED that shows whether it's on or off, (in case I don't happen to notice the lube spraying everywhere) I've gotten the basic HAL-Arduino example from the Axis unpy.net site to work, and I've used the Arduino for other things before, so I feel like I have at least one idea of where to start on the hardware side. Now, my question is what happens with the various GUIs like Axis if there is something like my keypanel in the system. Does Axis (or TkEMC, etc.) actively poll HAL every so often to see if the status of things (like flood coolant) have changed? Ideally, I'd like to see the following sequence of events occur: 1. Flood coolant is off. Both the control panel LED and the Axis UI show flood coolant off. 2. I load and start a G-code program which uses flood. The LED turns on as the flood G-code is executed. 3. I press the flood button on the keypanel which sends a signal to HAL to toggle the flood coolant off. 4. HAL shuts off the flood coolant. The keypanel LED goes out and the Axis UI shows flood coolant as off. Essentially, I think my question boils down to whether I understand HAL correctly as being the source of truth for both my physical keypanel as well as for the GUI, or whether the GUI thinks it's the only thing affecting machine state? -- Sell apps to millions through the Intel(R) Atom(Tm) Developer Program Be part of this innovative community and reach millions of netbook users worldwide. Take advantage of special opportunities to increase revenue and speed time-to-market. Join now, and jumpstart your future. http://p.sf.net/sfu/intel-atom-d2d ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] Compatibility with small touchscreens?
I'm looking at trying to build a homebrew version of a dedicated controller with an integrated keyboard, MPG, and touchscreen. On the touchscreens, I've been looking at some of the 7-8 units originally made for in-dash DVD players, Lilliput seems to be a common name for the hardware and I've read about touchkit as being the main driver for using these 4/5-wire resistive-interface screens with Ubuntu. There seems to be a choice of serial and USB interfaces. Before I go out and buy a bunch of hardware that doesn't play well, does anyone have any words of wisdom on what I should or shouldn't look at? For reference, this is the sort of unit I'm thinking about: http://cgi.ebay.com/Lilliput-EBY701-NP-C-T-7-VGA-Touch-Screen-1-Year-Warr-/300444259217?pt=LH_DefaultDomain_0 * And yes, I realize a 7 screen will have lower resolution than my iPhone 4... I'm looking to build a panel with illuminated modal switches and generally see about moving some stuff off the screen. -- Sell apps to millions through the Intel(R) Atom(Tm) Developer Program Be part of this innovative community and reach millions of netbook users worldwide. Take advantage of special opportunities to increase revenue and speed time-to-market. Join now, and jumpstart your future. http://p.sf.net/sfu/intel-atom-d2d ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users