GTRI Internship Presentation

18
Summer Internship Presentation Joseph Zuckerman

Transcript of GTRI Internship Presentation

Page 1: GTRI Internship Presentation

Summer InternshipPresentation

Joseph Zuckerman

Page 2: GTRI Internship Presentation

Tasks

I.Network Time Protocol with GPS

A.NTP Installation

B. GPSD Usage

C. GPS Configuration

D.Server/Client Network

II. Zynq Board Functionality Testing

A.C++11

B. Limits

C. Connecting to Network

D.Threading

E. Boost

III. Other Research Topics

A. PTP

B. USB Filesystems

IV. Pod Controller Testing

A. Testing MDF

B. Fixing Xterm Display

C. USB Investigation

V. Internship Experience

Page 3: GTRI Internship Presentation

NTP

• Linux

• NTP installation

• Contacting Internet Servers

• north-america.pool.ntp.org

• time.nist.gov

• utcnist.coloarado .edu

• Terminology

Page 4: GTRI Internship Presentation

GPS and GPSD

• GPSD Installation

• Instruction Changes (various packages)

• NTP with GPSD

• Must edit ntp.conf file to work with gpsd

Page 5: GTRI Internship Presentation

Sample Output NTP & GPS

NTP Query

CGPS XGPSTools for monitoring GPS

Page 6: GTRI Internship Presentation

GPS Configuration

• Issues:• GPS time-out after 5-10 minutes of running• GPSD doesn’t reconnect with NTP after a time-out

• Find a more stable configuration for the GPS using GUI

• GPS has sensors and other options that are capable of being turned on and off

• Also 3 different kinds of NMEA messages each with options for sensors and other data for time and position

Page 7: GTRI Internship Presentation

GPS Configuration - Settings

• Most of these options and messages were turned on

• Theory – too much data was being sent, overloading the

GPS, and causing it to time out

• Turned off all settings except those related to raw position

and time

Page 8: GTRI Internship Presentation

GPS Configuration – NMEA Messages

• 3 kinds of NMEA messages• GGA – latitude, longitude, altitude, time, and fix status• RMC – latitude, longitude, date, time, speed, course, fix status• ZDA – date and time

• To account for the settings update turned off everything except time and position with GGA and RMC and time with ZDA

• Testing this configuration revealed an error regarding GGA, so those were discarded, too

• Below configuration was decided on and various baud rates were tested to find the most stable

• 19200 gave the most stable configuration, GPS could run for over an hour without a time-out

Page 9: GTRI Internship Presentation

GPS Configuration – PPS

• 4 options for a PPS signal• Main Loop Start – 100 PPS• Time Pulse Copy – 4PPS• Visual Odometer – Pulse everytime GPS travels set distance• Main Loop Divider – Can change number of pulses per second with a divider

• 100 = divider * Hz• For 1 Hz, set divider = 100

Page 10: GTRI Internship Presentation

NTP Server/Client Setup

• Setup an NTP server/client system across the GTRI network

• Used my computer as server and Will’s as the client

• GPS timing source for broadcast

• Setup required editing the ntp.conf file

• For Server:

broadcast 10.104.21.230 minpoll 4

• For client:

broadcastclient

server 10.104.21.230 minpoll 4 maxpoll 4 iburst

Page 11: GTRI Internship Presentation

NTP Server/Client Output

Server

Client

Page 12: GTRI Internship Presentation

Zynq Board

• Getting Started• SD• SSH• NFS

• C++• Used Xilinx SDK to

cross compile code for ARM

• SDK has Linux terminal to communicate with board

Page 13: GTRI Internship Presentation

Zynq Board – C++11 and Limits

• Tested some basic elements of C++11• Range-based for loop• Smart pointers – shared pointers• Tuples• Maps

• Tested the limits of sizes of variables on the board• Same output on my desktop and on Zynq Board

Size (Bytes) Zynq Board DesktopChar 1 1Short 2 2Int 4 4Long 4 4

Long Long 8 8Double 8 8Float 4 4

Pointer 4 4

Page 14: GTRI Internship Presentation

Zynq Board – Connecting to Internet

• Board has a default IP address 192.168.42.50

• Use that address to communicate with the board

• Generated a static IP for the board

• Edited /etc/network/interfaces to update address, netmask, and gateway info

• ifconfig eth0 10.104.40.26 netmask 255.255.0.0

• Created /etc/resolv.conf to add DNS servers

• Allows FQDN formatting

Contents of interfaces Contents of resolv.conf

Page 15: GTRI Internship Presentation

Zynq Board – Threading and Boost

• Threading

• Basic Hello World! Program using threading

• Threading code that worked on desktop, would not run on Zynq

• Trying to link to library that wasn’t on the board

• Solution: link to –pthread and statically link to –libstdc++

• Boost

• Installed boost and linked to boost libraries

• Ran simple code using boost features (e.g. Lambda expressions)

Page 16: GTRI Internship Presentation

Other Research Topics

• PTP – Precision Time Protocol

• Requires hardware timestamping

• Incompatabilities between EXT4, FAT, and NTFS on USB

• Windows cannot read EXT4

Page 17: GTRI Internship Presentation

Pod Controller

• Tested Mission Data File

• One script launches an Xterm window

• Unable to forward xterm over SSH

• Set DISPLAY = :0.0\

• Login with ssh –X, OR

• SSH settings in /etc/ssh/ssh_config

• Turn on ForwardX11

• USB Interaction

• Does not automatically mount to /media/user

• 4 Ports

• 1 goes to /dev/sdb1

• 3 go to /dev/sdc1

Page 18: GTRI Internship Presentation

Internship Experience