diff --git a/EmergencyStopButton/eStopESP32.aux b/EmergencyStopButton/eStopESP32.aux new file mode 100644 index 0000000..f1fdd39 --- /dev/null +++ b/EmergencyStopButton/eStopESP32.aux @@ -0,0 +1,28 @@ +\relax +\providecommand \babel@aux [2]{\global \let \babel@toc \@gobbletwo } +\@nameuse{bbl@beforestart} +\catcode `"\active +\providecommand\hyper@newdestlabel[2]{} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\babel@aux{ngerman}{} +\@writefile{toc}{\contentsline {section}{\numberline {1}Ziel und Anforderungen}{2}{section.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2}Architekturentscheidung}{2}{section.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Bewertete Optionen}{2}{subsection.2.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Entscheidung: WiFi Light Sleep}{2}{subsection.2.2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3}WiFi Light Sleep -- Funktionsprinzip}{2}{section.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}DTIM-Einstellung und Stromverbrauch}{3}{subsection.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Akkulaufzeit (2000 mAh LiPo)}{3}{subsection.3.2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4}Latenzbudget}{3}{section.4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5}Hardware}{3}{section.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Empfohlene Boards}{3}{subsection.5.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Akku-Spezifikation}{3}{subsection.5.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Schaltung}{4}{subsection.5.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6}Software}{4}{section.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Abhängigkeiten (Arduino IDE)}{4}{subsection.6.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Konfiguration in \texttt {EmergencyStopButton.ino}}{4}{subsection.6.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Ablauf}{4}{subsection.6.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Kritische API-Funktion}{5}{subsection.6.4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7}Deployment-Hinweise}{5}{section.7}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {8}Dateien}{5}{section.8}\protected@file@percent } +\gdef \@abspage@last{5} diff --git a/EmergencyStopButton/eStopESP32.log b/EmergencyStopButton/eStopESP32.log new file mode 100644 index 0000000..c13df32 --- /dev/null +++ b/EmergencyStopButton/eStopESP32.log @@ -0,0 +1,529 @@ +This is pdfTeX, Version 3.141592653-2.6-1.40.27 (MiKTeX 25.4) (preloaded format=pdflatex 2025.6.3) 25 JUN 2026 19:13 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**./eStopESP32.tex +(eStopESP32.tex +LaTeX2e <2024-11-01> patch level 2 +L3 programming layer <2025-04-29> +(C:\Program Files\MiKTeX\tex/latex/base\article.cls +Document Class: article 2024/06/29 v1.4n Standard LaTeX document class +(C:\Program Files\MiKTeX\tex/latex/base\size11.clo +File: size11.clo 2024/06/29 v1.4n Standard LaTeX file (size option) +) +\c@part=\count272 +\c@section=\count273 +\c@subsection=\count274 +\c@subsubsection=\count275 +\c@paragraph=\count276 +\c@subparagraph=\count277 +\c@figure=\count278 +\c@table=\count279 +\abovecaptionskip=\skip49 +\belowcaptionskip=\skip50 +\bibindent=\dimen146 +) +(C:\Program Files\MiKTeX\tex/latex/base\inputenc.sty +Package: inputenc 2024/02/08 v1.3d Input encoding file +\inpenc@prehook=\toks17 +\inpenc@posthook=\toks18 +) +(C:\Program Files\MiKTeX\tex/latex/base\fontenc.sty +Package: fontenc 2021/04/29 v2.0v Standard LaTeX package +) +(C:\Program Files\MiKTeX\tex/generic/babel\babel.sty +Package: babel 2025/05/14 v25.9 The multilingual framework for pdfLaTeX, LuaLaT +eX and XeLaTeX +\babel@savecnt=\count280 +\U@D=\dimen147 +\l@unhyphenated=\language79 + +(C:\Program Files\MiKTeX\tex/generic/babel\txtbabel.def) +\bbl@readstream=\read2 +\bbl@dirlevel=\count281 + +************************************* +* Local config file bblopts.cfg used +* +(C:\Program Files\MiKTeX\tex/latex/arabi\bblopts.cfg +File: bblopts.cfg 2005/09/08 v0.1 add Arabic and Farsi to "declared" options of + babel +) +(C:\Program Files\MiKTeX\tex/latex/babel-german\ngerman.ldf +Language: ngerman 2024/12/10 v2.15 German support for babel (post-1996 orthogra +phy) + +(C:\Program Files\MiKTeX\tex/generic/babel/locale/de\babel-ngerman.tex +Package babel Info: Importing font and identification data for ngerman +(babel) from babel-de.ini. Reported on input line 11. +) +(C:\Program Files\MiKTeX\tex/latex/babel-german\ngermanb.ldf +Language: ngermanb 2024/12/10 v2.15 German support for babel (post-1996 orthogr +aphy) +Package babel Info: Making " an active character on input line 122. +))) +(C:\Program Files\MiKTeX\tex/latex/geometry\geometry.sty +Package: geometry 2020/01/02 v5.9 Page Geometry + +(C:\Program Files\MiKTeX\tex/latex/graphics\keyval.sty +Package: keyval 2022/05/29 v1.15 key=value parser (DPC) +\KV@toks@=\toks19 +) +(C:\Program Files\MiKTeX\tex/generic/iftex\ifvtex.sty +Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. + +(C:\Program Files\MiKTeX\tex/generic/iftex\iftex.sty +Package: iftex 2024/12/12 v1.0g TeX engine tests +)) +\Gm@cnth=\count282 +\Gm@cntv=\count283 +\c@Gm@tempcnt=\count284 +\Gm@bindingoffset=\dimen148 +\Gm@wd@mp=\dimen149 +\Gm@odd@mp=\dimen150 +\Gm@even@mp=\dimen151 +\Gm@layoutwidth=\dimen152 +\Gm@layoutheight=\dimen153 +\Gm@layouthoffset=\dimen154 +\Gm@layoutvoffset=\dimen155 +\Gm@dimlist=\toks20 + +(C:\Program Files\MiKTeX\tex/latex/geometry\geometry.cfg)) +(C:\Program Files\MiKTeX\tex/latex/amsmath\amsmath.sty +Package: amsmath 2024/11/05 v2.17t AMS math features +\@mathmargin=\skip51 + +For additional information on amsmath, use the `?' option. +(C:\Program Files\MiKTeX\tex/latex/amsmath\amstext.sty +Package: amstext 2021/08/26 v2.01 AMS text + +(C:\Program Files\MiKTeX\tex/latex/amsmath\amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks21 +\ex@=\dimen156 +)) +(C:\Program Files\MiKTeX\tex/latex/amsmath\amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen157 +) +(C:\Program Files\MiKTeX\tex/latex/amsmath\amsopn.sty +Package: amsopn 2022/04/08 v2.04 operator names +) +\inf@bad=\count285 +LaTeX Info: Redefining \frac on input line 233. +\uproot@=\count286 +\leftroot@=\count287 +LaTeX Info: Redefining \overline on input line 398. +LaTeX Info: Redefining \colon on input line 409. +\classnum@=\count288 +\DOTSCASE@=\count289 +LaTeX Info: Redefining \ldots on input line 495. +LaTeX Info: Redefining \dots on input line 498. +LaTeX Info: Redefining \cdots on input line 619. +\Mathstrutbox@=\box53 +\strutbox@=\box54 +LaTeX Info: Redefining \big on input line 721. +LaTeX Info: Redefining \Big on input line 722. +LaTeX Info: Redefining \bigg on input line 723. +LaTeX Info: Redefining \Bigg on input line 724. +\big@size=\dimen158 +LaTeX Font Info: Redeclaring font encoding OML on input line 742. +LaTeX Font Info: Redeclaring font encoding OMS on input line 743. +\macc@depth=\count290 +LaTeX Info: Redefining \bmod on input line 904. +LaTeX Info: Redefining \pmod on input line 909. +LaTeX Info: Redefining \smash on input line 939. +LaTeX Info: Redefining \relbar on input line 969. +LaTeX Info: Redefining \Relbar on input line 970. +\c@MaxMatrixCols=\count291 +\dotsspace@=\muskip17 +\c@parentequation=\count292 +\dspbrk@lvl=\count293 +\tag@help=\toks22 +\row@=\count294 +\column@=\count295 +\maxfields@=\count296 +\andhelp@=\toks23 +\eqnshift@=\dimen159 +\alignsep@=\dimen160 +\tagshift@=\dimen161 +\tagwidth@=\dimen162 +\totwidth@=\dimen163 +\lineht@=\dimen164 +\@envbody=\toks24 +\multlinegap=\skip52 +\multlinetaggap=\skip53 +\mathdisplay@stack=\toks25 +LaTeX Info: Redefining \[ on input line 2953. +LaTeX Info: Redefining \] on input line 2954. +) +(C:\Program Files\MiKTeX\tex/latex/booktabs\booktabs.sty +Package: booktabs 2020/01/12 v1.61803398 Publication quality tables +\heavyrulewidth=\dimen165 +\lightrulewidth=\dimen166 +\cmidrulewidth=\dimen167 +\belowrulesep=\dimen168 +\belowbottomsep=\dimen169 +\aboverulesep=\dimen170 +\abovetopsep=\dimen171 +\cmidrulesep=\dimen172 +\cmidrulekern=\dimen173 +\defaultaddspace=\dimen174 +\@cmidla=\count297 +\@cmidlb=\count298 +\@aboverulesep=\dimen175 +\@belowrulesep=\dimen176 +\@thisruleclass=\count299 +\@lastruleclass=\count300 +\@thisrulewidth=\dimen177 +) +(C:\Program Files\MiKTeX\tex/latex/listings\listings.sty +\lst@mode=\count301 +\lst@gtempboxa=\box55 +\lst@token=\toks26 +\lst@length=\count302 +\lst@currlwidth=\dimen178 +\lst@column=\count303 +\lst@pos=\count304 +\lst@lostspace=\dimen179 +\lst@width=\dimen180 +\lst@newlines=\count305 +\lst@lineno=\count306 +\lst@maxwidth=\dimen181 + +(C:\Program Files\MiKTeX\tex/latex/listings\lstpatch.sty +File: lstpatch.sty 2024/09/23 1.10c (Carsten Heinz) +) +(C:\Program Files\MiKTeX\tex/latex/listings\lstmisc.sty +File: lstmisc.sty 2024/09/23 1.10c (Carsten Heinz) +\c@lstnumber=\count307 +\lst@skipnumbers=\count308 +\lst@framebox=\box56 +) +(C:\Program Files\MiKTeX\tex/latex/listings\listings.cfg +File: listings.cfg 2024/09/23 1.10c listings configuration +)) +Package: listings 2024/09/23 1.10c (Carsten Heinz) + +(C:\Program Files\MiKTeX\tex/latex/xcolor\xcolor.sty +Package: xcolor 2024/09/29 v3.02 LaTeX color extensions (UK) + +(C:\Program Files\MiKTeX\tex/latex/graphics-cfg\color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 274. + +(C:\Program Files\MiKTeX\tex/latex/graphics-def\pdftex.def +File: pdftex.def 2024/04/13 v1.2c Graphics/color driver for pdftex +) +(C:\Program Files\MiKTeX\tex/latex/graphics\mathcolor.ltx) +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1349. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1353. +Package xcolor Info: Model `RGB' extended on input line 1365. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1367. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1370. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1371. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1372. +) +(C:\Program Files\MiKTeX\tex/latex/hyperref\hyperref.sty +Package: hyperref 2025-05-20 v7.01m Hypertext links for LaTeX + +(C:\Program Files\MiKTeX\tex/latex/kvsetkeys\kvsetkeys.sty +Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO) +) +(C:\Program Files\MiKTeX\tex/generic/kvdefinekeys\kvdefinekeys.sty +Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) +) +(C:\Program Files\MiKTeX\tex/generic/pdfescape\pdfescape.sty +Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) + +(C:\Program Files\MiKTeX\tex/generic/ltxcmds\ltxcmds.sty +Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO) +) +(C:\Program Files\MiKTeX\tex/generic/pdftexcmds\pdftexcmds.sty +Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO +) + +(C:\Program Files\MiKTeX\tex/generic/infwarerr\infwarerr.sty +Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) +) +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +)) +(C:\Program Files\MiKTeX\tex/latex/hycolor\hycolor.sty +Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) +) +(C:\Program Files\MiKTeX\tex/latex/hyperref\nameref.sty +Package: nameref 2023-11-26 v2.56 Cross-referencing by name of section + +(C:\Program Files\MiKTeX\tex/latex/refcount\refcount.sty +Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) +) +(C:\Program Files\MiKTeX\tex/generic/gettitlestring\gettitlestring.sty +Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) + +(C:\Program Files\MiKTeX\tex/latex/kvoptions\kvoptions.sty +Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO) +)) +\c@section@level=\count309 +) +(C:\Program Files\MiKTeX\tex/latex/etoolbox\etoolbox.sty +Package: etoolbox 2025/02/11 v2.5l e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count310 +) +(C:\Program Files\MiKTeX\tex/generic/stringenc\stringenc.sty +Package: stringenc 2019/11/29 v1.12 Convert strings between diff. encodings (HO +) +) +\@linkdim=\dimen182 +\Hy@linkcounter=\count311 +\Hy@pagecounter=\count312 + +(C:\Program Files\MiKTeX\tex/latex/hyperref\pd1enc.def +File: pd1enc.def 2025-05-20 v7.01m Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +(C:\Program Files\MiKTeX\tex/generic/intcalc\intcalc.sty +Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) +) +\Hy@SavedSpaceFactor=\count313 + +(C:\Program Files\MiKTeX\tex/latex/hyperref\puenc.def +File: puenc.def 2025-05-20 v7.01m Hyperref: PDF Unicode definition (HO) +Now handling font encoding PU ... +... no UTF-8 mapping file for font encoding PU +) +Package hyperref Info: Option `unicode' set `true' on input line 4040. +Package hyperref Info: Hyper figures OFF on input line 4157. +Package hyperref Info: Link nesting OFF on input line 4162. +Package hyperref Info: Hyper index ON on input line 4165. +Package hyperref Info: Plain pages OFF on input line 4172. +Package hyperref Info: Backreferencing OFF on input line 4177. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4424. +\c@Hy@tempcnt=\count314 + +(C:\Program Files\MiKTeX\tex/latex/url\url.sty +\Urlmuskip=\muskip18 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4763. +\XeTeXLinkMargin=\dimen183 + +(C:\Program Files\MiKTeX\tex/generic/bitset\bitset.sty +Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) + +(C:\Program Files\MiKTeX\tex/generic/bigintcalc\bigintcalc.sty +Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO +) +)) +\Fld@menulength=\count315 +\Field@Width=\dimen184 +\Fld@charsize=\dimen185 +Package hyperref Info: Hyper figures OFF on input line 6042. +Package hyperref Info: Link nesting OFF on input line 6047. +Package hyperref Info: Hyper index ON on input line 6050. +Package hyperref Info: backreferencing OFF on input line 6057. +Package hyperref Info: Link coloring OFF on input line 6062. +Package hyperref Info: Link coloring with OCG OFF on input line 6067. +Package hyperref Info: PDF/A mode OFF on input line 6072. + +(C:\Program Files\MiKTeX\tex/latex/base\atbegshi-ltx.sty +Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi +package with kernel methods +) +\Hy@abspage=\count316 +\c@Item=\count317 +\c@Hfootnote=\count318 +) +Package hyperref Info: Driver (autodetected): hpdftex. + +(C:\Program Files\MiKTeX\tex/latex/hyperref\hpdftex.def +File: hpdftex.def 2025-05-20 v7.01m Hyperref driver for pdfTeX +\Fld@listcount=\count319 +\c@bookmark@seq@number=\count320 + +(C:\Program Files\MiKTeX\tex/latex/rerunfilecheck\rerunfilecheck.sty +Package: rerunfilecheck 2022-07-10 v1.10 Rerun checks for auxiliary files (HO) + +(C:\Program Files\MiKTeX\tex/latex/base\atveryend-ltx.sty +Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend pac +kage +with kernel methods +) +(C:\Program Files\MiKTeX\tex/generic/uniquecounter\uniquecounter.sty +Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +85. +) +\Hy@SectionHShift=\skip54 +) +(C:\Program Files\MiKTeX\tex/latex/enumitem\enumitem.sty +Package: enumitem 2025/02/06 v3.11 Customized lists +\labelindent=\skip55 +\enit@outerparindent=\dimen186 +\enit@toks=\toks27 +\enit@inbox=\box57 +\enit@count@id=\count321 +\enitdp@description=\count322 +) +(C:\Program Files\MiKTeX\tex/latex/l3backend\l3backend-pdftex.def +File: l3backend-pdftex.def 2025-04-14 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count323 +) +(eStopESP32.aux) +\openout1 = `eStopESP32.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 30. +LaTeX Font Info: ... okay on input line 30. +Package babel Info: 'ngerman' activates 'ngerman' shorthands. +(babel) Reported on input line 30. + +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: a4paper +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: +* h-part:(L,W,R)=(89.62709pt, 418.25368pt, 89.6271pt) +* v-part:(T,H,B)=(101.40665pt, 591.5302pt, 152.11pt) +* \paperwidth=597.50787pt +* \paperheight=845.04684pt +* \textwidth=418.25368pt +* \textheight=591.5302pt +* \oddsidemargin=17.3571pt +* \evensidemargin=17.3571pt +* \topmargin=-7.86334pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=50.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +\c@lstlisting=\count324 +(C:\Program Files\MiKTeX\tex/context/base/mkii\supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count325 +\scratchdimen=\dimen187 +\scratchbox=\box58 +\nofMPsegments=\count326 +\nofMParguments=\count327 +\everyMPshowfont=\toks28 +\MPscratchCnt=\count328 +\MPscratchDim=\dimen188 +\MPnumerator=\count329 +\makeMPintoPDFobject=\count330 +\everyMPtoPDFconversion=\toks29 +) +Package hyperref Info: Link coloring OFF on input line 30. + (eStopESP32.out) (eStopESP32.out) +\@outlinefile=\write3 +\openout3 = `eStopESP32.out'. + + +No file eStopESP32.toc. +\tf@toc=\write4 +\openout4 = `eStopESP32.toc'. + + + +[1 + +{C:/Users/kech/AppData/Local/MiKTeX/fonts/map/pdftex/pdftex.map}] +Overfull \hbox (52.44191pt too wide) in paragraph at lines 55--64 + [] + [] + + + +[2] + +[3] +LaTeX Font Info: Font shape `T1/cmtt/bx/n' in size <12> not available +(Font) Font shape `T1/cmtt/m/n' tried instead on input line 198. + (C:\Program Files\MiKTeX\tex/latex/listings\lstlang1.sty +File: lstlang1.sty 2024/09/23 1.10c listings language file +) +(C:\Program Files\MiKTeX\tex/latex/listings\lstmisc.sty +File: lstmisc.sty 2024/09/23 1.10c (Carsten Heinz) +) + +[4] + +[5] (eStopESP32.aux) + *********** +LaTeX2e <2024-11-01> patch level 2 +L3 programming layer <2025-04-29> + *********** + + +Package rerunfilecheck Warning: File `eStopESP32.out' has changed. +(rerunfilecheck) Rerun to get outlines right +(rerunfilecheck) or use package `bookmark'. + +Package rerunfilecheck Info: Checksums for `eStopESP32.out': +(rerunfilecheck) Before: D41D8CD98F00B204E9800998ECF8427E;0 +(rerunfilecheck) After: 64D67ACE6A872D194C01934CCEAACD2A;2987. + ) +Here is how much of TeX's memory you used: + 13330 strings out of 469923 + 201990 string characters out of 5479241 + 876616 words of memory out of 5000000 + 39954 multiletter control sequences out of 15000+600000 + 640366 words of font info for 70 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 75i,7n,79p,259b,1262s stack positions out of 10000i,1000n,20000p,200000b,200000s + +Output written on eStopESP32.pdf (5 pages, 181387 bytes). +PDF statistics: + 526 PDF objects out of 1000 (max. 8388607) + 54 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/EmergencyStopButton/eStopESP32.out b/EmergencyStopButton/eStopESP32.out new file mode 100644 index 0000000..afda682 --- /dev/null +++ b/EmergencyStopButton/eStopESP32.out @@ -0,0 +1,19 @@ +\BOOKMARK [1][-]{section.1}{\376\377\000Z\000i\000e\000l\000\040\000u\000n\000d\000\040\000A\000n\000f\000o\000r\000d\000e\000r\000u\000n\000g\000e\000n}{}% 1 +\BOOKMARK [1][-]{section.2}{\376\377\000A\000r\000c\000h\000i\000t\000e\000k\000t\000u\000r\000e\000n\000t\000s\000c\000h\000e\000i\000d\000u\000n\000g}{}% 2 +\BOOKMARK [2][-]{subsection.2.1}{\376\377\000B\000e\000w\000e\000r\000t\000e\000t\000e\000\040\000O\000p\000t\000i\000o\000n\000e\000n}{section.2}% 3 +\BOOKMARK [2][-]{subsection.2.2}{\376\377\000E\000n\000t\000s\000c\000h\000e\000i\000d\000u\000n\000g\000:\000\040\000W\000i\000F\000i\000\040\000L\000i\000g\000h\000t\000\040\000S\000l\000e\000e\000p}{section.2}% 4 +\BOOKMARK [1][-]{section.3}{\376\377\000W\000i\000F\000i\000\040\000L\000i\000g\000h\000t\000\040\000S\000l\000e\000e\000p\000\040\040\023\000\040\000F\000u\000n\000k\000t\000i\000o\000n\000s\000p\000r\000i\000n\000z\000i\000p}{}% 5 +\BOOKMARK [2][-]{subsection.3.1}{\376\377\000D\000T\000I\000M\000-\000E\000i\000n\000s\000t\000e\000l\000l\000u\000n\000g\000\040\000u\000n\000d\000\040\000S\000t\000r\000o\000m\000v\000e\000r\000b\000r\000a\000u\000c\000h}{section.3}% 6 +\BOOKMARK [2][-]{subsection.3.2}{\376\377\000A\000k\000k\000u\000l\000a\000u\000f\000z\000e\000i\000t\000\040\000\050\0002\0000\0000\0000\000\040\000m\000A\000h\000\040\000L\000i\000P\000o\000\051}{section.3}% 7 +\BOOKMARK [1][-]{section.4}{\376\377\000L\000a\000t\000e\000n\000z\000b\000u\000d\000g\000e\000t}{}% 8 +\BOOKMARK [1][-]{section.5}{\376\377\000H\000a\000r\000d\000w\000a\000r\000e}{}% 9 +\BOOKMARK [2][-]{subsection.5.1}{\376\377\000E\000m\000p\000f\000o\000h\000l\000e\000n\000e\000\040\000B\000o\000a\000r\000d\000s}{section.5}% 10 +\BOOKMARK [2][-]{subsection.5.2}{\376\377\000A\000k\000k\000u\000-\000S\000p\000e\000z\000i\000f\000i\000k\000a\000t\000i\000o\000n}{section.5}% 11 +\BOOKMARK [2][-]{subsection.5.3}{\376\377\000S\000c\000h\000a\000l\000t\000u\000n\000g}{section.5}% 12 +\BOOKMARK [1][-]{section.6}{\376\377\000S\000o\000f\000t\000w\000a\000r\000e}{}% 13 +\BOOKMARK [2][-]{subsection.6.1}{\376\377\000A\000b\000h\000\344\000n\000g\000i\000g\000k\000e\000i\000t\000e\000n\000\040\000\050\000A\000r\000d\000u\000i\000n\000o\000\040\000I\000D\000E\000\051}{section.6}% 14 +\BOOKMARK [2][-]{subsection.6.2}{\376\377\000K\000o\000n\000f\000i\000g\000u\000r\000a\000t\000i\000o\000n\000\040\000i\000n\000\040\000E\000m\000e\000r\000g\000e\000n\000c\000y\000S\000t\000o\000p\000B\000u\000t\000t\000o\000n\000.\000i\000n\000o}{section.6}% 15 +\BOOKMARK [2][-]{subsection.6.3}{\376\377\000A\000b\000l\000a\000u\000f}{section.6}% 16 +\BOOKMARK [2][-]{subsection.6.4}{\376\377\000K\000r\000i\000t\000i\000s\000c\000h\000e\000\040\000A\000P\000I\000-\000F\000u\000n\000k\000t\000i\000o\000n}{section.6}% 17 +\BOOKMARK [1][-]{section.7}{\376\377\000D\000e\000p\000l\000o\000y\000m\000e\000n\000t\000-\000H\000i\000n\000w\000e\000i\000s\000e}{}% 18 +\BOOKMARK [1][-]{section.8}{\376\377\000D\000a\000t\000e\000i\000e\000n}{}% 19 diff --git a/EmergencyStopButton/eStopESP32.pdf b/EmergencyStopButton/eStopESP32.pdf index 9ea87b1..14cec28 100644 Binary files a/EmergencyStopButton/eStopESP32.pdf and b/EmergencyStopButton/eStopESP32.pdf differ diff --git a/EmergencyStopButton/eStopESP32.synctex.gz b/EmergencyStopButton/eStopESP32.synctex.gz new file mode 100644 index 0000000..5248eb5 Binary files /dev/null and b/EmergencyStopButton/eStopESP32.synctex.gz differ diff --git a/EmergencyStopButton/eStopESP32.toc b/EmergencyStopButton/eStopESP32.toc new file mode 100644 index 0000000..f2cc2c5 --- /dev/null +++ b/EmergencyStopButton/eStopESP32.toc @@ -0,0 +1,20 @@ +\babel@toc {ngerman}{}\relax +\contentsline {section}{\numberline {1}Ziel und Anforderungen}{2}{section.1}% +\contentsline {section}{\numberline {2}Architekturentscheidung}{2}{section.2}% +\contentsline {subsection}{\numberline {2.1}Bewertete Optionen}{2}{subsection.2.1}% +\contentsline {subsection}{\numberline {2.2}Entscheidung: WiFi Light Sleep}{2}{subsection.2.2}% +\contentsline {section}{\numberline {3}WiFi Light Sleep -- Funktionsprinzip}{2}{section.3}% +\contentsline {subsection}{\numberline {3.1}DTIM-Einstellung und Stromverbrauch}{3}{subsection.3.1}% +\contentsline {subsection}{\numberline {3.2}Akkulaufzeit (2000 mAh LiPo)}{3}{subsection.3.2}% +\contentsline {section}{\numberline {4}Latenzbudget}{3}{section.4}% +\contentsline {section}{\numberline {5}Hardware}{3}{section.5}% +\contentsline {subsection}{\numberline {5.1}Empfohlene Boards}{3}{subsection.5.1}% +\contentsline {subsection}{\numberline {5.2}Akku-Spezifikation}{3}{subsection.5.2}% +\contentsline {subsection}{\numberline {5.3}Schaltung}{4}{subsection.5.3}% +\contentsline {section}{\numberline {6}Software}{4}{section.6}% +\contentsline {subsection}{\numberline {6.1}Abhängigkeiten (Arduino IDE)}{4}{subsection.6.1}% +\contentsline {subsection}{\numberline {6.2}Konfiguration in \texttt {EmergencyStopButton.ino}}{4}{subsection.6.2}% +\contentsline {subsection}{\numberline {6.3}Ablauf}{4}{subsection.6.3}% +\contentsline {subsection}{\numberline {6.4}Kritische API-Funktion}{5}{subsection.6.4}% +\contentsline {section}{\numberline {7}Deployment-Hinweise}{5}{section.7}% +\contentsline {section}{\numberline {8}Dateien}{5}{section.8}% diff --git a/doc/Info_G92.md b/doc/Info_G92.md new file mode 100644 index 0000000..c21bca9 --- /dev/null +++ b/doc/Info_G92.md @@ -0,0 +1,115 @@ +# G92 - Homing + +die appRobotHoming ermittelt die Position der Gelenke (per Foto oder sonstigen Infos). + +Diese werden wie folgt behandelt und umgerechnet. + +--- + +## Befehlsformat + +``` +G92 X Y<°> Z<°> A<°> B<°> C<°> E +``` + +| Achse | Bedeutung | Einheit | +|-------|-----------------------------------|---------| +| X | Lineare Schiene (xMotor) | mm | +| Y | Schulterwinkel α (alpha) | Grad | +| Z | Ellenbogenwinkel β (beta) | Grad | +| A | Handgelenk 1 (a) | Grad | +| B | Handgelenk 2 (b) | Grad | +| C | Handgelenk 3 (c) | Grad | +| E | Greifer-Öffnung (ein Finger) | mm | + +**Beispiel (tatsächlicher Homing-Aufruf):** + +``` +G92 X158.14 Y4.19 Z57.74 A91.85 B-45.46 C-69.92 E21.20 +``` + +→ Y = 4,19°, Z = 57,74° usw. — alle Winkel direkt in Grad wie in FluidNC/GCode-Konvention. + +--- + +## Interne Verarbeitung (`RobotController.js`) + +Winkel-Achsen werden von Grad nach Radiant umgerechnet (D = 180/π): + +``` +robot.alpha = Y / D (intern: Radiant) +robot.beta = Z / D +robot.a = A / D +robot.b = B / D +robot.c = C / D +``` + +X bleibt mm, keine Umrechnung. + +**Greifer E** wird **nach** B und C gesetzt, damit die kinematische Kopplung stimmt: + +``` +robot.e = E (Finger-Öffnung, mm) +robot.eMotor = gripperMotorFromOpening(e) (abgeleiteter Motorwert) +``` + +Bei `Arm3SegmentLinearX`: `eMotor = e − b − c` (Sehnenkompensation durch Handgelenk). +Bei `Arm3SegmentRotaryBase`: `eMotor = e` (keine Kopplung). + +--- + +## Variante M92 (intern / Test) + +``` +M92 X Y Z A B C E +``` + +Winkel werden **roh als Radiant** übernommen. Für Skripte und Tests, nicht für Homing aus appRobotHoming. + +--- + +## Weiterleitung an FluidNC-Instanzen + +Nach dem Setzen der internen Motorslots ruft `robot.sendCommand('G92')` auf jedem registrierten `TelnetSenderGRBL` `execCommand('G92', mOld, mNew)` auf. + +Jede Instanz bekommt ihren eigenen `G92`-Befehl mit den Port-Inverse-Achswerten (Rückumrechnung Radiant → Grad, mit Kopplung): + +| Instanz | FluidNC-Achsen | Formel | +|---------|----------------------------|-----------------------------------------------------------| +| base | x = xMotor | direkt mm | +| | y = α → Grad | `alpha × D` | +| | z = β−α → Grad | `(beta − alpha) × D` | +| elbow | x = a → Grad | `a × D` | +| hand | x = c−b → Grad | `(c − b) × D` | +| | y = eMotor | direkt (mm oder gekoppelter Motorwert) | +| | z = b → Grad | `b × D` | + +`G92` bekommt **kein** `G90`-Prefix und keinen Vorschub — nur die geänderten Achsen werden angehängt. Jede Instanz übernimmt den Werkstück-Koordinaten-Offset (WPos) ohne Bewegung. + +**Hinweis:** Nur Achsen mit gesetztem `*MotorChanged`-Flag werden gesendet. Bleibt ein Wert gegenüber dem letzten Driver-Zustand unverändert, schickt die jeweilige Instanz keinen G92 für diese Achse. Nach einem Neustart des Drivers sind alle Flags gesetzt → alle Achsen werden gesendet. + +--- + +## Reporting (`M114` / Web-UI) + +| Feld | Quelle | Einheit | Anzeige in public/app.js | +|--------------------|----------------|---------|------------------------------------------| +| `position.x/y/z` | Workspace | mm | direkt | +| `position.a/b/c` | phi/theta/psi | rad | `× 180/π` → Grad | +| `position.e` | `robot.e` | mm | direkt (Greifer-Öffnung) | +| `motorCounts.x` | xMotor | mm | direkt | +| `motorCounts.y/z` | alpha/beta | rad | `× 180/π` → Grad | +| `motorCounts.a/b/c`| a/b/c | rad | `× 180/π` → Grad | +| `motorCounts.e` | `robot.eMotor` | mm | direkt (abgeleiteter Motorwert) | + +--- + +## Behobene Fehler (Kontext) + +**Ursprüngliches Problem:** `G92 X158.14 Y4.19 Z57.74 …` lieferte korrekte X-Werte, aber Y≈240 und Z≈3308 im Ergebnis. Ursache: Winkel wurden als Radiant interpretiert, intern aber mit `× D` auf Grad umgerechnet — doppelte Skalierung. + +**Drei Korrekturen:** + +1. **Grad-Interpretation:** G92 rechnet Eingabe-Winkel jetzt mit `÷ D` in Radiant um (statt roh zu übernehmen). +2. **Greifer-Motorwert:** `robot.e` (Öffnung) wurde gesetzt, aber `sendCommand()` überträgt `robot.eMotor`. Fix: `eMotor = gripperMotorFromOpening(e)` direkt im G92-Zweig, nach dem Setzen von B/C. +3. **Web-UI-Anzeige:** `state-e` zeigte `motorCounts.e × 180/π` (mm × 57,3 = Unsinn). Fix: zeigt jetzt `position.e` (mm direkt).