\documentclass[onecolumn,letterpaper,11pt]{article}

%===================================================================
% Include common packages, environments, counters etc
\input{common_latex/common_latex_packages}
\input{common_latex/common_latex_lab_format}
\input{common_latex/common_latex_definitions}
%===================================================================
\setcounter{tocdepth}{2}
%===================================================================

\begin{document}
\wikidoc{file=Lab.2S01Lab02Login}
\wikidoc{auth=supun@mit.edu}
\helplevelsubsec

%===================================================================
% Build the Cover Page in an environment style easy for wiki parsing
\begin{labcover}
\labtitle{Lab 2a - How to login to a SeaBeaver III AUV}
\vspace{0.2in}
\labcourse{2.S01 Introduction to Autonomous Underwater Vehicles}
\vspace{0.5in}
\labpng{0.6}{figures/computer_layout.png}
\vspace{0.25in}
\labdate{Spring 2025}
\vspace{0.23in}
\labauth{Supun Randeni, supun@mit.edu}
\labauth{Michael Benjamin, mikerb@mit.edu}
\labauth{Mike Sacarny, msacarny@mit.edu}
\labauth{Department of Mechanical Engineering}
\labauth{MIT, Cambridge MA 02139}
\labtoc{scriptsize}
\labtocdepth{2}
\end{labcover}

%===================================================================
% Add a blank page so first body page is on the right when doubleside
\blankpage

%===================================================================
% Begin the body of the text
%===================================================================
\section{Objectives of this lab}
%===================================================================

\begin{labinfo}
%\labinfoheader{Topics:}
\begin{packed_itemize}[2]
\item An introduction to the SeaBeaver III training-kit and field-kit
\item Learning name conventions that will be used throughout this class
\item Learning about the two embedded computers onboard the SeaBeaver III class AUVs 
\item Learning how to login to both embedded computers using a wired connection
\item Learning how to login to both embedded computers using a wireless connection
\item Making sure that both embedded computers have internet access
\item Learning how to shutdown both embedded computers safely

\end{packed_itemize}
\end{labinfo}


%===================================================================
\section{Introduction to SeaBeaver III}
%===================================================================

%----------------------------
\subsection{SeaBeaver III class AUVs}
%----------------------------

SeaBeaver is a low-cost micro-AUV design, developed at MIT. We refer to this design as the SeaBeaver {\em class}, encompassing all AUVs manufactured using this design. While individual SeaBeaver vehicles may bear different names such as Ali, Bee, Cap, or Little-Mermaid, they all belong to the {\em SeaBeaver AUV class}.

\vspace{0.1in}
\noindent
The initial iteration of our SeaBeaver design, developed in 2023 was called SeaBeaver I. In 2024, this initial version went through a cycle of significant improvements in electronics, hardware, and software, evolving into SeaBeaver II (see Figure \ref{fig_inwater}). Students of 2.S01 in 2024 built six SeaBeaver II AUVs. 

\vspace{0.1in}
\begin{figure}[H]
\centering
\includegraphics[width=0.8\textwidth]{figures/in_water.jpg}
\caption{Sea trials of the first SeaBeaver II class AUV, {\em SB2-alpha}}
\label{fig_inwater}
\end{figure}

This year we have further improved the AUV design in terms of hardware and electronics, introducing the SeaBeaver III AUV class (see Figure \ref{fig_sb3}). 


\vspace{0.1in}
\begin{figure}[H]
\centering
\includegraphics[width=0.8\textwidth]{figures/SB3.jpg}
\caption{The SeaBeaver III class AUV that will be used in this class}
\label{fig_sb3}
\end{figure}


\subsubsection{SeaBeaver training-kit}
%----------------------------

One of the primary objectives of MIT 2.S01 is to familiarize you with
the internal components of the AUV and to ensure that you become
comfortable working with them safely. To facilitate this learning
experience, we have introduced the {\em SeaBeaver training kit}.

\vspace{0.1in}
\noindent
As shown in Figure \ref{fig_trainingkit}, the training-kit comprises electronics and software identical to those found in the actual
vehicle. However, there are two main distinctions between the training
kit and the physical AUV:

\begin{itemize}

\item The training-kit lacks the tail-cone pressure hull, which houses
servo motors that drive control surfaces, the main propulsion thruster, and the mast containing LED indicators and an active GPS antenna. Instead, it is connected to a mock-up tail-cone equipped with servo motors and LEDs, emulating the SeaBeaver tail-cone.

\item The training kit does not include the main battery or the power management system. Instead, it offers two alternative power sources: (1) a wall-pluggable power adapter and (2) a compact rechargeable travel battery for mobile exercises.
    
\end{itemize}

\vspace{0.1in}
\begin{figure}[H]
\centering
\includegraphics[width=0.35\textwidth]{figures/training-kit.jpg}
\caption{SeaBeaver training-kit}
\label{fig_trainingkit}
\end{figure}

Each of you will receive a training kit to utilize throughout the duration of the 2.S01 class, allowing for hands-on learning experiences both in the classroom and at home.


\subsubsection{SeaBeaver field-kit}
%----------------------------

Each training-kit can be paired with a field-kit to build a complete vehicle (see Figure \ref{fig_assembled}). The field kit comprises the following components:

\begin{itemize}  
    \item Components necessary for building a tail-cone pressure hull, including 3D printed parts, main propulsion thruster, servo motors, control surfaces, rotary seals, flanges, bulkhead connectors, and a potted mast. You will have the opportunity to assemble your tail-cone with our guidance and support.
    
    \item A main pressure hull housing along with relevant flanges and bulkhead connectors.
    \item A nose-cone
    \item Two ballast rails that allows hydrostatic balancing of the vehicle by adding, removing, or shifting weights.
    \item The main battery and power management system
\end{itemize}


\noindent
Each pair of students will receive a field-kit to facilitate hands-on assembly and experimentation of their own SeaBeaver class AUV.

\vspace{0.1in}
\begin{figure}[H]
\centering
\includegraphics[height=0.5\textwidth]{figures/field-kit.jpg}
\includegraphics[height=0.5\textwidth]{figures/sb3_combined_kits.png}
\caption{Parts of the SeaBeaver field-kit (left); and final assembled AUV by pairing up the training-kit with field-kit (right).}
\label{fig_assembled}
\end{figure}


%----------------------------
\subsection{AUV naming conventions}
%----------------------------

\subsubsection{Nose-cone}

The nose-cone is the forward end of the AUV (Figure \ref{fig_nosecone}). In SeaBeaver class AUVs, the nose-cone is a free flood section; functioning as a wet payload bay intended to accommodate sensors that directly interact with the water. These sensors may include external pressure sensors, water temperature sensors, acoustic receiver hydrophones, acoustic transmitter transducers, etc.

\vspace{0.1in}
\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{figures/nosecone.png}
\caption{Nose-cones of AUVs}
\label{fig_nosecone}
\end{figure}


\subsubsection{Tail-cone}

The tail-cone constitutes the aft end of the AUV (refer to Figure \ref{fig_tailcone}). Conventionally, it houses the propulsion and control actuator mechanism, such as the thruster(s), control surfaces, and their respective drive mechanisms. In SeaBeaver class AUVs, the tail-cone encompasses three control surfaces along with their servo-based drive mechanisms, the main thruster, mast, and an external pressure/temperature sensor.

\vspace{0.1in}
\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{figures/tailcone.png}
\caption{Tail-cones of AUVs}
\label{fig_tailcone}
\end{figure}

\subsubsection{Pressure hull}

The pressure hull, also known as the pressure housing or electronics housing, constitutes a dry compartment within the vehicle, primarily designated to house electronics (see Figure \ref{fig_freeflood}). The internal pressure of this compartment is generally equal to or lower than atmospheric pressure. Consequently, the pressure hull must have the structural integrity to endure the external water pressure at the vehicle's designated crush depth.

\vspace{0.1in}
\noindent
In certain scenarios, the housing is filled with oil. Within oil-filled housings, the internal pressure equals or slightly exceeds the external water pressure. Consequently, the housing's walls do not need to withstand the external pressure, as there are no air cavities present. However, it is imperative that individual components placed within an oil-filled housing can operate effectively at the vehicle's designated crush depth.

\subsubsection{Free flood space}    

A free flood space refers to an area or compartment in which external water can freely flow in and out (see Figure \ref{fig_freeflood}). The boundary walls of such sections essentially act as a fairing, maintaining the hydrodynamic shape of the vehicle. As there are no air cavities present, these fairing walls do not need to withstand external water pressure.

\vspace{0.1in}
\begin{figure}[H]
\centering
\includegraphics[width=0.8\textwidth]{figures/freeflood.png}
\caption{Pressure hull and free flood sections of SeaBeaver III AUV class}
\label{fig_freeflood}
\end{figure}

\subsubsection{Ballast}

Ballast refers to heavy materials, typically lead or stainless steel blocks, strategically placed within the vehicle to increase weight or shift its center of gravity (see Figure \ref{fig_ballast}). As you will learn later in the class, AUVs are usually ballasted to maintain a slight positive buoyancy, where buoyancy slightly exceeds the overall in-water weight. In addition, they are adjusted to have zero trim and heel angles. This is achieved by adding, removing, and shifting ballast weights (see Figure \ref{fig_ballast}).

\vspace{0.1in}
\begin{figure}[H]
\centering
\includegraphics[width=0.8\textwidth]{figures/ballast.png}
\caption{Ballasting the SeaBeaver I - echo AUV}
\label{fig_ballast}
\end{figure}

\subsubsection{Mast}  

The mast of an AUV typically accommodates various antennas. These antennas may include a GPS antenna, a satellite modem antenna, cellular modem antenna, and a WiFi antenna. Additionally, the mast may feature light strobes to enhance the vehicle's visibility when at the surface. Ensuring adequate surface visibility is crucial for AUVs, facilitating easy recovery after a mission. Masts are typically designed to be raised above the waterline to optimize reception and visibility.

\subsubsection{Control surfaces}

The control surfaces (a.k.a. fins, control planes, rudders/elevators) are used to turn the vehicle in horizontal and vertical planes (i.e., yawing and pitching). Similarly to a rudder of a ship, they generate a lift force when they pose an angle of attack to the direction of the flow. This force is used to turn the vehicle.

\subsubsection{Six degree of freedom (6-DOF) motion of an AUV}

Figure \ref{fig_6dof} illustrates the 6-DOF motion of an underwater vehicle. There are three axes in an underwater vehicle, called longitudinal, transverse, and vertical axes. The motion along and around them are:

\begin{itemize}
    \item {\bf Surge:} linear forwards and backwards motion along the longitudinal horizontal axis
    \item {\bf Sway:} linear transverse (side-to-side) motion along the transverse (a.k.a lateral) horizontal axis
    \item {\bf Heave:} linear vertical (up and down) motion along the vertical axis
    \item {\bf Roll:} Angular motion of the vehicle about its longitudinal axis. 
    \item {\bf Pitch:} Angular motion of the vehicle about its transverse axis.
    \item {\bf Yaw:} Angular motion of the vehicle about its vertical axis.
\end{itemize}

\vspace{0.1in}
\begin{figure}[H]
\centering
\includegraphics[width=0.6\textwidth]{figures/6dof.png}
\caption{Six degree of freedom (6-DOF) motion of an AUV}
\label{fig_6dof}
\end{figure}

Steady-state offset angles in roll and pitch also have names: 

\begin{itemize}
    \item {\bf Heel angle:} a steady-state roll angle offset due to the ship's own weight distribution.  
    \item {\bf Trim angle:} a steady-state pitch angle offset due to the ship's own weight distribution
\end{itemize}

\subsubsection{Nautical terms}

Additional nautical terms:

\begin{itemize}
    \item {\bf Port:} the left of the vehicle as you look forward
    \item {\bf Starboard:} the right of the vehicle as you look forward
    \item {\bf Bow:} the forward part of the vehicle
    \item {\bf Stern:} the rear part of the vehicle 
    \item {\bf Forward:} towards the front of the vehicle
    \item {\bf Aft:} toward the stern of the vehicle
    \item {\bf Waterline:} the lines that separates the submerged
      section of the vehicle from the section above, while the vehicle
      is at surface
    
\end{itemize}



%===================================================================
\section{Computers}
%===================================================================


%===========================
\subsection{Embedded computers inside SeaBeaver III}
%===========================

There are two embedded single-board computers inside SeaBeaver III class AUVs: (1) a Raspberry Pi 4 single-board computer and (2) a Beagleboard PocketBeagle single-board computer. A single-board computer is a fully functional computer in which the microprocessor, input/output functions, memory, and other features are built on a single circuit board. 


%----------------------------
\subsubsection{Raspberry Pi 4 single board computer}
%----------------------------

The Raspberry Pi single-board computer (see Figure \ref{fig_raspi}) serves as the main compute unit of the AUV. This embedded computer is dedicated for higher-level processes that require more compute power. The Raspberry Pi has an inbuilt WiFi module. This WiFi interface is configured to connect to the \cmd{ SeaBeaverNetwork} WiFi router with a static IP address. Every vehicle and training-kit will have a unique static IP.

\vspace{0.1in}
\begin{figure}[H]
\centering
\includegraphics[width=0.7\textwidth]{figures/sb3_raspi.png}
\caption{Raspberry Pi single board computer of the SeaBeaver III}
\label{fig_raspi}
\end{figure}


%----------------------------
\subsubsection{PocketBeagle single board computer}
%----------------------------

The PocketBeagle single board computer (see Figure \ref{fig_pb}) serves as a hub for sensors and actuators. That is, all sensors and actuators are directly connected to the PocketBeagle via its various interfaces (more details about this will be discussed in future labs). The PocketBeagle is networked with the Raspberry Pi via Ethernet (to be precise, via Ethernet over USB). When the Raspberry Pi and the PocketBeagle are connected, the PocketBeagle will have the static IP address of: \cmd{192.168.7.2}. Currently, all PocketBeagles will have the same IP address from the perspective of each Raspberry Pi.

\vspace{0.1in}
\begin{figure}[H]
\centering
\includegraphics[width=0.7\textwidth]{figures/sb3_pb.png}
\caption{PocketBeagle single board computer of the SeaBeaver III}
\label{fig_pb}
\end{figure}


%===========================
\subsection{Topside computer}
%===========================

The laptop computer that you use to connect to the AUV is referred to as the Topside computer. This could be either your personal laptop (Linux or Mac preferred) or a class laptop that was loaned to you. You will use the topside computer to connect to the AUV via the Secure Shell Protocol (SSH).


%----------------------------
\subsection{Self checkoff assessment}
%----------------------------

Check:

\begin{itemize}
    \item Are you able to recognize the two computers inside the SeaBeaver III AUVs?
\end{itemize}


%===================================================================
\section{How to login to SeaBeaver III -- Wired}
%===================================================================

Currently, there are two methods to connect to SeaBeaver III AUVs. 

\begin{enumerate}
    \item When the vehicle is opened; for example, when you are using the training-kit, you can use a direct Ethernet cable to connect.
    \item When the vehicle and you are both in proximity to \cmd{SeaBeaverNetwork} WiFi router, you can connect via WiFi.
\end{enumerate}


%----------------------------
\subsection{Connect the Ethernet cable between the Raspberry Pi and Topside computer}
%----------------------------

As shown in Figure \ref{fig_ethernet}, connect an Ethernet cable between the Raspberry Pi and the topside computer.

\vspace{0.1in}
\begin{figure}[H]
\centering
\includegraphics[width=0.7\textwidth]{figures/Eth0.png}
\caption{Wired Ethernet connection between the topside computer and SeaBeaver Raspberry Pi.}
\label{fig_ethernet}
\end{figure}

%----------------------------
\subsection{Share your internet connection with the Raspberry Pi (Linux Computers)}
%----------------------------

On your topside laptop:
\begin{enumerate}
    \item Go to settings
    \item Go to network
    \item Under wired tab, click the gear wheel icon:
\end{enumerate}

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.6\textwidth]{figures/settings_gearwheel.png}
  \caption{\var{Settings -> Network -> Wired}}
  \label{fig_trainingkit}
\end{figure}

\begin{enumerate}\addtocounter{enumi}{3}
\item Under the IPv4 tab, select Shared to other computers, and click apply:
\end{enumerate}

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.6\textwidth]{figures/ipv4.png}
  %        \caption{\cmd{Settings \var{->} Network \var{->} Wired \var{-\>} IPv4 -> Shared to other computers} }
  \caption{\var{Settings -> Network -> Wired -> IPv4 -> Shared to other computers} }
  \label{fig_trainingkit}
\end{figure}

\begin{enumerate}\addtocounter{enumi}{4}
\item Toggle the on/off button to reset the interface:
\end{enumerate}

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.6\textwidth]{figures/setting_toggle.png}
  %        \caption{\cmd{Settings \var{->} Network \var{->} Wired \var{->} Restart Interface}}
  \caption{\var{Settings -> Network -> Wired -> Restart Interface}}
  \label{fig_trainingkit}
\end{figure}


%----------------------------
%\subsection{Share your internet connection with the Raspberry Pi (Mac Computers)}
%----------------------------









%----------------------------
\subsection{SSH to the Raspberry Pi}
%----------------------------

On ubuntu topside laptops, you will receive a static IP address of \cmd{10.42.0.1} when you select the wired network IPv4 option: ``shared to other computers''. You can Ensure this by:

\vspace{0.1in}
\begin{consoleverb}
$ ifconfig

enx68da73a0ce6f: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.42.0.1  netmask 255.255.255.0  broadcast 10.42.0.255
        inet6 fe80::2b2e:b50a:c6c7:518e  prefixlen 64  scopeid 0x20<link>
        ether 68:da:73:a4:ce:6f  txqueuelen 1000  (Ethernet)
        RX packets 2833  bytes 164703 (164.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7373  bytes 9918932 (9.9 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
\end{consoleverb}
\vspace{0.1in}

\noindent As you see from the output, your Ethernet IP address is \cmd{10.42.0.1}. If your IP address is not in the range \cmd{10.42.0.ABC}, you will not be able to log into the SeaBeaver Raspberry Pi. You might need to set up a static IP address for the top-side laptop in this range.

The Ethernet interface of every Raspberry Pi is configured to have the same static IP address as \cmd{10.42.0.5}. Now connect to the Raspberry Pi via SSH:

\vspace{0.1in}
\begin{consoleverb}
$ ssh seabeaver-raspi@10.42.0.5
\end{consoleverb}
\vspace{0.1in}

\noindent Now you will be asked to enter the password:

\vspace{0.1in}
\begin{consoleverb}
seabeaver-raspi@10.42.0.5's password: 
\end{consoleverb}
\vspace{0.1in}

\noindent Enter the password (the password will be provided to you by the instructors). Once you are logged in, you will see the screen below:

\vspace{0.1in}
\begin{consoleverb}
Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.4.0-1105-raspi aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Fri Mar 29 18:43:14 UTC 2024

  System load:  0.0                Processes:             145
  Usage of /:   10.1% of 58.23GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for eth0: 10.42.0.5
  Swap usage:   0%                 IPv4 address for eth1: 192.168.6.1
  Temperature:  47.2 C             IPv4 address for eth2: 192.168.7.1

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

62 updates can be applied immediately.
To see these additional updates run: apt list --upgradable


Last login: Wed Mar 27 23:10:02 2024 from 192.168.0.101
seabeaver-raspi@seabeaver-raspi:~$ 
\end{consoleverb}
\vspace{0.1in}

Now you are successfully logged into the SeaBeaver's Raspberry Pi.


%----------------------------
\subsection{Ensure that the Raspberry Pi has internet}
%----------------------------

You can check if the Raspberry Pi has internet access via the topside computer by pinging google.com:

\vspace{0.1in}
\begin{consoleverb}
$ ping google.com 
\end{consoleverb}
\vspace{0.1in}

\noindent If you have Internet access, you will see an output similar to this.

\vspace{0.1in}
\begin{consoleverb}
PING google.com (142.251.40.142) 56(84) bytes of data.
64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=1 ttl=55 time=8.96 ms
64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=2 ttl=55 time=11.5 ms
64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=3 ttl=55 time=11.1 ms
64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=4 ttl=55 time=11.7 ms
64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=5 ttl=55 time=10.2 ms
\end{consoleverb}
\vspace{0.1in}

\noindent To exit from pinging, press ctrl+c.


%----------------------------
\subsection{SSH to the PocketBeagle}
%----------------------------

Once you log into the RasPi, you can SSH into the PocketBeagle from RasPi:

\vspace{0.1in}
\begin{consoleverb}
$ ssh debian@192.168.7.2
\end{consoleverb}
\vspace{0.1in}

\noindent Normally, you will be asked to enter the PocketBeagle's password. However, to simplify operations, we have configured the PocketBeagle such that it will let the RasPi SSH in without requiring a password (i.e. by copying RasPi's public SSH key file to the PocketBeagle as a trusted computer). Once you are logged in, you will see the screen below:

\vspace{0.1in}
\begin{consoleverb}
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Mar 27 17:07:57 2024 from 192.168.7.1
debian@beaglebone:~$ 
\end{consoleverb}
\vspace{0.1in}


%----------------------------
\subsection{Ensure that the PocketBeagle has internet}
%----------------------------

Similarly to the RasPi, you can ensure that the PocketBeagle has internet access via the RasPi by pinging google.com:

\vspace{0.1in}
\begin{consoleverb}
$ ping google.com 
\end{consoleverb}
\vspace{0.1in}


%----------------------------
\subsection{Self checkoff assessment}
%----------------------------

Check:

\begin{itemize}
    \item Are you able to log-in to Raspberry via Ethernet?
    \item Are you able to log-in to the PocketBeagle via Ethernet?
    \item Have you confirmed that both computers have Internet access through the topside laptop?
\end{itemize}


%===================================================================
\section{How to login to SeaBeaver III -- Wireless}
%===================================================================

You can only use the wireless approach when the vehicle and you are both in proximity to the \cmd{SeaBeaverNetwork} WiFi router. That is, you can only complete this section when you are in the classroom or in the MIT Sailing Pavilion. If you are doing this lab at home, skip this section to the next. 

%----------------------------
\subsection{Connect to the \cmd{SeaBeaverNetwork} WiFi router}
%----------------------------

Connect your topside laptop to the \cmd{SeaBeaverNetwork} WiFi access point. The DHCP server on the router will assign you an IP address in the range \cmd{192.168.0.100-200}. If you like, you can check your IP address by using \cmd{ifconfig} command:

\vspace{0.1in}
\begin{consoleverb}
$ ifconfig
\end{consoleverb}
\vspace{0.1in}


%----------------------------
\subsection{SSH to the Raspberry Pi}
%----------------------------

The wireless interface of each SeaBeaver Raspberry Pi computer is configured with a unique static IP address in the range \cmd{192.168.0.50-80}. The static IP address that we assigned for your training-kit will be clearly labeled. If not, ask the instructors. Now connect to the Raspberry Pi via SSH (use your training-kit's IP address instead of \cmd{192.168.0.50}):

\vspace{0.1in}
\begin{consoleverb}
$ ssh seabeaver-raspi@192.168.0.50
\end{consoleverb}
\vspace{0.1in}

\noindent Now you will be asked to enter the password:

\vspace{0.1in}
\begin{consoleverb}
seabeaver-raspi@10.42.0.5's password: 
\end{consoleverb}
\vspace{0.1in}

\noindent Enter the password (password will be provided to you by the instructors).
Now you are successfully logged into the SeaBeaver's Raspberry Pi.


%----------------------------
\subsection{Ensure that the Raspberry Pi has internet}
%----------------------------

You can check if the Raspberry Pi has internet access via the router by pinging google.com:

\vspace{0.1in}
\begin{consoleverb}
$ ping google.com 
\end{consoleverb}
\vspace{0.1in}

%----------------------------
\subsection{SSH to the PocketBeagle}
%----------------------------

Once you logged into the RasPi, you can SSH into the PocketBeagle:

\vspace{0.1in}
\begin{consoleverb}
$ ssh debian@192.168.7.2
\end{consoleverb}
\vspace{0.1in}


%----------------------------
\subsection{Ensure that the PocketBeagle has internet}
%----------------------------

Similar to the RasPi, you can ensure that the PocketBeagle has internet access via the RasPi by pinging google.com:

\vspace{0.1in}
\begin{consoleverb}
$ ping google.com 
\end{consoleverb}
\vspace{0.1in}

\noindent If you have Internet access, you will see an output similar to this.

\vspace{0.1in}
\begin{consoleverb}
PING google.com (142.251.40.142) 56(84) bytes of data.
64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=1 ttl=55 time=8.96 ms
64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=2 ttl=55 time=11.5 ms
64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=3 ttl=55 time=11.1 ms
64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=4 ttl=55 time=11.7 ms
64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=5 ttl=55 time=10.2 ms
\end{consoleverb}
\vspace{0.1in}

\noindent To exit from pinging, press ctrl+c.


%----------------------------
\subsection{Self checkoff assessment}
%----------------------------

Check:

\begin{itemize}
    \item Are you able to log-in to Raspberry via WiFi?
    \item Are you able to log-in to PocketBeagle via WiFi?
    \item Have you confirmed that both computers have Internet access through the WiFi router? 
\end{itemize}


%===================================================================
\section{Shutting down embedded computers}
%===================================================================

You need to first shutdown the PocketBeagle and then the RasPi. When you are logged into the PocketBeagle, you can use the halt command to safely shutdown the computer:

\vspace{0.1in}
\begin{consoleverb}
debian@beaglebone:~$ sudo halt
\end{consoleverb}
\vspace{0.1in}

\noindent Enter the password when you are asked to do so. Then you will be bounced back to the RasPi: 

\vspace{0.1in}
\begin{consoleverb}
[sudo] password for debian: 
Connection to 192.168.7.2 closed by remote host.
Connection to 192.168.7.2 closed.
seabeaver-raspi@seabeaver-raspi:~$
\end{consoleverb}
\vspace{0.1in}

\noindent You can now use the halt command on the RasPi to shut it down safely:

\vspace{0.1in}
\begin{consoleverb}
seabeaver-raspi@seabeaver-raspi:~$ sudo halt
\end{consoleverb}
\vspace{0.1in}

\noindent Enter the password when asked. Then you will be bounced back to your topside computer: 

\vspace{0.1in}
\begin{consoleverb}
[sudo] password for seabeaver-raspi: 
Connection to 10.42.0.5 closed by remote host.
Connection to 10.42.0.5 closed.
\end{consoleverb}
\vspace{0.1in}


\noindent Now you have shut both embedded computers off.


%===================================================================
\section{Assessment}
%===================================================================

Lab assessments are structured to ensure that you are on track to complete your AUV by the end of the semester for in-water trials. You are expected to demonstrate to one of the instructors that you can complete the following tasks. More importantly, please do not hesitate to communicate with the instructors if you encounter any issues.

\begin{enumerate}
    \item Log into the PocketBeagle using either wired or wireless approach.
    \item Ping google.com to confirm that the PocketBeagle has internet access and show the response to one of the instructors.
\end{enumerate}

\end{document}

