Dustin Frisch
8 years ago
No known key found for this signature in database
GPG Key ID: B4C3BF012D9B26BE
6 changed files with 92 additions and 12 deletions
-
1.gitignore
-
BINesp-01s.jpg
-
BINindex.pdf
-
BINmaglab.png
-
BINpresentation.pdf
-
103presentation.tex
After Width: 2683 | Height: 1562 | Size: 459 KiB |
After Width: 6000 | Height: 4698 | Size: 1.1 MiB |
@ -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_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}} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue