Page 1 of 1

Motor Cape V1.0 Firmware install

Posted: Mon Dec 17, 2018 1:18 pm
by electricjeff
Hello there,
I have reciently purchased the Motor Cape for Beagle Bone. I am running a beagle bone black with this version of linux:

Code: Select all

uname -a
Linux beaglebone 4.14.79-ti-r84 #1 SMP PREEMPT Tue Nov 13 20:11:18 UTC 2018 armv7l GNU/Linux
After running all of these updates successfully:

Code: Select all

sudo apt-get update
sudo apt-get install build-essential python-pip python-dev python-smbus git -y
sudo pip install Adafruit-GPIO
sudo pip install Adafruit_BBIO
sudo pip install pyserial
I also edited this file, adding the two lines to the bottom of the uEnv.txt file, as suggested in another post:

Code: Select all

sudo nano /boot/uEnv.txt 
uboot_overlay_addr0=/lib/firmware/BB-UART2-00A0.dtbo
enable_uboot_cape_universal=1
In the end, when I run 'make flash' or 'sudo make flash' I get this output:

Code: Select all

sudo make flash
[sudo] password for debian:
./script/flasher MotorBridgeCapeFirmware.bin
/home/debian/Desktop/MotorBoard/MotorBridgeCapeFirmware
Reading data from MotorBridgeCapeFirmware.bin
Bootloader version 0x31
Chip id 0x440, STM32F0, goood solution for BBG
Global mass erase; this may take a while
Writing 12800 bytes to start address 0x8000000
Write 256 bytes at 0x8000000
Write 256 bytes at 0x8000100
Write 256 bytes at 0x8000200
Write 256 bytes at 0x8000300
Write 256 bytes at 0x8000400
Write 256 bytes at 0x8000500
Write 256 bytes at 0x8000600
Write 256 bytes at 0x8000700
Write 256 bytes at 0x8000800
Write 256 bytes at 0x8000900
Write 256 bytes at 0x8000A00
Write 256 bytes at 0x8000B00
Write 256 bytes at 0x8000C00
Write 256 bytes at 0x8000D00
Write 256 bytes at 0x8000E00
Write 256 bytes at 0x8000F00
Write 256 bytes at 0x8001000
Write 256 bytes at 0x8001100
Write 256 bytes at 0x8001200
Write 256 bytes at 0x8001300
Write 256 bytes at 0x8001400
Write 256 bytes at 0x8001500
Write 256 bytes at 0x8001600
Write 256 bytes at 0x8001700
Write 256 bytes at 0x8001800
Write 256 bytes at 0x8001900
Write 256 bytes at 0x8001A00
Write 256 bytes at 0x8001B00
Write 256 bytes at 0x8001C00
Write 256 bytes at 0x8001D00
Write 256 bytes at 0x8001E00
Write 256 bytes at 0x8001F00
Write 256 bytes at 0x8002000
Write 256 bytes at 0x8002100
Write 256 bytes at 0x8002200
Write 256 bytes at 0x8002300
Write 256 bytes at 0x8002400
Write 256 bytes at 0x8002500
Write 256 bytes at 0x8002600
Write 256 bytes at 0x8002700
Write 256 bytes at 0x8002800
Write 256 bytes at 0x8002900
Write 256 bytes at 0x8002A00
Write 256 bytes at 0x8002B00
Write 256 bytes at 0x8002C00
Write 256 bytes at 0x8002D00
Write 256 bytes at 0x8002E00
Write 256 bytes at 0x8002F00
Write 256 bytes at 0x8003000
Write 256 bytes at 0x8003100
Read 256 bytes at 0x8000000
Read 256 bytes at 0x8000100
Read 256 bytes at 0x8000200
Read 256 bytes at 0x8000300
Read 256 bytes at 0x8000400
Read 256 bytes at 0x8000500
Read 256 bytes at 0x8000600
Read 256 bytes at 0x8000700
Read 256 bytes at 0x8000800
Read 256 bytes at 0x8000900
Read 256 bytes at 0x8000A00
Read 256 bytes at 0x8000B00
Read 256 bytes at 0x8000C00
Read 256 bytes at 0x8000D00
Read 256 bytes at 0x8000E00
Read 256 bytes at 0x8000F00
Read 256 bytes at 0x8001000
Read 256 bytes at 0x8001100
Read 256 bytes at 0x8001200
Read 256 bytes at 0x8001300
Read 256 bytes at 0x8001400
Read 256 bytes at 0x8001500
Read 256 bytes at 0x8001600
Read 256 bytes at 0x8001700
Read 256 bytes at 0x8001800
Read 256 bytes at 0x8001900
Read 256 bytes at 0x8001A00
Read 256 bytes at 0x8001B00
Read 256 bytes at 0x8001C00
Read 256 bytes at 0x8001D00
Read 256 bytes at 0x8001E00
Read 256 bytes at 0x8001F00
Read 256 bytes at 0x8002000
Read 256 bytes at 0x8002100
Read 256 bytes at 0x8002200
Read 256 bytes at 0x8002300
Read 256 bytes at 0x8002400
Read 256 bytes at 0x8002500
Read 256 bytes at 0x8002600
Read 256 bytes at 0x8002700
Read 256 bytes at 0x8002800
Read 256 bytes at 0x8002900
Read 256 bytes at 0x8002A00
Read 256 bytes at 0x8002B00
Read 256 bytes at 0x8002C00
Read 256 bytes at 0x8002D00
Read 256 bytes at 0x8002E00
Read 256 bytes at 0x8002F00
Read 256 bytes at 0x8003000
Read 256 bytes at 0x8003100
Verification OK
./script/flasher: 19: ./script/flasher: [0==0]: not found
Reading data from MotorBridgeCapeFirmware.bin
Bootloader version 0x31
Chip id 0x440, STM32F0, goood solution for BBG
Global mass erase; this may take a while
Writing 12800 bytes to start address 0x8000000
Write 256 bytes at 0x8000000
Write 256 bytes at 0x8000100
Write 256 bytes at 0x8000200
Write 256 bytes at 0x8000300
Write 256 bytes at 0x8000400
Write 256 bytes at 0x8000500
Write 256 bytes at 0x8000600
Write 256 bytes at 0x8000700
Write 256 bytes at 0x8000800
Write 256 bytes at 0x8000900
Write 256 bytes at 0x8000A00
Write 256 bytes at 0x8000B00
Write 256 bytes at 0x8000C00
Write 256 bytes at 0x8000D00
Write 256 bytes at 0x8000E00
Write 256 bytes at 0x8000F00
Write 256 bytes at 0x8001000
Write 256 bytes at 0x8001100
Write 256 bytes at 0x8001200
Write 256 bytes at 0x8001300
Write 256 bytes at 0x8001400
Write 256 bytes at 0x8001500
Write 256 bytes at 0x8001600
Write 256 bytes at 0x8001700
Write 256 bytes at 0x8001800
Write 256 bytes at 0x8001900
Write 256 bytes at 0x8001A00
Write 256 bytes at 0x8001B00
Write 256 bytes at 0x8001C00
Write 256 bytes at 0x8001D00
Write 256 bytes at 0x8001E00
Write 256 bytes at 0x8001F00
Write 256 bytes at 0x8002000
Write 256 bytes at 0x8002100
Write 256 bytes at 0x8002200
Write 256 bytes at 0x8002300
Write 256 bytes at 0x8002400
Write 256 bytes at 0x8002500
Write 256 bytes at 0x8002600
Write 256 bytes at 0x8002700
Write 256 bytes at 0x8002800
Write 256 bytes at 0x8002900
Write 256 bytes at 0x8002A00
Write 256 bytes at 0x8002B00
Write 256 bytes at 0x8002C00
Write 256 bytes at 0x8002D00
Write 256 bytes at 0x8002E00
Write 256 bytes at 0x8002F00
Write 256 bytes at 0x8003000
Write 256 bytes at 0x8003100
Read 256 bytes at 0x8000000
Read 256 bytes at 0x8000100
Read 256 bytes at 0x8000200
Read 256 bytes at 0x8000300
Read 256 bytes at 0x8000400
Read 256 bytes at 0x8000500
Read 256 bytes at 0x8000600
Read 256 bytes at 0x8000700
Read 256 bytes at 0x8000800
Read 256 bytes at 0x8000900
Read 256 bytes at 0x8000A00
Read 256 bytes at 0x8000B00
Read 256 bytes at 0x8000C00
Read 256 bytes at 0x8000D00
Read 256 bytes at 0x8000E00
Read 256 bytes at 0x8000F00
Read 256 bytes at 0x8001000
Read 256 bytes at 0x8001100
Read 256 bytes at 0x8001200
Read 256 bytes at 0x8001300
Read 256 bytes at 0x8001400
Read 256 bytes at 0x8001500
Read 256 bytes at 0x8001600
Read 256 bytes at 0x8001700
Read 256 bytes at 0x8001800
Read 256 bytes at 0x8001900
Read 256 bytes at 0x8001A00
Read 256 bytes at 0x8001B00
Read 256 bytes at 0x8001C00
Read 256 bytes at 0x8001D00
Read 256 bytes at 0x8001E00
Read 256 bytes at 0x8001F00
Read 256 bytes at 0x8002000
Read 256 bytes at 0x8002100
Read 256 bytes at 0x8002200
Read 256 bytes at 0x8002300
Read 256 bytes at 0x8002400
Read 256 bytes at 0x8002500
Read 256 bytes at 0x8002600
Read 256 bytes at 0x8002700
Read 256 bytes at 0x8002800
Read 256 bytes at 0x8002900
Read 256 bytes at 0x8002A00
Read 256 bytes at 0x8002B00
Read 256 bytes at 0x8002C00
Read 256 bytes at 0x8002D00
Read 256 bytes at 0x8002E00
Read 256 bytes at 0x8002F00
Read 256 bytes at 0x8003000
Read 256 bytes at 0x8003100
Verification OK
haha
So, at that point I check for i2C address connection with this:

Code: Select all

debian@beaglebone:~/Desktop/MotorBoard/MotorBridgeCapeFirmware$ i2cdetect -y -r 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
And I can't get it to connect.

Also, when I try to run the MotorBoardTest.py file, I get the following output:

Code: Select all

debian@beaglebone:~/Desktop/MotorBoard$ sudo python tests/MotorBridgeTest.py
Traceback (most recent call last):
  File "tests/MotorBridgeTest.py", line 64, in <module>
    motor.ServoInit(ServoName,Frequency1)
  File "/home/debian/Desktop/MotorBoard/tests/MotorBridge.py", line 356, in ServoInit
    WriteHalfWord(SVM3_FREQ,Frequency)
  File "/home/debian/Desktop/MotorBoard/tests/MotorBridge.py", line 212, in WriteHalfWord
    MotorBridge.writeList(WriteMode,data)
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO/I2C.py", line 127, in writeList
    self._bus.write_i2c_block_data(self._address, register, data)
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_PureIO/smbus.py", line 294, in write_i2c_block_data
    self._device.write(data)
IOError: [Errno 121] Remote I/O error
Please, any help would be greatly appreciated!!
Thanks,
-Jeff