Beaglebone Blue Ubuntu 18.04.2 problem with robotcontrol

Hello,

   I am running Robert's Ubuntu image with ROS pre-installed on a BeaglewBone Blue, and have not figured out how to get the full robotcontrol system to work.

   This is the image I am running:

https://rcn-ee.net/rootfs/bb.org/testing/2019-03-03/bionic-ros-iot/bone-ubuntu-18.04.2-ros-iot-armhf-2019-03-03-6gb.img.xz

   Here is a typical error:

beagle@beaglebone:~$ rc_check_battery
ERROR in rc_adc_init, failed to open iio adc interface
: No such file or directory
Perhaps kernel or device tree is too old

   I did a source install of the robotcontrol utilities, no change.

   Some additional clues are below.

   I must be missing something obvious. I would be grateful for any pointers.

   Thanks and Best Regards,

    -Louis

beagle@beaglebone:~$ uname -a
Linux beaglebone 4.19.25-ti-rt-r12 #1bionic SMP PREEMPT RT Fri Mar 1 07:53:07 UTC 2019 armv7l armv7l armv7l GNU/Linux
beagle@beaglebone:~$

beagle@beaglebone:~$ rc_test_drivers

Kernel: 4.19.25-ti-rt-r12
BeagleBoard.org ROS Image 2019-03-03
Debian: buster/sid

PASSED: gpio 0
PASSED: gpio 1
PASSED: gpio 2
PASSED: gpio 3
PASSED: pwm0
PASSED: pwm1
PASSED: pwm2
PASSED: eqep0
PASSED: eqep1
PASSED: eqep2
ERROR: pru-rproc driver not loaded
PASSED: uart1
PASSED: uart2
PASSED: uart4
PASSED: uart5
PASSED: i2c1
PASSED: i2c2
PASSED: spi
PASSED: LED
ERROR: ADC iio driver not loaded

Currently running on a:
MODEL_BB_BLUE
Robot Control library Version:
1.0.4
beagle@beaglebone:~$ sudo systemctl status robotcontrol.service
● robotcontrol.service - robotcontrol
    Loaded: loaded (/lib/systemd/system/robotcontrol.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Sun 2019-04-14 22:00:35 UTC; 8min ago
   Process: 3313 ExecStartPre=/usr/bin/rc_startup_routine (code=exited, status=255)

Apr 14 22:00:35 beaglebone systemd[1]: Starting robotcontrol...
Apr 14 22:00:35 beaglebone rc_startup_routine[3313]: timeout reached while waiting for PRU remoteproc dr
Apr 14 22:00:35 beaglebone rc_startup_routine[3313]: TIMEOUT REACHED
Apr 14 22:00:35 beaglebone systemd[1]: robotcontrol.service: Control process exited, code=exited status=
Apr 14 22:00:35 beaglebone systemd[1]: robotcontrol.service: Failed with result 'exit-code'.
Apr 14 22:00:35 beaglebone systemd[1]: Failed to start robotcontrol.
beagle@beaglebone:~$
beagle@beaglebone:~$ more /var/log/robotcontrol/startup_log.txt
start time (s): 2282.24
time (s): 2282.33 GPIO loaded
time (s): 2282.34 PWM loaded
time (s): 2282.35 eQEP loaded
TIMEOUT_REACHED
timeout reached while waiting for PRU remoteproc driver
beagle@beaglebone:~$
beagle@beaglebone:~$ sudo /opt/scripts/tools/version.sh
git:/opt/scripts/:[36a476c67f707ba2698bfb30452ebd2951162ce2]
eeprom:[A335BNLTBLA21717EL003552]
model:[TI_AM335x_BeagleBone_Blue]
dogtag:[BeagleBoard.org ROS Image 2019-03-03]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2018.09-00002-g08ae12f051]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2017.05-rc1-00002-g35aecb]:[location: dd MBR]
kernel:[4.19.25-ti-rt-r12]
nodejs:[v8.10.0]
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-cape-overlays]:[4.4.20190404.0-0rcnee0~bionic+20190404]
pkg:[bb-wl18xx-firmware]:[1.20190227.1-0rcnee0~bionic+20190227]
pkg:[kmod]:[24-1ubuntu3.2rcnee0~bionic+20190208]
pkg:[librobotcontrol]:[1.0.4-git20190227.1-0rcnee0~bionic+20190327]
groups:[beagle : beagle adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal bluetooth netdev i2c cloud9ide gpio pwm eqep admin spi tisdk weston-launch xenomai]
cmdline:[console=ttyO0,115200n8 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet]
dmesg | grep pinctrl-single
[ 1.402492] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
beagle@beaglebone:~$

eeprom:[A335BNLTBLA21717EL003552]
model:[TI_AM335x_BeagleBone_Blue]
dogtag:[BeagleBoard.org ROS Image 2019-03-03]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot
2018.09-00002-g08ae12f051]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot
2017.05-rc1-00002-g35aecb]:[location: dd MBR]

Bootloader installed on the eMMC is too old and breaking things..

Just run:

sudo dd if=/dev/zero of=/dev/mmcblk1 bs=1M count=10

and reboot.

Regards,

I can confirm that having done precisely this on the weekend, it works. Though it took me a while to find the hidden notation about it.
May I humbly suggest that the robotics package checks the necessary bootloader during install/update and defaults to “fixing” it (or at least suggesting it should be fixed and how)? I can’t quite imagine a scenario going forward where folks would not necessarily want this except if they are on a really old kernel and stuff.

P.

Like what is stated here:

http://strawsondesign.com/docs/librobotcontrol/installation.html#installation_s5

Regards,

Yes.

One isn't directed to that page out of the box in any way though (at least with my Element 14 vendored Blue). The only URL referred to on the piece of paper in the box is http://beagleboard.org/getting-started which refers one to https://github.com/beagleboard/beaglebone-blue/wiki/Frequently-Asked-Questions-(FAQ) which doesn't mention the strawsondesign origin of the board, and thus I stated the information contained on that page is somewhat difficult to find. Yes, I could submit a pull request on the Blue FAQ, just seems to me to be a workaround for what (could, should?) be done on the image at first update (I suspect most folks will run an update on the supplied eMMC image before trying anything else).

Just my 2c. Will pull my head in again.

Pete.

Please, submit a patch to that wiki.

I've blown most of my personal BeagleBone Blue's thus i don't bother
to use them anymore..

Having the package's auto zero dd'ing the old bootloader is dangerous,
it's best they ask in this forum instead.

Regards,

Robert,

   That was it! Everything works! Thank you!

   -Louis