Monday, February 25, 2013

New Version of Android DRO Coming

It's been more than two months since the initial release of my Android Digital Readout application Touch DRO. The first version was very basic, offering only a few functions commonly found on a digital caliper. After bit over two months of work I'm getting close to releasing a new version. The new version has a number of bug fixes and improvements, as well as some long overdue features, such as point memory, position preset and the so-called 1/2 function.

 

Point Memory

Point memory is probably the most significant of the new features. The DRO now has the ability to store and recall virtually unlimited number of points (well, limited by the amount of storage on the device). Borrowing from the commercial DRO's, the application uses the “work to zero” approach. The idea is pretty simple: you add a point to the list. At some later time you can recall the point, i.e. set the point as the “zero” and machine towards it. The readout will be shown relative to that points position. This is in fact identical to what happens when you zero-out the DRO using the “zero set” function.

On a larger tablet screen DRO Application shows the point list side-by-side with the readout.

To memorize a point, simply click the “add point” button, and it will appear in the points list with the next sequential number in the name (i.e. “Point 12” and so on). To recall a point, find and click it in the points list; if a point is no longer needed, swipe it to the right to remove it from the list. The point list will not be lost when the application is shut down, as they are persisted in a database on your device. In this version of the app there is only one list called “Default workspace”. In future (hopefully next version) there will be a way to have multiple workspaces.

Preset Dimension and 1/2 Function

In addition to manual dimension entry field,
the dialog offers "1/2" and "Invert" functions.

Ability to preset dimension and the so-called 1/2 Function have been on the top of the list of the most requested features. Being able to manually type a dimension makes locating features much easier, while the 1/2 function makes locating bore centers a breeze. To save some screen real estate I decided to forego adding another button; instead the readout text itself is now interactive. Clicking the readout brings up a simple dialog that will let you type a dimension. Long-pressing brings up the “advanced” dialog: in addition to the dimension entry field, there are two buttons: the “1/2” and “Invert” functions. The former will, well, divide the value in the text field in half, while the later will simply invert it.

Other Changes

While points list is the most prominent change in this version, there have been some changes to the rest of the user interface. Some came about because I needed to free-up some space for the points list, while others have been suggested by the users.

First and foremost the “inch/mm” button and the “zero set” buttons are now global. It appears that three (one per axis) “inch/mm” and “zero set” buttons were somewhat of a nuisance, so now there is a single button than toggles metric/imperial units for the whole workspace. Similarly, there is now a single “zero set”. Clicking the button zeroes out the DRO sets the current position as the “incremental” zero and switches all three axes to incremental mode (future readout will be shown in relation to the current position). Additionally, the button has a long-press function that will set the current point as the workspace's absolute origin. This function should be used when the workpiece needs to be relocated, etc. For example, you would start your work by setting one of the corners of the part as the origin, add some points etc. Later, if the part is moved, you'd simply locate the same corner, set it as the origin and the points will be translated to the new position. Since this function can “do damage”, a confirmation dialog appears before the origin is moved. It's still possible to zero-out single axis by long-pressing its absolute/incremental mode button.

On phone-sized devices the application uses the compact view.
The points list can be accessed from the drop down list in the "action bar".

Finally, the application uses different layout based on the screen size and OS version. Phones (and tablets using Android 3.0) use a simplified “readout” view and a separate points list view. Newer tablets show readout and points side-by-side and some buttons are at the bottom of the screen. Furthermore, on newer tablets there is a global mode button that toggles the incremental mode for all three axes.

This is about it when it comes to the user interface, as most of the major changes in this version are in the “bowels” of the application. Most don't have much effect on the application's functionality [yet], but provide groundwork for more functionality in the next version. Never the less I hope the changes will make the application a bit more usable and useful.

Last, but not least, I would like to thank everyone for your feedback. Obviously it's nice to get “positive reinforcement”, but even more important are your suggestions and constructive criticism, as they help me make the application better. If you can think of a feature or an improvement, please don't hesitate to comment on the blog or send me an email. I will be sincerely appreciated...

Although I won't publish it to the market for another week or two, I think it's stable enough for “public alpha”. The APK file is available here: files.yuriystoys.com/dro/TouchDROHD_0.2.0.apk . Please feel free to try it out and send your feedback.

13 comments:

  1. Saw your posts over on ProjectsInMetal dot com - awesome job!

    ReplyDelete
  2. Yuriy,
    Fantastic work! I am completely new to Eclipse and Java. I managed to get everything set up in the environment, and import the code. I get two errors from Eclipse:

    PreferenceFragment cannot be resolved to a type.
    R cannot be resolved to a variable.

    Do you have suggestions for resolving these? Not sure why it would not be seeing them.
    Thank you.
    Jim

    ReplyDelete
  3. Hi I have a proscan 10" tablit it does not have bluetooth but it does have 2 usb ports is there a way to use your DRO app through USB

    ReplyDelete
    Replies
    1. Right now the app only works with BlueTooth connections but I'm adding USB support to the next version.

      Thank you
      Yuriy

      Delete
  4. Yuri,

    Great work ! A suggestion as far as additional functionality : How about tool off-sets ? That way you select a pre-defined tool and yuor off-set (half the diameter) is automatically compensated for (useful if your swapping edge finders and cutters often)

    Thanks,

    Shaun

    ReplyDelete
    Replies
    1. Shaun,
      Thank you for the suggestion. I will be adding some functions for the next version, and this looks like a good candidate.

      Regards
      Yuriy

      Delete
  5. This is a very interesting project. I am currently using the scales froom Grizle. I use the Fraction feature. How hard would that be to add to the readout.

    Thanks
    Frank

    ReplyDelete
    Replies
    1. Frank,
      Probably not too bad. I will look into it, as it might be useful for other people as well.

      Thank you
      Yuriy

      Delete
    2. Thank you. My setup is used for Drilling Bowling Balls and all of the measurements we use are fractions.

      Delete
  6. Great project! I'm looking forward to the usb version (no BT available here...).
    Second wish: a radius/diameter selection for the cross slide. That would be real cool (and I think pretty easy to program??)

    ReplyDelete
    Replies
    1. Thank you,
      I'm still working on the USB version (some things got in the way), so that should be available pretty soon, hopefully.
      I think I will branch off into a "Lathe" version of the application. A lot of things that are useful on a mill are worthless on a lathe, such as hole patterns, tool offsets etc. On the other hand I want to have radius/diameter, compound angle compensation (for threading, for example), tachometer and surface speeds calculations.

      Thank you
      Yuriy

      Delete
  7. I was trying to install this on my Nook color with Cyanogen Mod 7

    would i need to upgrade to 9 or 10 to get this to work?

    ReplyDelete
    Replies
    1. Craig,
      The current version requires at least CM9. I'm running one of early builds and for the DRO it's fast and stable enough, but lags pretty bad for anything more than reading e-books...

      Thank you
      Yuriy

      Delete