January 2014 Updates in the Software


For those following the controlerboard25 branch in git, I'm publishing some of the updates:

As of 1/25/2014: A lot of changes that were made while on the Sea of Cortez expedition and they need some hands on time to finish flushing out... which might happen this weekend.

  • Tank Controls - The left and right sticks on the gamepad now directly control the motors. Push both forward to move forward. Turn by pushing one stick forward and pulling the other back. Control depth by squeezing the sticks together or pushing them apart. All other controls are the same.
  • Heading Lock - This was tested a bit so we know it works. When engaged via the 'm' key system will lock on the current heading and auto correct to keep it. Depth and thrust should still work fine. 'm' to toggle back off. There is no visual indicator of the state, but if it is enabled you will see a "p_er" changing values in the telemetry (that represents how many degrees off of target it is).
  • Depth Lock - Very Very Beta. We have not had any tank testing time yet. Same concept as Heading Lock but using the 'n' key to toggle.
  • Fly By Wire Controls - Very Very Beta. Again, no real time to play with this yet, but technically it uses Heading Lock and Depth Lock to drive the ROV and the traditional controls not just update the target depth and heading on an ongoing basis.
  • Salt Water Toggle for Depth - The calculations have been added but the initial tests seem to reboot the arduino. Its a straight forward calculation, but clearly something is bugged.
  • Telemetry font color changeable - Hold down the 'h' key and it cycles through some color options.
  • Changed the background to all black to make night dives a bit easier.
  • Clicking on telemetry makes it bigger. The goal is to sort the ones you are interested in to the top of the list, needs some more work.


  • In order to get the auto-pilot stuff in place, we had to move the logic for motor reverse in to the arduino code itself. We still need to hook up the UI so that marking a motor as reversed updates it in the arduino's settings. There may be some conflicting motor directions until that is complete.
  • Salt Water Toggle reboots the arduino.