Is the ADXL345 just unreliable?

qv my post in the 'other place' about getting very different results from my frequency response comparisons (readings with the same procedure spaced 24 hours apart in a locked and unoccupied room produce wildly different results on my V-Core 3/400). I've now got three ADXL345's and today have run MEASURE_AXIS_NOISE and ACCELEROMETER_QUERY on each of them a number of times. Nothing was done between each test apart from changing the ADXL345 and I wasn't in the room when the tests were run. There seems to be a high degree of variability in the results of each measurement and none of the three sensors seems much worse or better than the others. For ACCELEROMETER_QUERY readings ADXL#1 goes from 76-1378 in the Y value, ADXL#2 518 to 1036 and ADXL#3 -536 to 1378. All while the sensor is just sitting still. I don't know what the numbers produced by the tests actually are, but from the spec sheet the default sensitivity is 3.822 cm/s^2 in 2G mode so variation of up to 1914 in Y between readings seems very strange. If these devices do produce such inconsistent results, are we all just wasting our time plotting graphs from their output? or could there be some other reason why I'm seeing such ranges of values? Do others get the same sort of results? Thoughts, comments and brickbats appreciated. Raw results in next post as Discord limits to 2K postings.
26 Replies
Mitsuma
Mitsuma2y ago
silly question but fans are off?
apparent-cyan
apparent-cyanOP2y ago
Print head at bed centre. Hotend & Cooling fans off. Steppers off (M18). Pi POE heatsink fan running. axes_map: x,z,y in printer.cfg ADXL Power Supply - 4.85V measured at ADXL345 pins. Within spec for a GY-291. ADXL #1 MEASURE_AXIS_NOISE 09:25:37 Axes noise for xy-axis accelerometer: 25.903595 (x), 65.426018 (y), 28.002754 (z) 09:25:40 Axes noise for xy-axis accelerometer: 24.472181 (x), 62.738261 (y), 24.775556 (z) 09:25:42 Axes noise for xy-axis accelerometer: 27.770979 (x), 61.510182 (y), 29.289397 (z) 09:25:45 Axes noise for xy-axis accelerometer: 25.142165 (x), 64.935647 (y), 25.981033 (z) 09:25:47 Axes noise for xy-axis accelerometer: 24.094781 (x), 68.824303 (y), 27.568795 (z) 09:25:50 Axes noise for xy-axis accelerometer: 24.373538 (x), 70.203418 (y), 26.036982 (z) 09:25:53 Axes noise for xy-axis accelerometer: 24.697278 (x), 68.052506 (y), 25.698283 (z) 09:25:55 Axes noise for xy-axis accelerometer: 25.115195 (x), 65.500693 (y), 25.720471 (z) 09:25:58 Axes noise for xy-axis accelerometer: 25.011335 (x), 65.260256 (y), 24.179036 (z) ACCELEROMETER_QUERY 09:27:49 accelerometer values (x, y, z): 296.082377, 306.438199, 9992.780217 09:27:50 accelerometer values (x, y, z): 444.123565, 536.266849, 9770.718434 09:27:52 accelerometer values (x, y, z): 148.041188, 229.828649, 10140.821405 09:27:53 accelerometer values (x, y, z): 444.123565, 1378.971896, 10362.883188 09:27:54 accelerometer values (x, y, z): 296.082377, 459.657299, 10066.800811 09:27:56 accelerometer values (x, y, z): 296.082377, 383.047749, 9844.739029 09:27:57 accelerometer values (x, y, z): 222.061783, 153.219100, 9844.739029 09:27:58 accelerometer values (x, y, z): 444.123565, 76.609550, 9770.718434 09:28:00 accelerometer values (x, y, z): 296.082377, 459.657299, 9992.780217 09:28:01 accelerometer values (x, y, z): 148.041188, 153.219100, 9918.759623 09:28:02 accelerometer values (x, y, z): 444.123565, 153.219100, 9918.759623 ADXL #2 MEASURE_AXIS_NOISE 09:57:11 Axes noise for xy-axis accelerometer: 21.488541 (x), 53.400406 (y), 22.892385 (z) 09:57:14 Axes noise for xy-axis accelerometer: 21.301344 (x), 54.300633 (y), 23.872559 (z) 09:57:16 Axes noise for xy-axis accelerometer: 22.209539 (x), 53.293956 (y), 25.161205 (z) 09:57:19 Axes noise for xy-axis accelerometer: 19.982583 (x), 55.025041 (y), 22.461924 (z) 09:57:22 Axes noise for xy-axis accelerometer: 23.466676 (x), 51.344939 (y), 22.920010 (z) 09:57:24 Axes noise for xy-axis accelerometer: 22.146765 (x), 51.463055 (y), 22.152714 (z) 09:57:27 Axes noise for xy-axis accelerometer: 21.191429 (x), 47.874401 (y), 22.745475 (z) 09:57:29 Axes noise for xy-axis accelerometer: 21.228416 (x), 55.969937 (y), 23.007746 (z) 09:57:32 Axes noise for xy-axis accelerometer: 22.049474 (x), 49.096758 (y), 23.871996 (z) 09:57:35 Axes noise for xy-axis accelerometer: 21.918745 (x), 52.979106 (y), 22.440106 (z) 09:57:37 Axes noise for xy-axis accelerometer: 20.575176 (x), 50.119271 (y), 24.315349 (z) ACCELEROMETER_QUERY 09:58:29 accelerometer values (x, y, z): 666.185348, -306.438199, 10288.862594 09:58:29 accelerometer values (x, y, z): 1036.288319, 153.219100, 10066.800811 09:58:30 accelerometer values (x, y, z): 740.205942, 306.438199, 10288.862594 09:58:30 accelerometer values (x, y, z): 518.144159, 0.000000, 10214.842000 09:58:32 accelerometer values (x, y, z): 1036.288319, -536.266849, 11029.068536 09:58:33 accelerometer values (x, y, z): 518.144159, 1378.971896, 9474.636058 09:58:34 accelerometer values (x, y, z): 814.226536, 612.876398, 10584.944971 09:58:36 accelerometer values (x, y, z): 814.226536, 153.219100, 10140.821405 09:58:37 accelerometer values (x, y, z): 666.185348, 306.438199, 10288.862594 09:58:38 accelerometer values (x, y, z): 666.185348, 306.438199, 10066.800811 ADXL #3 MEASURE_AXIS_NOISE 15:33:54 Axes noise for xy-axis accelerometer: 22.145834 (x), 57.123242 (y), 23.654968 (z) 15:33:56 Axes noise for xy-axis accelerometer: 21.712356 (x), 51.395193 (y), 22.199809 (z) 15:33:59 Axes noise for xy-axis accelerometer: 22.216715 (x), 55.398921 (y), 22.401974 (z) 15:34:02 Axes noise for xy-axis accelerometer: 21.503211 (x), 51.319914 (y), 23.481196 (z) 15:34:04 Axes noise for xy-axis accelerometer: 21.980826 (x), 56.305112 (y), 22.762685 (z) 15:34:07 Axes noise for xy-axis accelerometer: 22.973753 (x), 54.019205 (y), 23.600833 (z) 15:34:09 Axes noise for xy-axis accelerometer: 22.047764 (x), 57.547056 (y), 22.790226 (z) 15:34:12 Axes noise for xy-axis accelerometer: 22.955984 (x), 55.017138 (y), 22.091125 (z) 15:34:15 Axes noise for xy-axis accelerometer: 21.462280 (x), 54.685568 (y), 23.619194 (z) 15:34:17 Axes noise for xy-axis accelerometer: 22.228954 (x), 50.884562 (y), 21.088305 (z) ACCELEROMETER_QUERY 15:35:03 accelerometer values (x, y, z): -148.041188, 1378.971896, 9770.718434 15:35:05 accelerometer values (x, y, z): -296.082377, 1225.752797, 9770.718434 15:35:06 accelerometer values (x, y, z): -296.082377, 1225.752797, 9918.759623 15:35:07 accelerometer values (x, y, z): -444.123565, 1225.752797, 9918.759623 15:35:09 accelerometer values (x, y, z): -148.041188, 1072.533697, 9918.759623 15:35:10 accelerometer values (x, y, z): -148.041188, 1149.143247, 9696.697840 15:35:11 accelerometer values (x, y, z): -222.061783, 995.924147, 9770.718434 15:35:13 accelerometer values (x, y, z): -296.082377, 1302.362347, 9918.759623 15:35:14 accelerometer values (x, y, z): -222.061783, 1225.752797, 9696.697840 15:35:15 accelerometer values (x, y, z): -222.061783, 1149.143247, 9844.739029 15:35:17 accelerometer values (x, y, z): -296.082377, 1302.362347, 9844.739029 15:35:18 accelerometer values (x, y, z): 0.000000, 919.314598, 9696.697840 Yes except for the Pi POE heatsink fan which is DIN mounted on the back of the printer. There is a laptop on a bench several meters away but unless I'm in a curious highly variable local gravity field I can't think what else could be causing these weird datasets.
Mitsuma
Mitsuma2y ago
btw looking at the noise values I dont think there is anything wrong do you get widely different input shaper graphs?
apparent-cyan
apparent-cyanOP2y ago
Yes. To summarise my previous post before this became a forum.... I remotely (the room containing my V-Core3 400 was locked and alarmed) powered up, did a G28, ran my little move the head around a bit macro, did the MEASURE_COREXY_BELT_TENSION thing and got one graph. Powered off and repeated the same process 24 hours later and got something quite different. I've been wondering why I'm chasing my tail making micro changed to belt tension and seeing no or big differences.
Mitsuma
Mitsuma2y ago
how long was the VC3 assembled for? fresh setup?
apparent-cyan
apparent-cyanOP2y ago
No been running it since... October '21. I am wondering about the belts getting stretchy as they're the original Ratrig so I have some Gates heading my way.
Mitsuma
Mitsuma2y ago
I would probably just get new ADXL, they are cheap
apparent-cyan
apparent-cyanOP2y ago
I've got three! two only just turned up today and tried each one (see above) back to back with much the same variable results.
Mitsuma
Mitsuma2y ago
how do your cables look like?
apparent-cyan
apparent-cyanOP2y ago
Deconstructed CAT5 cable. If it was a cable problem I'd expect to see either low voltage (it's 4.85V at the ADXL) and/or SPI errors (AIUI SPI does have checksum and overrun detection). It's kind of the reason for trying three. I suspected it could be the ADXL345 but the above tests indicate they're all the same.
apparent-cyan
apparent-cyanOP2y ago
These are the graphs from my previous post. 24 hours apart NOTHING done to the printer other than the tests. Hence trying to investigate the consistency of the measurements.
No description
No description
apparent-cyan
apparent-cyanOP2y ago
and here's one generated just now. Again no changes or twiddling with belts.
No description
apparent-cyan
apparent-cyanOP2y ago
I'm really not sure how I'm meant to make use of these graphs if they are so inconsistent. Does anyone else have an ADXL345 connected and feel like running a few MEASURE_AXIS_NOISE and ACCELEROMETER_QUERY back to back and seeing if their results are like mine?
deep-jade
deep-jade2y ago
Are you sure that your accelerometer is tighten enough on the printer? Maybe it moves a bit…
apparent-cyan
apparent-cyanOP2y ago
@arcy0185 Yes it's securly fixed to the EVA. A wobbly ADXL might explain my random MEASURE_COREXY_BELT_TENSION results but doesn't explain why the ACCELEROMETER_QUERY produces seemingly random results when the printhead isn't moving. As nobody's come back on their results from a few ACCELEROMETER_QUERYs I'll try asking in another channel. As a followup @helgekeck kindly ran some ACCELEROMETER_QUERYs on his machine and got a somewhat similar range of fluctuating values returned. Seems I'm going to have to look elsewhere for a solution to this puzzle 😦
Helge Keck
Helge Keck2y ago
are these your graphs here? definitely not an ADXL issue assembly issue can you show a photo of your toolhead and the cable loom installation?
apparent-cyan
apparent-cyanOP2y ago
FWIW, I've tried holding the cable bundle while doing the MEASURE_COREXY_BELT_TENSION test and that doesn't make much/any difference.
No description
No description
Helge Keck
Helge Keck2y ago
show the adxl setup closer please from the side maybe this doesnt look like a typical installation
apparent-cyan
apparent-cyanOP2y ago
The outer socket head screws for the mount go into the EVA support. The ADXL mounting ones go into heatset inserts in the grey plastic. Tried without Shroud but no difference (unsurprisingly as it's not bolted to the shroud).
No description
No description
apparent-cyan
apparent-cyanOP2y ago
FWIW I have checked every screw and bolt for tightness; none were loose. The thing that really puzzles me is that I get different results from MEASURE_COREXY_BELT_TENSION hours apart when the V-Core is in a locked and alarmed room so cannot have been tweaked.
Helge Keck
Helge Keck2y ago
something is loose, something is vibrating/shaking try to zip tie your really heavy adxl cable to the extruder tensiotner at least dont say that this solves your problem, but it doesnt hurt
apparent-cyan
apparent-cyanOP2y ago
Worth a try. Same methodology. Powered up. G28, wizzed the gantry round a bit, ran MEASURE_COREXY_BELT_TENSION. I'ts actually very similar to the one from the 2nd December (posted above) so maybe you've hit on something there.
No description
No description
Helge Keck
Helge Keck2y ago
yeah, your cable looks super massive, whats that exactly btw? your ADXL uses only two screws, so even if they are tight its relatively easy to bend the board is that a network cable? so here is my suggestion: 1. dont use that massive network cable or whatever this is, these cables do not flex very well, they transfer every little movement to the adxl board. use individual wires inside a sleeve 2. check your belt path for binding, means check if the belt grinds somewheree, this can happen in the motor cages and xy joiners 3. check every screw again from eva, tthe joiners, the rail, ....... 4. consider to update to the FMMM mod, this will remove the motor cages completely out of this equation 5. same for front idlers in case you are using Enclosure 1.0
Helge Keck
Helge Keck2y ago
look here at the motor cages and front idler
No description
Helge Keck
Helge Keck2y ago
this will save you a lot of headache oh, and the cherry on top is a medium preloaded x-rail from CNA
apparent-cyan
apparent-cyanOP2y ago
Thanks. The cable isn't actually that massive (repurposed CAT-5 patch cable possibly? Hmmm... colours seem wrong for that... can't remember as it was a long time ago that I built it). The cores are 0.8mm insulation diameter and the sheath ~5mm. I guess it's the split sleeve making it look huge but I think I have some of Mikkel's prefered cable lying around so I'll try that or some loose silicone wires inside the sleeve. <thinks>or even a short silicone wire extension to isolate the ADXL? I've just had some Gates belts turn up so I'll try them and check the belt runs while I do so. I did remove the adjuster blocks from the EVA and pulled the belts trying to feel for binding when I started down this rabbit hole but didn't find anything. I am using the, original, Ratrig enclosure (hinged lid) so don't see that I could use the FMMM mounts in your picture. I have changed the front idler mounts for the Funsor aluminium ones (and Funsor aluminium XY joiners with Carbon plates) but not done the motor plates as that's a bit more of a PITA. Maybe it's time to do so. Thanks for all the suggestions. I'll report back when I see any changes which might help someone else down the line.
Want results from more Discord servers?
Add your server