diff --git a/.idea/.name b/.idea/.name
index 8b8600c8de212b51ff89368a03d4a23c8461d5bb..e3612db561986620a2f96b7ede6acdc269e32011 100644
--- a/.idea/.name
+++ b/.idea/.name
@@ -1 +1 @@
-SkywardBoardcore
\ No newline at end of file
+SkywardBoardcore
diff --git a/.idea/cmake.xml b/.idea/cmake.xml
index 5d5b5fdd2e5e9612ba5fa919fce8a975a1b38c98..e7d1117d2b21bbf39c6a4c4de712a7e81dfe36af 100644
--- a/.idea/cmake.xml
+++ b/.idea/cmake.xml
@@ -6,4 +6,4 @@
       <configuration PROFILE_NAME="Release" ENABLED="true" CONFIG_NAME="Release" GENERATION_OPTIONS="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_TOOLCHAIN_FILE=$CMakeProjectDir$/libs/miosix-kernel/miosix/_tools/toolchain.cmake -GNinja" />
     </configurations>
   </component>
-</project>
\ No newline at end of file
+</project>
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index f60388162da12687d06684c5b3169c150d038e11..c8f84c3534495485e6264ba5b723b469a07d689c 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -4,4 +4,4 @@
       <option name="ENABLED" value="true" />
     </clangFormatSettings>
   </code_scheme>
-</component>
\ No newline at end of file
+</component>
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
index 79ee123c2b23e069e35ed634d687e17f731cc702..0f7bc519db610a2e6290d61d592e9fdac90c8cde 100644
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -2,4 +2,4 @@
   <state>
     <option name="USE_PER_PROJECT_SETTINGS" value="true" />
   </state>
-</component>
\ No newline at end of file
+</component>
diff --git a/.idea/misc.xml b/.idea/misc.xml
index a1003e81b2b1c6493aeeef4020bbf6bb3570d713..48114834858e9d1f2cdb249f0bd14a39f6d05a29 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -10,4 +10,4 @@
       <file path="$PROJECT_DIR$/libs" />
     </excludeRoots>
   </component>
-</project>
\ No newline at end of file
+</project>
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 7abcdb923220cb8b9bf28a8807526e6345462f96..661190e704ce2747abc8820df2bacd7e2a5498f3 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -5,4 +5,4 @@
       <module fileurl="file://$PROJECT_DIR$/.idea/skyward-boardcore.iml" filepath="$PROJECT_DIR$/.idea/skyward-boardcore.iml" />
     </modules>
   </component>
-</project>
\ No newline at end of file
+</project>
diff --git a/.idea/skyward-boardcore.iml b/.idea/skyward-boardcore.iml
index f08604bb65b25149b195f9e9f282f9683a428592..8afe22e01d18c67c07eeaae0128209012f347937 100644
--- a/.idea/skyward-boardcore.iml
+++ b/.idea/skyward-boardcore.iml
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<module classpath="CMake" type="CPP_MODULE" version="4" />
\ No newline at end of file
+<module classpath="CMake" type="CPP_MODULE" version="4" />
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index ebf68164c7e5d316b07b4ce158a4383e66f91fda..da9f74d6e37609a3bb73e3560e44e2beec899c96 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -11,4 +11,4 @@
     <mapping directory="$PROJECT_DIR$/libs/mxgui" vcs="Git" />
     <mapping directory="$PROJECT_DIR$/libs/tscpp" vcs="Git" />
   </component>
-</project>
\ No newline at end of file
+</project>
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 3e9272fde8f6474f08b9803f2c3e3cf547050d0f..f6dd88a2243d5f8ed189a89979fe54ac4128d51f 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -30,4 +30,4 @@
             ]
         }
     ]
-}
\ No newline at end of file
+}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 580e8f8c308b006c74b0e1b59881045fd1d1634f..b271a32759147865b074adbb74e07da7b3fdb328 100755
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -142,4 +142,4 @@
       "problemMatcher": []
     }
   ]
-}
\ No newline at end of file
+}
diff --git a/.ycm_extra_conf.py b/.ycm_extra_conf.py
index ec8b4984d562776585652543cecae42e177f0bbb..9eabda96dee441fe38a2a120fc557300af4cbd0c 100644
--- a/.ycm_extra_conf.py
+++ b/.ycm_extra_conf.py
@@ -161,4 +161,3 @@ def FlagsForFile( filename, **kwargs ):
     'flags': final_flags,
     'do_cache': True
   }
-
diff --git a/data/gdb/stm32f4-stlinv2.cfg b/data/gdb/stm32f4-stlinv2.cfg
index 4d4718023ed13220fa7b779294ca87824d2bd0f8..dae3992fe332fc448d931bfd42127b07aaf699b2 100644
--- a/data/gdb/stm32f4-stlinv2.cfg
+++ b/data/gdb/stm32f4-stlinv2.cfg
@@ -6,4 +6,4 @@ source [find interface/stlink-v2-1.cfg]
 source [find target/stm32f4x.cfg]
 
 # use hardware reset, connect under reset
-reset_config srst_only srst_nogate
\ No newline at end of file
+reset_config srst_only srst_nogate
diff --git a/doc/Doxyfile b/doc/Doxyfile
index 95b6e33eb2a65cfc886080c87cc6a8857811497e..22fa2cf1651e5958dd0cc1bea9af113e7bfaf484 100644
--- a/doc/Doxyfile
+++ b/doc/Doxyfile
@@ -38,20 +38,20 @@ PROJECT_NAME           = "Skyward boardcore"
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 
+PROJECT_NUMBER         =
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
 # quick idea about the purpose of the project. Keep the description short.
 
-PROJECT_BRIEF          = 
+PROJECT_BRIEF          =
 
 # With the PROJECT_LOGO tag one can specify a logo or an icon that is included
 # in the documentation. The maximum height of the logo should not exceed 55
 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
 # the logo to the output directory.
 
-PROJECT_LOGO           = 
+PROJECT_LOGO           =
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
 # into which the generated documentation will be written. If a relative path is
@@ -162,7 +162,7 @@ FULL_PATH_NAMES        = YES
 # will be relative from the directory where doxygen is started.
 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
 
-STRIP_FROM_PATH        = 
+STRIP_FROM_PATH        =
 
 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
 # path mentioned in the documentation of a class, which tells the reader which
@@ -171,7 +171,7 @@ STRIP_FROM_PATH        =
 # specify the list of include paths that are normally passed to the compiler
 # using the -I flag.
 
-STRIP_FROM_INC_PATH    = 
+STRIP_FROM_INC_PATH    =
 
 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
 # less readable) file names. This can be useful is your file systems doesn't
@@ -238,13 +238,13 @@ TAB_SIZE               = 4
 # "Side Effects:". You can put \n's in the value part of an alias to insert
 # newlines.
 
-ALIASES                = 
+ALIASES                =
 
 # This tag can be used to specify a number of word-keyword mappings (TCL only).
 # A mapping has the form "name=value". For example adding "class=itcl::class"
 # will allow you to use the command class in the itcl::class meaning.
 
-TCL_SUBST              = 
+TCL_SUBST              =
 
 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
 # only. Doxygen will then generate output that is more tailored for C. For
@@ -291,7 +291,7 @@ OPTIMIZE_OUTPUT_VHDL   = NO
 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
 # the files are not read by doxygen.
 
-EXTENSION_MAPPING      = 
+EXTENSION_MAPPING      =
 
 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
 # according to the Markdown format, which allows for more readable
@@ -648,7 +648,7 @@ GENERATE_DEPRECATEDLIST= YES
 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
 # ... \endcond blocks.
 
-ENABLED_SECTIONS       = 
+ENABLED_SECTIONS       =
 
 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
 # initial value of a variable or macro / define can have for it to appear in the
@@ -690,7 +690,7 @@ SHOW_NAMESPACES        = YES
 # by doxygen. Whatever the program writes to standard output is used as the file
 # version. For an example see the documentation.
 
-FILE_VERSION_FILTER    = 
+FILE_VERSION_FILTER    =
 
 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
 # by doxygen. The layout file controls the global structure of the generated
@@ -703,7 +703,7 @@ FILE_VERSION_FILTER    =
 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
 # tag is left empty.
 
-LAYOUT_FILE            = 
+LAYOUT_FILE            =
 
 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
 # the reference definitions. This must be a list of .bib files. The .bib
@@ -713,7 +713,7 @@ LAYOUT_FILE            =
 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
 # search path. See also \cite for info how to create references.
 
-CITE_BIB_FILES         = 
+CITE_BIB_FILES         =
 
 #---------------------------------------------------------------------------
 # Configuration options related to warning and progress messages
@@ -778,7 +778,7 @@ WARN_FORMAT            = "$file:$line: $text"
 # messages should be written. If left blank the output is written to standard
 # error (stderr).
 
-WARN_LOGFILE           = 
+WARN_LOGFILE           =
 
 #---------------------------------------------------------------------------
 # Configuration options related to the input files
@@ -889,7 +889,7 @@ EXCLUDE_SYMLINKS       = NO
 # Note that the wildcards are matched against the file with absolute path, so to
 # exclude all test directories for example use the pattern */test/*
 
-EXCLUDE_PATTERNS       = 
+EXCLUDE_PATTERNS       =
 
 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
 # (namespaces, classes, functions, etc.) that should be excluded from the
@@ -900,13 +900,13 @@ EXCLUDE_PATTERNS       =
 # Note that the wildcards are matched against the file with absolute path, so to
 # exclude all test directories use the pattern */test/*
 
-EXCLUDE_SYMBOLS        = 
+EXCLUDE_SYMBOLS        =
 
 # The EXAMPLE_PATH tag can be used to specify one or more files or directories
 # that contain example code fragments that are included (see the \include
 # command).
 
-EXAMPLE_PATH           = 
+EXAMPLE_PATH           =
 
 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
@@ -926,7 +926,7 @@ EXAMPLE_RECURSIVE      = NO
 # that contain images that are to be included in the documentation (see the
 # \image command).
 
-IMAGE_PATH             = 
+IMAGE_PATH             =
 
 # The INPUT_FILTER tag can be used to specify a program that doxygen should
 # invoke to filter for each input file. Doxygen will invoke the filter program
@@ -947,7 +947,7 @@ IMAGE_PATH             =
 # need to set EXTENSION_MAPPING for the extension otherwise the files are not
 # properly processed by doxygen.
 
-INPUT_FILTER           = 
+INPUT_FILTER           =
 
 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
 # basis. Doxygen will compare the file name with each pattern and apply the
@@ -960,7 +960,7 @@ INPUT_FILTER           =
 # need to set EXTENSION_MAPPING for the extension otherwise the files are not
 # properly processed by doxygen.
 
-FILTER_PATTERNS        = 
+FILTER_PATTERNS        =
 
 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
 # INPUT_FILTER) will also be used to filter the input files that are used for
@@ -975,14 +975,14 @@ FILTER_SOURCE_FILES    = NO
 # *.ext= (so without naming a filter).
 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
 
-FILTER_SOURCE_PATTERNS = 
+FILTER_SOURCE_PATTERNS =
 
 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
 # is part of the input, its contents will be placed on the main page
 # (index.html). This can be useful if you have a project on for instance GitHub
 # and want to reuse the introduction page also for the doxygen output.
 
-USE_MDFILE_AS_MAINPAGE = 
+USE_MDFILE_AS_MAINPAGE =
 
 #---------------------------------------------------------------------------
 # Configuration options related to source browsing
@@ -1087,7 +1087,7 @@ CLANG_ASSISTED_PARSING = NO
 # specified with INPUT and INCLUDE_PATH.
 # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
 
-CLANG_OPTIONS          = 
+CLANG_OPTIONS          =
 
 #---------------------------------------------------------------------------
 # Configuration options related to the alphabetical class index
@@ -1113,7 +1113,7 @@ COLS_IN_ALPHA_INDEX    = 5
 # while generating the index headers.
 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
 
-IGNORE_PREFIX          = 
+IGNORE_PREFIX          =
 
 #---------------------------------------------------------------------------
 # Configuration options related to the HTML output
@@ -1157,7 +1157,7 @@ HTML_FILE_EXTENSION    = .html
 # of the possible markers and block names see the documentation.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_HEADER            = 
+HTML_HEADER            =
 
 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
 # generated HTML page. If the tag is left blank doxygen will generate a standard
@@ -1167,7 +1167,7 @@ HTML_HEADER            =
 # that doxygen normally uses.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_FOOTER            = 
+HTML_FOOTER            =
 
 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
 # sheet that is used by each HTML page. It can be used to fine-tune the look of
@@ -1179,7 +1179,7 @@ HTML_FOOTER            =
 # obsolete.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_STYLESHEET        = 
+HTML_STYLESHEET        =
 
 # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
 # cascading style sheets that are included after the standard style sheets
@@ -1192,7 +1192,7 @@ HTML_STYLESHEET        =
 # list). For an example see the documentation.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_EXTRA_STYLESHEET  = 
+HTML_EXTRA_STYLESHEET  =
 
 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
 # other source files which should be copied to the HTML output directory. Note
@@ -1202,7 +1202,7 @@ HTML_EXTRA_STYLESHEET  =
 # files will be copied as-is; there are no commands or markers available.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_EXTRA_FILES       = 
+HTML_EXTRA_FILES       =
 
 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
 # will adjust the colors in the style sheet and background images according to
@@ -1331,7 +1331,7 @@ GENERATE_HTMLHELP      = NO
 # written to the html output directory.
 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
-CHM_FILE               = 
+CHM_FILE               =
 
 # The HHC_LOCATION tag can be used to specify the location (absolute path
 # including file name) of the HTML help compiler (hhc.exe). If non-empty,
@@ -1339,7 +1339,7 @@ CHM_FILE               =
 # The file has to be specified with full path.
 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
-HHC_LOCATION           = 
+HHC_LOCATION           =
 
 # The GENERATE_CHI flag controls if a separate .chi index file is generated
 # (YES) or that it should be included in the master .chm file (NO).
@@ -1352,7 +1352,7 @@ GENERATE_CHI           = NO
 # and project file content.
 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
-CHM_INDEX_ENCODING     = 
+CHM_INDEX_ENCODING     =
 
 # The BINARY_TOC flag controls whether a binary table of contents is generated
 # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
@@ -1383,7 +1383,7 @@ GENERATE_QHP           = NO
 # the HTML output folder.
 # This tag requires that the tag GENERATE_QHP is set to YES.
 
-QCH_FILE               = 
+QCH_FILE               =
 
 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
 # Project output. For more information please see Qt Help Project / Namespace
@@ -1408,7 +1408,7 @@ QHP_VIRTUAL_FOLDER     = doc
 # filters).
 # This tag requires that the tag GENERATE_QHP is set to YES.
 
-QHP_CUST_FILTER_NAME   = 
+QHP_CUST_FILTER_NAME   =
 
 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
 # custom filter to add. For more information please see Qt Help Project / Custom
@@ -1416,21 +1416,21 @@ QHP_CUST_FILTER_NAME   =
 # filters).
 # This tag requires that the tag GENERATE_QHP is set to YES.
 
-QHP_CUST_FILTER_ATTRS  = 
+QHP_CUST_FILTER_ATTRS  =
 
 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
 # project's filter section matches. Qt Help Project / Filter Attributes (see:
 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
 # This tag requires that the tag GENERATE_QHP is set to YES.
 
-QHP_SECT_FILTER_ATTRS  = 
+QHP_SECT_FILTER_ATTRS  =
 
 # The QHG_LOCATION tag can be used to specify the location of Qt's
 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
 # generated .qhp file.
 # This tag requires that the tag GENERATE_QHP is set to YES.
 
-QHG_LOCATION           = 
+QHG_LOCATION           =
 
 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
 # generated, together with the HTML files, they form an Eclipse help plugin. To
@@ -1563,7 +1563,7 @@ MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
 # This tag requires that the tag USE_MATHJAX is set to YES.
 
-MATHJAX_EXTENSIONS     = 
+MATHJAX_EXTENSIONS     =
 
 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
 # of code that will be used on startup of the MathJax code. See the MathJax site
@@ -1571,7 +1571,7 @@ MATHJAX_EXTENSIONS     =
 # example see the documentation.
 # This tag requires that the tag USE_MATHJAX is set to YES.
 
-MATHJAX_CODEFILE       = 
+MATHJAX_CODEFILE       =
 
 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
 # the HTML output. The underlying search engine uses javascript and DHTML and
@@ -1631,7 +1631,7 @@ EXTERNAL_SEARCH        = NO
 # Searching" for details.
 # This tag requires that the tag SEARCHENGINE is set to YES.
 
-SEARCHENGINE_URL       = 
+SEARCHENGINE_URL       =
 
 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
 # search data is written to a file for indexing by an external tool. With the
@@ -1647,7 +1647,7 @@ SEARCHDATA_FILE        = searchdata.xml
 # projects and redirect the results back to the right project.
 # This tag requires that the tag SEARCHENGINE is set to YES.
 
-EXTERNAL_SEARCH_ID     = 
+EXTERNAL_SEARCH_ID     =
 
 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
 # projects other than the one defined by this configuration file, but that are
@@ -1657,7 +1657,7 @@ EXTERNAL_SEARCH_ID     =
 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
 # This tag requires that the tag SEARCHENGINE is set to YES.
 
-EXTRA_SEARCH_MAPPINGS  = 
+EXTRA_SEARCH_MAPPINGS  =
 
 #---------------------------------------------------------------------------
 # Configuration options related to the LaTeX output
@@ -1721,7 +1721,7 @@ PAPER_TYPE             = a4
 # If left blank no extra packages will be included.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
-EXTRA_PACKAGES         = 
+EXTRA_PACKAGES         =
 
 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
 # generated LaTeX document. The header should contain everything until the first
@@ -1737,7 +1737,7 @@ EXTRA_PACKAGES         =
 # to HTML_HEADER.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
-LATEX_HEADER           = 
+LATEX_HEADER           =
 
 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
 # generated LaTeX document. The footer should contain everything after the last
@@ -1748,7 +1748,7 @@ LATEX_HEADER           =
 # Note: Only use a user-defined footer if you know what you are doing!
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
-LATEX_FOOTER           = 
+LATEX_FOOTER           =
 
 # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
 # LaTeX style sheets that are included after the standard style sheets created
@@ -1759,7 +1759,7 @@ LATEX_FOOTER           =
 # list).
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
-LATEX_EXTRA_STYLESHEET = 
+LATEX_EXTRA_STYLESHEET =
 
 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
 # other source files which should be copied to the LATEX_OUTPUT output
@@ -1767,7 +1767,7 @@ LATEX_EXTRA_STYLESHEET =
 # markers available.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
-LATEX_EXTRA_FILES      = 
+LATEX_EXTRA_FILES      =
 
 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
@@ -1875,14 +1875,14 @@ RTF_HYPERLINKS         = NO
 # default style sheet that doxygen normally uses.
 # This tag requires that the tag GENERATE_RTF is set to YES.
 
-RTF_STYLESHEET_FILE    = 
+RTF_STYLESHEET_FILE    =
 
 # Set optional variables used in the generation of an RTF document. Syntax is
 # similar to doxygen's config file. A template extensions file can be generated
 # using doxygen -e rtf extensionFile.
 # This tag requires that the tag GENERATE_RTF is set to YES.
 
-RTF_EXTENSIONS_FILE    = 
+RTF_EXTENSIONS_FILE    =
 
 # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
 # with syntax highlighting in the RTF output.
@@ -1927,7 +1927,7 @@ MAN_EXTENSION          = .3
 # MAN_EXTENSION with the initial . removed.
 # This tag requires that the tag GENERATE_MAN is set to YES.
 
-MAN_SUBDIR             = 
+MAN_SUBDIR             =
 
 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
 # will generate one additional man file for each entity documented in the real
@@ -2040,7 +2040,7 @@ PERLMOD_PRETTY         = YES
 # overwrite each other's variables.
 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
 
-PERLMOD_MAKEVAR_PREFIX = 
+PERLMOD_MAKEVAR_PREFIX =
 
 #---------------------------------------------------------------------------
 # Configuration options related to the preprocessor
@@ -2081,7 +2081,7 @@ SEARCH_INCLUDES        = YES
 # preprocessor.
 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
 
-INCLUDE_PATH           = 
+INCLUDE_PATH           =
 
 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
 # patterns (like *.h and *.hpp) to filter out the header-files in the
@@ -2089,7 +2089,7 @@ INCLUDE_PATH           =
 # used.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
-INCLUDE_FILE_PATTERNS  = 
+INCLUDE_FILE_PATTERNS  =
 
 # The PREDEFINED tag can be used to specify one or more macro names that are
 # defined before the preprocessor is started (similar to the -D option of e.g.
@@ -2099,7 +2099,7 @@ INCLUDE_FILE_PATTERNS  =
 # recursively expanded use the := operator instead of the = operator.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
-PREDEFINED             = 
+PREDEFINED             =
 
 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
 # tag can be used to specify a list of macro names that should be expanded. The
@@ -2108,7 +2108,7 @@ PREDEFINED             =
 # definition found in the source code.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
-EXPAND_AS_DEFINED      = 
+EXPAND_AS_DEFINED      =
 
 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
 # remove all references to function-like macros that are alone on a line, have
@@ -2137,13 +2137,13 @@ SKIP_FUNCTION_MACROS   = YES
 # the path). If a tag file is not located in the directory in which doxygen is
 # run, you must also specify the path to the tagfile here.
 
-TAGFILES               = 
+TAGFILES               =
 
 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
 # tag file that is based on the input files it reads. See section "Linking to
 # external documentation" for more information about the usage of tag files.
 
-GENERATE_TAGFILE       = 
+GENERATE_TAGFILE       =
 
 # If the ALLEXTERNALS tag is set to YES, all external class will be listed in
 # the class index. If set to NO, only the inherited external classes will be
@@ -2192,14 +2192,14 @@ CLASS_DIAGRAMS         = YES
 # the mscgen tool resides. If left empty the tool is assumed to be found in the
 # default search path.
 
-MSCGEN_PATH            = 
+MSCGEN_PATH            =
 
 # You can include diagrams made with dia in doxygen documentation. Doxygen will
 # then run dia to produce the diagram and insert it in the documentation. The
 # DIA_PATH tag allows you to specify the directory where the dia binary resides.
 # If left empty dia is assumed to be found in the default search path.
 
-DIA_PATH               = 
+DIA_PATH               =
 
 # If set to YES the inheritance and collaboration graphs will hide inheritance
 # and usage relations if the target is undocumented or is not a class.
@@ -2248,7 +2248,7 @@ DOT_FONTSIZE           = 10
 # the path where dot can find it using this tag.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-DOT_FONTPATH           = 
+DOT_FONTPATH           =
 
 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
 # each documented class showing the direct and indirect inheritance relations.
@@ -2394,26 +2394,26 @@ INTERACTIVE_SVG        = NO
 # found. If left blank, it is assumed the dot tool can be found in the path.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-DOT_PATH               = 
+DOT_PATH               =
 
 # The DOTFILE_DIRS tag can be used to specify one or more directories that
 # contain dot files that are included in the documentation (see the \dotfile
 # command).
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-DOTFILE_DIRS           = 
+DOTFILE_DIRS           =
 
 # The MSCFILE_DIRS tag can be used to specify one or more directories that
 # contain msc files that are included in the documentation (see the \mscfile
 # command).
 
-MSCFILE_DIRS           = 
+MSCFILE_DIRS           =
 
 # The DIAFILE_DIRS tag can be used to specify one or more directories that
 # contain dia files that are included in the documentation (see the \diafile
 # command).
 
-DIAFILE_DIRS           = 
+DIAFILE_DIRS           =
 
 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
 # path where java can find the plantuml.jar file. If left blank, it is assumed
@@ -2421,17 +2421,17 @@ DIAFILE_DIRS           =
 # generate a warning when it encounters a \startuml command in this case and
 # will not generate output for the diagram.
 
-PLANTUML_JAR_PATH      = 
+PLANTUML_JAR_PATH      =
 
 # When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
 # configuration file for plantuml.
 
-PLANTUML_CFG_FILE      = 
+PLANTUML_CFG_FILE      =
 
 # When using plantuml, the specified paths are searched for files specified by
 # the !include statement in a plantuml block.
 
-PLANTUML_INCLUDE_PATH  = 
+PLANTUML_INCLUDE_PATH  =
 
 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
 # that will be shown in the graph. If the number of nodes in a graph becomes
diff --git a/old_examples/entrypoints/example-fsm.cpp b/old_examples/entrypoints/example-fsm.cpp
index ee3dc721183079a183aae9e6a8ed50ad933152e4..a6da004e7fa33874bc697856dbfe7bf84f1f5c1c 100644
--- a/old_examples/entrypoints/example-fsm.cpp
+++ b/old_examples/entrypoints/example-fsm.cpp
@@ -68,4 +68,4 @@ int main()
     // correctness ;)
     fsm.stop();
     sEventBroker->stop();
-}
\ No newline at end of file
+}
diff --git a/old_examples/shared/drivers/ethernet/W5200/w5200_defs.h b/old_examples/shared/drivers/ethernet/W5200/w5200_defs.h
index 27903925ca778118e06084b4d32d165e9526e140..32f38f6845e66933a177dcaf07db7ab350e1bfba 100644
--- a/old_examples/shared/drivers/ethernet/W5200/w5200_defs.h
+++ b/old_examples/shared/drivers/ethernet/W5200/w5200_defs.h
@@ -92,22 +92,22 @@ enum eW5200SockNRegisters
     SOCKn_DIPR0      = SR_BASE + 0x000C, // Destination IP address register
     SOCKn_DPORT0     = SR_BASE + 0x0010, // Destination port register
     SOCKn_IMR        = SR_BASE + 0x002C, // Interrupt mask register
-    
+
     SOCKn_MSSR0      = SR_BASE + 0x0012, // MSS in TCP mode
-    
+
     SOCKn_PROTO      = SR_BASE + 0x0014, // Protocol number in IPRAW mode
-    
+
     SOCKn_TOS        = SR_BASE + 0x0015, // IP header ToS field value
     SOCKn_TTL        = SR_BASE + 0x0016, // IP header TTL field value
-    SOCKn_FRAG0      = SR_BASE + 0x002D, // IP header Fragment field value 
-    
+    SOCKn_FRAG0      = SR_BASE + 0x002D, // IP header Fragment field value
+
     SOCKn_RXMEM_SIZE = SR_BASE + 0x001E, // RX buffer size register
     SOCKn_TXMEM_SIZE = SR_BASE + 0x001F, // TX buffer size register
-    
+
     SOCKn_TX_FSR0    = SR_BASE + 0x0020, // TX buffer free size register
     SOCKn_TX_RD0     = SR_BASE + 0x0022, // TX buffer read pointer address
     SOCKn_TX_WR0     = SR_BASE + 0x0024, // TX buffer write pointer address
-    
+
     SOCKn_RX_RSR0    = SR_BASE + 0x0026, // Received data size register
     SOCKn_RX_RD0     = SR_BASE + 0x0028, // RX buffer read pointer address
     SOCKn_RX_WR0     = SR_BASE + 0x002A, // RX buffer write pointer address
diff --git a/old_examples/shared/drivers/interrupt/InterruptManager.cpp b/old_examples/shared/drivers/interrupt/InterruptManager.cpp
index 14cd95050ec981733e5ac529046d0059ccd5f81b..5b15d7ccf5ba0cf6a36d2659755ce92c7ca04e29 100644
--- a/old_examples/shared/drivers/interrupt/InterruptManager.cpp
+++ b/old_examples/shared/drivers/interrupt/InterruptManager.cpp
@@ -204,4 +204,4 @@ void __attribute__((used)) EXTI15_10_IRQHandlerImpl()
             false)
     {
     }
-}
\ No newline at end of file
+}
diff --git a/old_examples/shared/drivers/piksi/piksi_data.h b/old_examples/shared/drivers/piksi/piksi_data.h
index a619a061b4ee97d614b6e75781da1062a38b6a13..66af60cdc24cf6a42d903ff7b17a56b815fb6cd8 100644
--- a/old_examples/shared/drivers/piksi/piksi_data.h
+++ b/old_examples/shared/drivers/piksi/piksi_data.h
@@ -39,4 +39,4 @@ struct PiksiGPSData
     float velocityDown;   ///< [m/s]
     float speed;          ///< [m/s]
     int numSatellites;    ///< [1]
-};
\ No newline at end of file
+};
diff --git a/old_examples/shared/sensors/ADIS16405/ADIS16405.h b/old_examples/shared/sensors/ADIS16405/ADIS16405.h
index 9dc3345591bc02e08e1fbf2811cc7203fd1d878f..3732b4ffd555029ac488e9d7e0af7f52e743dc77 100644
--- a/old_examples/shared/sensors/ADIS16405/ADIS16405.h
+++ b/old_examples/shared/sensors/ADIS16405/ADIS16405.h
@@ -41,8 +41,8 @@ public:
     std::vector<SPIRequest> buildDMARequest() override
     {
         // clang-format off
-        std::vector<uint8_t> v = 
-        { 
+        std::vector<uint8_t> v =
+        {
             ADIS_GLOB_CMD, 0, // System command
             0,0,  //  Power supply measurement
             0,0,  //  X-axis gyroscope output
diff --git a/old_examples/shared/sensors/FXAS21002.h b/old_examples/shared/sensors/FXAS21002.h
index f682d399f1b063f7276b75801303933bf720d01b..6eddc14cf97123848f31e1e5f67aaa2189fe4b6d 100644
--- a/old_examples/shared/sensors/FXAS21002.h
+++ b/old_examples/shared/sensors/FXAS21002.h
@@ -220,17 +220,17 @@ public:
         DR_100HZ  = 3,
         DR_50HZ   = 4,
         DR_25HZ   = 5,
-        DR_12_5HZ = 6            
+        DR_12_5HZ = 6
     };
-    
-    enum opModes 
+
+    enum opModes
     {
         STANDBY = 0x00,
         READY   = 0x01,
         ACTIVE  = 0x02
     };
-    
-    enum gyroFullScale 
+
+    enum gyroFullScale
     {
         DPS2000 = 0x00,
         DPS1000 = 0x01,
@@ -246,7 +246,7 @@ private:
 
     // clang-format off
     enum regMap
-    { 
+    {
         REG_STATUS          = 0x00,
         REG_OUT_X_MSB       = 0x01,
         REG_OUT_X_LSB       = 0x02,
@@ -266,9 +266,9 @@ private:
         REG_RT_THF          = 0x10,
         REG_RT_CNT          = 0x11,
         REG_TEMP            = 0x12,
-        REG_CTRL1           = 0x13, 
+        REG_CTRL1           = 0x13,
         REG_CTRL2           = 0x14,
-        REG_CTRL3           = 0x15            
+        REG_CTRL3           = 0x15
     };
     // clang-format on
 
diff --git a/old_examples/shared/sensors/LPS331AP.h b/old_examples/shared/sensors/LPS331AP.h
index 7dc9669e5d6b9ba6071b397b003ab7ae9e96cabc..69fd700f76dd55d2b27a5ca49b2c7f06564c0906 100644
--- a/old_examples/shared/sensors/LPS331AP.h
+++ b/old_examples/shared/sensors/LPS331AP.h
@@ -113,13 +113,13 @@ private:
 
     // clang-format off
     enum regMap {
-        REG_WHO_AM_I        = 0x0f, 
-        REG_RES_CONF        = 0x10, 
+        REG_WHO_AM_I        = 0x0f,
+        REG_RES_CONF        = 0x10,
 
-        REG_CTRL1           = 0x20, 
-        REG_CTRL2           = 0x21, 
-        REG_CTRL3           = 0x22, 
-        REG_INT_CFG         = 0x23, 
+        REG_CTRL1           = 0x20,
+        REG_CTRL2           = 0x21,
+        REG_CTRL3           = 0x22,
+        REG_INT_CFG         = 0x23,
 
         REG_STATUS          = 0x27,
 
diff --git a/old_examples/shared/sensors/LSM6DS3H/LSM6DS3H.h b/old_examples/shared/sensors/LSM6DS3H/LSM6DS3H.h
index 3a8ece68aa5112af9384136a7f872f230ce951c3..91beffbd1138f5eee256d5f75573038d37501c5c 100644
--- a/old_examples/shared/sensors/LSM6DS3H/LSM6DS3H.h
+++ b/old_examples/shared/sensors/LSM6DS3H/LSM6DS3H.h
@@ -84,9 +84,9 @@ public:
         miosix::Thread::sleep(100);
 
         // clang-format off
-        uint8_t init_data[][2] = 
+        uint8_t init_data[][2] =
         {
-            {RegMap::CTRL3_C, 0x44}, // Register address automatically incremented during a multiple 
+            {RegMap::CTRL3_C, 0x44}, // Register address automatically incremented during a multiple
                                      // byte access with a serial interface; LSB @ lower address;
                                      // SPI 4 wire; Output registers not updated until MSB and LSB
                                      // have been read
diff --git a/old_examples/shared/sensors/MAX21105.h b/old_examples/shared/sensors/MAX21105.h
index 3c3cf90e1c9a8107f4d776106d0094722f62f1d5..e8fe63d01f021c2bbbdeee23944c7f6157d0ac57 100644
--- a/old_examples/shared/sensors/MAX21105.h
+++ b/old_examples/shared/sensors/MAX21105.h
@@ -145,7 +145,7 @@ public:
         ACC_FS_4G      = 2,
         ACC_FS_2G      = 3,
     };
-    
+
     enum gyroFullScale
     {
         GYRO_FS_2000   = 0,
@@ -193,7 +193,7 @@ private:
         MIF_CFG        = 0x16,
         OTP_STS_CFG    = 0x1C,
 
-        WHO_AM_I       = 0x20, 
+        WHO_AM_I       = 0x20,
         EXT_STATUS     = 0x22,
 
         GYRO_X_H       = 0x24,
diff --git a/old_examples/shared/sensors/MPL3115.h b/old_examples/shared/sensors/MPL3115.h
index ae3e38403471a50a207ae01750b3974081b38ce0..2ebd88f3bbec3afe874d90c52f220d7eb68037a5 100644
--- a/old_examples/shared/sensors/MPL3115.h
+++ b/old_examples/shared/sensors/MPL3115.h
@@ -235,7 +235,7 @@ public:
     enum sensMode
     {
         MODE_BAROMETER = 0x01,
-        MODE_ALTIMETER = 0x02        
+        MODE_ALTIMETER = 0x02
     };
     // clang-format on
 
diff --git a/old_examples/shared/sensors/Si7021.h b/old_examples/shared/sensors/Si7021.h
index 6ba7214cd1015ad0ca364253d45172b083da948b..33e74d2dbfbaac25d61f9b641eed3097e52272f2 100644
--- a/old_examples/shared/sensors/Si7021.h
+++ b/old_examples/shared/sensors/Si7021.h
@@ -154,7 +154,7 @@ private:
     {
         CMD_MEAS_HUM            = 0xE5,
         CMD_MEAS_TEMP           = 0xE3,
-        CMD_MEAS_TEMP_PREV_HUM  = 0xE0,  // Read temperature value from 
+        CMD_MEAS_TEMP_PREV_HUM  = 0xE0,  // Read temperature value from
                                          // previous RH measurement
         CMR_RESET               = 0xFE,
         CMD_WRITE_USR1          = 0xE6,
diff --git a/old_examples/tests/catch/example-test-fsm.cpp b/old_examples/tests/catch/example-test-fsm.cpp
index 0069d03cc8b2a4eb170b9a2b0d0a12246b004753..decd8f4105cbeea3eeb50bdb7d0781d4dd9f3302 100644
--- a/old_examples/tests/catch/example-test-fsm.cpp
+++ b/old_examples/tests/catch/example-test-fsm.cpp
@@ -193,4 +193,4 @@ TEST_CASE_METHOD(FSMTestFixture, "Testing async transitions")
             REQUIRE(fsm.testState(&FSMExample::state_S4));
         }
     }
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/catch/example-test-fsm.h b/old_examples/tests/catch/example-test-fsm.h
index fce83ded14bf3f8163cb0457a148af710d965cce..b67735d3aa57a9fdfc2ad0a194bb22e9c1ddb821 100644
--- a/old_examples/tests/catch/example-test-fsm.h
+++ b/old_examples/tests/catch/example-test-fsm.h
@@ -271,4 +271,4 @@ public:
 public:
     uint16_t delayed_ev_id;
     int v;
-};
\ No newline at end of file
+};
diff --git a/old_examples/tests/catch/misc/xbee-bitrate.cpp b/old_examples/tests/catch/misc/xbee-bitrate.cpp
index ea357b2fad70f4daa5e22f3d50bf20aeb8e34512..590a6fa69963e8df8c7e86b22db6d4712058e8ea 100644
--- a/old_examples/tests/catch/misc/xbee-bitrate.cpp
+++ b/old_examples/tests/catch/misc/xbee-bitrate.cpp
@@ -166,4 +166,4 @@ end:
     for (;;)
         Thread::sleep(1000);
     return 0;
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/catch/misc/xbee-send-rcv.cpp b/old_examples/tests/catch/misc/xbee-send-rcv.cpp
index 0a8584569f4d43a4470dda8880a89b0b4e11eea1..bcd4292ef5b334565cde620668994fbf4e230860 100644
--- a/old_examples/tests/catch/misc/xbee-send-rcv.cpp
+++ b/old_examples/tests/catch/misc/xbee-send-rcv.cpp
@@ -182,4 +182,4 @@ int main()
     send();
 
     return 0;
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/catch/misc/xbee-time-to-send.cpp b/old_examples/tests/catch/misc/xbee-time-to-send.cpp
index e170f65bd22c6553ab8c453f75f1308e0920377f..b4a780b9107fe32a0606d1fb88c91494231eb3a2 100644
--- a/old_examples/tests/catch/misc/xbee-time-to-send.cpp
+++ b/old_examples/tests/catch/misc/xbee-time-to-send.cpp
@@ -175,4 +175,4 @@ end:
     for (;;)
         Thread::sleep(1000);
     return 0;
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/catch/spidriver/test-spidriver.cpp b/old_examples/tests/catch/spidriver/test-spidriver.cpp
index faffaec1b92dca7a01eeb20f43993358fbaf8ddb..38e532c0d5f5aded43c8f84798e49910e1ce7ddb 100644
--- a/old_examples/tests/catch/spidriver/test-spidriver.cpp
+++ b/old_examples/tests/catch/spidriver/test-spidriver.cpp
@@ -545,4 +545,4 @@ TEST_CASE("SPITransaction - transfer")
         REQUIRE(bufcmp(cmp, bus.getOutBuf().data(), 4));
         REQUIRE(bufcmp(buf + 4, cmp + 4, buf_size - 4));
     }
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/catch/test-xbee.cpp b/old_examples/tests/catch/test-xbee.cpp
index 8f2a9dd0e34d2a6484542b2750073ecc5ae9175a..76ddbf4dc5dd483bd262968382dd2f54f63945a3 100644
--- a/old_examples/tests/catch/test-xbee.cpp
+++ b/old_examples/tests/catch/test-xbee.cpp
@@ -324,4 +324,4 @@ TEST_CASE_METHOD(XbeeTestFixture, "[Xbee] Receive with transferData()")
               spi.restoreState();
           }
       }*/
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/catch/xbee/test-xbee-driver.cpp b/old_examples/tests/catch/xbee/test-xbee-driver.cpp
index 7fa7106cd1e3719eed40501c653192fcd479c315..5d792668c53fecd9c1619be1849f9cf2da72ca9d 100644
--- a/old_examples/tests/catch/xbee/test-xbee-driver.cpp
+++ b/old_examples/tests/catch/xbee/test-xbee-driver.cpp
@@ -418,4 +418,4 @@ TEST_CASE("[Xbee] Test Xbee::sendAtCommand(...)")
         REQUIRE(received_response.getCommandDataLength() == 1);
         REQUIRE(received_response.getCommandDataPointer()[0] == 0xAB);
     }
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/drivers/test-ad7994-bare.cpp b/old_examples/tests/drivers/test-ad7994-bare.cpp
index ff4782e655797b6054b994ccd5692a04bd3c5d06..fddbddef2d6e50f91dbd1f4098c047cfa249e7be 100644
--- a/old_examples/tests/drivers/test-ad7994-bare.cpp
+++ b/old_examples/tests/drivers/test-ad7994-bare.cpp
@@ -86,4 +86,4 @@ int main()
         printf("\n\n");
         Thread::sleep(1500);
     }
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/drivers/test-ad7994.cpp b/old_examples/tests/drivers/test-ad7994.cpp
index bcf279e4fee9142e4007cae9778e551101c60f4e..4875e22d6a38c05e7cb69f93defff678243086e1 100644
--- a/old_examples/tests/drivers/test-ad7994.cpp
+++ b/old_examples/tests/drivers/test-ad7994.cpp
@@ -73,4 +73,4 @@ int main()
 
         Thread::sleep(1000);
     }
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/drivers/test-i2c-mpu9255.cpp b/old_examples/tests/drivers/test-i2c-mpu9255.cpp
index 32a69e54e381a9e3732157a065ff72d0bb65d58d..fdb4778f69f71b563748d914971a94c65a96a51f 100644
--- a/old_examples/tests/drivers/test-i2c-mpu9255.cpp
+++ b/old_examples/tests/drivers/test-i2c-mpu9255.cpp
@@ -81,4 +81,4 @@ int main()
         }
         Thread::sleep(1500);
     }
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/drivers/test-imu-adis.cpp b/old_examples/tests/drivers/test-imu-adis.cpp
index b9d3981538e5b970c31178bfc803d1c8b5ae2a01..e6f5e31ac86b92e29bd1a45348605d402464447d 100644
--- a/old_examples/tests/drivers/test-imu-adis.cpp
+++ b/old_examples/tests/drivers/test-imu-adis.cpp
@@ -86,4 +86,4 @@ int main()
 
         Thread::sleep(100);
     }
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/drivers/test-lsm.cpp b/old_examples/tests/drivers/test-lsm.cpp
index 599649221c2b726cf9e2004ef2fd760002bbb33d..5aec0b6344c8db38d24387512b62cc3d7d5a7fb2 100644
--- a/old_examples/tests/drivers/test-lsm.cpp
+++ b/old_examples/tests/drivers/test-lsm.cpp
@@ -76,4 +76,4 @@ int main()
 
         Thread::sleep(100);
     }
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/drivers/test-spi2.cpp b/old_examples/tests/drivers/test-spi2.cpp
index ad1b56118b919ecc78b05488e93ba63349da8a63..95a32075ac9c0d3848f3a97d7a9f5bd3695c68c3 100644
--- a/old_examples/tests/drivers/test-spi2.cpp
+++ b/old_examples/tests/drivers/test-spi2.cpp
@@ -41,4 +41,4 @@ int main()
 
         Thread::sleep(500);
     }
-}
\ No newline at end of file
+}
diff --git a/old_examples/tests/drivers/test-unit-LM75B.cpp b/old_examples/tests/drivers/test-unit-LM75B.cpp
index e32282b94649a78cce7254cbc132a5a3388cbb6d..01b7efb14f93ef220d202fdf4afa9eaba825ab6a 100644
--- a/old_examples/tests/drivers/test-unit-LM75B.cpp
+++ b/old_examples/tests/drivers/test-unit-LM75B.cpp
@@ -76,4 +76,4 @@ TEST_CASE("[LM75B] temperature")
         REQUIRE(temp1.computeTemp(temp_array) ==
                 Approx(-127.875).epsilon(0.001));
     }
-}
\ No newline at end of file
+}
diff --git a/sbs.cmake b/sbs.cmake
index 0c71c48fdc7e027946ab625afa3e1a73cbc8dcfd..23f02142170f38a815cc90309e7b1d87e113ef89 100644
--- a/sbs.cmake
+++ b/sbs.cmake
@@ -41,7 +41,7 @@ function(sbs_target TARGET)
     if(NOT OPT_BOARD)
         message(FATAL_ERROR "No board selected")
     endif()
-    
+
     set(MIOSIX_LIBRARY miosix-${OPT_BOARD})
 
     set(DFLAGS -MMD -MP)
diff --git a/scripts/generators/templates/EventStrings.cpp.template b/scripts/generators/templates/EventStrings.cpp.template
index 81fc1be2a016fc4f2e471915eec57a24c7a8f80b..1404a7005a69ebda6b23aa87fb75ba93dea78f6e 100644
--- a/scripts/generators/templates/EventStrings.cpp.template
+++ b/scripts/generators/templates/EventStrings.cpp.template
@@ -50,4 +50,4 @@ string getTopicString(uint8_t topic)
 	}};
 	auto it = topic_string_map.find(topic);
 	return it == topic_string_map.end() ? "TOPIC_UNKNOWN" : it->second;
-}}
\ No newline at end of file
+}}
diff --git a/scripts/generators/templates/Events.h.template b/scripts/generators/templates/Events.h.template
index ff04b12598d438eb572773c3d73b708e14fb2e5c..c57d0b49ce5ff7488c26d5061ff2fb581b6b6719 100644
--- a/scripts/generators/templates/Events.h.template
+++ b/scripts/generators/templates/Events.h.template
@@ -59,4 +59,4 @@ const std::vector<uint8_t> EVENT_LIST{{
  * @param event
  * @return string
  */
-string getEventString(uint8_t event);
\ No newline at end of file
+string getEventString(uint8_t event);
diff --git a/scripts/generators/templates/FSMController.cpp.template b/scripts/generators/templates/FSMController.cpp.template
index 1f82a9ef3a6139155fc6a1b8384810a146bf594a..517758499dc961552702a129242ef5dfe146ba38 100644
--- a/scripts/generators/templates/FSMController.cpp.template
+++ b/scripts/generators/templates/FSMController.cpp.template
@@ -63,4 +63,4 @@ void {state_machine_name}Controller::logStatus()
     StackLogger::getInstance()->updateStack(THID);
 }}
 
-}}  // namespace {main_namespace}
\ No newline at end of file
+}}  // namespace {main_namespace}
diff --git a/scripts/generators/templates/FSMController.h.template b/scripts/generators/templates/FSMController.h.template
index bfccd16ec1efac1193139371fcdf36e165bdd76f..9987f67cd8235057c8b02626e6b1c4a7e81d6042 100644
--- a/scripts/generators/templates/FSMController.h.template
+++ b/scripts/generators/templates/FSMController.h.template
@@ -52,4 +52,4 @@ private:
     void logStatus();
 }};
 
-}}  // namespace {main_namespace}
\ No newline at end of file
+}}  // namespace {main_namespace}
diff --git a/scripts/generators/templates/Topics.h.template b/scripts/generators/templates/Topics.h.template
index 97c6448c83a044411e79dec4ba8f52a460384300..52b6b019e452c1d27a653f60006318fd090bcbfa 100644
--- a/scripts/generators/templates/Topics.h.template
+++ b/scripts/generators/templates/Topics.h.template
@@ -54,4 +54,4 @@ const std::vector<uint8_t> TOPIC_LIST{{
  * @param event
  * @return string
  */
-string getTopicString(uint8_t topic);
\ No newline at end of file
+string getTopicString(uint8_t topic);
diff --git a/scripts/generators/templates/state_function_definition.template b/scripts/generators/templates/state_function_definition.template
index 80522fb70a5ffa66eaf361b3332521f1bf90b363..a0b80ddcf6589dd0d134c221c76b4d0fac699097 100644
--- a/scripts/generators/templates/state_function_definition.template
+++ b/scripts/generators/templates/state_function_definition.template
@@ -22,6 +22,6 @@ void {state_machine_name}Controller::state_{state_name}(const Event& ev)
         default:
         {{
             break;
-        }}  
+        }}
     }}
-}}
\ No newline at end of file
+}}
diff --git a/scripts/generators/templates/test.cpp.template b/scripts/generators/templates/test.cpp.template
index 958f5fee403be1cdcf58ba36409edb5b46067406..d2d6a3281d112a603daf5169280c3d3dab6a6b19 100644
--- a/scripts/generators/templates/test.cpp.template
+++ b/scripts/generators/templates/test.cpp.template
@@ -63,4 +63,4 @@ protected:
     {state_machine_name}Controller* controller;
 }};
 
-{test_cases}
\ No newline at end of file
+{test_cases}
diff --git a/scripts/logdecoder/logdecoder.cpp b/scripts/logdecoder/logdecoder.cpp
index 8d93b3a1b427ef29489fb279ffd642749cc6e82f..96b81e338727137ff3d25d077d1c56891226fd15 100644
--- a/scripts/logdecoder/logdecoder.cpp
+++ b/scripts/logdecoder/logdecoder.cpp
@@ -23,11 +23,11 @@
  *                                                                         *
  *   You should have received a copy of the GNU General Public License     *
  *   along with this program; if not, see <http://www.gnu.org/licenses/>   *
- ***************************************************************************/ 
+ ***************************************************************************/
 
 /*
  * This is a stub program for the program that will decode the logged data.
- * Fill in the TODO to make it work. 
+ * Fill in the TODO to make it work.
  */
 
 #include <iostream>
diff --git a/scripts/logdecoder/xbee/.gitignore b/scripts/logdecoder/xbee/.gitignore
index 8b193293c00f3d4483c23b0d5c2e705d0617e209..3e6fd163051d66dceb9c808d07e314ae4d022ee5 100644
--- a/scripts/logdecoder/xbee/.gitignore
+++ b/scripts/logdecoder/xbee/.gitignore
@@ -1 +1 @@
-logdecoder
\ No newline at end of file
+logdecoder
diff --git a/scripts/mavlink_client/Makefile b/scripts/mavlink_client/Makefile
index 94fdab898d5fce08fe040f4786eef22c2b339ae8..5520648101e07fc354a48ed4d2877ad3147183db 100644
--- a/scripts/mavlink_client/Makefile
+++ b/scripts/mavlink_client/Makefile
@@ -1,4 +1,4 @@
 all:
 	gcc mavlink_demo_rx.c rs232.c -Wall -Wextra -o2 -o mav_rx
 	gcc mavlink_demo_tx.c rs232.c -Wall -Wextra -o2 -o mav_tx
-	gcc continuous_tx.c rs232.c -Wall -Wextra -o2 -o continuous_tx
\ No newline at end of file
+	gcc continuous_tx.c rs232.c -Wall -Wextra -o2 -o continuous_tx
diff --git a/scripts/mavlink_client/README.md b/scripts/mavlink_client/README.md
index e8cd75de7fbd87bf075a2506218e1de6d4be6a3c..8e7a44e1940fc38a0c5115366f493a8f36e27606 100644
--- a/scripts/mavlink_client/README.md
+++ b/scripts/mavlink_client/README.md
@@ -11,4 +11,4 @@ frequency. This was used to test the LoRa modules.
 * mavlink_demo_rx: receives and prints packets, eventually sending back an ACK.
 
 `plot.py`: reads value on stdin and plots them. Can be used piped with the output
-of mavlink_demo_rx.
\ No newline at end of file
+of mavlink_demo_rx.
diff --git a/scripts/mavlink_client/continuous_tx.c b/scripts/mavlink_client/continuous_tx.c
index e477fb533d055d9d18f6a324c80158156428fe93..43cc8a46c094c98e586828b96bc1b6725490f291 100644
--- a/scripts/mavlink_client/continuous_tx.c
+++ b/scripts/mavlink_client/continuous_tx.c
@@ -38,12 +38,12 @@
 #define END_FRAME_DELIMITER 0xff
 #define MAX_REP 254
 
-// #define WAIT_FOR_ACK 
+// #define WAIT_FOR_ACK
 // #define DEBUG
 
 /*
 Sends a certain number of messages of a fixed length over serial
-port, with increasing ids. 
+port, with increasing ids.
 
 Used for benchmarking LoRa modules (RF solutions Gamma868).
 */
@@ -126,4 +126,3 @@ int main(int argc, char *argv[])
 
     return(0);
 }
-
diff --git a/scripts/mavlink_client/mavlink_demo_rx.c b/scripts/mavlink_client/mavlink_demo_rx.c
index 95c49aa44d440abf09822dd0889435438775b51b..648e325dedbf8dba44c371bd0816c9452317f89c 100644
--- a/scripts/mavlink_client/mavlink_demo_rx.c
+++ b/scripts/mavlink_client/mavlink_demo_rx.c
@@ -90,4 +90,4 @@ void handleMavlinkMessage(const mavlink_message_t* msg)
             break;
             // printf("[Response] Unknown message received\n");
     }
-}
\ No newline at end of file
+}
diff --git a/scripts/mavlink_client/mavlink_demo_tx.c b/scripts/mavlink_client/mavlink_demo_tx.c
index 79dd7ecdfab9abfb873702cf92a96fae24dcf982..0bd726751783841c5f98a7989fa863ac9cc6cf56 100644
--- a/scripts/mavlink_client/mavlink_demo_tx.c
+++ b/scripts/mavlink_client/mavlink_demo_tx.c
@@ -61,7 +61,7 @@ int main(int argc, char *argv[])
       return -1;
     }
 
-    int i=0, bdrate = atoi(argv[2]);  
+    int i=0, bdrate = atoi(argv[2]);
     cport_nr = atoi(argv[1]);
 
     char mode[]={'8','N','1',0};
@@ -85,4 +85,3 @@ int main(int argc, char *argv[])
 
     return(0);
 }
-
diff --git a/scripts/mavlink_client/plot.py b/scripts/mavlink_client/plot.py
index 152f15f549a03bd3ca0e4ae16b086ded8fe30e83..e3abc200d70b2e7db119c4eb34bb192d7df9a94a 100644
--- a/scripts/mavlink_client/plot.py
+++ b/scripts/mavlink_client/plot.py
@@ -40,7 +40,7 @@ def animate(i, xs, ys):
     if(len(xs) > SAMPLES):
         xs = xs[-SAMPLES:]
         ys = ys[-SAMPLES:]
-    
+
 
     # Draw x and y lists
     ax.clear()
diff --git a/scripts/mavlink_client/rs232.c b/scripts/mavlink_client/rs232.c
index 31edd537edf6a152987c20ba6197b089b71cb79c..060af1aa621c98cac75fbc5fe359fb1f30244306 100644
--- a/scripts/mavlink_client/rs232.c
+++ b/scripts/mavlink_client/rs232.c
@@ -807,14 +807,3 @@ int RS232_GetPortnr(const char *devname)
 
   return -1;  /* device not found */
 }
-
-
-
-
-
-
-
-
-
-
-
diff --git a/scripts/mavlink_client/rs232.h b/scripts/mavlink_client/rs232.h
index 4a8bdcf794ecaec7780739aa87b8f8edf087ac38..55b28976a0028024154ed94fc2a846388e3d25f3 100644
--- a/scripts/mavlink_client/rs232.h
+++ b/scripts/mavlink_client/rs232.h
@@ -83,5 +83,3 @@ int RS232_GetPortnr(const char *);
 #endif
 
 #endif
-
-
diff --git a/scripts/openocd/start_openocd.sh b/scripts/openocd/start_openocd.sh
index 35c9cf5928227b5f5f2cb9625cc3da087309566d..0c659c12431e1831f7882bad4c3bc4e29e754c43 100755
--- a/scripts/openocd/start_openocd.sh
+++ b/scripts/openocd/start_openocd.sh
@@ -1,2 +1,2 @@
 #!/bin/bash
-openocd -f libs/miosix-kernel/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_anakin/anakin.cfg 
+openocd -f libs/miosix-kernel/miosix/arch/cortexM4_stm32f4/stm32f429zi_skyward_anakin/anakin.cfg
diff --git a/scripts/scxml2plant/xalan/LICENSE.txt b/scripts/scxml2plant/xalan/LICENSE.txt
index 47ad566a4592992bb8c6cfe6bda017487dda8cf5..51f38d9a927f9d0d31116d1988a3b8abd56c24ab 100644
--- a/scripts/scxml2plant/xalan/LICENSE.txt
+++ b/scripts/scxml2plant/xalan/LICENSE.txt
@@ -181,11 +181,11 @@
 The license above applies to this Apache Xalan release of:
   Xalan-Java 2 - XSLT Processor
   Xalan-Java 2 - Serializer
-  
+
 The license above also applies to the jar files
-xalan.jar and xsltc.jar - Xalan-Java 2 - XSLT Processor from 
+xalan.jar and xsltc.jar - Xalan-Java 2 - XSLT Processor from
 Source: http://xalan.apache.org/
-  
+
 The license above also applies to the jar file
 serializer.jar - Xalan-Java 2 - Serializer
 Source:  http://xalan.apache.org/
@@ -220,34 +220,34 @@ Used By: Xalan's build process: java/build.xml and test/build.xml
  * ============================================================================
  *                   The Apache Software License, Version 1.1
  * ============================================================================
- * 
+ *
  *    Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without modifica-
  * tion, are permitted provided that the following conditions are met:
- * 
+ *
  * 1. Redistributions of  source code must  retain the above copyright  notice,
  *    this list of conditions and the following disclaimer.
- * 
+ *
  * 2. Redistributions in binary form must reproduce the above copyright notice,
  *    this list of conditions and the following disclaimer in the documentation
  *    and/or other materials provided with the distribution.
- * 
+ *
  * 3. The end-user documentation included with the redistribution, if any, must
  *    include  the following  acknowledgment:  "This product includes  software
  *    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  *    Alternately, this  acknowledgment may  appear in the software itself,  if
  *    and wherever such third-party acknowledgments normally appear.
- * 
+ *
  * 4. The names "Ant" and  "Apache Software Foundation"  must not be used to
  *    endorse  or promote  products derived  from this  software without  prior
  *    written permission. For written permission, please contact
  *    apache@apache.org.
- * 
+ *
  * 5. Products  derived from this software may not  be called "Apache", nor may
  *    "Apache" appear  in their name,  without prior written permission  of the
  *    Apache Software Foundation.
- * 
+ *
  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  * FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
@@ -258,9 +258,9 @@ Used By: Xalan's build process: java/build.xml and test/build.xml
  * ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  * (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
+ *
  * This software  consists of voluntary contributions made  by many individuals
- * on behalf of the  Apache Software Foundation.  For more  information  on the 
+ * on behalf of the  Apache Software Foundation.  For more  information  on the
  * Apache Software Foundation, please see <http://www.apache.org/>.
  *
  */
@@ -279,7 +279,7 @@ applies to the included BCEL.jar from Apache Jakarta
 Source:  http://jakarta.apache.org/bcel
 Used By: XSLTC component of xml-xalan/java
 
-The following license, Apache Software License, Version 1.1, 
+The following license, Apache Software License, Version 1.1,
 also applies to the included regexp.jar,
 jakarta-regexp-1.2.jar from Apache Jakarta.
 Source:  http://jakarta.apache.org/regexp
@@ -310,13 +310,13 @@ Used By: BCEL.jar which is used by XSLTC component of xml-xalan/java
  *    Alternately, this acknowledgment may appear in the software itself,
  *    if and wherever such third-party acknowledgments normally appear.
  *
- * 4. The names "Apache" and "Apache Software Foundation" and 
- *    "Apache BCEL" must not be used to endorse or promote products 
- *    derived from this software without prior written permission. For 
+ * 4. The names "Apache" and "Apache Software Foundation" and
+ *    "Apache BCEL" must not be used to endorse or promote products
+ *    derived from this software without prior written permission. For
  *    written permission, please contact apache@apache.org.
  *
  * 5. Products derived from this software may not be called "Apache",
- *    "Apache BCEL", nor may "Apache" appear in their name, without 
+ *    "Apache BCEL", nor may "Apache" appear in their name, without
  *    prior written permission of the Apache Software Foundation.
  *
  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
@@ -353,28 +353,28 @@ for the org.w3c.dom.* packages:
 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 W3C® DOCUMENT LICENSE
 http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231
-Public documents on the W3C site are provided by the copyright holders 
-under the following license. By using and/or copying this document, 
-or the W3C document from which this statement is linked, you (the licensee) 
-agree that you have read, understood, and will comply with the following 
+Public documents on the W3C site are provided by the copyright holders
+under the following license. By using and/or copying this document,
+or the W3C document from which this statement is linked, you (the licensee)
+agree that you have read, understood, and will comply with the following
 terms and conditions:
 
-Permission to copy, and distribute the contents of this document, or the 
-W3C document from which this statement is linked, in any medium for any 
-purpose and without fee or royalty is hereby granted, provided that you include 
+Permission to copy, and distribute the contents of this document, or the
+W3C document from which this statement is linked, in any medium for any
+purpose and without fee or royalty is hereby granted, provided that you include
 the following on ALL copies of the document, or portions thereof, that you use:
 
-1. A link or URL to the original W3C document. 
-2. The pre-existing copyright notice of the original author, or if it 
+1. A link or URL to the original W3C document.
+2. The pre-existing copyright notice of the original author, or if it
    doesn't exist, a notice (hypertext is preferred, but a textual representation
     is permitted) of the form: "Copyright © [$date-of-document] World Wide Web
     Consortium, (Massachusetts Institute of Technology, European Research
-    Consortium for Informatics and Mathematics, Keio University). All Rights 
-    Reserved. http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231" 
-3. If it exists, the STATUS of the W3C document. 
+    Consortium for Informatics and Mathematics, Keio University). All Rights
+    Reserved. http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231"
+3. If it exists, the STATUS of the W3C document.
 
-When space permits, inclusion of the full text of this NOTICE should be provided. 
-We request that authorship attribution be provided in any software, documents, 
+When space permits, inclusion of the full text of this NOTICE should be provided.
+We request that authorship attribution be provided in any software, documents,
 or other items or products that you create pursuant to the implementation of the
 contents of this document, or any portion thereof.
 
@@ -414,7 +414,7 @@ or annotating specifications. Other questions about this notice can be directed
 to site-policy@w3.org.
 
 
-Joseph Reagle <mailto:site-policy@w3.org 
+Joseph Reagle <mailto:site-policy@w3.org
 Last revised by Reagle $Date: 2005-07-19 12:33:09 -0400 (Tue, 19 Jul 2005) $
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
@@ -445,15 +445,15 @@ the following on ALL copies of the software and documentation or
 portions thereof, including modifications:
 
 1. The full text of this NOTICE in a location viewable to users of the
-   redistributed or derivative work. 
+   redistributed or derivative work.
 2. Any pre-existing intellectual property disclaimers, notices,
    or terms and conditions. If none exist, the W3C Software Short Notice
    should be included (hypertext is preferred, text is permitted) within
-   the body of any redistributed or derivative code. 
+   the body of any redistributed or derivative code.
 3. Notice of any changes or modifications to the files, including the
    date changes were made. (We recommend you provide URIs to the location
-   from which the code is derived.) 
-   
+   from which the code is derived.)
+
 THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
 MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT
 NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
@@ -482,9 +482,9 @@ certification under the Open Source Definition. Please see our Copyright FAQ
 for common questions about using materials from our site, including specific
 terms and conditions for packages like libwww, Amaya, and Jigsaw. Other
 questions about this notice can be directed to site-policy@w3.org.
- 
 
-Joseph Reagle <mailto:site-policy@w3.org 
+
+Joseph Reagle <mailto:site-policy@w3.org
 Last revised by Reagle $Date: 2005-07-19 12:33:09 -0400 (Tue, 19 Jul 2005) $
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
@@ -500,7 +500,7 @@ for the org.xml.sax.* packages in jar file xml-apis.jar:
 
 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 This module, both source code and documentation, is in the Public Domain,
-and comes with NO WARRANTY. See http://www.saxproject.org for further information. 
+and comes with NO WARRANTY. See http://www.saxproject.org for further information.
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 
@@ -510,7 +510,7 @@ and comes with NO WARRANTY. See http://www.saxproject.org for further informatio
 
 
 
-The following license applies to the jar file 
+The following license applies to the jar file
 java_cup.jar - LALR Parser Generator for Java(TM).
 Source:  http://www.cs.princeton.edu/~appel/modern/java/CUP
 Used By: XSLTC component of xml-xalan/java
@@ -518,23 +518,23 @@ Used By: XSLTC component of xml-xalan/java
 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 CUP Parser Generator Copyright Notice, License, and Disclaimer
 
-Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian 
+Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian
 
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, provided 
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
 that the above copyright notice appear in all copies and that both
-the copyright notice and this permission notice and warranty disclaimer 
-appear in supporting documentation, and that the names of the authors 
-or their employers not be used in advertising or publicity pertaining 
-to distribution of the software without specific, written prior permission. 
-
-The authors and their employers disclaim all warranties with regard to 
-this software, including all implied warranties of merchantability 
-and fitness. In no event shall the authors or their employers be liable 
-for any special, indirect or consequential damages or any damages 
-whatsoever resulting from loss of use, data or profits, whether in an action 
-of contract, negligence or other tortious action, arising out of or 
-in connection with the use or performance of this software. 
+the copyright notice and this permission notice and warranty disclaimer
+appear in supporting documentation, and that the names of the authors
+or their employers not be used in advertising or publicity pertaining
+to distribution of the software without specific, written prior permission.
+
+The authors and their employers disclaim all warranties with regard to
+this software, including all implied warranties of merchantability
+and fitness. In no event shall the authors or their employers be liable
+for any special, indirect or consequential damages or any damages
+whatsoever resulting from loss of use, data or profits, whether in an action
+of contract, negligence or other tortious action, arising out of or
+in connection with the use or performance of this software.
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 
@@ -553,23 +553,23 @@ Used By: XSLTC component of xml-xalan/java
 CUP Parser Generator Copyright Notice, License, and Disclaimer
 (runtime.jar component)
 
-Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian 
+Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian
 
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, provided 
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
 that the above copyright notice appear in all copies and that both
-the copyright notice and this permission notice and warranty disclaimer 
-appear in supporting documentation, and that the names of the authors 
-or their employers not be used in advertising or publicity pertaining 
-to distribution of the software without specific, written prior permission. 
-
-The authors and their employers disclaim all warranties with regard to 
-this software, including all implied warranties of merchantability 
-and fitness. In no event shall the authors or their employers be liable 
-for any special, indirect or consequential damages or any damages 
-whatsoever resulting from loss of use, data or profits, whether in an action 
-of contract, negligence or other tortious action, arising out of or 
-in connection with the use or performance of this software. 
+the copyright notice and this permission notice and warranty disclaimer
+appear in supporting documentation, and that the names of the authors
+or their employers not be used in advertising or publicity pertaining
+to distribution of the software without specific, written prior permission.
+
+The authors and their employers disclaim all warranties with regard to
+this software, including all implied warranties of merchantability
+and fitness. In no event shall the authors or their employers be liable
+for any special, indirect or consequential damages or any damages
+whatsoever resulting from loss of use, data or profits, whether in an action
+of contract, negligence or other tortious action, arising out of or
+in connection with the use or performance of this software.
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 
@@ -579,7 +579,7 @@ in connection with the use or performance of this software.
 
 
 
-The following license applies to the JLEX jar file 
+The following license applies to the JLEX jar file
 JLex.jar - A Lexical Analyzer Generator for Java(TM).
 Source:  http://www.cs.princeton.edu/~appel/modern/java/JLex
 Used By: XSLTC component of xml-xalan/java
@@ -587,28 +587,28 @@ Used By: XSLTC component of xml-xalan/java
 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 JLEX COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
 
-Copyright 1996-2000 by Elliot Joel Berk and C. Scott Ananian 
+Copyright 1996-2000 by Elliot Joel Berk and C. Scott Ananian
 
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and 
-that both the copyright notice and this permission notice and 
-warranty disclaimer appear in supporting documentation, and that the 
-name of the authors or their employers not be used in advertising or 
-publicity pertaining to distribution of the software without specific, 
-written prior permission. 
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and
+that both the copyright notice and this permission notice and
+warranty disclaimer appear in supporting documentation, and that the
+name of the authors or their employers not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission.
 
-The authors and their employers disclaim all warranties with regard 
-to this software, including all implied warranties of merchantability and 
+The authors and their employers disclaim all warranties with regard
+to this software, including all implied warranties of merchantability and
 fitness. In no event shall the authors or their employers be liable for any
-special, indirect or consequential damages or any damages whatsoever resulting 
-from loss of use, data or profits, whether in an action of contract, 
+special, indirect or consequential damages or any damages whatsoever resulting
+from loss of use, data or profits, whether in an action of contract,
 negligence or other tortious action, arising out of or in connection
-with the use or performance of this software. 
+with the use or performance of this software.
 
-Java is a trademark of Sun Microsystems, Inc. References to the Java 
-programming language in relation to JLex are not meant to imply that 
-Sun endorses this product. 
+Java is a trademark of Sun Microsystems, Inc. References to the Java
+programming language in relation to JLex are not meant to imply that
+Sun endorses this product.
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 
@@ -618,8 +618,8 @@ Sun endorses this product.
 
 
 
-The following license applies to the jar file 
-stylebook-1.0-b3_xalan-2.jar - Tool for generating Xalan documentation. 
+The following license applies to the jar file
+stylebook-1.0-b3_xalan-2.jar - Tool for generating Xalan documentation.
 Integrated with Xalan-Java 2 and Xerces 2.
 Source:  http://svn.apache.org/viewvc/xml/stylebook/
 Used by: Xalan-Java 2, Xalan-C++
@@ -629,7 +629,7 @@ Used by: Xalan-Java 2, Xalan-C++
  * The Apache Software License, Version 1.1
  *
  *
- * Copyright (c) 1999 The Apache Software Foundation.  All rights 
+ * Copyright (c) 1999 The Apache Software Foundation.  All rights
  * reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -637,7 +637,7 @@ Used by: Xalan-Java 2, Xalan-C++
  * are met:
  *
  * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
+ *    notice, this list of conditions and the following disclaimer.
  *
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in
@@ -645,7 +645,7 @@ Used by: Xalan-Java 2, Xalan-C++
  *    distribution.
  *
  * 3. The end-user documentation included with the redistribution,
- *    if any, must include the following acknowledgment:  
+ *    if any, must include the following acknowledgment:
  *       "This product includes software developed by the
  *        Apache Software Foundation (http://www.apache.org/)."
  *    Alternately, this acknowledgment may appear in the software itself,
@@ -653,7 +653,7 @@ Used by: Xalan-Java 2, Xalan-C++
  *
  * 4. The names "Xalan", "Xerces", and "Apache Software Foundation" must
  *    not be used to endorse or promote products derived from this
- *    software without prior written permission. For written 
+ *    software without prior written permission. For written
  *    permission, please contact apache@apache.org.
  *
  * 5. Products derived from this software may not be called "Apache",
diff --git a/scripts/scxml2plant/xalan/NOTICE.txt b/scripts/scxml2plant/xalan/NOTICE.txt
index 132f8bccd53579fb004f2b5d095588d3ff9e832a..bafdf406800417d3bc53930bd670e6847fe793b3 100644
--- a/scripts/scxml2plant/xalan/NOTICE.txt
+++ b/scripts/scxml2plant/xalan/NOTICE.txt
@@ -18,38 +18,38 @@
        http://www.lotus.com.
      - software copyright (c) 2001-2002, Sun Microsystems.,
        http://www.sun.com.
-     - software copyright (c) 2003, IBM Corporation., 
+     - software copyright (c) 2003, IBM Corporation.,
        http://www.ibm.com.
-       
+
    =========================================================================
    The binary distribution package (ie. jars, samples and documentation) of
    this product includes software developed by the following:
-       
-     - The Apache Software Foundation 
-         - Xerces Java - see LICENSE.txt 
+
+     - The Apache Software Foundation
+         - Xerces Java - see LICENSE.txt
          - JAXP 1.3 APIs - see LICENSE.txt
          - Bytecode Engineering Library - see LICENSE.txt
          - Regular Expression - see LICENSE.txt
-       
-     - Scott Hudson, Frank Flannery, C. Scott Ananian 
-         - CUP Parser Generator runtime (javacup\runtime) - see LICENSE.txt 
- 
-   ========================================================================= 
+
+     - Scott Hudson, Frank Flannery, C. Scott Ananian
+         - CUP Parser Generator runtime (javacup\runtime) - see LICENSE.txt
+
+   =========================================================================
    The source distribution package (ie. all source and tools required to build
    Xalan Java) of this product includes software developed by the following:
-       
+
      - The Apache Software Foundation
-         - Xerces Java - see LICENSE.txt 
+         - Xerces Java - see LICENSE.txt
          - JAXP 1.3 APIs - see LICENSE.txt
          - Bytecode Engineering Library - see LICENSE.txt
          - Regular Expression - see LICENSE.txt
          - Ant - see LICENSE.txt
-         - Stylebook doc tool - see LICENSE.txt    
-       
-     - Elliot Joel Berk and C. Scott Ananian 
+         - Stylebook doc tool - see LICENSE.txt
+
+     - Elliot Joel Berk and C. Scott Ananian
          - Lexical Analyzer Generator (JLex) - see LICENSE.txt
 
-   =========================================================================       
+   =========================================================================
    Apache Xerces Java
    Copyright 1999-2006 The Apache Software Foundation
 
@@ -60,11 +60,11 @@
    were originally based on the following:
      - software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
      - software copyright (c) 1999, Sun Microsystems., http://www.sun.com.
-     - voluntary contributions made by Paul Eng on behalf of the 
+     - voluntary contributions made by Paul Eng on behalf of the
        Apache Software Foundation that were originally developed at iClick, Inc.,
-       software copyright (c) 1999.    
+       software copyright (c) 1999.
 
-   =========================================================================   
+   =========================================================================
    Apache xml-commons xml-apis (redistribution of xml-apis.jar)
 
    Apache XML Commons
@@ -77,4 +77,3 @@
      - software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
      - software copyright (c) 1999, Sun Microsystems., http://www.sun.com.
      - software copyright (c) 2000 World Wide Web Consortium, http://www.w3.org
-
diff --git a/scripts/scxml2plant/xalan/readme.html b/scripts/scxml2plant/xalan/readme.html
index 538f4286b0308b84b3c4dcfbeb6937ab2d3d56a4..814fdfe29dde2d8be11edd61f164c0c04c178486 100644
--- a/scripts/scxml2plant/xalan/readme.html
+++ b/scripts/scxml2plant/xalan/readme.html
@@ -25,15 +25,3 @@
       Redirecting to <a href="docs/whatsnew.html">What's New in Xalan_Java 2</a>
 </body>
 </html>
-
-
-
-
-            
-            
-
-
-
-
-            
-   
diff --git a/scripts/scxml2plant/xslt/scxml2plantuml.xslt b/scripts/scxml2plant/xslt/scxml2plantuml.xslt
index 8468b2c3f684ab52e06678ff41d747407b5751a3..d3ea651fbf610b9199c3e2a11bb02b11596090e4 100644
--- a/scripts/scxml2plant/xslt/scxml2plantuml.xslt
+++ b/scripts/scxml2plant/xslt/scxml2plantuml.xslt
@@ -42,7 +42,7 @@
 
     <xsl:apply-templates select="@initial"/>
     <xsl:apply-templates select="*"/>
-    
+
     <xsl:text>}&#xa;</xsl:text>
   </xsl:template>
 
@@ -50,7 +50,7 @@
     <xsl:text>state </xsl:text>
     <xsl:apply-templates select="." mode="id"/>
     <xsl:text> {&#xa;</xsl:text>
-    
+
     <xsl:apply-templates select="*"/>
 
     <xsl:apply-templates select="." mode="id"/>
diff --git a/scripts/scxml2plant/xslt/scxml2plantuml_finaldot.xslt b/scripts/scxml2plant/xslt/scxml2plantuml_finaldot.xslt
index f9050a05ddb1f253be2cea26a355830028cbe939..e87011fa07c5d2669e8eff0a3c707245c98a978d 100644
--- a/scripts/scxml2plant/xslt/scxml2plantuml_finaldot.xslt
+++ b/scripts/scxml2plant/xslt/scxml2plantuml_finaldot.xslt
@@ -35,7 +35,7 @@
 
     <xsl:apply-templates select="@initial"/>
     <xsl:apply-templates select="*"/>
-    
+
     <xsl:text>}&#xa;</xsl:text>
   </xsl:template>
 
@@ -43,7 +43,7 @@
     <xsl:text>state </xsl:text>
     <xsl:apply-templates select="." mode="id"/>
     <xsl:text> {&#xa;</xsl:text>
-    
+
     <xsl:apply-templates select="*"/>
 
     <xsl:apply-templates select="." mode="id"/>
diff --git a/src/entrypoints/bmx160-calibration-entry.cpp b/src/entrypoints/bmx160-calibration-entry.cpp
index fed84ab5d5fbf15083b28a1c31e9a462c4e9da7e..c8c1a4a092ce0cd457f1b9bb5ec0d3e22a511ea3 100644
--- a/src/entrypoints/bmx160-calibration-entry.cpp
+++ b/src/entrypoints/bmx160-calibration-entry.cpp
@@ -460,4 +460,4 @@ BMX160CorrectionParameters changeMinGyroCorrectionSamples(
     }
 
     return correctionParameters;
-}
\ No newline at end of file
+}
diff --git a/src/entrypoints/config-dsgamma.cpp b/src/entrypoints/config-dsgamma.cpp
index eef7197b92061d0e0f781917155314356a7feddd..652f8d1214858e07311341eb7ae4edfb01154c22 100644
--- a/src/entrypoints/config-dsgamma.cpp
+++ b/src/entrypoints/config-dsgamma.cpp
@@ -107,4 +107,4 @@ void waitForButton()
         if (button::value() == 1)
             break;  // Wait for button
     }
-}
\ No newline at end of file
+}
diff --git a/src/entrypoints/examples/mxgui-helloworld.cpp b/src/entrypoints/examples/mxgui-helloworld.cpp
index 28a52e7f98343d69be7fec01a62e6d2ca4c6fab4..faf87fbb11d43ccb196f1c22b510c106bf94ff63 100644
--- a/src/entrypoints/examples/mxgui-helloworld.cpp
+++ b/src/entrypoints/examples/mxgui-helloworld.cpp
@@ -40,4 +40,4 @@ int main()
         printf("Hello world! Look at the screen!\n");
         Thread::sleep(1000);
     }
-}
\ No newline at end of file
+}
diff --git a/src/entrypoints/examples/state-machines-examples.md b/src/entrypoints/examples/state-machines-examples.md
index 7763e0b42ed79cddc2aad3f2d1bf9663acb8446f..024ed303b8cf4788759f2d13b988119aecd5445c 100644
--- a/src/entrypoints/examples/state-machines-examples.md
+++ b/src/entrypoints/examples/state-machines-examples.md
@@ -1,8 +1,8 @@
 # State Machine Examples
 
 ## Simple Finite State Machine
-Entrypoint: `example-fsm.cpp`  
-Implementation: `example-fsm.h`  
+Entrypoint: `example-fsm.cpp`
+Implementation: `example-fsm.h`
 
 ### Diagram
-![alt text](images/example-fsm-diagram.png "example-fsm diagram")
\ No newline at end of file
+![alt text](images/example-fsm-diagram.png "example-fsm diagram")
diff --git a/src/entrypoints/sdcard-benchmark.cpp b/src/entrypoints/sdcard-benchmark.cpp
index eacff9bb0261b8207dbcc0ca8606154164861084..d81d91475683b0c5e3eeddb9a6ddc30e4cf5148c 100644
--- a/src/entrypoints/sdcard-benchmark.cpp
+++ b/src/entrypoints/sdcard-benchmark.cpp
@@ -138,4 +138,4 @@ int main()
     }
 
     return 0;
-}
\ No newline at end of file
+}
diff --git a/src/shared/Debug.h b/src/shared/Debug.h
index 449d130250008ea4cdfefb4fdb82021e44db6893..03188862c4468daa20b35815e2b3a129bb59350d 100644
--- a/src/shared/Debug.h
+++ b/src/shared/Debug.h
@@ -45,11 +45,11 @@
     {
         miosix::Lock<miosix::FastMutex> lock(m);
         // Sincronize TRACEs
-        
+
         va_list argptr;
         va_start(argptr, format);
 
-        
+
         printf("%.2f> ", miosix::getTick()/1000.0f);
         vprintf(format, argptr);
 
@@ -76,9 +76,9 @@
     static inline void logStack(std::string thread_name)
     {
         using namespace miosix;
-        printf("[STACK %s] Abs: %d, Curr: %d, Size: %d\n", thread_name.c_str(), 
-                    (int)MemoryProfiling::getAbsoluteFreeStack(), 
-                    (int)MemoryProfiling::getCurrentFreeStack(), 
+        printf("[STACK %s] Abs: %d, Curr: %d, Size: %d\n", thread_name.c_str(),
+                    (int)MemoryProfiling::getAbsoluteFreeStack(),
+                    (int)MemoryProfiling::getCurrentFreeStack(),
                     (int)MemoryProfiling::getStackSize());
     }
 
diff --git a/src/shared/drivers/i2c/README.txt b/src/shared/drivers/i2c/README.txt
index adefb87098781deb73ebf30e175f1dd2672ff1ad..a281226dc1518b23808840bbeb4e8cac1583429f 100644
--- a/src/shared/drivers/i2c/README.txt
+++ b/src/shared/drivers/i2c/README.txt
@@ -1,2 +1,2 @@
 These files contain a patched version of the harware i2c driver shipped with miosix. The patch makes available the possibility to send another start without having sent a stop
-before (restart function, required by some sensors). Actually this driver CANNOT be integrated in miosix because it needs extensive testing
\ No newline at end of file
+before (restart function, required by some sensors). Actually this driver CANNOT be integrated in miosix because it needs extensive testing
diff --git a/src/shared/drivers/interrupt/external_interrupts.cpp b/src/shared/drivers/interrupt/external_interrupts.cpp
index 49f02786a79381ff262cc8bd56c79baa1f4df7f5..3b651f2079cae75d5f5841bab842ef983566551a 100644
--- a/src/shared/drivers/interrupt/external_interrupts.cpp
+++ b/src/shared/drivers/interrupt/external_interrupts.cpp
@@ -281,7 +281,7 @@ constexpr unsigned ConvertGPIO_BASEtoUnsiged(unsigned P)
 #if (defined (STM32F427xx) || defined (STM32F437xx) || defined (STM32F429xx) || defined (STM32F439xx))
             P == GPIOJ_BASE? 9 :
             P == GPIOK_BASE? 10 :
-#endif                
+#endif
             0;
     // clang-format on
 }
@@ -330,4 +330,4 @@ void enableExternalInterrupt(unsigned int gpio_port, unsigned int gpio_num,
 
     NVIC_EnableIRQ(static_cast<IRQn_Type>(GetEXTI_IRQn(gpio_num)));
     NVIC_SetPriority(static_cast<IRQn_Type>(GetEXTI_IRQn(gpio_num)), priority);
-}
\ No newline at end of file
+}
diff --git a/src/shared/drivers/spi/SPIBusInterface.h b/src/shared/drivers/spi/SPIBusInterface.h
index 6df087483225176e016a94e28c0e21565eafc1a6..7757298cde2105404d132297982136af7cce0204 100644
--- a/src/shared/drivers/spi/SPIBusInterface.h
+++ b/src/shared/drivers/spi/SPIBusInterface.h
@@ -106,10 +106,10 @@ struct SPIBusConfig
     {
         // Compare member-by-member
         // clang-format off
-        return  clock_div == other.clock_div 
+        return  clock_div == other.clock_div
              && mode == other.mode
              && bit_order == other.bit_order
-             && cs_setup_time_us == other.cs_setup_time_us 
+             && cs_setup_time_us == other.cs_setup_time_us
              && cs_setup_time_us == other.cs_hold_time_us;
         // clang-format on
     }
diff --git a/src/shared/drivers/spi/SPIDriver.h b/src/shared/drivers/spi/SPIDriver.h
index 0ffda2db6b51bd19c6708cd7675a55edab1ab726..7bdb64ef33a805b2d30628d81103aae1bc1ed63f 100644
--- a/src/shared/drivers/spi/SPIDriver.h
+++ b/src/shared/drivers/spi/SPIDriver.h
@@ -24,4 +24,4 @@
 
 #include "SPIBus.h"
 #include "SPIBusInterface.h"
-#include "SPITransaction.h"
\ No newline at end of file
+#include "SPITransaction.h"
diff --git a/src/shared/sensors/MAX6675/MAX6675.cpp b/src/shared/sensors/MAX6675/MAX6675.cpp
index 5a6cb826a0c03732e6538abbab9bfc3c899a47b9..637e9dc2ec0f4a84c467de242acc17f26deb784f 100644
--- a/src/shared/sensors/MAX6675/MAX6675.cpp
+++ b/src/shared/sensors/MAX6675/MAX6675.cpp
@@ -85,4 +85,4 @@ TemperatureData MAX6675::sampleImpl()
     return result;
 }
 
-}  // namespace Boardcore
\ No newline at end of file
+}  // namespace Boardcore
diff --git a/src/shared/sensors/MAX6675/MAX6675.h b/src/shared/sensors/MAX6675/MAX6675.h
index 44ab1d3016b275fa9b95b6b065f99c812b8b5858..39b4ad46bdea148f13c3608724e0a8c5b2c6f88d 100644
--- a/src/shared/sensors/MAX6675/MAX6675.h
+++ b/src/shared/sensors/MAX6675/MAX6675.h
@@ -70,4 +70,4 @@ private:
     PrintLogger logger = Logging::getLogger("max6675");
 };
 
-}  // namespace Boardcore
\ No newline at end of file
+}  // namespace Boardcore
diff --git a/src/tests/catch/catch-tests-entry.cpp b/src/tests/catch/catch-tests-entry.cpp
index 884991b3a857b5a9ed770b26dc21cba5842f0163..e7baa94c7bcfa421156c4395833f0ea85686758d 100644
--- a/src/tests/catch/catch-tests-entry.cpp
+++ b/src/tests/catch/catch-tests-entry.cpp
@@ -158,4 +158,4 @@ int main()
         Thread::sleep(10000);
     }
 #endif
-}
\ No newline at end of file
+}
diff --git a/src/tests/catch/examples/example-test-factorial.cpp b/src/tests/catch/examples/example-test-factorial.cpp
index c79f59cd58527855b4a1156a380c366d8c93ce67..fb1b850237713d0e41cb844bf0608bd4d20711bd 100644
--- a/src/tests/catch/examples/example-test-factorial.cpp
+++ b/src/tests/catch/examples/example-test-factorial.cpp
@@ -54,4 +54,4 @@ TEST_CASE("Factorials of 1 and higher are computed (pass)", "[single-file]")
     REQUIRE(Factorial(2) == 2);
     REQUIRE(Factorial(3) == 6);
     REQUIRE(Factorial(10) == 3628800);
-}
\ No newline at end of file
+}
diff --git a/src/tests/catch/test-aero.cpp b/src/tests/catch/test-aero.cpp
index c0b5043c90ed88810b262ceffd057a7ec1dd0fc8..67b12a0222adc53796f32ef223f2bbc7eb64dfd7 100644
--- a/src/tests/catch/test-aero.cpp
+++ b/src/tests/catch/test-aero.cpp
@@ -114,4 +114,4 @@ TEST_CASE("[AeroUtils] verticalSpeed")
         REQUIRE(verticalSpeed(p[i], dp_dt[i], 100129.4, 297.5) ==
                 target_v_speed);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/catch/test-buttonhandler.cpp b/src/tests/catch/test-buttonhandler.cpp
index 3630b3a97b8befd2b2479565531050c68e7d5ce2..53acedb3e167706402f1cd0662ba5fbacea3a1ed 100644
--- a/src/tests/catch/test-buttonhandler.cpp
+++ b/src/tests/catch/test-buttonhandler.cpp
@@ -215,4 +215,4 @@ TEST_CASE_METHOD(ButtonHandlerTestFixture,
     REQUIRE(short_press_count == 1);
     REQUIRE(long_press_count == 1);
     REQUIRE(very_long_press_count == 0);
-}
\ No newline at end of file
+}
diff --git a/src/tests/catch/test-circularbuffer.cpp b/src/tests/catch/test-circularbuffer.cpp
index 37f38c68fa32ea27aa206c63443637f175e33c59..0c5be77241145188a1d085194cb8414ea7c72ddb 100644
--- a/src/tests/catch/test-circularbuffer.cpp
+++ b/src/tests/catch/test-circularbuffer.cpp
@@ -378,4 +378,4 @@ TEST_CASE("SyncCircularBuffer - Get and pop")
         REQUIRE_FALSE(b1.isEmpty());
         REQUIRE(b1.count() == 5);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/catch/test-eventbroker.cpp b/src/tests/catch/test-eventbroker.cpp
index 4a87282a58f3e3b4162461f8693e8185c2c55171..be33c50564458d7ff2f648516ce65e776190100c 100644
--- a/src/tests/catch/test-eventbroker.cpp
+++ b/src/tests/catch/test-eventbroker.cpp
@@ -241,4 +241,4 @@ TEST_CASE_METHOD(EventBrokerTestFixture,
         REQUIRE_FALSE(expectEvent(EV_A, TOPIC_1, start + 1000, 2, broker));
         REQUIRE_FALSE(expectEvent(EV_A, TOPIC_2, start + 3000, 2, broker));
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/catch/test-hardwaretimer.cpp b/src/tests/catch/test-hardwaretimer.cpp
index c3e893b0f3be51458cc67c945833366a1f29dfa1..7c92656e6ea5d603ab8bc1165009e151b3d8f52f 100644
--- a/src/tests/catch/test-hardwaretimer.cpp
+++ b/src/tests/catch/test-hardwaretimer.cpp
@@ -124,4 +124,4 @@ TEST_CASE_METHOD(TimerTestFixture, "Test long term precision")
     Thread::sleep(36000);
 
     REQUIRE(timer32.toMilliSeconds(timer32.tick()) == Approx(60000).margin(1));
-}
\ No newline at end of file
+}
diff --git a/src/tests/catch/test-kalman-eigen.cpp b/src/tests/catch/test-kalman-eigen.cpp
index 423701cc7984b3d02aa05ca7eea4556e6d72d697..228688498aaacf7dfffceb56215c4b4e73ee9a1d 100644
--- a/src/tests/catch/test-kalman-eigen.cpp
+++ b/src/tests/catch/test-kalman-eigen.cpp
@@ -173,4 +173,4 @@ TEST_CASE("Update test")
 
         last_time = TIME[i];
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/catch/test-packetqueue.cpp b/src/tests/catch/test-packetqueue.cpp
index 968e1d90e7e4f167faef4ea1069ed59c95c55076..3f31eca380344725c1125f2905de30b7c49da8e4 100644
--- a/src/tests/catch/test-packetqueue.cpp
+++ b/src/tests/catch/test-packetqueue.cpp
@@ -334,4 +334,4 @@ TEST_CASE("PacketQueue tests")
         REQUIRE(pq.isEmpty());
         REQUIRE_FALSE(pq.isFull());
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/catch/test-sensormanager-catch.cpp b/src/tests/catch/test-sensormanager-catch.cpp
index def3867b539f2367ce08322127cf94a9403a07d3..5ae6462c5f2ea4029be94771a2f614104bc27b42 100644
--- a/src/tests/catch/test-sensormanager-catch.cpp
+++ b/src/tests/catch/test-sensormanager-catch.cpp
@@ -314,4 +314,4 @@ TEST_CASE_METHOD(SensorManagerFixture,
 
     SensorInfo valid_info = sensor_manager->getSensorInfo(&s2);
     REQUIRE(valid_info == s2_info);
-}
\ No newline at end of file
+}
diff --git a/src/tests/drivers/test-ads1118.cpp b/src/tests/drivers/test-ads1118.cpp
index 8bf7e92f2a15301fa21e2f23bb72c3bc3a254eae..53a0c0afa995d75fbbd8d2085f2a26570e7fc892 100644
--- a/src/tests/drivers/test-ads1118.cpp
+++ b/src/tests/drivers/test-ads1118.cpp
@@ -166,4 +166,4 @@ int main()
 
         printf("%.2f\n", ads1118.getVoltage(channel2).voltage);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/drivers/test-canbus.cpp b/src/tests/drivers/test-canbus.cpp
index 68996d7f0c4563d52cfc478921f438d19c5e16ab..acb84068cd2d48bd4c42b15fe9844a3bd80fc01d 100644
--- a/src/tests/drivers/test-canbus.cpp
+++ b/src/tests/drivers/test-canbus.cpp
@@ -67,4 +67,4 @@ int main()
         ledOff();
         Thread::sleep(150);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/drivers/test-hwtimer-chain.cpp b/src/tests/drivers/test-hwtimer-chain.cpp
index ac945b6a8c5b5510099213521b982fd8fa1f4384..b36cdaa384bc88c50d37b815f4429b8a75329fa7 100644
--- a/src/tests/drivers/test-hwtimer-chain.cpp
+++ b/src/tests/drivers/test-hwtimer-chain.cpp
@@ -63,4 +63,4 @@ int main()
     }
 
     return 0;
-}
\ No newline at end of file
+}
diff --git a/src/tests/drivers/test-internal-adc-dma.cpp b/src/tests/drivers/test-internal-adc-dma.cpp
index 3cfa3be204a75e1fbbb03b3f713bba8f7d05dcdd..0bb51085a2196c9c0369e3f77138cf6458855e8b 100644
--- a/src/tests/drivers/test-internal-adc-dma.cpp
+++ b/src/tests/drivers/test-internal-adc-dma.cpp
@@ -125,4 +125,4 @@ int main()
 
         miosix::delayMs(1000);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/drivers/test-internal-adc.cpp b/src/tests/drivers/test-internal-adc.cpp
index bbb33a11ff08ed19f812b61b3df43f1e0f9833eb..8ca8fe95e72bedbfda1d4d70393580356f9da688 100644
--- a/src/tests/drivers/test-internal-adc.cpp
+++ b/src/tests/drivers/test-internal-adc.cpp
@@ -58,4 +58,4 @@ int main()
 
         miosix::delayMs(1000);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/drivers/test-servo.cpp b/src/tests/drivers/test-servo.cpp
index 4449da5043b890ee5e357bdb672a987e8261315b..9db6b06859d58c5e8eb4afeea30398813dea658a 100644
--- a/src/tests/drivers/test-servo.cpp
+++ b/src/tests/drivers/test-servo.cpp
@@ -86,4 +86,4 @@ int main()
 
         Thread::sleep(5000);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/drivers/xbee/gui/res/respect.cpp b/src/tests/drivers/xbee/gui/res/respect.cpp
index d3dcd4580235e2118840496fa30fa064d5b8c66b..9f509c4a1d10c40ce240ddaac0fba002de41333c 100644
--- a/src/tests/drivers/xbee/gui/res/respect.cpp
+++ b/src/tests/drivers/xbee/gui/res/respect.cpp
@@ -7013,4 +7013,4 @@ static const unsigned short pixelData[] = {
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0};
 
-const basic_image<unsigned short> respect(height, width, pixelData);
\ No newline at end of file
+const basic_image<unsigned short> respect(height, width, pixelData);
diff --git a/src/tests/drivers/xbee/test-xbee-bidir.cpp b/src/tests/drivers/xbee/test-xbee-bidir.cpp
index 3d48acee0dd1b80e38eefa5f94f7ff74f41268d7..daa0488efd24df9685b7fc288daa40f72d6eff4f 100644
--- a/src/tests/drivers/xbee/test-xbee-bidir.cpp
+++ b/src/tests/drivers/xbee/test-xbee-bidir.cpp
@@ -264,4 +264,4 @@ int main()
         GpioLedLog::low();
         Thread::sleep(5000);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/drivers/xbee/test-xbee-gui.cpp b/src/tests/drivers/xbee/test-xbee-gui.cpp
index a88bac59a1cbe075865afbc47d8a0d90f916e8fe..c8cd2e4983aca0308820caed0cde5de8d9dc3670 100644
--- a/src/tests/drivers/xbee/test-xbee-gui.cpp
+++ b/src/tests/drivers/xbee/test-xbee-gui.cpp
@@ -368,4 +368,4 @@ void __attribute__((used)) EXTI5_IRQHandlerImpl()
     {
         xbee->handleATTNInterrupt();
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/drivers/xbee/test-xbee-rcv.cpp b/src/tests/drivers/xbee/test-xbee-rcv.cpp
index eae22c0a43e919f6d051a1cde1ce4111e292f89e..c3144c88b824c2d98be6c567a2ffa77a36ea4ef5 100644
--- a/src/tests/drivers/xbee/test-xbee-rcv.cpp
+++ b/src/tests/drivers/xbee/test-xbee-rcv.cpp
@@ -22,4 +22,4 @@
 
 #define RUN_SENDER false
 
-#include "test-xbee-bidir.cpp"
\ No newline at end of file
+#include "test-xbee-bidir.cpp"
diff --git a/src/tests/sensors/analog/test-analog-pressure-sensors.cpp b/src/tests/sensors/analog/test-analog-pressure-sensors.cpp
index 8e4fe782701bb235f197f1d072e0e3190f3c1c72..2cad7bea4b67717e2708304a642308a4126b2ccd 100644
--- a/src/tests/sensors/analog/test-analog-pressure-sensors.cpp
+++ b/src/tests/sensors/analog/test-analog-pressure-sensors.cpp
@@ -119,4 +119,4 @@ int main()
         printf("%.2f\t%.2f\n", ads1118.getVoltage(channel1).voltage,
                ads1118.getVoltage(channel2).voltage);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/sensors/analog/test-battery-voltage.cpp b/src/tests/sensors/analog/test-battery-voltage.cpp
index 3e198973bbb3affec5a9e3fd406bbbfa614142fd..2e98ad2e59ed473dc55749a182a62344b25b476f 100644
--- a/src/tests/sensors/analog/test-battery-voltage.cpp
+++ b/src/tests/sensors/analog/test-battery-voltage.cpp
@@ -95,4 +95,4 @@ int main()
             miosix::Thread::sleep(100);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/sensors/analog/test-current-sensor.cpp b/src/tests/sensors/analog/test-current-sensor.cpp
index 70b303cf169d1ec5bc52d86bab32e10f10746f41..bbf367d4b8c7a437775ec6a86d613671990e2085 100644
--- a/src/tests/sensors/analog/test-current-sensor.cpp
+++ b/src/tests/sensors/analog/test-current-sensor.cpp
@@ -98,4 +98,4 @@ int main()
             miosix::Thread::sleep(100);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/sensors/test-bme280.cpp b/src/tests/sensors/test-bme280.cpp
index 3ae0144952a4d06389e8f1dbb667def4c23039f5..057d765b0f2c138bd02640b55ce97588a05de7f7 100644
--- a/src/tests/sensors/test-bme280.cpp
+++ b/src/tests/sensors/test-bme280.cpp
@@ -126,4 +126,4 @@ int main()
 
         miosix::Thread::sleep(40);  // 25Hz
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/sensors/test-bmx160-with-correction.cpp b/src/tests/sensors/test-bmx160-with-correction.cpp
index f4a2c012abb1f5b974e79b1d76b56de7108d5052..213bc21576c9c4315bd8f4be6dc91393850ff58d 100644
--- a/src/tests/sensors/test-bmx160-with-correction.cpp
+++ b/src/tests/sensors/test-bmx160-with-correction.cpp
@@ -175,4 +175,4 @@ void bmx160Sample(void *args)
 
         miosix::Thread::sleep(1000 / UPDATE_RATE);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/sensors/test-bmx160.cpp b/src/tests/sensors/test-bmx160.cpp
index 6f9bbaba7bf2dd3b00ae61663a8b429363d7f655..a9aae401d1bf6baea8d429cb6c1ea5d0723d07c6 100644
--- a/src/tests/sensors/test-bmx160.cpp
+++ b/src/tests/sensors/test-bmx160.cpp
@@ -124,4 +124,4 @@ int main()
     }
 
     return 0;
-}
\ No newline at end of file
+}
diff --git a/src/tests/sensors/test-l3gd20-fifo.cpp b/src/tests/sensors/test-l3gd20-fifo.cpp
index 9d796be5e5486877a7b99e253220c18004600572..650ef12247323d1da9118da8bc913e17d3da2e14 100644
--- a/src/tests/sensors/test-l3gd20-fifo.cpp
+++ b/src/tests/sensors/test-l3gd20-fifo.cpp
@@ -232,14 +232,14 @@ int main()
     for (int i = 1; i < data_counter; i++)
     {
         // clang-format off
-        printf("%d,%llu,%llu,%llu,%llu,%f,%f,%f,%.2f\n", 
+        printf("%d,%llu,%llu,%llu,%llu,%f,%f,%f,%.2f\n",
                 data[i].fifo_num,
-                data[i].gyro.gyro_timestamp, 
+                data[i].gyro.gyro_timestamp,
                 data[i].wtm_delta,
                 data[i].update,
                 (data[i].gyro.gyro_timestamp - data[i - 1].gyro.gyro_timestamp),
-                data[i].gyro.gyro_x, 
-                data[i].gyro.gyro_y, 
+                data[i].gyro.gyro_x,
+                data[i].gyro.gyro_y,
                 data[i].gyro.gyro_z,
                 data[i].cpu);
         // clang-format on
diff --git a/src/tests/sensors/test-l3gd20.cpp b/src/tests/sensors/test-l3gd20.cpp
index 97bc30c556741e88388ba3cae5da61e70110c18a..ec806ae919d7f217d73e3be5ca4ce0c1cc81cda7 100644
--- a/src/tests/sensors/test-l3gd20.cpp
+++ b/src/tests/sensors/test-l3gd20.cpp
@@ -179,13 +179,13 @@ int main()
     for (int i = 1; i < data_counter; i++)
     {
         // clang-format off
-         printf("%d,%llu,%llu,%llu,%f,%f,%f,%.2f\n", 
+         printf("%d,%llu,%llu,%llu,%f,%f,%f,%.2f\n",
                 0,
-                data[i].timestamp, 
+                data[i].timestamp,
                 hrclock.toIntMicroSeconds(data[i].sample_delta),
                 (data[i].timestamp - data[i - 1].timestamp),
-                data[i].data.gyro_x, 
-                data[i].data.gyro_y, 
+                data[i].data.gyro_x,
+                data[i].data.gyro_y,
                 data[i].data.gyro_z,
                 data[i].cpu);
         // clang-format on
diff --git a/src/tests/sensors/test-lis3dsh.cpp b/src/tests/sensors/test-lis3dsh.cpp
index 5485e3bb691ccb497cee628f0e5533bd16440bc4..fbdba66a5a23f1b56c8986775ed9de8fae89e51b 100644
--- a/src/tests/sensors/test-lis3dsh.cpp
+++ b/src/tests/sensors/test-lis3dsh.cpp
@@ -129,4 +129,4 @@ int main()
     printf("\nLIS3DSH TEST OK ! \n");
 
     return 0;
-}
\ No newline at end of file
+}
diff --git a/src/tests/sensors/test-max6675.cpp b/src/tests/sensors/test-max6675.cpp
index b7a8410309feb1534d49c3c963be81fb9e600171..69ba7e6ad9777a628e9cc6f98279d29d9cffe062 100644
--- a/src/tests/sensors/test-max6675.cpp
+++ b/src/tests/sensors/test-max6675.cpp
@@ -66,4 +66,4 @@ int main()
         Thread::sleep(100);
     }
     return 0;
-}
\ No newline at end of file
+}
diff --git a/src/tests/sensors/test-mpu9250.cpp b/src/tests/sensors/test-mpu9250.cpp
index 4955d4dc6944d8c3a74e9c16b2d5a3d2274e04b6..f6a9bda4a58f9209b7b6571e5d90f872d0dea7d2 100644
--- a/src/tests/sensors/test-mpu9250.cpp
+++ b/src/tests/sensors/test-mpu9250.cpp
@@ -89,4 +89,4 @@ int main()
     }
 
     TRACE("Test completed\n");
-}
\ No newline at end of file
+}
diff --git a/src/tests/sensors/test-ms5803.cpp b/src/tests/sensors/test-ms5803.cpp
index d6e48031e94a1537a5d71178166ac2947cbeef6e..476bca4113897ea4abbb3eba4172ec7eb401f201 100644
--- a/src/tests/sensors/test-ms5803.cpp
+++ b/src/tests/sensors/test-ms5803.cpp
@@ -65,4 +65,4 @@ int main()
 
         Thread::sleep(10);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/test-eventinjector.cpp b/src/tests/test-eventinjector.cpp
index 6f73991fb7ca2e0e2ed335aae8255cf67f84838d..e251781c10f2afbc01e30ba78c2d991aff8edf95 100644
--- a/src/tests/test-eventinjector.cpp
+++ b/src/tests/test-eventinjector.cpp
@@ -48,4 +48,4 @@ int main()
                counter.getCount(counter.getLastEvent()));
         Thread::sleep(5000);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/test-interrupt.cpp b/src/tests/test-interrupt.cpp
index 8aee63326e3e7e675a498f8753b555fc6b8105ec..823f4cc3da91f535bb4698aaed7034ff073c28aa 100644
--- a/src/tests/test-interrupt.cpp
+++ b/src/tests/test-interrupt.cpp
@@ -51,4 +51,4 @@ int main()
         }
         Thread::sleep(50);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/test-pinobserver.cpp b/src/tests/test-pinobserver.cpp
index b608d78ff71e21fd6695929821c3ccb58fd32506..1fe87708a4f27d22bf72f4d84455860331c34b0e 100644
--- a/src/tests/test-pinobserver.cpp
+++ b/src/tests/test-pinobserver.cpp
@@ -91,4 +91,4 @@ int main()
     {
         Thread::sleep(10000);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/test-sensormanager.cpp b/src/tests/test-sensormanager.cpp
index b1db522125f347b5f43c9ba35f253d2370eb1b26..b4bb678920381ba67175647cfe58104d3a9c0991 100644
--- a/src/tests/test-sensormanager.cpp
+++ b/src/tests/test-sensormanager.cpp
@@ -280,4 +280,4 @@ int main()
         ;
 
     return 0;
-}
\ No newline at end of file
+}
diff --git a/src/tests/test-taskscheduler.cpp b/src/tests/test-taskscheduler.cpp
index 205e539cc4720c298760c361e76c671f631b3ee3..83a3a35f20b51bd15982483d066a0affbac7a0c9 100644
--- a/src/tests/test-taskscheduler.cpp
+++ b/src/tests/test-taskscheduler.cpp
@@ -61,4 +61,4 @@ int main()
         printf("end\n");
         Thread::sleep(5000);
     }
-}
\ No newline at end of file
+}
diff --git a/src/tests/test-timestamp-timer.cpp b/src/tests/test-timestamp-timer.cpp
index e2a23c33caaf19515b9fb092d86542a5de2ec4d8..be208fd49d0979f788fc12fa34fa8e6e5dc38303 100644
--- a/src/tests/test-timestamp-timer.cpp
+++ b/src/tests/test-timestamp-timer.cpp
@@ -38,4 +38,4 @@ int main()
 
         Thread::sleep(1000);
     }
-}
\ No newline at end of file
+}