Re: [Emc-users] Stepper Musings

2010-11-29 Thread Colin Kingsbury
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

2010-11-19 Thread Colin Kingsbury
 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

2010-11-12 Thread Colin Kingsbury
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?

2010-11-10 Thread Colin Kingsbury
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

2010-10-31 Thread Colin Kingsbury
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?

2010-10-22 Thread Colin Kingsbury
 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

2010-10-13 Thread Colin Kingsbury
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

2010-10-12 Thread Colin Kingsbury
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?

2010-09-30 Thread Colin Kingsbury
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?

2010-09-29 Thread Colin Kingsbury
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?

2010-09-28 Thread Colin Kingsbury
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

2010-09-22 Thread Colin Kingsbury
 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

2010-09-08 Thread Colin Kingsbury
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?

2010-08-29 Thread Colin Kingsbury
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?

2010-08-23 Thread Colin Kingsbury
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