You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

134 lines
3.2 KiB

\documentclass[11pt,ngerman]{beamer}
%\usetheme{Antibes}
\usetheme{Bergen}
\usecolortheme{seagull}
\usepackage{listings}
\usepackage{color}
\lstset{
language=c++,
columns=flexible,
basicstyle={\small\ttfamily},
keepspaces=true,
breaklines=true,
breakatwhitespace=true,
}
\begin{document}
\begin{frame}
\title{Implement Updates \textit{Over the Air} for \textit{ESP8266} microcontrollers}
\author{Dustin Frisch\\ C/C++ for Embedded Systems and Physical Computing\\ Angewandte Informatik\\ University of Applied Sciences Fulda\\ \texttt{dustin.frisch@informatik.hs-fulda.de}}
\date{\today}
\titlepage
\end{frame}
\begin{frame}
\frametitle{About the Project}
\framesubtitle{ESPer}
\centering{\includegraphics[width=\columnwidth]{esp-01s.jpg}}
\end{frame}
\begin{frame}
\frametitle{About the Project}
\framesubtitle{Magrathea Laboratories e.V.}
\centering{\includegraphics[scale=0.04]{maglab.png}}
\end{frame}
\begin{frame}
\frametitle{Updates}
\begin{itemize}
\item Changed requirement or environment
\item Closing security issues
\item Fixing bugs
\item New Features
\end{itemize}
\centering{Often possible without hardware changes.}
\end{frame}
\begin{frame}
\frametitle{\textit{Over the Air (OTA)}}
\centering{Reduces maintenance cost.}
\end{frame}
\begin{frame}
\frametitle{Requirements}
\begin{itemize}
\item Automatic updates \textit{OTA} without administrative interaction
\item Insusceptible to errors of any kind
\item Downloading side-by-side with payload traffic
\item Maximal uptime and minimal network load
\item Maintenance and monitoring
\item Categorizing devices by task-specific hardware
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Implementation}
\framesubtitle{Update mechanism}
\begin{columns}
\begin{column}{0.6\textwidth}
\begin{enumerate}
\item Download \texttt{.version} file and compare
\item Download firmware binary for \emph{other} slot
\item Reconfigure \textit{rBoot} bootloader
\item Restart
\end{enumerate}
\end{column}
\begin{column}{0.4\textwidth}
\centering{\includegraphics[height=0.75\textheight]{flash_layout.pdf}}
\end{column}
\end{columns}
\end{frame}
\begin{frame}[fragile]
\frametitle{Implementation}
\framesubtitle{Supporting multiple devices}
\begin{lstlisting}
#include "Device.h"
#include "features/Socket.h"
Device device;
constexpr const char SOCKET_NAME[] = "socket";
constexpr const uint16_t SOCKET_GPIO = 12;
OnOffFeature<SOCKET_NAME, SOCKET_GPIO, false, 1> socket(&device);
Device* getDevice() { return &device; }
\end{lstlisting}
\end{frame}
\begin{frame}
\frametitle{Implementation}
\framesubtitle{Supporting multiple devices}
\centering{\texttt{make socket/flash} \\ to build and flash.}
\end{frame}
\begin{frame}
\frametitle{Implementation}
\framesubtitle{Automatic deployment and roll-out}
\begin{itemize}
\item \texttt{git commit}
\item \textit{drone} builds it
\item \texttt{scp *.version *.rom\{0,1\}} to deployment server
\item Served by \textit{nginx}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Conclusion}
\centering{It works!}
\end{frame}
\begin{frame}
\centering{\url{https://git.maglab.space/esper/esper}}
\vspace{20mm}
\centering{\large{Thank you for your attention.}}
\end{frame}
\end{document}}