[Emc-users] Offsets in Python
Greetings! In my GladeVCP am trying to calculate the relative position (displayed in in the working coordinate system when there is a rotational offset in effect. The python interface provides the following information in the status attributes: self.s.actual_position (current position in machine units) self.s.g92_offset self.s.g5x_offset self.s.tool_offset self.s.rotation_xy When rotation_xy is 0 (and tool_offset is all zeros) the following is true: Work position = actual_position - g92_offset - g5x_offset However, when rotation_xy is not zero, a rotation has to be applied. The question is where? I swear I've seen this discussed before, but for the life of me can't find it anywhere. Thanks for any pointers! -Kip -- Slashdot TV. Video for Nerds. Stuff that Matters. http://pubads.g.doubleclick.net/gampad/clk?id=160591471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Offsets in Python
Chris, Thank you so much for your help! It worked like a charm. For the next person looking to obtain relative work coordinates in python, here is the routine I derived from code in touchy's emc_interface. Note, self.s = linuxcnc.stat() def absolute_to_relative(self,p): self.s.poll() x = p[0] - self.s.g5x_offset[0] - self.s.tool_offset[0] y = p[1] - self.s.g5x_offset[1] - self.s.tool_offset[1] z = p[2] - self.s.g5x_offset[2] - self.s.tool_offset[2] a = p[3] - self.s.g5x_offset[3] - self.s.tool_offset[3] b = p[4] - self.s.g5x_offset[4] - self.s.tool_offset[4] c = p[5] - self.s.g5x_offset[5] - self.s.tool_offset[5] u = p[6] - self.s.g5x_offset[6] - self.s.tool_offset[6] v = p[7] - self.s.g5x_offset[7] - self.s.tool_offset[7] w = p[8] - self.s.g5x_offset[8] - self.s.tool_offset[8] if self.s.rotation_xy != 0: t = math.radians(-self.s.rotation_xy) xr = x * math.cos(t) - y * math.sin(t) yr = x * math.sin(t) + y * math.cos(t) x = xr y = yr x -= self.s.g92_offset[0] y -= self.s.g92_offset[1] z -= self.s.g92_offset[2] a -= self.s.g92_offset[3] b -= self.s.g92_offset[4] c -= self.s.g92_offset[5] u -= self.s.g92_offset[6] v -= self.s.g92_offset[7] w -= self.s.g92_offset[8] return (x, y, z, a, b, c, u, v, w) On Sat, Sep 20, 2014 at 1:19 PM, Chris Radek ch...@timeguy.com wrote: On Sat, Sep 20, 2014 at 12:28:46PM -0400, Kip Shaffer wrote: When rotation_xy is 0 (and tool_offset is all zeros) the following is true: Work position = actual_position - g92_offset - g5x_offset However, when rotation_xy is not zero, a rotation has to be applied. The question is where? This is tricky to get right! Tool offsets don't rotate G5x offsets don't rotate G92 offsets DO rotate Don't forget wrapped rotaries Don't forget units The canonical code for this is what AXIS uses: see glcanon.py around line 1265 and in fact you can see this very clearly in AXIS if you mess with the offsets and rotation, and see what the preview does. It represents each offset with a labeled line from the old to the new origin. You can see that the g92 line rotates (within the G5x system) but the g5x line doesn't. You can find equivalent code in touchy's emc_interface.py around line 300 Start with unoffset position subtract tool length subtract g5x offset rotate x,y (negative direction) subtract g92 offset for each rotary, if it's wrapped, adjust mod 360 adjust units for presentation to user, if necessary, for xyz and uvw -- Slashdot TV. Video for Nerds. Stuff that Matters. http://pubads.g.doubleclick.net/gampad/clk?id=160591471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- Slashdot TV. Video for Nerds. Stuff that Matters. http://pubads.g.doubleclick.net/gampad/clk?id=160591471iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Start program with external button
Erik, While not exactly what you are looking for, you can use C snippets to create brand new HAL components. I created a couple myself, one to bring 16 inputs and 16 outputs to a set of external shift registers for expanded IO capabilities, and one to generate blink codes for a status LED. I also implemented a RUN/Resume button using only existing HAL components in a similar way as above. The one addition I made was to add flip-flops to the HAL configuration so that each button press could only RUN or RESUME depending on the state when the button was pressed. Without the flip-flop, I found that RESUME would often turn into RUN when the machine switched away from PAUSED. Let me know if you would like more information. -Kip On Wed, May 14, 2014 at 8:10 AM, Erik Friesen e...@aercon.net wrote: I have found myself wishing I could insert c snippets somehow, to me it is would be way easier that manually figuring out the logic. It gets very hard to follow three or more logic items that work together. For example, it takes quite a few to make a run/resume switch. On Wed, May 14, 2014 at 3:07 AM, Viesturs Lācis viesturs.la...@gmail.com wrote: 2014-05-14 0:57 GMT+03:00 Erik Friesen e...@aercon.net: Hmm. Didn't know you could net more than one per line. You can do it in one line or break it up (for me breaking up is easier to understand, when I need to go through HAL file few months later), for example, net run-file whatever.gpio.000 net run-file halui.mode.auto net run-file halui.program.run Viesturs -- Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free. http://p.sf.net/sfu/SauceLabs ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free. http://p.sf.net/sfu/SauceLabs ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free. http://p.sf.net/sfu/SauceLabs ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Index-enable pin question
I can't answer your question directly, but last night I was working to do the same thing and got it to work! I did notice the same behavior, moving to the proper X and never starting. For me the problem was that I was using both phases A and B, and that the encoder was counting down, not up. Reversing A and B fixed the problem. Maybe this will help you too. -Kip On Mon, Nov 11, 2013 at 6:35 AM, Viesturs Lācis viesturs.la...@gmail.comwrote: Hello! I am trying to help a guy that has retrofitted a lathe to LinuxCNC. He has 5i25 + 7i77 cards and 2.5.0 version installed. The problem is that I cannot figure out, how to get threading to work. G76 command will bring the tool along X to proper thread depth and then stop. It seems to me that it is waiting for a signal on motion.spindle-index-enable. That pin is connected to encoder.00.index-enable pin, I checked - there is index pulse coming from encoder every spindle revolution, but I do not see any pulses in Halscope on index-enable pin. I tried playing with index-mask and index-mask-invert parameters, but no success. This page does not seem helpful, explaining all the details on how to set it up: http://linuxcnc.org/docs/html/examples/spindle.html#_spindle_enable I see that reference no:2 at the bottom, but I was not able to find any explanation in manual. I would appreciate, if somebody could share some link, where it is explained, how exactly spindle index-enable pin is treated in lathe config. -- Viesturs -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] USB Camera for edge finder?
This is a cool discussion, and inspires me to try something. Using the thin lens equation, 1/o + 1/i = 1/f, we can use a single convex lens as a 'transfer lens'. The 'real image' produced by this lens can be used just like the actual object, and can be inspected by the microsocpe. Since Russell suggested 20cm, we could use a 10cm focal length lens to get a 1:1 image for the microscope. So, the layout would look like this: Microscope | (real image) | 20cm | Convex Lens (10cm focal length) | 20cm | Surface with edge to find. I'll check my optics junk box to see if I have a lens with something similar to a 10cm focal length tomorrow. -Kip On Thu, Nov 7, 2013 at 9:30 AM, Ralph Stirling ralph.stirl...@wallawalla.edu wrote: A couple of months ago I spent a bit of time working on a camera based system for calibrating the position of a syringe needle in a LinuxCNC controlled bioprinter. I found a couple of USB microscopes I had on hand to work reasonably well. The depth of field was quite adequate for needles, but milling cutters would generally be larger. Are you planning on using crosshairs and eyeballing to determine your cutter length/diameter, or are you intending to automate the process? If you want automated measurement, you could look into subpixel measurement techiques. With subpixel measurement, you don't really want super-sharp focus anyway. You also would likely want multiple photos over a small range of distances from the camera, which allows you to do some averaging of your computed dimensions. -- Ralph From: Russell Brown [russ...@lls.lls.com] Sent: Thursday, November 07, 2013 3:15 AM To: emc-users@lists.sourceforge.net Subject: [Emc-users] USB Camera for edge finder? I've been playing around with camview and a little 10mm endoscope type USB camera to see if I could rig such a thing up as an edge finder permanently mounted my mill's head. That's OK but you have to get very very close to the workpiece for even a half decent resolution which doesn't work when there's a collett holder and tool in the spindle (part of the reason for doing this is to avoid chucking the edge finder so I don't want a spindle type camera). I also tried a USB 'microscope' but the depth of field is very small again you have to get pretty close and twiddle with the focus to get a useful resolution. Has anyone found a USB camera with both a high magnification and a decent depth of field? (I've a feeling that these are mutually exclusive) or even one that can focus at a high resolution from a workable (~200mm?) distance? TIA -- Regards, Russell | Russell Brown | MAIL: russ...@lls.com PHONE: 01780 471800 | | Lady Lodge Systems | WWW Work: http://www.lls.com | | Peterborough, England | WWW Play: http://www.ruffle.me.uk | -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] Success: Added physical button to Start or Resume program execution.
Just wanted to share a little success story with you all. This week I added three physical buttons to my mill. They are large, industrial buttons from Allen Bradley that should last forever. They are: E-Stop - Red, latching, easy to hit Pause - Amber, momentary, easy to hit Run/Resume - Green, momentary, recessed The first two are trivial. They interface directly to the appropriate halui pins. Here's the problem. Run and Resume are two distinct operations. HAL must decide which signal to generate based on the current state of the system. In addition, halui must be in 'auto' mode in order to run the program. It must be requested if it is not already selected. Furthermore, timing can be a bit tricky. Continuing to assert halui.mode.auto, halui.program.resume, or maybe even halui.program.run can result in screwey behavior. An ideal solution is to assert these signals only until they take effect. My solution (attached) was to: - Select the appropriate action using 'and' components - Use flipflop components to stop asserting the signal as soon as they take effect - Use the edge component to lock in the decision to ensure one 'run' or 'resume' command from a single button-press event. I posted this on the wiki here: http://wiki.linuxcnc.org/cgi-bin/wiki.pl?One_Button_Run/Resume Enjoy! -Kip attachment: run_pause_halui_schematic.png-- AlienVault Unified Security Management (USM) platform delivers complete security visibility with the essential security capabilities. Easily and efficiently configure, manage, and operate all of your security controls from a single console and one unified framework. Download a free trial. http://p.sf.net/sfu/alienvault_d2d___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] GladeVCP Persistence On_Destroy sensitivity
On Mon, Mar 4, 2013 at 4:20 AM, Michael Haberler mai...@mah.priv.at wrote: So when a user selects File-Quit, a SIGTERM should be generated? You mean in Axis? In a gladevcp application? please share a bit more more detail about your setup - depending on the answer, different things happen, which is probably part of your problem: - if Axis is exited, the linuxcnc script notices and starts sending a SIGTERM and eventuall SIGKILL to all running process, so yes, gladevcp should receive a SIGTERM and that can be handled Apologies, I should should have described my setup a bit more. I _am_ talking about a GladeVCP panel embedded in Axis, and from the previous discussion, I was hoping SIGTERM would have triggered my on_unix_signal() in the same way that pressing Control-C does. It may be that there are other issues that prevent it from responding appropriately. It would help if we could isolate the issue a bit more, namely a) are those signals generated b) how are they reacted to habe a look at the gladevcp source code to see how the signal handlers are installed, you can do that 'custom' easily: if handlers.has_key(signal_func): dbg(Register callback '%s' for SIGINT and SIGTERM %(signal_func)) signal.signal(signal.SIGTERM, handlers[signal_func]) signal.signal(signal.SIGINT, handlers[signal_func]) I will trace through the source and look for this section. I'll follow the execution to see where it's failing. I think for now, I am going to regard auto-saving widget states as unreliable. Instead, I will keep anything that ought to be saved in vars, which don't disappear on me. hey, lets apply a bit more rigor here. This _must_ work reliably eventually, period. Please help with it. I will happily help with it. Part of the miracle that is open-source software is the result of the collaborations that occur. This philosophy resonates deeply with me. I was simply responding to your earlier comments that coming up with a robust solution must be done carefully and deliberately. I wanted you to know that in my particular situation, namely saving 1 or 2 variables, is not being delayed by any of the issues we have discussed, so my problem is solved. I am not a software engineer, barely know any Python, and first looked at Glade about 15 days ago. But I might question the strategy of storing information in volatile objects like widgets. In the Model-View-Controller architecture, there is a distinct separation between Data (Model) and View/Controller. The GladeVCP.persistence vars have this separation, whereas the data stored in the widgets do not. Since there are many ways for widgets to be destroyed, IMHO the likelihood that we can intercept their destruction 100% of the time seems low. Thus storing any persistent information in a less volatile location is attractive. Maybe we could expose functionality to the users to update the data model directly: def on_change: self.ini.setvalue(objectname, objectvalue) -Kip -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] GladeVCP Persistence On_Destroy sensitivity
So when a user selects File-Quit, a SIGTERM should be generated? It doesn't trigger the on_unix_signal(), whereas hitting Control-C does. I think for now, I am going to regard auto-saving widget states as unreliable. Instead, I will keep anything that ought to be saved in vars, which don't disappear on me. On 3/3/13, Michael Haberler mai...@mah.priv.at wrote: Am 03.03.2013 um 13:45 schrieb andy pugh: On 3 March 2013 07:39, Michael Haberler mai...@mah.priv.at wrote: I have looked into the issue in the past, more with an eye towards fast estop, and the gist was: if it is too work fast, the shutdown sequence must be aware of the hardware it is using; for instance, the fastest, lowest-impact method to shutdown a Mesa card was to remove the watchdog function from the thread which got the time windows down to a watchdog period. So shutdown is fast or portable, tick either one. It is not an issue which can be solved en passant with a quick fix; it needs a bit of a plan and some systematic work which doesnt immediately yield results. This is considering the process that happens when LinuxCNC is exited with a machine powered-up and running? I can see this is a type of e-stop, but not the normal sort. Right Is it possible to refuse to quit until at least one servo cycle has run with the LinuxCNC enable outputs disabled? the current sequence is in scripts/linuxcnc function Cleanup: it sends signals to all user processes (UI, task etc) ; first SIGTERM, later SIGKILL if a process wont exit then it stops the realtime threads via halcmd stop then it proceeds to unload hal_lib, rtapi and modules and cleans up If anything happens before threads are stopped really depends on what user processes are doing and if/how they react to a signal what I was referring to: if you react to the shutdown signal (or a segfault for that matter) in one of the user processes, that potentially reduces the time window until threads are stopped, and there is some choice what still can be done - provided safe signal programming techniques are used I'd need to look if any components actually react in HAL due to a signal directly; cant remember having seen it -m -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
[Emc-users] GladeVCP Persistence On_Destroy sensitivity
Anybody using GladeVCP with Persistence? Did you have trouble getting it to save settings? It seems to me as though it is very sensitive to what widget the 'on_destroy' signal is attached. The documentation does warn against attaching it to the 'window1' object. But I had terrible luck getting it to save_state when LinuxCNC was shutting down. I was able to figure out what it was trying to do by putting print statements into /usr/lib/pymodules/python2.6/gladevcp/persistence.py What I found was that the getter() returned by get_value() would fail when the window was being destroyed. I resolved the problem by putting the 'on_destroy' signal on the same widget that was being read first. There is no way to determine which widget will be first, other than by putting in print statements. Has anyone else seen this behavior? -Kip -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Help, out of inputs on my parport
I would imagine that the LS chips are expensive because they are obsolete. I used them because they were in my junk drawer. I would recommend using the HCT series. I see that the pin names have changed a bit from the old datasheets. STCP = Storage Register Clock, I referred to as 'Latch', formerly 'RCLK' SHCP = Shift register clock, formerly 'SRClock' DS = Serial data Input, formerly 'Ser' PL = Parallel Load, formerly 'SRLoad' -Kip On Tue, Feb 5, 2013 at 1:33 PM, kqt4a...@gmail.com wrote: On Tue, 5 Feb 2013, Roland Jollivet wrote: On 5 February 2013 16:11, Ralph Stirling ralph.stirl...@wallawalla.edu wrote: Digikey.com . You also might consider 74HC595, 74HC497, or 74AHC595 and 74AHC597. -- Ralph Don't use 74HC parts. Use 74HCT as these are TTL compatible. HC parts need to be driven closer to the rail, and often don't switch unless driven by CMOS chips. Otherwise find a similar part in the CD4xxx series. They switch at Vcc/2. great i see 74HCT597N for $0.70 and 74HCT595N for $0.80 on mouser the ls 74ls59[57] are $10.00 each does the type of inverter matter thanks richard -- Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Help, out of inputs on my parport
Good idea. Check out http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Shift_Register_Port_Expander -Kip On Sun, Jan 27, 2013 at 8:44 PM, Chris Radek ch...@timeguy.com wrote: On Sun, Jan 27, 2013 at 06:14:56PM -0500, Kip wrote: Greetings all! My shift registers seem to be working well as a cheap and easy port expander! Apologies for how long it took me to write it That's really cool. A lot of people have asked about a simple scheme such as this over the years, and the responses have always been like: yeah - ought to be possible - doesn't seem too hard. A writeup is worth a lot more than that! While list archives are forever, it might be nice if you'd also make a page on wiki.linuxcnc.org sharing this. Thanks! Chris -- Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnnow-d2d ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnnow-d2d ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Help, out of inputs on my parport
Absolutely! I just finished wiring up the real (non-prototype) interface card yesterday. As soon as I make sure everything is working, I'll post the wiring diagram and the HAL module. It appears that even the high-latency (1ms) shift register lines are fast enough to directly read the tachometer signal from my cooling fans (120 Hz)! On Wed, Jan 2, 2013 at 2:11 PM, Marius Liebenberg mar...@mastercut.co.zawrote: Kip, Would you be willing to share your module. I am in need of a similar solution. Marius On 2012/12/28 02:54 PM, Kip Shaffer wrote: Gene, Not sure if you would be interested in the approach I'm using, but it may help you or others who are in a similar predicament. You can use shift registers to add as many additional lines as you want. For example, you can take 3 output lines on your parallel port, and turn them into 8, 16, 24 or more output lines. Shift registers come in two varieties: Serial-In Parallel-Out, which you would use to create more output lines, and Parallel-In Serial-Out which you can use to create more input lines. I wrote a HAL module to implement my setup, which uses 4 pins on the parallel port to create 16 output and 16 input lines. I use these lines for higher-latency signals, since it takes about 1 ms to shift all the bits in and out. There is a good article explaining it here: http://robots.freehostia.com/Software/ShiftRegister/ShiftRegisterBody.html -Kip On Fri, Dec 28, 2012 at 5:15 AM, MC Cason farmerboy1...@yahoo.com wrote: On 12/28/2012 03:10 AM, Steve Blackmore wrote: On Fri, 28 Dec 2012 02:34:37 -0500, you wrote: Mainly the 3 weeks to a month it takes from mainland china for delivery. But since I've decided to sacrifice the one pin I was saving for a home pin, that is the path I'll take. That seems a long time? I've had several packages from China most have taken 4 or 5 days, none longer than 10 days from Shanghai to my doorstep in UK. They are usually in the country within 48 hours, the delays are always here! Steve Blackmore -- Here in the Southern part of the US, It regularly takes between 10 days, and 2 weeks for items to arrive from Shenzhen, or Hong Kong, Longer, from Shanghai, or Guandong. The latest set of boards I had made, were air flighted out of Hong Kong, on the 19th. According to the tracking number, they haven't landed yet... -- MC Cason - Assocaite Developer - Eagle3D Created by: Matthias Weißer -- Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122812 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- Regards / Groete Marius D. Liebenberg MasterCut cc Cel: +27 82 698 3251 Tel: +27 12 743 6064 Fax: +27 86 551 8029 Skype: marius_d.liebenberg Skype Me^(TM)! skype:marius_d.liebenberg?call Get Skype http://www.skype.com/go/download and call me for free. --- avast! Antivirus: Outbound message clean. Virus Database (VPS): 130102-0, 2013/01/02 Tested on: 2013/01/02 09:11:40 PM avast! - copyright (c) 1988-2013 AVAST Software. http://www.avast.com -- Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery and much more. Keep your Java skills current with LearnJavaNow - 200+ hours of step-by-step video tutorials by Java experts. SALE $49.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122612 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery and much more. Keep your Java skills current with LearnJavaNow - 200+ hours of step-by-step video tutorials by Java experts. SALE $49.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122612 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users
Re: [Emc-users] Help, out of inputs on my parport
Gene, Not sure if you would be interested in the approach I'm using, but it may help you or others who are in a similar predicament. You can use shift registers to add as many additional lines as you want. For example, you can take 3 output lines on your parallel port, and turn them into 8, 16, 24 or more output lines. Shift registers come in two varieties: Serial-In Parallel-Out, which you would use to create more output lines, and Parallel-In Serial-Out which you can use to create more input lines. I wrote a HAL module to implement my setup, which uses 4 pins on the parallel port to create 16 output and 16 input lines. I use these lines for higher-latency signals, since it takes about 1 ms to shift all the bits in and out. There is a good article explaining it here: http://robots.freehostia.com/Software/ShiftRegister/ShiftRegisterBody.html -Kip On Fri, Dec 28, 2012 at 5:15 AM, MC Cason farmerboy1...@yahoo.com wrote: On 12/28/2012 03:10 AM, Steve Blackmore wrote: On Fri, 28 Dec 2012 02:34:37 -0500, you wrote: Mainly the 3 weeks to a month it takes from mainland china for delivery. But since I've decided to sacrifice the one pin I was saving for a home pin, that is the path I'll take. That seems a long time? I've had several packages from China most have taken 4 or 5 days, none longer than 10 days from Shanghai to my doorstep in UK. They are usually in the country within 48 hours, the delays are always here! Steve Blackmore -- Here in the Southern part of the US, It regularly takes between 10 days, and 2 weeks for items to arrive from Shenzhen, or Hong Kong, Longer, from Shanghai, or Guandong. The latest set of boards I had made, were air flighted out of Hong Kong, on the 19th. According to the tracking number, they haven't landed yet... -- MC Cason - Assocaite Developer - Eagle3D Created by: Matthias Weißer -- Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122812 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users -- Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and much more. Get web development skills now with LearnDevNow - 350+ hours of step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122812 ___ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users