I am trying to write a program that reads the analog values of a sonar on the Beaglebone Black Wireless (Debian image 2017-07-01). The program runs fine if executed from the command line, but when I try to run it automatically at startup (using crontab), the program doesn’t run at all (as indicated by a grep command). Here is the relevant code:
from time import sleep
import Adafruit_BBIO.ADC as ADC
ADC.setup()
while True:
sonar = ADC.read(pin)
print sonar
sleep(.5)
Any help in this matter would be greatly appreciated.
On Tue, 12 Sep 2017 12:43:26 -0500, Drew Fustini
<pdp7pdp7@gmail.com> declaimed the following:
Check out this example of how to run a script at startup:
https://github.com/adafruit/adafruit-beaglebone-io-python/blob/master/doc/run_config-pin_during_startup.md
from time import sleep
import Adafruit_BBIO.ADC as ADC
ADC.setup()
while True:
sonar = ADC.read(pin)
print sonar
I'd be concerned about that print statement... Where is stdout going
for a cron job?
I’m assuming you mean how I’m displaying the values. I’m not, but disabling the print statement didn’t fix the problem.
Cron jobs aren't supposed to have output. If they do, it's mailed to the
owner of the job, presumably because they contain error messages for
debugging.
Hello,
Run the CRON job with EDITOR=nano crontab -e and make sure you are root. I forget what it must take to become root in our new systems. By default, the Debian Stretch Distro does not place us in the root directory. sudo -i will do it!
Seth
Oh and Medina,
You may need to set up all your code and software in the root folder to allow for direct action in your boot.
Seth
P.S. sudo -i
Hello Medina,
Seth here, again. Oh and dude, you can also throw all that software into the Autorun folder on Cloud 9.
Seth
P.S. Just a reminder…if you use sudo -i, you can exit out by just typing exit. That will bring you to your debian@… or whatever your name is now. You would, before the exit cmd, be root@… and not debian@… or so on.
All my files are already in root. I disabled the security in my Beaglebone so I can log in with root and have administrative privileges by default. I already tried crontab and it didn’t run. I prefer not to use Cloud9 due to its limitations. That being said, uploading a file to the autorun folder didn’t work either.
Okay…no issue. I hope things work out. If I come across the correct way to start a program/software on boot, I will let you know.
Seth
P.S. I read about it a while back but I came up empty with my current search. They have some Debian docs. on it. I will let you know if I come across it again.
Hello Tomas,
I just listened to Fustini in this post, https://github.com/adafruit/adafruit-beaglebone-io-python/blob/master/doc/run_config-pin_during_startup.md, by starting a service and making two uart pins available to me on boot.
Seth
P.S. I hope things are going well in your quest. BBB!