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
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}}
|