Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
DRO Controller API?
#1
Hello,

Just joined, first post...

I recently received my Bluetooth DRO controller. It's the fully assembled version with four mini-B USB ports.

I planned to use this board as one of several outboard hardware components in a system controlled by a PC based C# .NET application created in a Virtual Studio environment. I'm using the InTheHand Bluetooth library as the main API to the Bluetooth interface of the board.

Unfortunately, I cannot find any examples on the Internet to help me with the details of this board. My PC can successfully find and pair with the board, that was pretty easy with the InTheHand library. But now what? How do I access the data lines of the four individual USB ports on the board. How do I read the raw data from each port?

There is no Arduino board in the architecture of the system. There is no Android tablet in architecture of the system. The PC is supposed to periodically read data from the four ports (via Bluetooth) and incorporate the retrieved data into a complex mix of other hardware involving cameras (Canon API) a 3D printer, various sensors from Yactopuce (Yapi API) and more.

Where is the API or library for programming this board? Sorry if this is a question with an obvious answer, but after spending hours searching on the Internet I've come up empty handed.  Huh

Thanks in advance for your assistance...

Brian
Reply
#2
(12-07-2018, 08:06 PM)odlumb1492 Wrote: Hello,

Just joined, first post...

I recently received my Bluetooth DRO controller. It's the fully assembled version with four mini-B USB ports.

I planned to use this board as one of several outboard hardware components in a system controlled by a PC based C# .NET application created in a Virtual Studio environment. I'm using the InTheHand Bluetooth library as the main API to the Bluetooth interface of the board.

Unfortunately, I cannot find any examples on the Internet to help me with the details of this board. My PC can successfully find and pair with the board, that was pretty easy with the InTheHand library. But now what? How do I access the data lines of the four individual USB ports on the board. How do I read the raw data from each port?

There is no Arduino board in the architecture of the system. There is no Android tablet in architecture of the system. The PC is supposed to periodically read data from the four ports (via Bluetooth) and incorporate the retrieved data into a complex mix of other hardware involving cameras (Canon API) a 3D printer, various sensors from Yactopuce (Yapi API) and more.

Where is the API or library for programming this board? Sorry if this is a question with an obvious answer, but after spending hours searching on the Internet I've come up empty handed.  Huh

Thanks in advance for your assistance...

Brian

The USB connectors on the board connect to the scales. Although USB connectors are used they are not USB ports and do not use usb protocol. The Blutooth interface on the board will look like a serial com port on the PC. The interface board will be continualy sending the reading as ASCII characters in a form something like this X 1234, Y 4567, Z, 9876 This is only from memory and it is several years since I was writing interface software. The exact format is somewhere on Yuriy's website. If you run a terminal emulator program such as Tera Term on your PC or Blueterm on an Android tablet you will see this data stream displayed. So your PC software wil have to read the data from the Bluetooth com port on the PC.

Les.
Reply
#3
(12-08-2018, 08:54 AM)lesjones36@gmail.com Wrote:
(12-07-2018, 08:06 PM)odlumb1492 Wrote: Hello,

Just joined, first post...

I recently received my Bluetooth DRO controller. It's the fully assembled version with four mini-B USB ports.

I planned to use this board as one of several outboard hardware components in a system controlled by a PC based C# .NET application created in a Virtual Studio environment. I'm using the InTheHand Bluetooth library as the main API to the Bluetooth interface of the board.

Unfortunately, I cannot find any examples on the Internet to help me with the details of this board. My PC can successfully find and pair with the board, that was pretty easy with the InTheHand library. But now what? How do I access the data lines of the four individual USB ports on the board. How do I read the raw data from each port?

There is no Arduino board in the architecture of the system. There is no Android tablet in architecture of the system. The PC is supposed to periodically read data from the four ports (via Bluetooth) and incorporate the retrieved data into a complex mix of other hardware involving cameras (Canon API) a 3D printer, various sensors from Yactopuce (Yapi API) and more.

Where is the API or library for programming this board? Sorry if this is a question with an obvious answer, but after spending hours searching on the Internet I've come up empty handed.  Huh

Thanks in advance for your assistance...

Brian

The USB connectors on the board connect to the scales. Although USB connectors are used they are not USB ports and do not use usb protocol. The Blutooth interface on the board will look like a serial com port on the PC. The interface board will be continualy sending the reading as ASCII characters in a form something like this X 1234, Y 4567, Z, 9876 This is only from memory and it is several years since I was writing interface software. The exact format is somewhere on Yuriy's website. If you run a terminal emulator program such as Tera Term on your PC or Blueterm on an Android tablet you will see this data stream displayed. So your PC software wil have to read the data from the Bluetooth com port on the PC.

Les.

Hi Les,

Thanks much for your help.

Some things I figured out for myself, others remain mysterious.

My PC is successfully reading from the board via a virtual serial port across the Bluetooth interface. When I read from the port, all I ever get is “x-1;y-1;z-1;w-1;”. I presume (x,y,z,w) correspond to the four USB ports on the board. I figured this much out by trial and error. A value of -1 would be a response I might expect if there were no sensor(s) connected to the USB port(s) on the board, but in my case two of them ARE connected (to AccuRemote digital micrometers). Since this board is specifically advertised to work with AccuRemote scales, I expected it to “just work” out of the box, and I have no idea why I'm getting the negative one values.

There are actually two virtual ports established over Bluetooth (read/write). On the read port Tera Term does display an endless stream of “x-1;y-1;z-1;w-1;”. Plugging devices into the various ports and/or changing their readouts doesn't alter this endless stream of negative ones. Any ideas?
Reply
#4
(12-08-2018, 01:01 PM)odlumb1492 Wrote:
(12-08-2018, 08:54 AM)lesjones36@gmail.com Wrote:
(12-07-2018, 08:06 PM)odlumb1492 Wrote: Hello,

Just joined, first post...

I recently received my Bluetooth DRO controller. It's the fully assembled version with four mini-B USB ports.

I planned to use this board as one of several outboard hardware components in a system controlled by a PC based C# .NET application created in a Virtual Studio environment. I'm using the InTheHand Bluetooth library as the main API to the Bluetooth interface of the board.

Unfortunately, I cannot find any examples on the Internet to help me with the details of this board. My PC can successfully find and pair with the board, that was pretty easy with the InTheHand library. But now what? How do I access the data lines of the four individual USB ports on the board. How do I read the raw data from each port?

There is no Arduino board in the architecture of the system. There is no Android tablet in architecture of the system. The PC is supposed to periodically read data from the four ports (via Bluetooth) and incorporate the retrieved data into a complex mix of other hardware involving cameras (Canon API) a 3D printer, various sensors from Yactopuce (Yapi API) and more.

Where is the API or library for programming this board? Sorry if this is a question with an obvious answer, but after spending hours searching on the Internet I've come up empty handed.  Huh

Thanks in advance for your assistance...

Brian

The USB connectors on the board connect to the scales. Although USB connectors are used they are not USB ports and do not use usb protocol. The Blutooth interface on the board will look like a serial com port on the PC. The interface board will be continualy sending the reading as ASCII characters in a form something like this X 1234, Y 4567, Z, 9876 This is only from memory and it is several years since I was writing interface software. The exact format is somewhere on Yuriy's website. If you run a terminal emulator program such as Tera Term on your PC or Blueterm on an Android tablet you will see this data stream displayed. So your PC software wil have to read the data from the Bluetooth com port on the PC.

Les.

Hi Les,

Thanks much for your help.

Some things I figured out for myself, others remain mysterious.

My PC is successfully reading from the board via a virtual serial port across the Bluetooth interface. When I read from the port, all I ever get is “x-1;y-1;z-1;w-1;”. I presume (x,y,z,w) correspond to the four USB ports on the board. I figured this much out by trial and error. A value of -1 would be a response I might expect if there were no sensor(s) connected to the USB port(s) on the board, but in my case two of them ARE connected (to AccuRemote digital micrometers). Since this board is specifically advertised to work with AccuRemote scales, I expected it to “just work” out of the box, and I have no idea why I'm getting the negative one values.

There are actually two virtual ports established over Bluetooth (read/write). On the read port Tera Term does display an endless stream of “x-1;y-1;z-1;w-1;”. Plugging devices into the various ports and/or changing their readouts doesn't alter this endless stream of negative ones. Any ideas?
Hi Brian,
              I don't know which protocol the AccuRemote scales use. I have not used any of Yuriy's interface designs.  About 5 years ago I decided designing an interface for Yuriy's DRO would be a good exercice to learn to program Atmel microcontrollers. It only sulpports 2 x 24bit (Including fast mode.) BCD7, BIN6 and iGaging scales. I later added support for the Wixey angle gauge. (Information about it is on my website. http://lesjhobbies.weebly.com/) I think the data steream you are seeing is reasonable with no scales connected. I have not followed Yuriy's website for a few years apart fom looking at this forum from time to time. I suggest asking on this forum about not seeing the data from the AccuRemote scales through your interface. Others may have seen the problem or suggest a solution.

Les.
Reply
#5
(12-08-2018, 02:21 PM)lesjones36@gmail.com Wrote:
(12-08-2018, 01:01 PM)odlumb1492 Wrote:
(12-08-2018, 08:54 AM)lesjones36@gmail.com Wrote:
(12-07-2018, 08:06 PM)odlumb1492 Wrote: Hello,

Just joined, first post...

I recently received my Bluetooth DRO controller. It's the fully assembled version with four mini-B USB ports.

I planned to use this board as one of several outboard hardware components in a system controlled by a PC based C# .NET application created in a Virtual Studio environment. I'm using the InTheHand Bluetooth library as the main API to the Bluetooth interface of the board.

Unfortunately, I cannot find any examples on the Internet to help me with the details of this board. My PC can successfully find and pair with the board, that was pretty easy with the InTheHand library. But now what? How do I access the data lines of the four individual USB ports on the board. How do I read the raw data from each port?

There is no Arduino board in the architecture of the system. There is no Android tablet in architecture of the system. The PC is supposed to periodically read data from the four ports (via Bluetooth) and incorporate the retrieved data into a complex mix of other hardware involving cameras (Canon API) a 3D printer, various sensors from Yactopuce (Yapi API) and more.

Where is the API or library for programming this board? Sorry if this is a question with an obvious answer, but after spending hours searching on the Internet I've come up empty handed.  Huh

Thanks in advance for your assistance...

Brian

The USB connectors on the board connect to the scales. Although USB connectors are used they are not USB ports and do not use usb protocol. The Blutooth interface on the board will look like a serial com port on the PC. The interface board will be continualy sending the reading as ASCII characters in a form something like this X 1234, Y 4567, Z, 9876 This is only from memory and it is several years since I was writing interface software. The exact format is somewhere on Yuriy's website. If you run a terminal emulator program such as Tera Term on your PC or Blueterm on an Android tablet you will see this data stream displayed. So your PC software wil have to read the data from the Bluetooth com port on the PC.

Les.

Hi Les,

Thanks much for your help.

Some things I figured out for myself, others remain mysterious.

My PC is successfully reading from the board via a virtual serial port across the Bluetooth interface. When I read from the port, all I ever get is “x-1;y-1;z-1;w-1;”. I presume (x,y,z,w) correspond to the four USB ports on the board. I figured this much out by trial and error. A value of -1 would be a response I might expect if there were no sensor(s) connected to the USB port(s) on the board, but in my case two of them ARE connected (to AccuRemote digital micrometers). Since this board is specifically advertised to work with AccuRemote scales, I expected it to “just work” out of the box, and I have no idea why I'm getting the negative one values.

There are actually two virtual ports established over Bluetooth (read/write). On the read port Tera Term does display an endless stream of “x-1;y-1;z-1;w-1;”. Plugging devices into the various ports and/or changing their readouts doesn't alter this endless stream of negative ones. Any ideas?
Hi Brian,
              I don't know which protocol the AccuRemote scales use. I have not used any of Yuriy's interface designs.  About 5 years ago I decided designing an interface for Yuriy's DRO would be a good exercice to learn to program Atmel microcontrollers. It only sulpports 2 x 24bit (Including fast mode.) BCD7, BIN6 and iGaging scales. I later added support for the Wixey angle gauge. (Information about it is on my website. http://lesjhobbies.weebly.com/) I think the data steream you are seeing is reasonable with no scales connected. I have not followed Yuriy's website for a few years apart fom looking at this forum from time to time. I suggest asking on this forum about not seeing the data from the AccuRemote scales through your interface. Others may have seen the problem or suggest a solution.

Les.

Hi Les,

Good news, bad news. The negative one values arriving in the data stream from the board were the result of BAD USB cables connecting the micrometers to the board. It took me forever to figure this out because the project uses two different micrometers/cables and my poor little brain simply couldn't wrap around the fact that they were BOTH defective.

I'm now able to read the data stream and the changing values are showing up in my program. So now I'm back to where I started - where the heck is the API/command interface? For example, the touchDRO android application has a zero set button (among others) on the touch screen which presumably sets the associated scale to zero at its current position. What command does it send to the board to accomplish this? I have spent far too many hours searching Yuriy's Toys website and elsewhere for ANY kind of API info regarding this board, with no result. It's as though I've stumbled into a den of brilliant hardware engineers who get excited describing circuit board schematics and pin configurations, but there is no software documentation anywhere (similar to most of my professional career as a software engineer)  Confused

I don't want to believe this, I would prefer to assume I just can't find the API because I don't know where to look, but after spending so much time unsuccessfully searching for it I'm beginning to worry. Many times I've had hardware engineers throw a schematic at me in response to a my request for an API to program their hardware designs.

Can you help? Anyone? Where the heck is this information?  Huh
Reply
#6
(12-09-2018, 04:12 AM)odlumb1492 Wrote:
(12-08-2018, 02:21 PM)lesjones36@gmail.com Wrote:
(12-08-2018, 01:01 PM)odlumb1492 Wrote:
(12-08-2018, 08:54 AM)lesjones36@gmail.com Wrote:
(12-07-2018, 08:06 PM)odlumb1492 Wrote: Hello,

Just joined, first post...

I recently received my Bluetooth DRO controller. It's the fully assembled version with four mini-B USB ports.

I planned to use this board as one of several outboard hardware components in a system controlled by a PC based C# .NET application created in a Virtual Studio environment. I'm using the InTheHand Bluetooth library as the main API to the Bluetooth interface of the board.

Unfortunately, I cannot find any examples on the Internet to help me with the details of this board. My PC can successfully find and pair with the board, that was pretty easy with the InTheHand library. But now what? How do I access the data lines of the four individual USB ports on the board. How do I read the raw data from each port?

There is no Arduino board in the architecture of the system. There is no Android tablet in architecture of the system. The PC is supposed to periodically read data from the four ports (via Bluetooth) and incorporate the retrieved data into a complex mix of other hardware involving cameras (Canon API) a 3D printer, various sensors from Yactopuce (Yapi API) and more.

Where is the API or library for programming this board? Sorry if this is a question with an obvious answer, but after spending hours searching on the Internet I've come up empty handed.  Huh

Thanks in advance for your assistance...

Brian

The USB connectors on the board connect to the scales. Although USB connectors are used they are not USB ports and do not use usb protocol. The Blutooth interface on the board will look like a serial com port on the PC. The interface board will be continualy sending the reading as ASCII characters in a form something like this X 1234, Y 4567, Z, 9876 This is only from memory and it is several years since I was writing interface software. The exact format is somewhere on Yuriy's website. If you run a terminal emulator program such as Tera Term on your PC or Blueterm on an Android tablet you will see this data stream displayed. So your PC software wil have to read the data from the Bluetooth com port on the PC.

Les.

Hi Les,

Thanks much for your help.

Some things I figured out for myself, others remain mysterious.

My PC is successfully reading from the board via a virtual serial port across the Bluetooth interface. When I read from the port, all I ever get is “x-1;y-1;z-1;w-1;”. I presume (x,y,z,w) correspond to the four USB ports on the board. I figured this much out by trial and error. A value of -1 would be a response I might expect if there were no sensor(s) connected to the USB port(s) on the board, but in my case two of them ARE connected (to AccuRemote digital micrometers). Since this board is specifically advertised to work with AccuRemote scales, I expected it to “just work” out of the box, and I have no idea why I'm getting the negative one values.

There are actually two virtual ports established over Bluetooth (read/write). On the read port Tera Term does display an endless stream of “x-1;y-1;z-1;w-1;”. Plugging devices into the various ports and/or changing their readouts doesn't alter this endless stream of negative ones. Any ideas?
Hi Brian,
              I don't know which protocol the AccuRemote scales use. I have not used any of Yuriy's interface designs.  About 5 years ago I decided designing an interface for Yuriy's DRO would be a good exercice to learn to program Atmel microcontrollers. It only sulpports 2 x 24bit (Including fast mode.) BCD7, BIN6 and iGaging scales. I later added support for the Wixey angle gauge. (Information about it is on my website. http://lesjhobbies.weebly.com/) I think the data steream you are seeing is reasonable with no scales connected. I have not followed Yuriy's website for a few years apart fom looking at this forum from time to time. I suggest asking on this forum about not seeing the data from the AccuRemote scales through your interface. Others may have seen the problem or suggest a solution.

Les.

Hi Les,

Good news, bad news. The negative one values arriving in the data stream from the board were the result of BAD USB cables connecting the micrometers to the board. It took me forever to figure this out because the project uses two different micrometers/cables and my poor little brain simply couldn't wrap around the fact that they were BOTH defective.

I'm now able to read the data stream and the changing values are showing up in my program. So now I'm back to where I started - where the heck is the API/command interface? For example, the touchDRO android application has a zero set button (among others) on the touch screen which presumably sets the associated scale to zero at its current position. What command does it send to the board to accomplish this? I have spent far too many hours searching Yuriy's Toys website and elsewhere for ANY kind of API info regarding this board, with no result. It's as though I've stumbled into a den of brilliant hardware engineers who get excited describing circuit board schematics and pin configurations, but there is no software documentation anywhere (similar to most of my professional career as a software engineer)  Confused

I don't want to believe this, I would prefer to assume I just can't find the API because I don't know where to look, but after spending so much time unsuccessfully searching for it I'm beginning to worry. Many times I've had hardware engineers throw a schematic at me in response to a my request for an API to program their hardware designs.

Can you help? Anyone? Where the heck is this information?  Huh
Hi Brian,
              As far as I know it is only one way communication with the scales. (This was the case about 5 years ago when I designed my interface.) Just some background information. I did a lot of work reverse engineering the Schumatech DRO350. This was for two reasons. 1 There were a couple of minor bugs in the software that had never been fixed and I thought I would try to fix them. 2 The DRO350 was based round a PIC16F876 and the software filled it's program memory. There where no larger PIC16F chips that were pin compatible but the PIC18F2525 was so the software needed modifying to run on that chip. I succeeded in modifying it and fitting the lathe and mill versions in the same chip. As a result of that I got to understand how things were done. (An I think it is done in a similar way on Yuriy's DRO) When you press the zero button it DOES NOT zero the scale. All it does is to store the reading of the current position and use that as a zero reference. So from then on the displayed reading is the value from the scale minus the stored zero reference value. Also most of the scale types do not support zero setting via the clock and data lines. (The original 2 x 24 biit scales did support this and they could also be set to a faster sampling rate by this method.) On my interface I do use data sent from the tablet for initially configuring it for the type of scale on each channel and selection the fast sample mode for 2 x 24 bit scales if required. I don't know anything about the APP software in the tablet. My brain does not seem to cope with high level languages which is why I work in assembler.

Les.
Reply
#7
Thanks Les, your knowledge and experience has been a great help.

The one way communication is a bummer however, in my case forcing multiple complications in my own code with could have been easily solved by being able to zero the scale, or switch between inches/millimeters, or relative/absolute readings with a few simple commands sent to the measurement device. But it can all be done on the host side, it's just more work.

For the moment I will proceed with my current direction, but since the board's firmware source code is available I may eventually rewrite it and install a simple parser and support code to actually change these parameters in the device. That presumes of course that AccuRemote has published some documentation regarding how this could be done within their devices, i.e., that the device itself has a primitive software command interface. I guess is also presumes that the USB ports, which are not really USB at all, can be made bidirectional. Probably too much to hope for, based on what I have learned so far from you and my own tinkering.

Anyway, thanks SO MUCH for helping me, it is GREATLY APPRECIATED. Cool

Brian
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)