The relay is a "thinking outside the box" approach. Not the most elegant but when we're focused on an electronic/software solution often the simple one is overlooked.
John > -----Original Message----- > From: ken.stra...@gmail.com [mailto:ken.stra...@gmail.com] > Sent: December-02-20 5:51 PM > To: 'Enhanced Machine Controller (EMC)' > Subject: Re: [Emc-users] USB - Serial question > > Yes, unplug/replug works. I suppose that the 4PST would work but it seems a > little inelegant compared to a disable pin on the USB-Serial chip. > > I forget the timeout but you have to answer the HELLO poll in a second or > so. Motion commands potentially arrive very soon after responding to the > HELLO. Commands require an immediate OK_WORKING_ON_IT but there is no > COMMAND_COMPLETE. > > -----Original Message----- > From: John Dammeyer <jo...@autoartisans.com> > Sent: December 2, 2020 8:21 PM > To: 'Enhanced Machine Controller (EMC)' <emc-users@lists.sourceforge.net> > Subject: Re: [Emc-users] USB - Serial question > > So you do get the query again if you unplug and plug in your USB? If that's > the case the easiest is to disable your USB, whether done with a 4PST relay > on the USB pins or with signals to the USB device. > > Then when you are ready, effectively plug in the USB and wait for the query. > > It all depends on what Path Pilot sends to your module after you say I hi > I'm here. Whether you have to respond right away? And if you do, what does > PP do then? > > Will it want to immediately control your hardware? Does it expect an I'm > done moving hardware reply (handshaking)? Does it time out if it takes a > long time for the reply? > > Once you list the behavior for the various cases it will be easier to decide > how to proceed. > John Dammeyer > > > -----Original Message----- > > From: ken.stra...@gmail.com [mailto:ken.stra...@gmail.com] > > Sent: December-02-20 4:53 PM > > To: 'Enhanced Machine Controller (EMC)' > > Subject: Re: [Emc-users] USB - Serial question > > > > Chris wrote: I think USB takes care of this for you. "set up" > > packets are sent by the host (the PC) and never by the device (mouse, > > disk, or whatever) The device never starts doing anything until after it > hears from the host. > > > > You've precisely described my problem! I need to do somewhat time > > consuming initialization -- home some steppers, actuate a pneumatic > > cylinder, prime a pump, verify coolant pressure, etc. Soon after > > PathPilot starts it scans for my USB device and, if found, sends a > > query to ensure that I'm actually alive. If I ignore or reject the > > alive query then PathPilot ignores me until my USB disconnects and then > reconnects. > > > > My problem is that I may not yet know if I will ever be alive and > > ready when I'm first asked. I have a plan to queue any host requests > > received while I'm still initializing. > > > > Probably more explanation than you wanted! > > > > -----Original Message----- > > From: Chris Albertson <albertson.ch...@gmail.com> > > Sent: December 2, 2020 6:20 PM > > To: Enhanced Machine Controller (EMC) > > <emc-users@lists.sourceforge.net> > > Subject: Re: [Emc-users] USB - Serial question > > > > I think USB takes care of this for you. "set up" packets are sent by > > the host (the PC) and never by the device (mouse, disk, or whatever) > > The device never starts doing anything until after it hears from the > > host. The host > > (Linux) is constantly polling the USB port > > > > So let's say the device was faster than the PC. then the device would > > wait for "setup packets" before enumerating. What if the PC sent "setup" > > before the device was alive. Then nothing happens and the PC keeps > "setup" > > until the device boots. > > > > I think this is done 1000 times per second so the connection is > > started only a millisecond after the slower end is running. Then the > > next thing is they have to agree on speed and power usage. > > > > The protocol takes care of one being faster, power, and which USB > > standard is to be used. > > > > I don't think you need to even fully understand if you use a USB > > library to handle it. > > > > On Wed, Dec 2, 2020 at 1:04 PM John Dammeyer <jo...@autoartisans.com> > wrote: > > > > > > > > > > > > From: Chris Albertson [mailto:albertson.ch...@gmail.com] > > > > OK, then you likely don't need a FT232 chip. The microcontroller, > > > > whichever one you use, will likely have USB2 built-in. Or just make > > > sure > > > > it does, so many chips have this. > > > > On Wed, Dec 2, 2020 at 12:00 PM <ken.stra...@gmail.com> wrote: > > > > > > > > > To clarify: > > > > > I am working on an accessory for a Tormach mill running > > > > > PathPilot (a flavour of LinuxCNC). It is for personal use so I > > > > > don't need to especially > > > worry > > > > > about product cost but obviously I'd rather not spend a lot on > > > something > > > > > that may eventually be abandoned when I get a better idea. I > > > > > could > > > modify > > > > > the Tormach source code to solve my timing problems but I'd > > > > > prefer to > > > use > > > > > it > > > > > unchanged to ease the installation of their updates. > > > > > > It appears the issues isn't so much whether a processor with > > > internal or external USB is used. Even an internal one can be > > > disabled so it won't be enumerated by the PC OS. > > > > > > The problem appears to be that the Arduino project takes longer to > > > do what it does on start-up than LinuxCNC does to send a couple of > > > requests out the USB/Serial port. > > > > > > There are two problems as I see it. > > > 1. If you wake up the USB too soon but don't listen to it then you > > > miss the messages and hang then waiting for them. > > > 2. If you don't initialize the USB port then from LinuxCNC > > > perspective the device doesn't exist and it probably won't > > > initialize or respond > > anymore. > > > > > > Since I don't know exactly what Ken is expecting from the Tormach > > > software it's hard to give really good suggestions. I'd make > > > opening the Serial Port for the USB connection the highest priority > > > operation in > > the Arduino > > > project. Now at least you can get the messages. > > > > > > With this in mind what does the Tormach do if the USB is not plugged in. > > > Then after the Ardunio has powered up, done the motion control > > > operations it needs to do and is ready, you plug in the USB? > > > > > > Does the Tormach then evaluate that there is now a serial port and > > > send those one or two messages? > > > > > > Ie. First evaluate all the permutations on the Tormach side. You may > find > > > you have no choice but to modify the Tormach. Or alternatively you > lie > > > to the Tormach and tell it you are ready when you aren't. But then > > > hold off on any other commands from it until you are. > > > > > > Of course if that means "Is the Tool changer out of the way so I can > > > home?" question may need an NO even if it is. Then a YES after the > > > Arduino is done. > > > > > > John Dammeyer > > > > > > > > > > > > > > > > > > _______________________________________________ > > > Emc-users mailing list > > > Emc-users@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > > > > -- > > > > Chris Albertson > > Redondo Beach, California > > > > _______________________________________________ > > Emc-users mailing list > > Emc-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > > > _______________________________________________ > > Emc-users mailing list > > Emc-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > _______________________________________________ > Emc-users mailing list > Emc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > _______________________________________________ > Emc-users mailing list > Emc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-users _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users