diff --git a/.gitignore b/.gitignore index 0cea752..7451ee9 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ *.nav *.snm *.toc +*.vrb diff --git a/esp-01s.jpg b/esp-01s.jpg new file mode 100644 index 0000000..f9e2671 Binary files /dev/null and b/esp-01s.jpg differ diff --git a/index.pdf b/index.pdf index eb6db9b..b1267fb 100644 Binary files a/index.pdf and b/index.pdf differ diff --git a/maglab.png b/maglab.png new file mode 100644 index 0000000..f51976e Binary files /dev/null and b/maglab.png differ diff --git a/presentation.pdf b/presentation.pdf index 3329daf..1620c1e 100644 Binary files a/presentation.pdf and b/presentation.pdf differ diff --git a/presentation.tex b/presentation.tex index dac8f35..d8d58a1 100644 --- a/presentation.tex +++ b/presentation.tex @@ -1,55 +1,134 @@ \documentclass[11pt,ngerman]{beamer} -\usetheme{AnnArbor} +%\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 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 +\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} +\frametitle{About the Project} +\framesubtitle{ESPer} +\centering{\includegraphics[width=\columnwidth]{esp-01s.jpg}} \end{frame} \begin{frame} - \frametitle{Why Updates?} +\frametitle{About the Project} +\framesubtitle{Magrathea Laboratories e.V.} +\centering{\includegraphics[scale=0.04]{maglab.png}} \end{frame} \begin{frame} - \frametitle{Why \textit{Over the Air}?} +\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{Implementation - Update mechanism} +\frametitle{\textit{Over the Air (OTA)}} +\centering{Reduces maintenance cost.} \end{frame} \begin{frame} - \frametitle{Implementation - Supporting multiple devices} +\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 - Automatic deployment and roll-out} +\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} +\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(&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}} \ No newline at end of file