Skip to content
This repository was archived by the owner on Apr 17, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
9c23c88
Merge remote-tracking branch 'origin/master' into develop
MrPointer Sep 12, 2018
93814f4
Refactored host's Linux dist detection to system initialization.
MrPointer Sep 12, 2018
d99c95b
Finish linux-dist-discovery
MrPointer Sep 12, 2018
ffa1d05
Bumped SDK version used in 'AppVeyor' and 'Travis' to 1.8.7.
MrPointer Sep 12, 2018
62b7f06
Finish sdk-1.6-compatibility
MrPointer Sep 12, 2018
5a1bd55
Fixed CMake's run path in 'travis' config file.
MrPointer Sep 14, 2018
b2ca2e9
Fixed problem with OS X - Builds failed because CMake was already in…
MrPointer Sep 14, 2018
a684a59
Added some more diagnostics for failed 'travis' builds
MrPointer Sep 14, 2018
1ef11f2
Added some more diagnostics for failed 'travis' builds
MrPointer Sep 14, 2018
ec96b0c
Fixed Arduino SDK download url for Linux in 'travis', was 32-bit inst…
MrPointer Sep 14, 2018
97798a6
Added 'Travis-CI' badge status to 'Readme'.
MrPointer Sep 14, 2018
bcfe1f2
Removed any 'brew' actions for OS X images in 'travis'.
MrPointer Sep 15, 2018
ec3033e
Merge remote-tracking branch 'origin/feature/travis-ci' into feature/…
MrPointer Sep 15, 2018
d0f642c
Added build cache in 'AppVeyor' for the Arduino SDK.
MrPointer Sep 15, 2018
7424d33
Refactored 'ARDUINO_SDK_PATH' env variable to 'environment' section i…
MrPointer Sep 15, 2018
f924b9d
Fixed a problem with the 'ARDUINO_SDK_PATH' env variable format.
MrPointer Sep 15, 2018
8990b78
Modified 'ARDUINO_SDK_PATH' entirely - Now resides directly under 'C:\'.
MrPointer Sep 15, 2018
851a487
Moved instruction appending MinGW's path to systems Path's to 'instal…
MrPointer Sep 15, 2018
2748f8f
Refactored 'AppVeyor' config, 'ARDUINO_SDK_PATH' is no longer hardcoded.
MrPointer Sep 15, 2018
10ffdd7
Restored cache dependency on the SDK version.
MrPointer Sep 15, 2018
7710a8e
Added check to ignore builds triggered by the 'feature/appveyor' bran…
MrPointer Sep 15, 2018
04a75ec
Merge pull request #7 from arduino-cmake/feature/travis-ci
MrPointer Sep 15, 2018
714a58d
Added check to ignore builds triggered by the 'feature/travis-ci' bra…
MrPointer Sep 15, 2018
4991c2e
Merge pull request #8 from arduino-cmake/feature/appveyor-ci
MrPointer Sep 15, 2018
d5d678a
Fix arduino sdk path finding issue
taoyuan Sep 17, 2018
0cdc53f
Skip sdk path fixing if no arduino installation found on MacOS
taoyuan Sep 18, 2018
676f245
Merge pull request #14 from taoyuan/develop
MrPointer Sep 18, 2018
f504bb6
Exported 'add_arduino_library' function to public API.
MrPointer Sep 18, 2018
04e9bf2
Added optional argument to `find_arduino_library` function.
MrPointer Sep 18, 2018
3e032cb
Merge branch 'feature/3rd-party-arduino-libs' into feature/sketchbook
MrPointer Sep 20, 2018
d87dc5e
Added feature to automatically find Sketchbook location if option is …
MrPointer Sep 20, 2018
b8e05c2
Added Sketchbook path to list of search paths used to find an arduino…
MrPointer Sep 20, 2018
7343ef8
Added feature to search for library-specific sources under a directory.
MrPointer Sep 20, 2018
5d6fc5c
Modified SDK-Finding process to find SDK's version file.
MrPointer Sep 20, 2018
f0eeab9
Added some missing docs to the `find_arduino_library` function.
MrPointer Sep 20, 2018
0c74536
Modified default policy of automatically finding Sketchbook to be dis…
MrPointer Sep 20, 2018
7d7427b
Merge pull request #18 from arduino-cmake/feature/3rd-party-arduino-libs
MrPointer Sep 20, 2018
ac8a988
Merge remote-tracking branch 'origin/feature/find-sdk-new-approach' i…
MrPointer Sep 20, 2018
0edcaca
Added cache support for 'travis' builds.
MrPointer Sep 20, 2018
d91fdbd
Fixed SDK base path for OS X builds.
MrPointer Sep 20, 2018
48edb36
Removed the `--strip-components` option from 'tar' command.
MrPointer Sep 20, 2018
d42826d
Merge pull request #20 from arduino-cmake/feature/sketchbook
MrPointer Sep 20, 2018
3e7d418
Added checks to avoid downloading SDK if cache has been applied.
MrPointer Sep 20, 2018
5a68d68
Reverted back to 'unzip' on OS X as Arduino doesn't support 'tar' for…
MrPointer Sep 20, 2018
268131f
Silenced 'unzip', modified unzipping logic for OS X builds.
MrPointer Sep 20, 2018
3958526
Updated SDK path for OS X builds.
MrPointer Sep 20, 2018
e2d4747
Ignored nested 'Wiki' repo.
MrPointer Sep 20, 2018
6a097e3
Merge pull request #24 from arduino-cmake/feature/travis-ci
MrPointer Sep 20, 2018
644b2f1
Modified library source-finding algorithm to match Arduino Specificat…
MrPointer Sep 20, 2018
d8e840e
Fixed platform libs bug completely.
MrPointer Sep 20, 2018
ee58a0c
Added feature to add all sources inside list of directories to target.
MrPointer Sep 21, 2018
b4eb4fe
Updated some function docs to include 'RECURSE' optional argument.
MrPointer Sep 21, 2018
f133186
Fixed bug in 'travis' config where SDK path on OS X is invalid when u…
MrPointer Sep 21, 2018
30e4236
Merge branch 'feature/travis-ci' into develop
MrPointer Sep 21, 2018
40245d1
Merge pull request #25 from arduino-cmake/feature/library-directory-l…
MrPointer Sep 21, 2018
c6c21cb
Merge remote-tracking branch 'origin/develop' into develop
MrPointer Sep 21, 2018
14e2015
Ignored nested 'Wiki' repo.
MrPointer Sep 20, 2018
01eaf98
Ignored nested 'Wiki' repo.
MrPointer Sep 20, 2018
7bff7bd
Silenced 'unzip' tool by adding '-q' flag.
MrPointer Sep 21, 2018
ef040bb
Reordered 'travis' excluded-branches check.
MrPointer Sep 21, 2018
1d047b2
Added check to ignore builds triggered by the 'feature/travis-ci' bra…
MrPointer Sep 15, 2018
b9f4e38
Reordered 'travis' excluded-branches check.
MrPointer Sep 21, 2018
ba1379d
Merge remote-tracking branch 'origin/feature/travis-ci' into develop
MrPointer Sep 21, 2018
3de14e1
Merge remote-tracking branch 'origin/feature/appveyor-ci' into develop
MrPointer Sep 21, 2018
0831a0d
Modified executable API to treat source files as unparsed arguments.
MrPointer Sep 21, 2018
be73811
Removed empty-sources provided to `add_arduino_executable` in various…
MrPointer Sep 21, 2018
e1eb024
Merge pull request #27 from arduino-cmake/feature/add-executable-fix
MrPointer Sep 21, 2018
0d7b2cc
Fix Arduino SDK automatically detection on OSX
taoyuan Sep 22, 2018
f6e08b4
Merge pull request #30 from taoyuan/develop
MrPointer Sep 22, 2018
49f68e4
Updated CI platforms logos
MrPointer Sep 22, 2018
7dd18ac
Fixed AppVeyor logo url
MrPointer Sep 22, 2018
3ee6753
Refactored '3rd-party-library' example to be more organized.
MrPointer Sep 23, 2018
34348fd
Added support for interface/header-only libraries through CMake's INT…
MrPointer Sep 23, 2018
57ff698
Completed missing linkage support for header-only libraries.
MrPointer Sep 23, 2018
76fcb99
Removed 'EnableInterrupt' 3rd-party library from example as it's badl…
MrPointer Sep 24, 2018
9513432
Added a header-only library example using dummy-created library.
MrPointer Sep 24, 2018
e180f9a
Completed support for header-only libraries - Code still needs refact…
MrPointer Sep 24, 2018
f1140d0
Inform user of missing dependencies
ooxi Sep 25, 2018
7d3a876
Started refactoring of libraries sub-system.
MrPointer Sep 25, 2018
b0df5ab
Refactored the entire library architecture processing logic.
MrPointer Sep 25, 2018
53280f0
Fixed bug in 'find_dependent_platform_libraries' function.
MrPointer Sep 25, 2018
e7d46d3
Refactored 'StringUtils' to be more readable.
MrPointer Sep 25, 2018
ada111e
Merge pull request #35 from ooxi/patch-2
MrPointer Sep 25, 2018
26b3981
Documented many new functions and renamed a few, all related to archi…
MrPointer Sep 25, 2018
3f2d66b
Removed code related to header-only-libraries, it belongs to another …
MrPointer Sep 25, 2018
36df836
Merge branch 'develop' into feature/header-only-lib
MrPointer Sep 25, 2018
ed09635
Merge pull request #36 from arduino-cmake/feature/header-only-lib
MrPointer Sep 25, 2018
2e66839
Merge branch 'develop' into feature/lib-arch-refactor
MrPointer Sep 25, 2018
641cc97
Added-back header-only related code to `find_library` API.
MrPointer Sep 25, 2018
08f8702
Refactored the 'ArduinoCMakeLibraryTarget' module.
MrPointer Sep 25, 2018
ee41ec7
Added utility function to parse scope arguments of a function.
MrPointer Sep 25, 2018
83ca465
Added utility function to parse sources from cmake's unparsed arguments.
MrPointer Sep 26, 2018
1ddf71f
Updated `add_arduino_library` function to use new argument parsing ut…
MrPointer Sep 26, 2018
0720c5d
Added utility function to get common root directory of sources.
MrPointer Sep 26, 2018
e9f7edb
Removed the need for the 'library_root_dir' argument in all functions.
MrPointer Sep 26, 2018
5c2d905
Updated header-only library API to use new argument parsing function …
MrPointer Sep 26, 2018
4e71924
Reordered scope argument-parsing function's arguments - Return var is…
MrPointer Sep 26, 2018
4e3a9e3
Separated crooked list-initialization technique from source argument …
MrPointer Sep 26, 2018
f4ab16c
Added utility-helper function to consume reserved arguments before pa…
MrPointer Sep 26, 2018
67307b6
Merge pull request #38 from arduino-cmake/feature/lib-refactor
MrPointer Sep 26, 2018
eef24be
Modified `find_arduino_library` function to search for library's root…
MrPointer Sep 26, 2018
1f975f2
Removed the 'LIB_PROPS_FILE' optional argument from `add_arduino_libr…
MrPointer Sep 26, 2018
f2ba759
Lower-cased library targets names in 3rd-party example, by convention.
MrPointer Sep 26, 2018
aee9326
Added cmake's current source dir and project dir to library search pa…
MrPointer Sep 26, 2018
a7eda7f
Fixed bug where 'utility' sub-dir hasn't been searched for sources/he…
MrPointer Sep 26, 2018
cbfebf9
Merge pull request #39 from arduino-cmake/feature/find-lib-alternative
MrPointer Sep 26, 2018
a2343c5
Updated markdown documents.
MrPointer Sep 28, 2018
dce9d27
Removed `LANGUAGES` option from cmake `project` call in all examples.
MrPointer Sep 28, 2018
5c7f5e8
Updated some more markdown documents.
MrPointer Sep 28, 2018
d581c33
Fixed bug where wrong variable has been used to check if library was …
MrPointer Sep 29, 2018
330dd79
Added 'QUIET' option to `find_arduino_library` function allowing safe…
MrPointer Sep 29, 2018
b49c5a5
Fixed bug where only a single sketch was read from list to add to tar…
MrPointer Sep 29, 2018
5405d62
Fixed bug caused by previous bug-fix regarding sketch conversion.
MrPointer Sep 29, 2018
8b83613
Updated 'Installation' section in 'Readme'.
MrPointer Oct 3, 2018
60f3db7
Modified Core-Lib target compiler flags scope to 'PUBLIC'.
MrPointer Oct 3, 2018
79bb090
Modified compiler-flags policy to use all languages if none is explic…
MrPointer Oct 3, 2018
b46b7fa
Merge remote-tracking branch 'origin/feature/c-flags-fix' into releas…
MrPointer Oct 5, 2018
b17bc64
Merge branch 'master' into release/v0.6
MrPointer Oct 5, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -120,4 +120,6 @@ fabric.properties
[Aa]ssets/*
/examples/blink-example/Blink.cpp
/examples/servo-knob-example/Knob.cpp
/examples/sketch/sketch.cpp
/examples/sketch/sketch1.cpp
/examples/sketch/sketch2.cpp
/docs/wiki
50 changes: 32 additions & 18 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,40 +3,54 @@ os:
- linux
- osx
env:
- ARDUINO_SDK_VERSION=1.6.10
- ARDUINO_SDK_VERSION=1.8.6
global:
- ARDUINO_SDK_BASE_PATH=arduino-sdk/arduino
matrix:
- ARDUINO_SDK_VERSION=1.6.10
- ARDUINO_SDK_VERSION=1.8.7
cache:
directories:
- $HOME/$ARDUINO_SDK_BASE_PATH-$ARDUINO_SDK_VERSION
if: branch != feature/appveyor-ci
addons:
apt:
packages:
- gcc-avr
- binutils-avr
- avr-libc
- avrdude
- cmake
before_install:
- sdk_path="$HOME/$ARDUINO_SDK_BASE_PATH-$ARDUINO_SDK_VERSION"
- mkdir -p "$sdk_path"
- cd "$sdk_path/../.." # Get one level above 'arduino-sdk'
- |
if [[ $TRAVIS_OS_NAME == linux ]]; then
export ARDUINO_SDK_FILE="arduino-$ARDUINO_SDK_VERSION-linux32.tar.xz"
else
export ARDUINO_SDK_FILE="arduino-$ARDUINO_SDK_VERSION-macosx.zip"
brew install cmake
if [[ -z "$(ls -A "$sdk_path")" ]];
then
if [[ $TRAVIS_OS_NAME == linux ]]; then
sdk_file="arduino-$ARDUINO_SDK_VERSION-linux64.tar.xz"
else
sdk_file="arduino-$ARDUINO_SDK_VERSION-macosx.zip"
fi
wget "https://downloads.arduino.cc/$sdk_file" -O "$sdk_file"
if [[ $TRAVIS_OS_NAME == linux ]]; then
tar -xf "$sdk_file" -C arduino-sdk
else
unzip -q "$sdk_file"
mv Arduino.app/* arduino-sdk/arduino-$ARDUINO_SDK_VERSION
fi
fi
- wget "https://downloads.arduino.cc/$ARDUINO_SDK_FILE" -O "$ARDUINO_SDK_FILE"
- mkdir arduino-sdk
- |
if [[ $TRAVIS_OS_NAME == linux ]]; then
tar xf "$ARDUINO_SDK_FILE" -C arduino-sdk --strip-components 1
export ARDUINO_SDK_PATH="$(pwd)/arduino-sdk"
else
unzip "$ARDUINO_SDK_FILE" "Arduino.app/Contents/Java/*" -d arduino-sdk
export ARDUINO_SDK_PATH="$(pwd)/arduino-sdk/Arduino.app/Contents/Java"
if [[ $TRAVIS_OS_NAME == osx ]]; then
sdk_path="$sdk_path/Contents/Java"
fi
- export ARDUINO_SDK_PATH="$sdk_path"
install:
- cd "$TRAVIS_BUILD_DIR"
- mkdir build
- rm -rf build/*
- cd build/
script:
- cmake -D CMAKE_TOOLCHAIN_FILE="../cmake/Arduino-Toolchain.cmake" ..
- cmake -D CMAKE_TOOLCHAIN_FILE="../cmake/Arduino-Toolchain.cmake" ../examples
- make
after_script:
after_failure:
- cat CMakeFiles/CMakeOutput.log
7 changes: 5 additions & 2 deletions AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@

This files lists all the authors of this project that helped it grow by adding code, fixing bugs, etc.

- Tomasz Bogdal ([queezythegreat - Original author of **Arduino-CMake**)
- Timor Gruber ([MrPointer](https://github.com/MrPointer) - Author of **Arduino-CMake 3**, Current Maintainer)
- [Tomasz Bogdal](https://github.com/queezythegreat) - Original author of **Arduino-CMake**
- [Timor Gruber](https://github.com/MrPointer) - Author of **Arduino-CMake-NG**, Current Maintainer
- [Tao Yuan](https://github.com/taoyuan)
- [Mike Machado](https://github.com/machadolab)
- [ooxi](https://github.com/ooxi)

There are many other authors who have contributed to the various forks and versions, work which couldn't be done without them.

Expand Down
78 changes: 64 additions & 14 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,59 @@
# Change Log

## Version 0.6

This is a **BIG** version including numerous bug fixes, changes and even some new features.
It mostly addressed *3rd Party Libraries*.

### New Features

* 3rd Party Arduino libraries can now be manually added from any path using the `add_arduino_library` function or automatically found using the `find_arduino_library` function.
To use the *find API*, the `3RD_PARTY` argument option should be passed to the function.

* Header-only Arduino libraries are now supported - They can be manually added using the `add_arduino_header_only_library` function or automatically found using the `find_arduino_library` function.
To use the *find API*, the`HEADER_ONLY` argument option should be pass to the function.

* Full Arduino IDE *Sketchbook* support - Libraries, examples and sketches can be optionally searched there as well.
The framework can also automatically find the *Sketchbook Location*, however, this is disabled by default, what also means that unless set otherwise, the framework ***doesn't search the sketchbook*** - This policy is set due to the unwanted dependency on the Arduino IDE for this feature to fully work.
Further information can be found in the documentation.
* Many improvements to the CI platforms **AppVeyor** and **Travis CI**, including:
* Cached builds - Decreased build time significantly
* Improved control-flow and readability

### Bug Fixes

* All functions that were expecting a theoretically "unlimited" list of sources to operate on, such as `add_arduino_executable`, `add_arduino_library` etc. couldn't parse more than one file which also was the first.
* The `Linux-Dist-Detection` module didn't check whether the required dependencies for the detection are installed.
* 3rd Party libraries that don't include a **library.properties** file couldn't be used.
* 3rd Party libraries have been renamed to an "Arduino-Compliant" name when attempting to find them using the `find_arduino_library` function, which renamed them to an invalid name.
* 3rd Party libraries that have been added using custom CMake logic (Calls to `add_library`) didn't get any of the build flags that every Arduino library has to have.
* The framework couldn't automatically find the Arduino SDK on OS X images.

### Changes

* Updated project's workflow model, which mostly modifies the development branch from now on to be the **master** branch, instead of **develop**. More can be read in the **CONTRIBUTING.md** file.

* The `Find-SDK` module now searches for the **version.txt** file under a sub-directory named **lib**, which resides directly under SDK's root path. This file's path is common across all OSs, unlike the previously searched **arduino** program.

* The `find_arduino_library` function now searches under the following paths:

* `ARDUINO_SDK_LIBRARIES_PATH` - Usually the **libraries** directory under the SDK's root directory
* *Sketchbook Location* - **Arduino IDE**'s *Sketchbook* path, storing all user-downloaded libraries
* `CMAKE_CURRENT_SOURCE_DIRECTORY` - The directory in which the executed **CMakeLists.txt** file resides, i.e. Project's source directory
* `PROJECT_SOURCE_DIR` - The directory in which the **CMakeLists.txt** file that sets the `project` resides.

Besides, the following sub-directories are searched under every path mentioned above:

- **libraries**
- **dependencies**

* 3rd Party Arduino Libraries do not longer have to include the **library.properties** file in their root directory - Their root directory is searched instead.
Nevertheless including the file is still ***recommended***, because when the file isn't present, the framework can't infer potentially required metadata from it.

## Version 0.5.2

This version adds case-insensitive support for examples, forgotten in the last version.
Fixes a bug in Core-Lib target creation on Debian/Ubuntu systems, and adds support for **AppVeyor** CI.
This version adds case-insensitive support for examples, forgotten in the last version.
Fixes a bug in Core-Lib target creation on Debian/Ubuntu systems, and adds support for **AppVeyor** CI.

But most importantly - It changes the way users should supply a custom SDK location.

Expand All @@ -23,7 +73,7 @@ But most importantly - It changes the way users should supply a custom SDK locat

## Version 0.5.1

This version fixes some "invisible" bugs from previous versions, along with general design improvements.
This version fixes some "invisible" bugs from previous versions, along with general design improvements.
Moreover, there are even some new minor features.

### New Features
Expand All @@ -48,7 +98,7 @@ This version refactored the Sketch API entirely to enhance support for missing f

- Headers included in a sketch file are now resolved to provide better insight
- Arduino/Platform libraries that are resolved from a sketch's headers are linked to the target
- Option/Policy to "forcefully" convert a sketch to a source file when adding it to a target, even if the source file already exists (Usually means that sketch has already been converted).
- Option/Policy to "forcefully" convert a sketch to a source file when adding it to a target, even if the source file already exists (Usually means that sketch has already been converted).
By default it's set to **OFF**.

### Changes
Expand All @@ -74,15 +124,15 @@ This version mostly added support for examples and sketches.

* Arduino examples such as **Blink** can now be used by calling the `add_arduino_example` function
* Arduino library examples, each being part of an Arduino library, can also be used by calling the `add_arduino_library_example` function
* Arduino Sketches can be converted into source files under the project's source directory.
* Arduino Sketches can be converted into source files under the project's source directory.
The API to use them seamlessly as using examples is still missing, however.
* During platform initialization the main header of the platform gets selected.
This is useful for sketch conversion, as sketches usually don't include the header in their source files but depend on the **Arduino IDE** to do so instead.
* During platform initialization the main header of the platform gets selected.
This is useful for sketch conversion, as sketches usually don't include the header in their source files but depend on the **Arduino IDE** to do so instead.
The header is selected based on the number of `#include` lines it has - The header with most includes is selected as platform's main header, as it probably includes many other platform headers.

### Changes

* The API of the utility function `list_replace` now resembles CMake's List API.
* The API of the utility function `list_replace` now resembles CMake's List API.
It's also a macro now instead of a function.
* Improved logic and performance of utility `increment` and `decrement` math functions

Expand All @@ -102,17 +152,17 @@ This version added support for Arduino libraries and platform libraries.

* Arduino libraries can be found by calling `find_arduino_library` and then linked to another target by calling `link_arduino_library`
* The library search process is architecture-aware, meaning that only sources that match the platform's architecture will be included in the library target
* Arduino platform libraries can be simply linked to another target by calling `link_platform_library`.
* Arduino platform libraries can be simply linked to another target by calling `link_platform_library`.
There's no special search process for platform libraries as there is for Arduino libraries.

## Version 0.2

This version added support for the **Core Library** - A static library built from the platform's core sources that must be linked to every single target in the Arduino build system, including libraries in the future.
This version added support for the **Core Library** - A static library built from the platform's core sources that must be linked to every single target in the Arduino build system, including libraries in the future.
This library is also the missing piece for getting correct program sizes, which hasn't been the case up until now.

### New Features

* The Core Library is added once per board (As a board has a single associated core) and linked against every created target.
* The Core Library is added once per board (As a board has a single associated core) and linked against every created target.
This behavior is internal and not up to the control of the user, much like a Kernel.

### Changes
Expand All @@ -128,13 +178,13 @@ This version added support for displaying a program's size upon build completion

### New Features

* Program size output for every executable target at the end of each successful build.
This is done using Arduino's **avr-size** tool.
* Program size output for every executable target at the end of each successful build.
This is done using Arduino's **avr-size** tool.
The tool's output is then reformatted to match the format of Arduino IDE.

## Version 0.1

This is the bare metal version of the framework, adding support for the very basic stuff.
This is the bare metal version of the framework, adding support for the very basic stuff.
Although basic, there's a lot that had to be done in order to reach a somewhat "stable" version that can be burned to the board and actually work.

### Features
Expand Down
Loading