By continuing to use this site, you agree to our use of cookies. Find out more
Forum sponsored by:
Forum sponsored by Allendale Jan 24th

Arduino DRO

All Topics | Latest Posts

Search for:  in Thread Title in  
Peter Bell28/11/2018 16:51:36
291 forum posts
138 photos

I have had success with a dro based on a rotary encoder fitted to the lead screw of my mill described on the site below.

Home Brew DRO – WDMES - Warrington & District Model Engineering Society

I have another DRO application but this time I would like to make a draw wire spring return linear encoder but using a rotary encoder in the style of one in the pics from BW Electronics which works well.

I know there are commercial units units available at suitable prices but before attempting I wondered if anyone had constructed one using an optical (ebay around £8.00) or magnetic rotary encoder?





Bob Mc28/11/2018 19:43:54
150 forum posts
1 photos

Hi Peter...

I have been thinking about making a wire draw DRO for the y axis on my lathe, as you say commercial units are available but are rather expensive... the rotary encoders on ebay would be suitable if a wire draw mechanism was available with it .

Using the Arduino for the control and readout is the easy part..and after much deliberation as to how to fit some sort of wire draw retractable mechanism it occurred to me that something like a tape measure or retractable dog lead might be the answer but they are not exactly what is required.

I came across a possible solution when I saw for sale a retractable key ring, this is fairly small and has a reasonably good retracting pull, the torque needed for the rotary encoder is very light and the only consideration would be to fit the mechanism to the encoder and to the machine...and it is very cheap.

I haven't got round to doing the job yet...but pictures below show the parts; for my lathe I only need a readout for the cross slide I have bought a normal dro from Chester Machine tools for this which sits in line with the bed and is just where the line of sight with the work is.... anyway see pics below...hope this might be of use...


The x axis readout below.


Rotary encoder.

rotary encoder.jpg

Retractable keyring .

retractable keyring.jpg

duncan webster28/11/2018 22:07:27
2546 forum posts
49 photos

I'm glad you got the Arduino DRO to work. If I did the software again I might do it differently to avoid using floating point arithmetic, which would make it work faster I think. Not that speed has ever been an issue with mine, no matter how fast I twiddle the handle it always comes back to zero when I return to base.

If the ebay encoder is **LINK**

the description is a bit Delphic. If 400 P/R means pulses per rev it might mean a 200 slot wheel, 800 edges per rev. To get 0.001" resolution you would need a drum circumference of 0.8", 0.254" diameter which is unfeasibly low. The original design on my lathe has a 90 slot wheel, 360 edges on a 1mm pitch leadscrew. You could gear it up but you'd then have to think about backlash in the gears.

Since building the original I've discovered LED displays which are much more readable than LCD. The software could be modified to suit fairly easily.



Edited By duncan webster on 28/11/2018 22:09:29

Peter Bell29/11/2018 08:31:15
291 forum posts
138 photos

Hi Bob & Duncan,

Thanks for the helpful replies and Duncan with your work in getting the original DRO up and running for all to use. I’m not very experienced with Arduino but working on it! The LCD displays are good but I was wondering if a 7 segment display with be better and less critical of the viewing angle. Got a Max7219 8 digit 7 segment module on order to play with.

I had thought of a retractable key ring but realised that I have a few scrap 3m tapes. Dismantled, this revealed a 0.12 thick, 9mm wide return spring easily long enough to try. This I was going to put in a spring barrel at one end. Have two plates with the wire drum in the middle and the encoder at the other end on a ball bearing spindle if you see what I mean.

Yes that was the encoder I was going to use. It hasn’t arrived yet but I also found this magnetic type which gives a genuine 256 ppr. Could do with a higher count but want to avoid gearing. The wire drum dia is something unknown at present but the BW Electronics version looks to be fairly coarse on the encoder and uses a drum about 0.8” dia. Any guidance on drum dia will be gratefully received!


IanT29/11/2018 10:39:52
1508 forum posts
142 photos

Hallo Peter,

Been in the process of mounting a 4" (moveable) DRO to the X-axis of my smaller mill but I like the idea of the wire encoder. So please keep your postings going.

As I've mentioned here before - I prefer the Micromite to the Arduino - which I can interactively develop with and which supports a wide range of displays (including touch) 'out-of-the-box'. As an side, last night I was looking at Grbl1.1f (as a friend is trying to use it with an Arduino Nano on a laser printer) and having multiple compiler errors. I'm afraid I've been spoiled by using (to me) the much friendlier MM environment. So if I do this, I will walk my own path in that respect - but the encoder itself is certainly interesting.

I've got some key-ring pulls but would have thought that they might not be strong enough in this application.

Please keep us posted.



duncan webster29/11/2018 15:22:09
2546 forum posts
49 photos

If you want 1 thou resolution then an edge has to pass one of the sensors every thou (obvious). This means that (wheel circumference)/edges = 1/1000. You actually have to allow for wire diameter as its the wire pitch diameter that matters, but we can do that later. With a 1" wheel you have a circumference of 3.1416" so you need 3141.6 edges. Clearly you can't have that so settle for 3200 (it has to be divisible by 4) and increase the wheel diameter to suit (1.0186", then take off the wire diameter. 3200 edges is 800 slots, it isn't clear to me how many slots your encoder has.

If you want metric with a resolution of 0.02mm then you need twice as many slots and a slightly different wheel diameter, I'll let you work it out

What you can do is wire the new encoder in place of your existing one on your milling machine. Zero the display then turn the spindle one rev and note the reading. You can then work out how many slots are in the encoder as you know how many the current one has.

I think this leads me to the think I wouldn't start from here, pull wire sensors and high resolution is difficult.

John Baron29/11/2018 16:58:54
279 forum posts
122 photos

Hi Guys,

FWIW every HP inkjet printer has an linear optical positioning system that is easy to get at and provides directional information. The reader head, whilst different in size to say a slot opto, is very similar electrically. Without checking the technical data sheet for the optical reader head I don't know how fine the steps are, certainly the tape is at least 200 lines to the inch.

Les Jones 129/11/2018 17:06:46
2121 forum posts
146 photos

Just a warning about rotary encoders removed from HP printers, One of my first attempts at putting a DRO on my mill I tried using an encoder from an HP500c printer. If irst did some tests turning it by hand one revolution. I got 500 counts. When fitted I found it was not quite right. It turned out it was 504 counts per revolution. So don't assume it will be a nice round number.


Peter Bell29/11/2018 20:25:13
291 forum posts
138 photos

Id previously came across someone else who had problems with low resolution printer tape while trying to use it for a linear scale so left that one alone. I also recently came across an ic which read magnetic tape but decided that would need a quite a lot of development to make it into a working linear encoder?

The common ebay Chinese rotary encoders appear quite well made and seem to come in a few different specs with pulse per revs ranging from 360, 400 and 600 with a great lack of manufactures info in the traditional manner. However some listing have snippets of info, like

Pulses: 600 p/r (Single-phase 600 pulses /R,Two phase 4 frequency doubling to 2400 pulses)

Output :AB 2phase output rectangular orthogonal pulse circuit, the output for the NPN open collector output type

So it looks like a 600ppr one is capable of 2400 pulses/rev quad? Assuming that, from a quick stab at a calc I make the drum dia around 0.75” to give 1 thou resolution with 0.5mm stainless wire? I’m sure someone will correct me but it seems a starting point to try when the encoder arrives and I can rig something up to try it on the mill with the leadscrew sensor as a standard as suggested.

Also the outputs appear to use open collector npn transistors which need a load resistor (1k etc to +5v) to give out the correct waveform?

Agree a draw wire sensor not ideal but its not terribly expensive to give it a bash and I used the BW electronics one successfully for years.


duncan webster29/11/2018 23:34:10
2546 forum posts
49 photos

If P/R means slots then you are in with a chance as you would have 1600 edges. You can set the Arduino inputs (on 2 & 3) to be INPUT_PULLUP which adds a pullup resistor for you.

Michael Gilligan30/11/2018 23:49:32
15483 forum posts
668 photos


I have sent you a personal message


All Topics | Latest Posts

Please login to post a reply.

Magazine Locator

Want the latest issue of Model Engineer or Model Engineers' Workshop? Use our magazine locator links to find your nearest stockist!

Find Model Engineer & Model Engineers' Workshop

Latest Forum Posts
Support Our Partners
Allendale Electronics
Eccentric July 5 2018
Eccentric Engineering
Subscription Offer

Latest "For Sale" Ads
Latest "Wanted" Ads
Get In Touch!

Do you want to contact the Model Engineer and Model Engineers' Workshop team?

You can contact us by phone, mail or email about the magazines including becoming a contributor, submitting reader's letters or making queries about articles. You can also get in touch about this website, advertising or other general issues.

Click THIS LINK for full contact details.

For subscription issues please see THIS LINK.

Digital Back Issues

Social Media online

'Like' us on Facebook
Follow us on Facebook

Follow us on Twitter
 Twitter Logo

Pin us on Pinterest