DXL360S digital angle meter (0.01 degree) USB interface? - Page 1
Forum section: electronics / general

author: JBeale
author_rank: Frequent Contributor
timestamp: August 17, 2024, 03:32:40 am
content: Admittedly, this is a rather obscure question.I got a DXL360S digital inclinometer / angle meter, which has an advertised measurement resolution of 0.01 degree and accuracy of 0.05 degree (in the range 0..20 and 70..90 degrees). I've learned be skeptical of some claims but to my surprise, for small angles it is actually repeatable to +/- 0.02 degrees in my testing, maybe even 0.01 if you average over a reasonable length of time. Given that 0.01 degree is only 36 arc-seconds, I'm also not sure if my house is stable at that level in a sub-second time interval. It has about 4 readings per second and seems faster to respond than a precision bubble level. Anyway, the user display works fine.Interestingly this specific device has a USB port, not just for charging but (allegedly) with the measured angle data output as a serial device. The unlabelled, unbranded instruction manual says to see website for USB connection. Of course there is no hint of such a website listed anywhere in the manual, or online that I can find. I realize this is a longshot, but has anyone ever tried to connect to this thing?Windows sees nothing. Linux reports "device descriptor read/64, error -71, Device not responding to setup address. Cannot enable." My USB cable is known-good. The reason I'm bothering to ask is that I have some a vague thought this might not be simply a broken device, but some nonstandard USB implementation that someone found good enough for its original, factory internal use using some kind of homebrew software, and the designer didn't really plan for it to be used externally.This is the product listing I bought it from:https://www.amazon.com/dp/B077T7XW7XHere's an online copy of the same user manual provided in paper form with the device:https://www.roeckle.com/WebRoot/Store13/Shops/62116134/5EB6/6EBD/9A39/4D35/9E28/0A0C/6D12/406A/DXL360S_v2-Dual_Axis_Digital_Protractors.pdf"PC Communication It has a PC data logging function. For DXL360S you can directly plug the USB cable between PC and protractor by mini USB cable Specification:1) RS232 Com Port 9600 baud rate2) USB connection ( include a RS232 to USB adapter)3) Format will output ASCII: example for x is 0, Y is -88.88 X+0000Y-8888Detail can visit our website or contact our sales person."Output from 'dmesg' on Linux connection:Code:[3490370.560370] usb 1-6: new low-speed USB device number 33 using xhci_hcd[3490370.688363] usb 1-6: device descriptor read/64, error -71[3490370.924265] usb 1-6: device descriptor read/64, error -71[3490371.164217] usb 1-6: new low-speed USB device number 34 using xhci_hcd[3490371.296340] usb 1-6: device descriptor read/64, error -71[3490371.532453] usb 1-6: device descriptor read/64, error -71[3490371.640476] usb usb1-port6: attempt power cycle[3490372.052252] usb 1-6: new low-speed USB device number 35 using xhci_hcd[3490372.052779] usb 1-6: Device not responding to setup address.[3490372.260434] usb 1-6: Device not responding to setup address.[3490372.468407] usb 1-6: device not accepting address 35, error -71[3490374.268375] usb usb1-port6: Cannot enable. Maybe the USB cable is bad?[3490374.268473] usb usb1-port6: unable to enumerate USB device

author: ataradov
author_rank: Super Contributor
timestamp: August 17, 2024, 04:15:03 am
content: I bet is not a USB port, but UART exposed on the USB data pins. And the USB part is in the proprietary cable.Use a logic analyzer or a scope and check D+/D- pins.Or if you can disassemble it without too much damage, do that and check what is on the inside.The fact that it thinks it is a low speed device is also a hint. UART just created a high idle level on the D- line and the host thinks it is a pull-up resistor. There are no LS USB to RS232 ICs that are currently manufactured.

author: JBeale
author_rank: Frequent Contributor
timestamp: August 17, 2024, 04:57:35 am
content: Yes, you are exactly correct. I modified a USB cable to check, and found that the white wire (USB D-) is carrying a 3.3V logic level UART output signal at 9600 bps, giving me four ASCII digits each for X and Y readings, and the readings are sent at irregular intervals but overall approximately 10 per second. I did not expect a regular UART signal on a standard USB plug. However knowing this I can make use of it. Thank you!

author: JBeale
author_rank: Frequent Contributor
timestamp: August 26, 2024, 01:06:03 am
content: In case of interest, here's a video testing this sensor with a machinist type rotation stage (rotary platform). I am driving the stage to nominally 2.0, 5.0, 10.0 and 15.0 degrees off level. The sensor is good enough that I don't actually know whether it is more accurate than my ebay rotation stage. It actually seems to beat its 0.05 degree accuracy spec, so that is not too bad given its price, in my opinion. Some years ago I don't recall any digital readout, 360 degree, 0.01 degree resolution level sensor device being available at all, at least at a consumer level.

author: todd_fuller
author_rank: Contributor
timestamp: August 27, 2024, 03:16:31 pm
content: I've had this angle cube for a number of years. It's OK. I have some neat features like mm per meter reading. While it has a good response time, there's very little internal filtering so the value bounces around unless you're very smooth with the adjustment. I wouldn't recommend this for anything by hand for this reason. It also claims that it can measure angles with the internal gyro and that's partially true.The biggest problem I had with this angle cube is that the faces are not perpendicular or parallel with one another. So you need to be thoughtful about what face you zero against. Since the case is plastic, it's just not well suited for that kind of usage.This is the OEM website:http://www.jingyan-tech.com/en/html/product/28.htmlRecently, I picked up a different angle cube from iGaging. Has USB output + a wireless version. Sides are 90 degrees, response time is good but doesn't jump all over the place. Similar but not as good accuracy specifications. Claim 0.05 degree reading, 0.2 degree accuracy. Doesn't have all the features of the DXL360 but day-to-day usage is better.http://www.igaging.com/ip54-anglecube-angle-gauges.html

author: JBeale
author_rank: Frequent Contributor
timestamp: August 30, 2024, 05:43:17 am
content: Thank you for that link. Just today I noticed that Jinyang has a higher spec model on Amazon as well, the Jinyang TLL-90S offering 0.005 degree accuracy and a remarkable 0.001 degree resolution, for about 4x the price of the model I have. There is only one detailed review of it, which complains about various build quality points falling short of professional standards, but eventually concludes that after calibration, the resolution is "reasonable"- whatever that means- without specifying a number for measured accuracy or repeatability.

author: thm_w
author_rank: Super Contributor
timestamp: August 30, 2024, 10:13:18 pm
content: You can see some comments on this youtube video about accuracy

author: JBeale
author_rank: Frequent Contributor
timestamp: September 05, 2024, 04:05:40 pm
content: Thanks for that link. I see there are a few videos on it, but I don't see confirmation that any 3rd-party has been able to observed the claimed specs are met, in any well-controlled experiment. One person showed tilting it 0.05 degrees using an accurate stage did (after some time) result a reading of 0.05 degrees, at least once, but I didn't see the drift rate or repeatability.FWIW: not a tilt-meter, but on aliexpress I saw a reasonably-priced absolute angle rotary encoder WitMotion JY-ME02-485 claiming 0.01 degree accuracy. It apparently delivers 18-bit resolution from a magnetic-type (?) rotation sensor, dividing 360 degrees into 262144 parts which means a 0.0014 degree step size, or about 5 arc-seconds. There is also a smaller and cheaper JY-ME01 with 0.1 degree accuracy claimed. The JY-ME02 model appears to be the cheapest (claimed) 0.01 degree angle accuracy device of any available 360-degree digital angle sensor, by a considerable margin. It will be interesting to find out if it lives up to its claim.

author: thm_w
author_rank: Super Contributor
timestamp: September 05, 2024, 11:07:38 pm
content: $35 for an enclosed 18-bit rotary encoder is very cheap (WitMotion JY-ME02-485).They say maximum 1000BPR, I guess they meant RPM?They can be using AEAT-9922:https://www.broadcom.com/products/motion-control-encoders/absolute-encoders/single-turn-encoders/aeat-9922https://docs.broadcom.com/doc/AEAT-9922-Q24-10-to-18-Bit-Programmable-Angular-Magnetic-Encoder-IC-ANBut there is no specified max RPM. And you can see accuracy won't be as good as you hope.Though if they are good they'll be precalibrated.

author: JBeale
author_rank: Frequent Contributor
timestamp: September 09, 2024, 09:43:15 pm
content: Yes, I seehttps://docs.broadcom.com/doc/AEAT-9922-Programmable-Angular-Magnetic-Encoder-IC-DSreports +/- 0.1 deg integral non-linearity typical in the optimal case (on axis and centered magnet). I agree that it is my experience product advertising claims don't always prove to be correct, and when considering the type of error they tend to make, it is seldom "too pessimistic".I note that according to WitMotion's web page, they have two different angle encoders: a physically smaller JY-ME01 (18 bit resolution, 0.1 degree accuracy claimed) and the JY-ME02 that is twice as large, has lower resolution (15 bit) but higher claimed accuracy (0.01 degree). Assuming 15 bits encode 360 degrees, the JY-ME02 would have 0.011 degree resolution, so 0.01 degree accuracy seems unlikely.https://witmotion-sensor.com/products/witmotion-jy-me01-high-precision-18-bit-resolution-absolute-encoder-digital-rotation-angle-measurement-sensorAt any rate I have one of these mystery devices on order, so we shall see.

author: thm_w
author_rank: Super Contributor
timestamp: September 09, 2024, 10:05:28 pm
content: I had just assumed they mixed up the specs and 0.1 degrees was 15-bit, and 0.01 degrees was 18-bit.

author: JBeale
author_rank: Frequent Contributor
timestamp: September 10, 2024, 03:40:58 pm
content: I contacted them through their online web form and they responded as indicated:Q: Is listed spec correct? JYME01 is 18 bit and 0.1 degree accuracy, while JYME02 is 15 bit and 0.01 degree accuracy?A: Yes. It is correct.Q: I wonder what the accuracy means. If 360 degrees is encoded with 15 bits, that is 360/(2^15) = 0.011 degree resolution. So the accuracy is slightly higher than the resolution?A: Yes, correct. The encoder has a linearity of 0.1% and an angular accuracy of +0.01 degrees.Q: 0.01 degrees accuracy in 360 degrees is (0.01 / 360) or 0.0028 %. If the linearity is 0.1%, is that raw sensor error, and the accuracy number has linearity correction? Or is 0.01% differential nonlinearity only, not including integral nonlinearity?A: Linearity of 0.1% means that the maximum deviation between the sensor output and the ideal straight line is 0.1% of the full scale. This is indeed a performance indicator of the sensor, but it is not directly equivalent to "raw sensor error". Raw sensor error is generally a variety of factors such as linearity error, noise, drift, etc. The error source (including linearity error) is given after the error. It does not mean that the accuracy number is the result of linear correction; it may be an overall indicator after combining multiple error factors.---Either the replies are straight-up AI output, or the support rep doesn't know, and isn't interested in learning what the company's advertised specs mean. Oh well!

author: JBeale
author_rank: Frequent Contributor
timestamp: September 15, 2024, 05:46:37 am
content: FWIW: I received one unit of WitMotion JY-ME02-485 and set up a simple test jig with a lever arm. I can flip the arm through a bit over 180 degrees and examine the repeatability of the angle readout. It's a little annoying because the 15-bit resolution is not _quite_ adequate to deliver 0.01 degree resolution, but .01 is the display resolution in their demo software, so as you rotate there are some values of integer-hundredths-degrees that don't show up at all.However if we ignore that part, as I flip-flop my lever arm back and forth, I see the repeatability over short time periods actually is typically (although not always) +/- 0.01 degree. When stationary in one position the readout typically flickers between only two adjacent readings, for example 0.00 and 0.01 degrees, or 190.91 and 190.92 degrees, and you can flip back to 0.00 , 0.01 and then flop and again read 190.91 , 190.92 degrees. And I can shim up one side to eg. 0.06 , 0.07 degrees, and flip-flop and get that pair of readings again on the return. So short-term noise+drift is not too bad, and so far the performance seems about as good as I could hope for. I have not yet examined actual accuracy.Edit:very limited accuracy testing, rotating through small angles (up to about 3 degrees), using a sort of sine bar/gauge block type fixture, indicates it meets the 0.01 degree accuracy spec so far- somewhat to my surprise. I'm measuring only 0.006 degrees of error. You can read the absolute angle out at almost 10 Hz, in particular getting 94 readings takes very nearly 10 seconds. Averaging 94 readings together to form one averaged output reading, I find noise and drift over time (hours) and temperature (a few degrees C) is less than 0.01 degree. This is quite impressive performance given the price. The other methods I know of with such a spec are well over $100.Simple testing code in Python:https://github.com/jbeale1/scope/blob/main/WitMotion_JY-ME02-485.py

author: JBeale
author_rank: Frequent Contributor
timestamp: September 17, 2024, 04:08:07 am
content: Looking at the drift of the JY-ME02 encoder with fixed position over a 20 hour period, the output does drift over a total range of just over 0.01 degrees, but there is little clear functional dependence on temperature, within the small tested ambient range of 2 degrees C.At this small angle level and period of time, I suspect my quickly-made test jig is too casually constructed for a clear judgement on only the sensor performance in isolation.

author: aleka360
author_rank: Newbie
timestamp: October 24, 2024, 12:00:25 am
content: Hey! I recently started looking for rotary encoders for a project I am taking on.Some background on the project:I am trying to design and build a portable coordinate measuring arm, similar to a Faro arm. The idea is to have 7 axis, each with its own encoder to measure the angle of rotation, and then use forward kinematics to calculate the position of the end defector. I have been looking around for a rotary encoder with enough accuracy for this project given the many axis and the length of the arm (2 main arm sections, each around 4 ft long).These will all be connected to an ESP32 (or any other micro controller you might think is a better option). Reading about your experience with this sensor, this seems likes the best option, as anything else i have found is over $250 and only 14 bits.My question is, WitMotion has both an RS485 model and a CAN model of the JY-ME02 sensor. Which of the two would you recommend for this application? I have found no datasheet for the sensors.

author: thm_w
author_rank: Super Contributor
timestamp: October 24, 2024, 12:37:25 am
content: Send them an email and ask for the manual and explain your use case.Either can work but I would assume CAN would make the most sense if you can have multiple sensors on the same bus. Again without a manual I don't know how they setup the identifiers.

author: tjwaters347
author_rank: Newbie
timestamp: February 04, 2025, 05:52:50 pm
content: What did you do to be able to get the ASCII output? I have my DXL360s connected to my computer via a USB mini to USB cable, but my computer simply cannot recognize it. It doesn't even show up in my device manager, it is just as if nothing is connected. Do I need to download a driver? Or is there some hardware change I need to make in order for it to work? I'm trying to use real-time output from the DXL360s in a Python program, but can't find much help elsewhere online. Thanks.

author: JBeale
author_rank: Frequent Contributor
timestamp: May 03, 2025, 09:08:21 pm
content: This is a late reply but as described in this thread, the DXL360S USB connector is only standard for +5V charging, but nonstandard for data. Instead of USB+ and - data lines, it contains logic-level TTL UART output at 9600 baud. So you have to hack a USB cable, and add in a USB-UART converter like CP2102 module, etc. to make it work. There are probably such cables made somewhere but it was cheaper for me to make my own.