diff --git a/ch.hardware_realization.tex b/ch.hardware_realization.tex index cb137af..7edb8f5 100644 --- a/ch.hardware_realization.tex +++ b/ch.hardware_realization.tex @@ -24,7 +24,7 @@ An accelerometer \gls{IC} L3GD20 is fitted on the board, attached to SPI2 on pin \section{GEX Hub} -GEX Hub was the first custom \gls{PCB} designed for GEX. It uses the same microcontroller as the Discovery board, thus the firmware modifications needed to make it work with this new platform were minimal. +GEX Hub was the first custom \gls{PCB} designed for GEX. It uses the same microcontroller as the Discovery board, thus the firmware modifications needed to make it work with this new platform were minimal. The schematic diagram is attached in \hyperref[apx:gex_hub]{Appendix A}. The Hub board provides access to all the \gls{GPIO} pins\footnote{With the exception of pins used by USB and the Lock button.} through three flat-cable connectors, one for each port; they also contain a ground and power supply connection to make the attachment of external boards or a breadboard easier, requiring just one cable. The use of flat cables, however, is not mandatory---the flat cable connectors are based on the standard 2.54\,mm-pitch pin headers, allowing the user to use widely available ``jumper wires''. @@ -241,7 +241,7 @@ Like our STM32 microcontroller, the Broadcom processor on the RPi multiplexes it \end{table} } -The GEX Zero pin header's alternate functions should match those on the RPi Zero header, so that the existing add-on boards can be used without modifications. By inspecting the alternate function tables in the STM32F072 datasheet~\cite{f072-ds}, we found a layout that fulfills this requirement almost perfectly. The final assignment is shown in \cref{tbl:gz_rpi_compare}. +The GEX Zero pin header's alternate functions should match those on the RPi Zero header, so that the existing add-on boards can be used without modifications. By inspecting the alternate function tables in the STM32F072 datasheet~\cite{f072-ds}, we found a layout that fulfills this requirement almost perfectly. The final assignment is shown in \cref{tbl:gz_rpi_compare}, and the full schematic diagram is attached in \hyperref[apx:gex_zero]{Appendix B}. \gls{GPIO} ports A and B are fully exposed in the header, with the exception of pins PA11 and PA12 that are routed to the USB connector. The remaining positions were filled pith pins from port C. The omitted ``ID \IIC'' port on pins 27 and 28 is used by the RPi Zero to read configuration from an EEPROM chip on some add-on boards. As this is the only use of the \IIC port, its lack is not a big limitation. @@ -319,10 +319,11 @@ Unfortunately, neither the GEX Zero \gls{PCB} was flawless in the first revision \section{Wireless Gateway} \label{sec:rfgateway} -The wireless gateway was designed as a ``\gls{USB} dongle'', using the USB-A connector (\cref{fig:gwxgw}). It is fitted with a STM32F103 microcontroller, selected for its low cost and availability in small packages (in this case LQFP48). The nRF24L01+ module is partly sticking outside the board outline, allowing the \gls{PCB} to be smaller (and thus cheaper to manufacture), while reducing interference between components and copper plating on the board and the antenna. +The wireless gateway was designed as a ``\gls{USB} dongle'', using the \gls{USB} type A connector (\cref{fig:gwxgw}). It is fitted with a STM32F103 microcontroller, selected for its low cost and availability in small packages (in this case LQFP48). The nRF24L01+ module is partly sticking outside the board outline, allowing the \gls{PCB} to be smaller (and thus cheaper to manufacture), while reducing interference between components and copper plating on the board and the antenna. The schematic diagram of the wireless gateway is attached in \hyperref[apx:gex_wgw]{Appendix C}. Beyond the use with GEX, the gateway is a versatile tool which could be programmed with a different firmware and serve other purposes, e.g., as a wireless connection between two computers, to scan the radio spectrum for interference in order to find a clear channel, or to communicate with other devices that use the nRF24L01+ transceiver. The chosen microcontroller, unfortunately, does not include a USB bootloader, so a SWD programmer is required to change the firmware; SWD is routed to the pin header next to the wireless module. + \begin{figure}[h] \centering \includegraphics[width=.9\textwidth]{img/photo-rfdongle.jpg} diff --git a/document_config.tex b/document_config.tex index 7f890e6..1d515ea 100755 --- a/document_config.tex +++ b/document_config.tex @@ -94,3 +94,16 @@ \input{pre.gex_command_tables} + + +% custom style for the appendix +\fancyfoot[LE,RO]{\thepage} % Left side on Even pages; Right side on Odd pages +\fancypagestyle{appendix}{% + \fancyfootoffset[lef,rof]{60pt} + \fancyfootoffset[leh,roh]{60pt} + \renewcommand{\headrulewidth}{0pt}% + \fancyhf{}% + \fancyhf[leh,roh]{\vspace{.9cm}\leftmark}% + \fancyhf[lef,rof]{\thepage}% +} + diff --git a/schema/GexHubSchemRev1.pdf b/schema/GexHubSchemRev1.pdf new file mode 100755 index 0000000..18a14a6 Binary files /dev/null and b/schema/GexHubSchemRev1.pdf differ diff --git a/schema/GexHubSchemRev2.pdf b/schema/GexHubSchemRev2.pdf new file mode 100755 index 0000000..8261e01 Binary files /dev/null and b/schema/GexHubSchemRev2.pdf differ diff --git a/schema/GexRadioSchemRev1.pdf b/schema/GexRadioSchemRev1.pdf new file mode 100755 index 0000000..2fcf12b Binary files /dev/null and b/schema/GexRadioSchemRev1.pdf differ diff --git a/schema/GexZeroSchemRev1.pdf b/schema/GexZeroSchemRev1.pdf new file mode 100755 index 0000000..d5b6054 Binary files /dev/null and b/schema/GexZeroSchemRev1.pdf differ diff --git a/schema/GexZeroSchemRev2.pdf b/schema/GexZeroSchemRev2.pdf new file mode 100755 index 0000000..29b70a8 Binary files /dev/null and b/schema/GexZeroSchemRev2.pdf differ diff --git a/thesis.appendices.tex b/thesis.appendices.tex new file mode 100644 index 0000000..ebc8ec1 --- /dev/null +++ b/thesis.appendices.tex @@ -0,0 +1,50 @@ + +\appendix % začátek příloh + +% hacks to remove the header and move page numbers into the margin + +\pagestyle{appendix} +\newgeometry{textheight=760pt} + +% ok so this is ugly as sin, but \leftmark and \rightmark didn't work with +% the phantom sections, so we redefine leftmark manually and use it on both sides + +\renewcommand{\leftmark}{Appendix A: GEX Hub Schematics, Revision 1} +\includepdf[angle=90,pagecommand={% + \phantomsection\addcontentsline{toc}{chapter}{A{\enspace}GEX Hub Schematics}% + \label{apx:gex_hub}% + \phantomsection\addcontentsline{toc}{section}{A.1 GEX Hub Revision 1}% + \label{apx:gex_hub1}% +}]{schema/GexHubSchemRev1.pdf} + +\renewcommand{\leftmark}{Appendix A: GEX Hub Schematics, Revision 2} +\includepdf[angle=90,pagecommand={% + \phantomsection\addcontentsline{toc}{section}{A.2 GEX Hub Revision 2}% + \label{apx:gex_hub2}% +}]{schema/GexHubSchemRev2.pdf} + + +\renewcommand{\leftmark}{Appendix B: GEX Zero Schematics, Revision 1} +\includepdf[angle=90,pagecommand={% + \phantomsection\addcontentsline{toc}{chapter}{B{\enspace}GEX Zero Schematics}% + \label{apx:gex_zero}% + \phantomsection\addcontentsline{toc}{section}{B.1 GEX Zero Revision 1}% + \label{apx:gex_zero1}% +}]{schema/GexZeroSchemRev1.pdf} + +\renewcommand{\leftmark}{Appendix B: GEX Zero Schematics, Revision 2} +\includepdf[angle=90,pagecommand={% + \phantomsection\addcontentsline{toc}{section}{B.2 GEX Zero Revision 2}% + \label{apx:gex_zero2}% +}]{schema/GexZeroSchemRev2.pdf} + + +\renewcommand{\leftmark}{Appendix C: Wireless Gateway Schematics, Revision 1} +\includepdf[angle=90,pagecommand={% + \phantomsection\addcontentsline{toc}{chapter}{C{\enspace}Wireless Gateway Schematics}% + \label{apx:gex_wgw}% + \phantomsection\addcontentsline{toc}{section}{C.1 Wireless Gateway Revision 1}% + \label{apx:gex_wgw1}% +}]{schema/GexRadioSchemRev1.pdf} + +% ... appendices \ No newline at end of file diff --git a/thesis.bib b/thesis.bib index 68fb8b1..6baf86a 100755 --- a/thesis.bib +++ b/thesis.bib @@ -389,7 +389,7 @@ @online{eev-gpio-pu, author = {{EEVblog Electronics Community Forum}}, - title = {pid.codes, a registry of USB PID codes for open source hardware projects}, + title = {Driving the 1K5 USB pull-up resistor on D+}, url = {https://www.eevblog.com/forum/projects/driving-the-1k5-usb-pull-up-resistor-on-d/}, urldate = {2018-05-12} } diff --git a/thesis.pdf b/thesis.pdf index 1b81414..bf7ee62 100644 Binary files a/thesis.pdf and b/thesis.pdf differ diff --git a/thesis.tex b/thesis.tex index 006fbc7..0a3e5c7 100755 --- a/thesis.tex +++ b/thesis.tex @@ -49,14 +49,7 @@ \input{ch.conclusion} \printbibliography - -\appendix % začátek příloh -% seznam bibliografie - -\newpage -\todo[inline]{Schematics here ....} - -% ... appendices +\input{thesis.appendices} \end{document}