What might be the reason for the error ?
The ADC pins AIN0 to AIN5 are connected to thermistors and the actual voltage at the ADC pins is around 0.77 volt
Does anyone have any help on this? I’m getting this too, using Ubuntu on the Beaglebone Black. I’ve upgrade to 3.8.13-bone31 (the only higher version is 3.12 but I can’t get the cape to load)
I get some valid readings (for maybe a few minutes after I load the cape) then I get the resource temporarily unavailable, and there’s nothing in the dmesg output to indicate an error
The problem seems to arise when I am trying to access ADC continuously without delay.
When I tried to access ADC continuously, the “Resource temporarily unavailable” error remained constant and I was not able to read ADC unless I rebooted the system.
If I give a delay after reading each ADC value,
Occassionally I do get “Resource temporarily unavailable” error but it just remains for a few seconds and I am able to read ADC again normally.
Hi guys - have any of you reached a resolution on this? I’ve been getting it intermittently since the start with my BBB, 3.8.13, but just now as I start to use more of the AIN pins I’ve started seeing what is reported here, that it locks up and I have to reboot to recover access to the AIN pins. I quickly lose access again, making my BBB kind of not fit for this particular purpose, which is frustrating :). Any info gratefully received, any requested further info happily posted.
The ADC kernel drivers throw errors when reading multiple channels, you
can either deal with it or fix the driver. So far, I've just dealt with
it, ignoring the resource unavailable error and just continuing on:
The resource unavailable error is thrown in a consistent pattern, but
the pattern changes depending on which channels you're actually reading.
Also, the errors are not time sensitive. I get the same patten of
errors when performing reads by hand (using cat at the command line,
with _seconds_ between reads) as I do reading via a program with a 50 mS
delay.
I'm hoping they finally fixed this in the newer kernels.
Was this ever fixed in any build? This is causing me to not be able to use my BBB as my 3d printer controller. I’m actually using Charles’s fix above, but it is throwing the error so much that my heater cartridge will not heat up, or heats up to meltdown point.
Was this ever fixed in any build? This is causing me to not be able to use my BBB as my 3d printer controller. I’m actually using Charles’s fix above, but it is throwing the error so much that my heater cartridge will not heat up, or heats up to meltdown point.
What kernel/do you use?
I have machinekit+Yocto running to control my 3D printer with the 3.8.x Xenomai kernel of Charles.[1][2] You can also use the official Debian image from Charles.[3] This is more an “out of the box” experience.
I also did experiments with 3.14.x. There I did not manage to read the raw value directly due to “Resource temporarily unavailable”, but I am able to read 2 Analog channels with the generic_buffer test. Most likely more channels would work as well, but I don’t need more at the moment.
Elsewhere (i.e. in another thread) I have asked about the relationship
between the raw ADC values (the real 12-bit ones) and the processed 0
to 1799 mV values. However no one seems to be able to point me to how
they are connected, i.e. how the 0-1799 values are produced from the
0-4095 ones.
Is there any processing involved other than a straight multiplication
by 1799/4095? I.e. is there any smoothing by weighted average or
anything like that?
When I tried to read both the raw values and the processed ones as
close together as possible in time it seemed to me that, at the very
least, there was some sort of time delay between them.