Digital Read Out Quadrature Encode Reader version 4.0, copyright 1995 1996 Lindsay Engraving Inc. 3714 W. Cedar Hills Drive Kearney, NE 68847 slindsay@nyx.cs.du.edu This program will make your computer into a linear DRO or rotary indexing reader for up to three 5V quadrature square wave encoders. Description: DRO.EXE is a DOS based program that will read incoming pulses from 5V quadrature square wave encoders through the parallel port. A hardware interface is required that consists of only two transistors per encoder. Text and wiring diagrams are supplied to help you make your own. Features: Read up to three encoders simultaneously. Reads 4 times the resolution of the encoder by counting all changes per cycle of the quadrature inputs. Reset, Preset. Absolute master mode and four incremental modes. User selectable between Linear and rotary readouts. User customizable unit to count by for each encoder. Six places right of the decimal point resolutions possible. Linear backlash compensation. Millimeter to inch and inch to millimeter conversion. Reads from most 5V encoders with quadrature square wave output. Requirements: IBM compatible, Dos, VGA or EGA Bi-directional parallel port Files found in DRO302.ZIP DISCLAIM.TXT PLEASE READ README.TXT last minute notes DRO.EXE the program ENCODE.CFG saved configuration information (used by DRO.EXE) QUAD.HLP help file (used by DRO.EXE) DRO.TXT this document NO_IRQ1.GIF simple interface diagram to use DRO without an IRQ NO_IRQ2.GIF diagram of the wire connections to the homemade interface box. PARTS.TXT list of parts required to make the interface BOX1.JPG photo of the interface box. BOX2.JPG " " BOX3.JPG " " BOX4.JPG " " BOX5.JPG " " LINEAR.ZIP photos of homemade encoder housing to read linear movement WITH_IRQ.ZIP files on making the interface with an IRQ PARALLEL.ZIP utility shareware program to tell you about your LPT port Use a gif and jpg viewer to see these types of files. You may also use a Web browser to view these files. To view them with Netscape, start Netscape and click on "File" then "Open location". Type in your path to the DRO directory and hit enter. When you see the jpg and gif files just double click on them. BUILDING THE HOMEMADE INTERFACE: You may run DRO.EXE and look at the software without hooking up the encoders or interface. On the main menu of DRO there is an on/off switch for turning the IRQ (hardware interrupt) off and on. With the IRQ off the hardware interface you need to build is simpler. Also it works better than with the "IRQ on" feature with the more complex hardware. Without using an IRQ all three encoders can be spun quickly at the same time without errors showing up in DRO. To interface your 5V quadrature encoder to DRO without using an IRQ you will need two transistors (PNP) per encoder and a 5V power supply. Look at the NO_IRQ1.GIF and NO_IRQ2.gif. These are diagrams of the wiring for the transistors and the LPT port. They show two different sources for the 5V power supply. One is by bringing a 5V wire directly out of the computer's power supply and the other is using an outside source for 5V. They both are wired similarly. If you use a 5V DC outside power supply make sure it is a clean TTL 5V DC. If not, you may damage your encoders or LPT communications port. Be sure to look at NO_IRQ1.GIF and notice the orientation of the Transistors. PARTS.DOC has a list of parts and part numbers you will need to build the interface. The part numbers are Mouser Electronics but you should be able to find them at your local Radio Shack if you prefer. In this PARTS.DOC it also listed sources for inexpensive Hewlett Packard OEM encoders. The BOX1.JPG through BOX7.JPG files show completed photos of interface that should help in the construction. ROTARY TO LINEAR CONVERSION The seven LINEAR.JPG files show an idea for making a device that uses HP rotary encoders read a linear axis. It consists of a HP rotary encoder, HEDS-9000-U00 (2048 pulses). By the time it is quadratured in the software it is 8192 pulses. To get from linear to rotary the housing holds the encoder with two idlers on either side. A wire is strung (.015 fishing leader wire) the full length of the axis. The wire comes in over one of the idlers and around the encoder shaft and then back around the other idler and out of the housing. The encoder shaft that the wire runs on is 5/8" dia. To figure out the resolution to tell DRO the unit to count by, you tell DRO to first count by 1. Move the axis all the way to one end and zero DRO then move all the way to the other end of the axis and watching your hand crank dial so you know exactly how far you moved. Then divide the distance traveled by the count on the DRO. The unit for a 5/8 dia encoder shaft came out to be .00025394328. This is entered in the program as the unit to count by. If you get lots of cutting oil on the wire it can make it slip though. Possibly a housing for the wire could be made. If the wire is strung too tight the result is that the wire must stretch a little when the axis changes direction acting similar to backlash. With the wire just snug it will have a backlash of .00025 to .0005. It does take some trial and error to get the wire just right. In the worst case it will act like backlash up to .002. We have heard some Kevlar thread may work better and not stretch. We would be interested in hearing from anyone that tries the Kevlar and how it works. There is a company that will have available soon some linear encoders modules and gradient film strips for about the price of the HP rotary encoders. These linear encoders are suppose to read a film strip with a gradient of 500 lines per inch. That will be 2000 quadutured (.0005" resolution). The company is www.usdigital.com 800 836 0198. They also sell the HP encoders with and without housing and all kinds of encoder miscellaneous items. INSTALLING THE SOFTWARE: To install the Digital ReadOut create a directory for it and use PKUNZIP to extract DRO302.ZIP to that directory. To run the program change to the directory you made for it and type dro followed by enter. You may run DRO.EXE and look at the software without hooking up the encoders or interface. DRO.EXE will run off a floppy disk if you do not have a hard drive on the computer you would like to use it with. Just copy the files DRO.EXE, ENCODE.CFG and QUAD.HLP to a floppy. DESCRIPTION OF THE DIGITAL READOUT MENUS AND FUNCTIONS: All the menus in the program have highlighted letters. Hitting that letter on your keyboard will take you to that function. At any time to return to the previous menu press the ESC key. When DRO is started the first screen is where the LPT port is chosen. The default port is LPT1. The setting of the IRQ# is unimportant if the IRQ is shut off (IRQ on/off in the lower right corner of the screen). Shut the IRQ off in order to use the interface described without an IRQ. The Time Display value is used when the IRQ is shut off. The program uses the time display value while DRO is watching the port and displaying the incoming value changes to the screen. When information begins to come in too fast (encoders are spinning fast) the program will stop updating to the screen and just concentrate watching the port and counting. When the encoders slow down the display will begin updating again. The time display value determines when the program should quit displaying to the screen and only concentrate watching the port. Try to set this value to the smallest number without errors coming in. DRO will tell you if it had an error. With our testing a 486-100 computer and DRO setup with the encoders as viewed in Linear6.jpg and with a low Time Display setting of 6 a hand cranked axis spun as fast as possible DRO will keep up without errors. In testing with the same 486-100 and a HP 500 CPR encoder the shaft was spun at approx. 900 rpm without errors. Please note: For best results a .1µF capacitor should be placed between the incoming 5V at the interface and ground. Also it may help to put one across Pos and Neg right at the encoders. A 286 computer will require a higher setting of the Time Display to keep error from occurring. Pertinent values are from 1 to 300. DRO is a DOS based program and can be ran in a Windows 3 or Windows 95 window but DRO seems to get more errors from the encoders when Windows is running. If you use Windows exit to DOS and run it from the DOS prompt for a faster reaction of the encoders. To view and/or change the Time Display value press the 't' key from the main menu. Enter a new value or press ESC to return back to the main menu. Press the 'r' key from the main menu to begin reading the port. This encoder reader screen uses X, Y and Z to designate the 3 encoders. The X axis is hooked to pins 2 and 3 of the LPT port, Y is hooked to 4 and 5, and Z is hooked to 6 and 7. There is a quick zero reset for each axis from this screen. They are F1 for X, F2 for Y and F3 for Z. Encoder Y and Z have been disabled in this 3.02 version. Contact Lindsay Engraving for the latest registered version ($79.00) with all encoders enabled. There are four increment modes and one main Master Mode. Press the 'm' key or space key to toggle through them. Each axis (encoder) has it own setup screen and depending if you are in Master mode or a increment mode the setup up is different. The increment mode is a more limited setup screen. Toggle the mode by pressing the space bar until you are in Master Mode. Now press the 'x' key. This takes you to the X axis (encoder1) Master setup screen. The available options in this setup are: COUNTING UP/DOWN +/- To change the direction that encoder is counting. RESET TO ZERO To reset the encoder to zero. Press it again to undo the rezero. (F1 will do the same from the reading screen but there is no undo from there) CURRENT VALUE Enter in a new current value UNIT TO COUNT BY Enter in a value for this encoder to count by (up to 14 places to the right of the decimal). BACKLASH ON/OFF Use if you are hooking directly to a lead screw that has backlash. LASH DISTANCE The backlash distance of the screw and nut. LASH TENSION DIR. Which way you want the tension of the lash to go from. (Once you set this it will keep track of where you are in the backlash. So if you take the backlash up the opposite of what it once was and rezero the axis it will automatically switch the "lash tension dir." for you.) POSSIBLE ERRORS This will show a running count on the encoder reader screen of any possible errors. PLACES SHOWN RIGHT OF DECIMAL How many places to the right of the decimal you would like displayed on the encoder reader screen. F2 CONVERSION Menu to a inch to mm and mm to inch setup screen. When you are finished entering in the data press the ESC key to return back to the encoder reader screen. Press the space key to go to any other mode than the Master mode. Now press the 'x' key. This is the incremental mode setup screen. The options are Reset to zero, Entering in a new current value and changing direction of counting +/-. Press the ESC key to return back to the encoder reader screen. When you press the F1, F2 or F3, key to rezero from the encoder reader screen this will rezero only what mode you are currently in. If you press one of these hot keys from the master mode it will rezero all the modes however. It should be noted that if you are using an interface to your encoders without using an IRQ and you are in any other screen besides the encoder reader screen and one of the encoders moves the program will not see it move. This is not true with an IRQ interface though. You may set up any three of the encoders to read as a rotary readout to use in indexing. From the encode reader screen press the 'r' key. The program will ask you what axis you would like setup as rotary. In the Rotary Settings screen the options are: ROTARY COUNTING ON/OFF Shut this off to go back to linear counting. RESET TO ZERO Reset the encoder to zero. CURRENT VALUE Enter in the current degrees value. Either decimal or in degrees, minutes, secs. DISPLAY Display in degrees, minutes, secs or in decimal degrees. NUM. IN 360 DEGREES Enter in the number of counts per rev. of your encoder times four because DRO reads the quadrature. SHOW REVOLUTIONS Toggles between showing how many times 360 or -360 was hit. COUNT DIRECTION -/+ Change direction of counting up or down. After entering in the data press ESC to return to the encode reader screen. There is one other hot key that is not shown on the encoder reader screen and that is the 'h' Help key. GETTING YOUR LPT PORT TO WORK WITH DRO Your printer parallel LPT port should be a bi-directional (8 bit in and out) to work with DRO. What is called a "compatible mode" will not work as it is a 4 bit input only port. A "EPP" parallel LPT mode port will work. If your LPT port is integrated right on the motherboard check your BIOS setup to see if you may configure your LPT in several type of modes. After you have the interface made and you hook up an encoder for the first time and nothing seems to happen make sure that you selected the correct LPT port in the main startup screen of DRO. If this is not the problem it may be that the LPT port is not bi-directional. If after hooking the encoder up DRO counts but with lots of errors also coming in the problem probably is a noisy 5V power. Try placing a .1µF (microfarad) capacitor across GND and positive at the interface box (see NO_IRQ2.GIF) and or a .1µF capacitor across GND and positive right at the encoder.