TouchDRO V3 Status Update

Wednesday, July 7, 2021

Last week, I got back to working on the next release of the TouchDRO Android application. There is still much work left before it's fully ready for public Beta testing but until then, the application is my main focus. After my last post, a few people contacted me with concerns about the future of this release since it's been over 4 years since version 2.5 was finished. I can't promise any timelines since this is my side-project but to be more transparent about the progress, I will be posting periodic updates that outline the work that has been completed.

Current State of the Application

My post from July of 2017 captured many of the user interface updates, so I won't rehash them in this post. There have been quite a few updates since then, so let's take a look at some of the more notable changes that are done or at least well underway.

Revamped Graphical View

My goal for the next version is to make the graphical view into the main way TouchDRO is used. Since the application has access to a high resolution multi-touch display, it can offer a rich graphical display instead of the traditional three readouts. There are many common tasks that are easier to do in graphical mode. For instance, when you need to spot, drill, tap and countersink a set of holes, graphical display significantly streamlines the task. You don't even need to touch the DRO - simply start moving the spindle towards the next hole, and TouchDRO will select the sub-datum when you get to within the threshold.

To reduce the need of switching to the main readout display, I've expanded the functionality of the graphical view. It is now possible to switch workspaces and manage (add/remove/select) sub-datums right from the graphical view; functions such as "Bolt Hole Circle", "Hole Grid", etc. are accessible via long-pressing the "Plus" button.

This part of the application is responsible for the majority of the remaining work. At the time of this writing, only the basic functionality is fully implemented. There are still many unfinished pieces, but I will discuss them in more detail in a future post.

Global User Interface Changes

Common user interface components that surround the readout screen have been completely redone, so they can be shared between the "digital readout view" and "graphical view". The most obvious is the update to the application title bar. For example, there is a new "hamburger" menu to the left of the TouchDRO logo, the connection status text has been replaced by an icon, and there is now a different icon in the right corner where the old menu was located. These changes serve two purposes. First of all, switching between the two display modes now requires a single click rather than going to a sub-menu. Second, and more important, functions such as workspace switching have been moved to the application menu, so they can be performed from either screen.

The main menu currently has four options:


Configurations were formerly known as "Preference Banks" and were accessible from the settings screen. Their main purpose is to allow the use of a single tablet with multiple machines or machine configurations. More details can be found in the Configurations section of the TouchDRO manual


Workspaces list has moved from the dropdown menu on the right panel to a dedicated list where you will be able to create, delete, and select workspaces associated with the current configuration.

Tool Library

The tool library moved from the "ellipsis" menu that was shown in the upper-right corner of the screen to a dedicated list where you can add and delete stored tools.


This menu item opens the settings page that was formerly accessible from the "ellipsis" menu. The page itself has undergone some modest changes to make it easier to navigate. More details about the settings will be posted in the TouchDRO manual once the UI is finalized.

Core Functionality Changes

There are many fundamental changes to how the application works under the hood. Many of them are there to address new Google requirements and guidelines or to enable some advanced features in the future. For example, the way the DRO handles incoming positions has been completely redone, so I can add the ability to remap inputs or use calculated outputs. Most of those changes will not be obvious until the dependent features are added, but there is a major update to how some application state is stored that you might notice if you use multiple workspaces.

Namely, any applied tool offsets and incremental mode offsets are now associated with the selected workspace. When the workspace is switched, the application state snapshot is stored with the workspace and will be restored when the workspace is reloaded. This change makes resuming interrupted work much easier since once you re-indicate a known reference point, the DRO will be back in the state that it was when you stopped the work.

Sub-Datum List Enhancements

The Sub-Datum list (formerly named "Points") has undergone some more improvements. Most notably, the workspace selection dropdown and the ellipsis menu have been removed. Workspace creation, deletion, and selection has moved to the "Workspaces" dialog as mentioned above; sub-datum operations are now accessible via a set of icons that occupy the space where dropdown was previously. Furthermore, there is now a way to select and manipulate a subset of sub-datums by long-pressing a sub-datum and then adding others to the selection.

Next Steps

Application State Switching

My immediate priority is to finish and fully debug the configuration and workspace switching. Most of the functionality is in place and working daily well, but there are still some bugs, especially around USB connection handling. There are also some issues with the USB-to-Serial communications that need a bit of work. If things got as planned, I should be able to wrap this up in two-to-three weeks.

Graphical Layout View

Once that is done, the next priority will be finishing the graphical layout view. As I mentioned earlier, this is the area where most of the remaining work lies. There are a few major pieces that need to be finished:

The most requested feature for the graphical view mode is projection plane switching. In practice, this includes two different things. First of all, the user should be able to switch between XY, XZ, and YZ projections. This in itself requires a bit of work to dynamically map the inputs to the 2D projection and to change the display artifacts. For instance, in XZ and YZ views, the tool graphic should be changed, etc. The second chunk of work involves making step-and-repeat and hole circle functions work in multiple planes. This is a bit more involved and I still need to figure out how to do this correctly.

Another long past-due feature is the Lathe display mode. It is different from a milling machine mode since the tool is presented from the opposite side, compared to milling machines in the same projection. Moreover, the way saved sub-datums and the tool need to be depicted differently. I have fully worked out the design for this though; so, I will be looking for feedback on a few different ideas.

Touch Probe Support

Finally, touch probe support is a big part of this release. Most of the infrastructure is already in place, and at one point, I had a basic UI implementation but I wasn't happy with how clunky it was. I ripped out the UI for a touch probe and will be re-doing it with a completely different approach. As I get closer to a working user interface, I will post more details in a future post.


This has been a long-winder recap of the current state of the application. As mentioned earlier, getting the next version out is currently my main priority. My rough estimate is that around 75% of the work is done at this point, so I hope that the new version will be at least in beta testing in the fourth quarter of this year.

Meanwhile, as I'm working on the release, I will be posting updates on the blog when larger portions of functionality get done. In the past, I stayed in constant communication with a number of folks via [now defunkt] Google+ community. For this release, I will likely set up a section on the forum, but if you have questions, suggestions or feedback, you can reach me on Facebook or the Hobby Machinist forum as well. Basically, I want to hear and value your opinions, so if you have ideas, please don't hesitate to share them.


  1. BRAVO! Glad to see my hardware purchase has ongoing software development.
    Thanks for your dedication