Wiki

Clone wiki

SCINI / Software

[TOC] ##Introduction SCINI Software Repository

The software used with the SCINI ROV can be divided into two categories: Command and Control (C&C) and Image Acquisition.

SCINI's topside C&C application, PCPilot (LabView), implements a slightly modified version of the VideoRay PRO3 Protocol. TCP/IP drivers in LabView, and a Lantronix XPort are responsible for converting TCP to serial on the topside and vehicle respectively. On the vehicle, three separate ATmega328 Microcontrollers sit on a common RS-485 bus and are responsible for interpreting and responding to requests from PCPilot.

Individual JPEG's from SCINI's two Elphel 353 cameras (a forward-looking pilot camera and a science camera) are streamed to the topside computers, and written to disk using Image Acquisition Tool (IAT), a custom C# .NET program.

##Command & Control ###PCPilot The PCPilot application is "written" in LabView, and was developed in LabView 8.6. The full source is contained within the repository, and should open and run in newer versions of LabView without issue. IMPORTANT: You will need to install FTDI D2XX Serial drivers as PCPilot uses them. Download them here: http://www.ftdichip.com/Drivers/D2XX.htm.

Best performance is obtained if the LabView program is compiled as a standalone binary (which requires the LabView Runtime Engine) using LabView Application Builder. When operating SCINI in the field, compiled binaries are used almost exclusively compared to un-compiled LabView programs.

PCPilot works natively with the Logitech Rumblepad 2, but can be configured to work with other controllers as well.

pcpilot_750wide.jpg

Screenshot: The main screen of PCPilot displays depth, tilt, roll, temperature and humidity of the two atmospheric enclosures, light levels, and raw hex packets going to, and coming from the vehicle.

###Atmel Microcontrollers Contained within SCINI are three ATmega328P microcontrollers that send/receive responses/commands to PCPilot. One ("CAMERA") is contained within the camera bottle, and the other two ("MAIN" & "IMU") within the main electronics housing. The three devices sit on a common 115200 baud RS-485 bus, and a compiler directive is used to differentiate each controller. Default fuses are used, and an AVR ISP programmer can be used to program the chips.

###X-Port Configuration A telnet dump of the XPort configuration can be found here. As noted in the electronics section, TTL logic sent and recieved by the X-Port is converted to RS-485 using a MAX3430 transceiver chip.

##Image Acquisition ###Image Acquisition Tool (IAT) IAT is a custom interface, originally written by Desert Star Systems in 2008. IAT is responsible for both changing camera settings, and displaying/storing streaming JPEG images on a topside computer. Written with Microsoft C# .NET, IAT incorporates a LabView library to connect to a socket running on PCPilot. Data from SCINI (depth, light levels, roll, tilt, etc.) are written into the EXIF data of each image, as well as position data (NMEA sentences) that comes over a user-selected serial port.

###Elphel Cameras Several PHP scripts sit on the Elphel cameras that are responsible for setting camera settings, date/time, taking full res. frames, and appending EXIF data. Additional details of SCINI's implementation of the Elphel cameras can be found in this blog post.

Updated