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.

133 lines
3.2 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. \documentclass[11pt,ngerman]{beamer}
  2. %\usetheme{Antibes}
  3. \usetheme{Bergen}
  4. \usecolortheme{seagull}
  5. \usepackage{listings}
  6. \usepackage{color}
  7. \lstset{
  8. language=c++,
  9. columns=flexible,
  10. basicstyle={\small\ttfamily},
  11. keepspaces=true,
  12. breaklines=true,
  13. breakatwhitespace=true,
  14. }
  15. \begin{document}
  16. \begin{frame}
  17. \title{Implement Updates \textit{Over the Air} for \textit{ESP8266} microcontrollers}
  18. \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}}
  19. \date{\today}
  20. \titlepage
  21. \end{frame}
  22. \begin{frame}
  23. \frametitle{About the Project}
  24. \framesubtitle{ESPer}
  25. \centering{\includegraphics[width=\columnwidth]{esp-01s.jpg}}
  26. \end{frame}
  27. \begin{frame}
  28. \frametitle{About the Project}
  29. \framesubtitle{Magrathea Laboratories e.V.}
  30. \centering{\includegraphics[scale=0.04]{maglab.png}}
  31. \end{frame}
  32. \begin{frame}
  33. \frametitle{Updates}
  34. \begin{itemize}
  35. \item Changed requirement or environment
  36. \item Closing security issues
  37. \item Fixing bugs
  38. \item New Features
  39. \end{itemize}
  40. \centering{Often possible without hardware changes.}
  41. \end{frame}
  42. \begin{frame}
  43. \frametitle{\textit{Over the Air (OTA)}}
  44. \centering{Reduces maintenance cost.}
  45. \end{frame}
  46. \begin{frame}
  47. \frametitle{Requirements}
  48. \begin{itemize}
  49. \item Automatic updates \textit{OTA} without administrative interaction
  50. \item Insusceptible to errors of any kind
  51. \item Downloading side-by-side with payload traffic
  52. \item Maximal uptime and minimal network load
  53. \item Maintenance and monitoring
  54. \item Categorizing devices by task-specific hardware
  55. \end{itemize}
  56. \end{frame}
  57. \begin{frame}
  58. \frametitle{Implementation}
  59. \framesubtitle{Update mechanism}
  60. \begin{columns}
  61. \begin{column}{0.6\textwidth}
  62. \begin{enumerate}
  63. \item Download \texttt{.version} file and compare
  64. \item Download firmware binary for \emph{other} slot
  65. \item Reconfigure \textit{rBoot} bootloader
  66. \item Restart
  67. \end{enumerate}
  68. \end{column}
  69. \begin{column}{0.4\textwidth}
  70. \centering{\includegraphics[height=0.75\textheight]{flash_layout.pdf}}
  71. \end{column}
  72. \end{columns}
  73. \end{frame}
  74. \begin{frame}[fragile]
  75. \frametitle{Implementation}
  76. \framesubtitle{Supporting multiple devices}
  77. \begin{lstlisting}
  78. #include "Device.h"
  79. #include "features/Socket.h"
  80. Device device;
  81. constexpr const char SOCKET_NAME[] = "socket";
  82. constexpr const uint16_t SOCKET_GPIO = 12;
  83. OnOffFeature<SOCKET_NAME, SOCKET_GPIO, false, 1> socket(&device);
  84. Device* getDevice() { return &device; }
  85. \end{lstlisting}
  86. \end{frame}
  87. \begin{frame}
  88. \frametitle{Implementation}
  89. \framesubtitle{Supporting multiple devices}
  90. \centering{\texttt{make socket/flash} \\ to build and flash.}
  91. \end{frame}
  92. \begin{frame}
  93. \frametitle{Implementation}
  94. \framesubtitle{Automatic deployment and roll-out}
  95. \begin{itemize}
  96. \item \texttt{git commit}
  97. \item \textit{drone} builds it
  98. \item \texttt{scp *.version *.rom\{0,1\}} to deployment server
  99. \item Served by \textit{nginx}
  100. \end{itemize}
  101. \end{frame}
  102. \begin{frame}
  103. \frametitle{Conclusion}
  104. \centering{It works!}
  105. \end{frame}
  106. \begin{frame}
  107. \centering{\url{https://git.maglab.space/esper/esper}}
  108. \vspace{20mm}
  109. \centering{\large{Thank you for your attention.}}
  110. \end{frame}
  111. \end{document}}