beaglebone rc_startup_routine[1278]: timeout reached while waiting for pwm driver

I use http://strawsondesign.com/docs/images/BBB-blank-debian-9.5-iot-armhf-2018-10-07-4gb.img.xz from http://strawsondesign.com/docs/librobotcontrol/flashing.html. I flashed it into the built-in eMMc as the page told that it is better so.

Then I configured librobotcontrol to use rc_balance as told here http://strawsondesign.com/#!edumip-software, which gave an error:

$ 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 2018-10-07 16:42:07 UTC; 13s ago
Process: 1278 ExecStartPre=/usr/bin/rc_startup_routine (code=exited, status=255)

Oct 07 16:42:06 beaglebone systemd[1]: Starting robotcontrol…
Oct 07 16:42:07 beaglebone rc_startup_routine[1278]: timeout reached while waiting for pwm driver
Oct 07 16:42:07 beaglebone rc_startup_routine[1278]: TIMEOUT REACHED
Oct 07 16:42:07 beaglebone systemd[1]: robotcontrol.service: Control process exited, code=exited status=255
Oct 07 16:42:07 beaglebone systemd[1]: Failed to start robotcontrol.
Oct 07 16:42:07 beaglebone systemd[1]: robotcontrol.service: Unit entered failed state.
Oct 07 16:42:07 beaglebone systemd[1]: robotcontrol.service: Failed with result ‘exit-code’.

$ uname -a
Linux beaglebone 4.14.71-ti-r80 #1 SMP PREEMPT Fri Oct 5 23:50:11 UTC 2018 armv7l GNU/Linux

I guess the hardware is ok, as I previously used some old image from https://www.hackster.io/edumip/edumip-13a29c and rc_balance was fine.

$ rc_test_drivers

Kernel: 4.14.71-ti-r80
BeagleBoard.org Debian Image 2018-10-07
Debian: 9.5

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

Currently running on a:
MODEL_BB_BLUE
Robot Control library Version:
1.0.3

Hello, I have the same problem here so I cannot run on boot either. Have you solved this problem?
I’m looking forward to hearing from you, thank you!

It was something like new OS on an sd card, but something outdated in the booting sequence on the EEPROM and I needed to fill the latter with zeros… something strange like that if I remember well.

Thank you! If possible, could you please give me more detailed instruction on how to solve this? Maybe some links would be very helpful!

I do not have the link anymore. Anyway, it said to get the last version of the system on an sd card, but it is not enough as the old bootloader from the eMMc would still be used. So it said to desactivate the bootloader

Possibly it loses the contents of all partitions on the eMMC, I do not know.

If you need the EEPROM and do not want to use the sd card, you should instead update the eMMC. I guess you will find links for that.

I’ve filed this on GitHub at https://github.com/StrawsonDesign/librobotcontrol/issues/162. If anyone has found a conclusive explanation and solution for the failure, please post it there. Thanks!