MadModder
Gallery, Projects and General => Neat Stuff => Topic started by: Darren on November 23, 2009, 09:57:54 AM
-
Is this neat, or junk?
Does anyone understand it?
http://www.msh-tools.com/DRO/overview.html
-
Hi Darren, Not seen that system before :scratch:. I use the Shumatech Dro on my small mill, It works very well with chinese scales. http://www.shumatech.com/
Rob :thumbup:
-
They both look worth looking into! Suppose the only difference is you're getting 1 display which can be put in a convenient place with a bit more functionality through the computer / control box.
Nick
-
Is this neat, or junk?
Neat!
Does anyone understand it?
Ummm.... welllll... sort of. :scratch:
I do not know if the scales transmit the position continuously or just when they are moved, if the former then it would really be quite easy but the later would be more of a challenge.
I have thought of doing something like that myself and the only reason why not has been the chronic dearth of tuits. :coffee:
There is a project fermenting in my gray matter to combine a digital scale and a DC motor controlled by DCC (model train) digital controller chips, need more tuits.
-
Thats a bit flash using a iphone as a DRO display :clap:
I fancy having a play with one of these units http://www.yadro.de/ just need to dig out my old laptop :zap:
Rob
-
Thats a bit flash using a iphone as a DRO display :clap:
Not iphone, ipod ::)
-
I stand corrected ::)
-
Old topic, but I've sent for the Silicon Labs base board and daughter board to do the MSH version in the first post.
Shumatech and Yadro both seem to be unavailable now.
I have several old scales and a few older laptops. Wondering what the oldest version of Windows the display software will run on. Also have an old Android tablet that is rooted, and hacked and can run WinCE -- that one would be ideal, but not sure if the software would run on it.
-
Saw this on another site, Android based dro using the igaging scales and an Arduino board.
http://www.yuriystoys.com/p/android-dro.html
Simon
-
I saw that one too, but unfortunately no bluetooth on my older tablet and there is no USB method of connecting the scales using that Android software.
Ideally what I need are the simple hardware I've sent for, which does the caliper scale to USB conversion, and Android display software to present it.
-
Is the Ipod only showing the position numerals?
I have added Igaging to my tools, It only shows the position. I have three on the mill.
-
I saw that one too, but unfortunately no bluetooth on my older tablet and there is no USB method of connecting the scales using that Android software.
Ideally what I need are the simple hardware I've sent for, which does the caliper scale to USB conversion, and Android display software to present it.
Vtsteam,
The app works with USB (as of the last version). So far I've tested it with various Arduinos and FTDI chip; working on more support...
Thank you
Yuriy
-
Wow!!! Thank you Yurly. :bow: :thumbup: :clap: :clap: :clap:
:beer:
-
So far I'm most interested in the Android bluetooth version. Android tablets are dirt cheap if it will run older OS versions.
-
So far I'm most interested in the Android bluetooth version. Android tablets are dirt cheap if it will run older OS versions.
AR1911,
There are two versions of the executable on the Android market. One (older version) runs on 3.x but is missing a LOT of functionality and the new version that runs on 4.x. Supporting 3.x is a big PITA because Google added a lot of tablet-specific stuff in V 4.0.
On the plus side, most cheap tablets are fairly generic and can probably be re-flashed with a custom 4.x ROM...
Thank you
Yuriy
-
Good to know Yuriy.
Now that i think of it, I have an unused Mini-TV stick that runs 4.1, so I guess I could use my 40" shop tv for a DRO :thumbup:display
-
These just arrived today. Very reasonably priced, and the daughter card is actually all that is needed for a DRO once it's programmed. Looks like a very nicely made set of packages -- USB cables included!
My problem is probably going to be displaying the output from these with old Windows or old Android, or even DOS. I do have a very old 486 laptop running win95 with a serial port that is nice and compact, and otherwise useless. And the aforementioned tablet running an early Android with a USB port. Either would be great to re-purpose :coffee:
(http://i786.photobucket.com/albums/yy150/vtsr/vtsr/TecumsehBuild/Toolstick.jpg) (http://s786.photobucket.com/user/vtsr/media/vtsr/TecumsehBuild/Toolstick.jpg.html)
-
Saw this on another site, Android based dro using the igaging scales and an Arduino board.
http://www.yuriystoys.com/p/android-dro.html
Simon
This really interests me. I've been reading the 'arduino for dummies' book as a result of this post and I've decided to build one of these for the lathe. And possibly a second one for my mill when I get it.
It's been 20 yrs since I've dabbled in electronics and things have changed a little since, but I'm looking forward to catching up a bit :)
-
Glad to see you here Yuriy:-)
I plan on adapting my PIC code (see: www.cnczone.com/forums/pic_programing_design/62704-pic_based_dro.html ) to drive your app, and i might need some guidance regarding the interface.
My pic code can read most of the older Chinese scales both binary and bcd formats, using a single 8pin pic per axis.
Regards
Bill
-
Bill,
As long as the output is in the expected format, you should be fine.
The main requirements are:
has to start with an axis name
there has to be at most one "-" (minus) sign
there has to be at least one digit
the string needs to be terminated by a semicolon ";"
The order or frequency doesn't matter. The state machine resets after each axis (terminator), so you can send something like this:
X1234;x1234;x1234;y234;x1234;z0; etc.
The application expects at least one reading per second or it will be switch to the "Connection Lost" state. In five second it will drop the connection and stop listening.
Another consideration is that the app averages the last three readings (to reduce jitter). If you do the same on your end the readout will be pretty slow.
In the next version I will add a switch that will allow turning the "antialiasing" off...
Hope this helps
Thank you
Yuriy
-
Thanks for the reply Yuriy :-)
That's clear, and exactly how i hoped it would work :-)
My pic code simply reads and formats the data from the scale, waits for an open time slot on the serial bus (arbitrated by a separate bus) then squirts a formatted string onto the commoned txd line.
I think i averaged eight samples to stop jitter. The older scales had two sampling speeds 300mS and 50mS (i think)
The pic jiggles the scale data and clk lines to switch the scale speed. The newer scales appear to read at a fixed speed of about 100mS which is a little slow.
Bill
P.S. sourcecode for the pic and a diagram of the multi pic board is on the cnc zone thread.
-
I wonder if yuriy's dro.will.run on the ubislate 7ci (ice cream sandwich. No bluetooth) as this will soon be the cheapest tablet available - expected to.retail.at about £30!
www.ubislate.co.uk/product.php?prodid=1
The display is only 800 by 480 but would still be useable.i think :)
Bill
-
IF you are going to use a old pc?? what do you need all that other stuff for?? this vb6 program I wrote in 2005 can read with a quadrature encoder (glass scales) or a serial digital caliper..
IF you want to go "blue tooth" and readout on a android bases tablet? I suggest purchasing the $60?? arduino mega 2560 I bought today, has a RN42 bluetooth module socket, and there is communication software on the net, and encoder reading software, and serial software.. and..
At one time, this vb6 software also ran power feed to "point" selected.. no clue which version this is thou. My software is in disarray.. too many pc crashes.
(HOW it works, you can find the communication subroutine with the chinese scales and perhaps adapt it's logic to your arduino) THE forum didn't want me to post the whole program for you.. if you want it, code or compiled and running under windows? lemme know..
'
Private Sub Read_X_scale()
Dim a$
MSComm1.PortOpen = True ' open the port using MSCOMM
a$ = MSComm1.Input
If a$ <> "" Then
X_pos = Val(a$) / 25.4
'ProgressBar1.Value = Val(a$)
End If
MSComm1.PortOpen = False ' close the port using MSCOMM
End Sub
Private Sub Read_Y_scale()
Dim a$
MSComm2.PortOpen = True ' open the port using MSCOMM
a$ = MSComm2.Input
If a$ <> "" Then
X_pos = Val(a$) / 25.4
'ProgressBar1.Value = Val(a$)
End If
MSComm1.PortOpen = False ' close the port using MSCOMM
End Sub
Private Sub end_but_Click() 'end button
pin_output = Out8255(port_address, 0) 'blip A off
Run_Flag = False
End
End Sub
Private Sub delay_mS_time(timetodelay)
Dim time_out As Single
Dim delayinMilliseconds
delayinMilliseconds = HScroll1.Value
' ding
time_out = delayinMilliseconds + timeGetTime()
Do Until time_out <= timeGetTime()
'Text8.Text = delayinMilliseconds
Loop
End Sub
Private Sub run_main() 'this sub reads/writes the io bits
Run_Flag = True
Dim j As Integer
x_pos_txt.Text = X_pos 'write it to the block on the screen before exit sub leaves
Y_pos_txt.Text = Y_pos
If x_target.Text = "" Then x_target.Text = "0"
If x_target.Text >= X_pos Then
X_frame.BackColor = swon
End If
If x_target.Text < X_pos And foot_pedal.Value = False Then
pin_output = Out8255(port_address, 0) 'blip A on/off
Else
pin_output = Out8255(port_address, 1) 'blip A on/off
End If
If x_target.Text < X_pos Then
X_frame.BackColor = swoff
x_pos_txt.Text = X_pos 'write it to the block on the screen before exit sub leaves
End If
If x_target.Text = "" Then x_target.Text = "0"
If y_target.Text = "" Then y_target.Text = "0"
If y_target.Text >= Y_pos Then
Y_frame.BackColor = swon
End If
If y_target.Text < Y_pos And foot_pedal.Value = False Then
pin_output = Out8255(port_address, 0) 'blip A on/off
Else
pin_output = Out8255(port_address, 2) 'blip A on/off
End If
If y_target.Text < Y_pos Then
Y_frame.BackColor = swoff
End If
delay_mS_time (2)
'PortValues(0) = In8255(Port_Address)
PortValues(1) = In8255(port_address + 1)
'PortValues(2) = In8255(Port_Address + 2)
Return_word.Text = PortValues(0) & " " & PortValues(1) & " " & PortValues(2)
' Msg = ""
' For j = 7 To 0 Step -1
' If (PortValues(0) And (2 ^ j)) > 0 Then
' Msg = Msg & "1"
' Else
' Msg = Msg & "0"
' End If
' Next
' Word_A.Text = Msg
Msg = ""
For j = 7 To 0 Step -1
If (PortValues(1) And (2 ^ j)) > 0 Then
Msg = Msg & "1"
Else
Msg = Msg & "0"
End If
Next
Word_B.Text = Msg
' Msg = ""
' For j = 7 To 0 Step -1
' If (PortValues(2) And (2 ^ j)) > 0 Then
' Msg = Msg & "1"
' Else
' Msg = Msg & "0"
' End If
' Next
' Word_C.Text = Msg
foot_pedal.Value = PortValues(1) And (2 ^ 5)
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
'00,01,11,10 to right=cw, left = ccw
'****************** Conditional statements, get the bits of encoder************
X_Anew = Left$(Word_B.Text, 2)
'pick two left hand bits MSB?
'if serial box checked then 'do not use this sub.
'If Serial_X.Value = 0 Then
If X_Anew = X_Aold Then Exit Sub
If X_Anew = "00" And X_Aold = "10" Then 'CW
X_pos = X_pos + X_incr
X_Aold = X_Anew
GoTo endofx
End If
If X_Anew = "01" And X_Aold = "00" Then
X_pos = X_pos + X_incr
X_Aold = X_Anew
GoTo endofx
End If
If X_Anew = "11" And X_Aold = "01" Then
X_pos = X_pos + X_incr
X_Aold = X_Anew
GoTo endofx
End If
If X_Anew = "10" And X_Aold = "11" Then
X_pos = X_pos + X_incr
X_Aold = X_Anew
GoTo endofx
End If
If X_Anew = "00" And X_Aold = "01" Then 'ccw
X_pos = X_pos - X_incr
X_Aold = X_Anew
GoTo endofx
End If
If X_Anew = "01" And X_Aold = "11" Then
X_pos = X_pos - X_incr
X_Aold = X_Anew
GoTo endofx
End If
If X_Anew = "11" And X_Aold = "10" Then
X_pos = X_pos - X_incr
X_Aold = X_Anew
GoTo endofx
End If
If X_Anew = "10" And X_Aold = "00" Then
X_pos = X_pos - X_incr
X_Aold = X_Anew
GoTo endofx
End If
' Else
Read_X_scale 'send to subroutine to read the chinese scale
x_pos_txt.Text = X_pos 'set the returned value to reflect scale value
' End If
endofx:
-
https://littlemachineshop.com/Products/product_new.php (https://littlemachineshop.com/Products/product_new.php)
This is the place that had the plugs to snap onto the chinese-calipers to get the serial data off them.. it was a continuous pulse train by the way, with a fixed data set.
TO get it to where you can read it on the parallel port input pins, or into a ttl-rs232 adapter?? such as the max232 chip.. you bond the pc 5 volts to the scales 1.5-3 volts positive, the lower pulse can read that way, if you bond the common's (negative) the rising pulse, dependent upon battery voltage will never be seen by the pc.. or arduino.. It does not rise to the level seen by ttl logic gates.
-
I wonder if yuriy's dro.will.run on the ubislate 7ci (ice cream sandwich. No bluetooth) as this will soon be the cheapest tablet available - expected to.retail.at about £30!
www.ubislate.co.uk/product.php?prodid=1
The display is only 800 by 480 but would still be useable.i think :)
Bill
It will (using Arduino controller or Launchpad with FTDI breakout board). The app scales down to 480x320 screens.
Second section on this page : http://www.yuriystoys.com/2013/08/android-dro-application-settings.html (http://www.yuriystoys.com/2013/08/android-dro-application-settings.html) explains what settings to change for USB connectivity.
Hope this helps
Yuriy
-
http://www.yuriystoys.com/p/android-dro.html (http://www.yuriystoys.com/p/android-dro.html)
plans, code, parts list.
I never realized how simple these projects are, I've been too involved in the "industrial" environment. This looks like a hour long project.
This arduino research all started with a 24x24x48 3d reprap printer build on this end. (based on the arduino) THE free app for this, the remote control lawnmower I did "another way" and several other things I did differently, and more expensively. Being a UNION electrician for years I never realized I was stuck in the "I can fix it, even if it takes every last dollar you got" mental mode.
-
HOW COOL IS THIS?? SERIAL OUT USB CABLE directly to they arduino with YURI's sketch in it..
NOW, anything I send out "serial labled from the arduino" as he wrote the android software to recieve is displayed on the NEXUS 7...
Note.. the nexus 7 otg micro-usb cable cost me $2.88.. free shipping.
THE touchDRO is a free app from the google playstore..
NEAT, YURI, Thank you.. I will donate a few bucks money to your project.
-
liking this, excellent project.
is there a version of this that could run through a PC? i have a spare PC that im going to install in the shop ( for solidworks jobs, car EPC etc)
how much are the scales and where is best to get them?
keep us posted on how it works :)
-
I can write you a "altered" version of my "cheapass DRO" that runs in windows visual basic. INstead of reading the chinese scales through multiple ports, it could read the arduino and let it do the work.
No big deal, ten to fifteen minutes to alter it.. will take me a lot longer to remember what files you need on your machine to run it.. vbrun.exe??? I can't remember.. (hit on the head too many times??)
I had a version that was "power to" a point using a power feed... Not sure where that one went. Not a true cnc, but a slotter or face off system.. no interpolation between axis (cutting circles or angles)
-
I got it talking to the Arduino "code unchanged".
I'll make the "power feed" boxes invisible.. and clean some up, then hunt a place to post it to share with anyone that wants it.. Perhaps the Yahoo CheapAssDro forum I started, now can't get back into?? Ha.. getting old sucks.
(got a migraine, off right now to watch some tele and pet the dog)
-
that looks good :)
-
YES, originally, it had the parallel port turn the axis feed motors on and off..
you set the speed to the cut you wanted to do.. had plenty of problems, but would run back and forth cutting a keyway in a shaft, or facing off a slab of metal flat. Not sure which version I have there.. have to go back in the notebooks..
NOW.. and I am not promising a time frame since I have other things going on.. I'll get it running and reading to the screen off the Igauging arduino software that Yuri wrote, and then later redo the arduino code to make " axis feed servos" that run with feedback off the scales. Software can run simple G-code as is.. it has a parser in it to read a file, then stroke the machine X-back and forth, Y-in and out, up and Z-down.. Just not interpolate since it was designed to use axis feed motors with "manual mounted speed pots"
(how that could work? the arduino is a "resolver" which take the desired speed, pulses a motor (such as a old wiper screen motor w/brass gears) to go that speed.. can make a true cnc like that... from a old power feed machine..
Just not a very good one, that requires ball screws and real servo drives..
Thoughts are the simple jobs that I mostly do, radial holes, slotting, other things can be done on a much simpler machine than a cnc thou.. Without the 10k investment I have in mine.
IF there is someone else who is good in Visual basic interested, the open code is too long to post here.. you are welcome to my coding..
I have a hundred other things going on, including that 1957, megasquirt fuel injected 350ci-400hp w/world class Mustang-T5 speed GMC truck I am building..
It talks to the computer or the tablet too. THE EFI intake, distributor is on a table in the basement. THE tablet can "tune it too" via a free app off google play and either usb or bluetooth adapter.
-
How good are you with C#? I have a windows (WPF/C#) version that I use for testing but it doesn't have any error handling code and is lacking most of the functions (it's a copy of the very first Android version). If you're interested, I can make that repository public, but "the software comes as-is, with no explicit or implied warranty" :)
Regards
Yuriy
-
Hi.
This visual basic one is working pretty good, I am using mscomm, so it is simple, Sorting the data, I use the X,Y,Z to identify Beginning, and the ";" to note end of transmission for each axis. No Chr(13)'s so no end of line (constant stream), I am pulling a byte at a time in the mscomm setup. Of course you know all that thou.
The Chinese scales used a transmission setup of 48 input length. I'd pull words direct from the port then convert binary to decimal. About ten minutes in change, then I gutted the program removing the motion portion.
It needs some additional things like a averaging routine to stop jitter. A rpm pickoff added to the arduino, the polar holes program popped into it. We are having a snow day here today, so I might get to work on it some. I was "hacked" yesterday.. someone trying to get to my surveillance system or this old junky computer I code on. Normally when that happens, I pull the hose.
YURI, Hang in there, your software is helping others. When I get this vb version cobbled together you are welcome to, and asked to post it for others.. (under free share, no warranty, no customer service)
NOTE, if you "stream" from the arduino in the same format, X##.#;Y#.##;Z###; you can read quadrature encoders, ten turn pots, Sonar (sf04) or any other instrument you wanted to display on a tablet.. Yuri's touchdro app software would work with no android programming required.
-
I have called time on my vb efforts in favour of yuriy's adriod work, butif there's any help I can give 'ou jusr shout:)
Bill
-
I've been using Yuri's DRO for a while now,big thanks to Yuri, unfortunately I don't have a android tablet but did manage to get Android installed on an Acer netbook. Runs great using bluetooth but lacks the touchscreen convienence.
I used a 3.3v Arduino Nano so I didn't have to use a divider network. If you go this route make sure you use a pull down resistor on each data line. Another thing that is a must is to have a capacitor across each +ve & gnd going to each head, this stops the random "resets" on an axis.
The "PC" option did intrigue me for a while. I wonder if a Mach 3 "plugin" could be an option ?
-
Mach3 readout, Using vb script I posted code here in another post for a "serial" control card using MScomm.
http://madmodder.net/index.php/topic,9395.0.html (http://madmodder.net/index.php/topic,9395.0.html)
Mach3 does a "pulse" feed system thou through the parallel port. Not a on-0ff like I did with the cheap_ass dro.
I have Mach3 on my bridgeport cnc here.
-
Just having a brainfart would it be posible to take two readings off of the scale? I was just thinking that it should be posible to set the min/max for travel to prevent crashes and have two others that could be set manualy by the operator?
-
I'm thinking of this solution for my mill and have a question. The iGaging scale sizes they announce, are these scale length or effective travel?