No motor or servo functionality, but lights work


#1

Hi,

I've installed the latest BeagleBone image and from the browser installed the latest ROV software from github. I'm able to bring up cockpit page and see video and can control the lights but the motors and servo do not respond to any input.

The servo does power on during the bootup sequence and orients itself, it also holds its position after bootup.

Another oddity is that I cannot get to the ROV cockpit using the static IP adress of 192.168.254.1. My computer's IP is set to 192.168.254.2. The cockpit only comes up if I plug the ROV into my router and use the dynamically assigned IP that it gets, ie 192.168.200.58.

Any help would be greatly appreciated because I'm basically dead in the water at this point.

Thanks.

-Marcus


#2

I'll try and follow up with links.

There is an issue logged against the openrov/image project that talks about the 5 minute timeout. This issue (there is a post in the forum as well) has a work around. Not saying it is necessarily the issue you are having but it could explain what you are seeing as far as not being able to connect with the static IP address.

If you have not done so already, you may need to update the firmware on the arduino as well. Check the /var/logs/openrov.log for clues. If you have old enough firmware, it will not send motor commands.


#3

Thanks.

I was able to get the static IP to work by following the instructions in this post, http://openrov.com/forum/topics/workaround-for-the-5-minute-timeouts .

What firmware version is that latest? My /usr/share/arduino/lib/version.txt shows 1.0


#4

You probably need the Updated Arduino code:

https://github.com/OpenROV/openrov-software/tree/master/arduino

Regards Dave


#5

I've uploaded the latest Arduino firmware from the Settings tab of the OpenROV cockpit. Note: I was have trouble getting it to upload until I made these changes

try changing the :
/usr/share/arduino/hardware/arduino/board.txt
change the atmega328.upload.speed=57600 to 115200

In any case, it uploads and as far as I can tell the Arduino is updated. However, even after this update I still cannot control motors or servo :(

converting to firmware.hex
make: warning: Clock skew detected. Your build may be incomplete.
Searching for Board description file (boards.txt) ... /usr/share/arduino/hardware/arduino/boards.txt
Searching for Arduino lib version file (version.txt) ... /usr/share/arduino/lib/version.txt
Detecting Arduino software version ... 1.0 (1.0)
Searching for Arduino core library ... /usr/share/arduino/hardware/arduino/cores/arduino
Searching for Arduino standard libraries ... /usr/share/arduino/libraries
Searching for Arduino variants directory ... /usr/share/arduino/hardware/arduino/variants
Searching for avr-gcc ... /usr/bin/avr-gcc
Searching for avr-g++ ... /usr/bin/avr-g++
Searching for avr-ar ... /usr/bin/avr-ar
Searching for avr-objcopy ... /usr/bin/avr-objcopy
Setting up uploader
Serial port settings
Initiating arduino reset
upload successfull!
avrdude: AVR device initialized and ready to accept instructions Reading
| ##################################################

| 100% 0.01s avrdude: Device signature = 0x1e950f avrdude:
reading input file ".build/atmega328/firmware.hex" avrdude:
writing flash (12076 bytes): Writing | ################################################## |
100% 1.93s avrdude: 12076 bytes of flash written avrdude:
verifying flash memory against .build/atmega328/firmware.hex: avrdude:
load data flash data from input file .build/atmega328/firmware.hex: avrdude:
input file .build/atmega328/firmware.hex contains 12076 bytes avrdude:
reading on-chip flash data: Reading | ##################################################
| 100% 1.62s avrdude: verifying ... avrdude: 12076 bytes of flash verified avrdude done.
Thank you. Searching for stty ... /bin/stty
Searching for avrdude ... /usr/share/arduino/hardware/tools/avrdude Searching for avrdude.conf
... /usr/share/arduino/hardware/tools/avrdude.conf


#6

Can you look in to /var/logs/openrov.log and see if there is anything that stands out.


#7

Unfortunately nothing really stands out to me in my openrov.log.

config { debug: true,
debug_commands: false,
production: true,
sample_freq: 20,
dead_zone: 10,
video_frame_rate: 15,
video_resolution: 'SVGA',
video_device: '/dev/video0',
video_port: 8090,
port: 8080,
serial: '/dev/ttyO1',
serial_baud: 115200,
OpenROVCamera: './lib/OpenROVCamera',
OpenROVController: './lib/OpenROVController',
FirmwareInstaller: './lib/FirmwareInstaller' }
info: socket.io started
Starting the script from /opt/openrov/src/linux to setup UART1...
Started listening on port: 8080
path.existsSync is now called `fs.existsSync`.
initiating camera on
/dev/video0
spawning capture process...
emitted 'videoStated'
camera started
stderr: MJPG Streamer Version: svn rev:
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 800 x 600
i: Frames Per Second.: 15
i: Format............: MJPEG

stderr: Adding control for Pan (relative)
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Tilt (relative)
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Pan Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Tilt Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Pan/tilt Reset
UVCIOC_CTRL_ADD - Error: Invalid argument
Adding control for Focus (absolute)
UVCIOC_CTRL_ADD - Error: Invalid argument
mapping control for Pan (relative)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Tilt (relative)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Pan Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Tilt Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Pan/tilt Reset
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Focus (absolute)
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for LED1 Mode
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for LED1 Frequency
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Disable video processing
UVCIOC_CTRL_MAP - Error: Invalid argument
mapping control for Raw bits per pixel
UVCIOC_CTRL_MAP - Error: Invalid argument
o: www-folder-path...: disabled
o: HTTP TCP port.....: 8090
o: username:password.: disabled
o: commands..........: enabled


#8

Any other suggestions on getting to the root cause of why the motors and servo wouldn't be working? What are some approaches to breaking down the problem into the different sub-systems to get an idea of where the issue could lie. What is the general "live debugging" approach if there is one?

I know the electronics are fine on my ROV because everything was working prior to installing a replacement BeagleBone (due to a faulty SD card reader).

For me to get video and be able to control the lights gives me the impression that the vast majority of the connections are in place so it seems like an Arduino issue.

Also, although I'm able to get to the cockpit I don't get any stats? Does that help explain where the breakage could be occuring?

Thanks.



#9

I figured out what was my problem was. I needed to complete step #3 (Update OpenROV Software) on the Update Software wiki entry, http://wiki.openrov.com/index.php/Update_Software

This was the first time for me going through the process of building out the software for the rov and I inadvertently assumed that when I installed the latest BeagleBone image that it automatically installed latest Open ROV software.

What finally brought this to my attention of not having the latest OpenROV Sofwtware was that I was looking at what was on github and what I had locally and it didn't match up. I was like hey, "I want latest, how do I get that?". So that made me go in the direction of reviewing the software update process and I realized that running step #3 was worth a shot.

Note that I did have to do the npm steps as well before all would work, the /var/log/openrov.log was complaining about not finding the forever-monitor module. After running the npm steps (twice) things were all finally synced up.

  1. sudo bash
  2. cd /opt/openrov
  3. rm -rf node_modules
  4. npm install

So the long and short of it...
I had updated the Arduino firmware with the latest code through the browser cockpit, but I was running an older version (Dec 2012) version of the OpenROV software. This combination allowed partial functionality of the rov to work. It wasn't until I updated the OpenROV software that everything began working.

As a side note, I think the project label of "OpenROV Software" is little vague and leads to confusion. Everything is "OpenROV Software" in one form or another.

So cool that the wiki was there to help walk me through the software update process!


#10

Hi Marcus,

I had the same problem that you had and your fix worked for me.

It was not clear in the instructions to run the npm steps (twice).

Thanks,

Frankk