Design Tools And Laboratory Engineering (2026)#

Get And Initialize Project (SRCDIR)#

In your home directory (pwd to find out where yo are, cd ~ if that is not your home), clone the project from upstream.

$ git clone https://github.com/jfasch/DTLE-2026.git

This has created a directory,

$ ls -l
...
drwxr-xr-x. 1 student student 236 Oct  1 15:17 DTLE-2026
...

cd into that directory,

$ cd DTLE-2026/

Initialize the project’s submodules (we use googletest for testing),

$ git submodule update --init --recursive

Build Project (BUILDDIR)#

Create a dedicated build directory, best as a subdirectory of your home directory, and change into it.

$ mkdir ~/DTLE-2026-build
$ cd ~/DTLE-2026-build

Run cmake to generate a build tree from the information that it finds in the source directory’s CMakeLists.txt.

$ cmake ~/DTLE-2026

Run make to actually build the project.

$ make

Test Project (BUILDDIR)#

In the build directory, run the firmware. When all is well, the run looks like this:

$ ./firmware/DTLE-2026-firmware
--*------
-----*---
--------*
--*------
-----*---
--------*
--*------
...

If the output looks different (it will), then run the tests and see if they pass (they won’t). A test run that passes look like this:

$ ./tests/DTLE-2026-tests
[==========] Running 3 tests from 3 test suites.
[----------] Global test environment set-up.
[----------] 1 test from led_tests
[ RUN      ] led_tests.basic
[       OK ] led_tests.basic (0 ms)
[----------] 1 test from led_tests (0 ms total)

[----------] 1 test from sensor_tests
[ RUN      ] sensor_tests.basic
[       OK ] sensor_tests.basic (0 ms)
[----------] 1 test from sensor_tests (0 ms total)

[----------] 1 test from controller_tests
[ RUN      ] controller_tests.basic
[       OK ] controller_tests.basic (0 ms)
[----------] 1 test from controller_tests (0 ms total)

[----------] Global test environment tear-down
[==========] 3 tests from 3 test suites ran. (0 ms total)
[  PASSED  ] 3 tests.

Fix Project (SRCDIR, BUILDDIR)#

Look at the test output, and identify the failure. Fix the bug [1] until the tests run, and the firmware has the desired output.

Submit Fix (SRCDIR)#

We now create a compressed archive, submission.tar.gz, of the source directory only, and submit that to moodle.

From the parent directory of SRCDIR (your home directory if you followed the instructions),

$ cd ~              # ensure that you are at home
$ tar --exclude .git -zcf submission.tar.gz DTLE-2026

Submit the file to the submission folder in Moodle.

Footnotes