diff --git a/etc/cmake/Findlibbson-1.0.cmake b/etc/cmake/Findlibbson-1.0.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..e1f1df468c48dc8a7d44ba8328958fac8171a7e8
--- /dev/null
+++ b/etc/cmake/Findlibbson-1.0.cmake
@@ -0,0 +1,48 @@
+# see https://github.com/intersvyaz/zerod/blob/master/cmake/modules/FindLibbson.cmake
+# - Find libbson
+# Find the native libbson includes and library.
+# Once done this will define
+#
+#  LIBBSON_INCLUDE_DIRS - where to find bson.h, etc.
+#  LIBBSON_LIBRARIES    - List of libraries when using libbson.
+#  LIBBSON_FOUND        - True if libbson found.
+#
+#  LIBBSON_VERSION_STRING - The version of libbson found (x.y.z)
+#  LIBBSON_VERSION_MAJOR  - The major version
+#  LIBBSON_VERSION_MINOR  - The minor version
+#  LIBBSON_VERSION_MICRO  - The micro version
+
+FIND_PATH(LIBBSON_INCLUDE_DIR NAMES bson.h PATH_SUFFIXES libbson-1.0)
+FIND_LIBRARY(LIBBSON_LIBRARY  NAMES bson-1.0)
+
+MARK_AS_ADVANCED(LIBBSON_LIBRARY LIBBSON_INCLUDE_DIR)
+
+IF(LIBBSON_INCLUDE_DIR AND EXISTS "${LIBBSON_INCLUDE_DIR}/bson-version.h")
+    # Read and parse version header file for version number
+    file(READ "${LIBBSON_INCLUDE_DIR}/bson-version.h" _libbson_HEADER_CONTENTS)
+    IF(_libbson_HEADER_CONTENTS MATCHES ".*BSON_MAJOR_VERSION.*")
+                                #define BSON_MAJOR_VERSION
+        string(REGEX REPLACE ".*#define +BSON_MAJOR_VERSION +\\(([0-9]+)\\).*" "\\1" LIBBSON_VERSION_MAJOR "${_libbson_HEADER_CONTENTS}")
+        string(REGEX REPLACE ".*#define +BSON_MINOR_VERSION +\\(([0-9]+)\\).*" "\\1" LIBBSON_VERSION_MINOR "${_libbson_HEADER_CONTENTS}")
+        string(REGEX REPLACE ".*#define +BSON_MICRO_VERSION +\\(([0-9]+)\\).*" "\\1" LIBBSON_VERSION_MICRO "${_libbson_HEADER_CONTENTS}")
+    ELSE()
+       SET(LIBBSON_VERSION_MAJOR 0)
+       SET(LIBBSON_VERSION_MINOR 0)
+       SET(LIBBSON_VERSION_MICRO 0)
+    ENDIF()
+
+    SET(LIBBSON_VERSION_STRING "${LIBBSON_VERSION_MAJOR}.${LIBBSON_VERSION_MINOR}.${LIBBSON_VERSION_MICRO}")
+ENDIF()
+
+# handle the QUIETLY and REQUIRED arguments and set LIBBSON_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(libbson-1.0
+    REQUIRED_VARS LIBBSON_LIBRARY LIBBSON_INCLUDE_DIR
+    VERSION_VAR LIBBSON_VERSION_STRING
+)
+
+IF(LIBBSON_FOUND)
+    SET(LIBBSON_INCLUDE_DIRS ${LIBBSON_INCLUDE_DIR})
+    SET(LIBBSON_LIBRARIES ${LIBBSON_LIBRARY})
+ENDIF()
diff --git a/etc/cmake/Findlibmongoc-1.0 b/etc/cmake/Findlibmongoc-1.0
new file mode 100644
index 0000000000000000000000000000000000000000..594e87aeadc5cb31066934b8ad48dfa25ac29f8e
--- /dev/null
+++ b/etc/cmake/Findlibmongoc-1.0
@@ -0,0 +1,47 @@
+# see https://github.com/intersvyaz/freeradius-mongodb/blob/master/cmake/modules/FindLibmongoc.cmake
+# - Find libmongoc
+# Find the native libmongoc includes and library.
+# Once done this will define
+#
+#  LIBMONGOC_INCLUDE_DIRS - where to find mongoc.h, etc.
+#  LIBMONGOC_LIBRARIES    - List of libraries when using libmongoc.
+#  LIBMONGOC_FOUND        - True if libmongoc found.
+#
+#  LIBMONGOC_VERSION_STRING - The version of libmongoc found (x.y.z)
+#  LIBMONGOC_VERSION_MAJOR  - The major version
+#  LIBMONGOC_VERSION_MINOR  - The minor version
+#  LIBMONGOC_VERSION_MICRO  - The micro version
+
+FIND_PATH(LIBMONGOC_INCLUDE_DIR NAMES mongoc.h PATH_SUFFIXES libmongoc-1.0)
+FIND_LIBRARY(LIBMONGOC_LIBRARY  NAMES mongoc-1.0)
+
+MARK_AS_ADVANCED(LIBMONGOC_LIBRARY LIBMONGOC_INCLUDE_DIR)
+
+IF(LIBMONGOC_INCLUDE_DIR AND EXISTS "${LIBMONGOC_INCLUDE_DIR}/mongoc-version.h")
+    # Read and parse version header file for version number
+    file(READ "${LIBMONGOC_INCLUDE_DIR}/mongoc-version.h" _libmongoc_HEADER_CONTENTS)
+    IF(_libmongoc_HEADER_CONTENTS MATCHES ".*MONGOC_MAJOR_VERSION.*")
+        string(REGEX REPLACE ".*#define +MONGOC_MAJOR_VERSION +\\(([0-9]+)\\).*" "\\1" LIBMONGOC_VERSION_MAJOR "${_libmongoc_HEADER_CONTENTS}")
+        string(REGEX REPLACE ".*#define +MONGOC_MINOR_VERSION +\\(([0-9]+)\\).*" "\\1" LIBMONGOC_VERSION_MINOR "${_libmongoc_HEADER_CONTENTS}")
+        string(REGEX REPLACE ".*#define +MONGOC_MICRO_VERSION +\\(([0-9]+)\\).*" "\\1" LIBMONGOC_VERSION_MICRO "${_libmongoc_HEADER_CONTENTS}")
+    ELSE()
+       SET(LIBMONGOC_VERSION_MAJOR 0)
+       SET(LIBMONGOC_VERSION_MINOR 0)
+       SET(LIBMONGOC_VERSION_MICRO 0)
+    ENDIF()
+
+    SET(LIBMONGOC_VERSION_STRING "${LIBMONGOC_VERSION_MAJOR}.${LIBMONGOC_VERSION_MINOR}.${LIBMONGOC_VERSION_MICRO}")
+ENDIF()
+
+# handle the QUIETLY and REQUIRED arguments and set LIBMONGOC_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Libmongoc
+    REQUIRED_VARS LIBMONGOC_LIBRARY LIBMONGOC_INCLUDE_DIR
+    VERSION_VAR LIBMONGOC_VERSION_STRING
+)
+
+IF(LIBMONGOC_FOUND)
+    SET(LIBMONGOC_INCLUDE_DIRS ${LIBMONGOC_INCLUDE_DIR})
+    SET(LIBMONGOC_LIBRARIES ${LIBMONGOC_LIBRARY})
+ENDIF()
diff --git a/etc/mongocxx/install_mongocxx.sh b/etc/mongocxx/install_mongocxx.sh
new file mode 100755
index 0000000000000000000000000000000000000000..feb912d3b34eda393e95c7c4f9a6cb207961713a
--- /dev/null
+++ b/etc/mongocxx/install_mongocxx.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# By Fabian Peller 2021-06-10;
+
+if [ "$#" -ne 1 ]; then
+  echo "Usage: $0 CLONE-DIRECTORY" >&2
+  exit 1
+fi
+
+extractDir="$1"
+sourceDir="$extractDir/mongo-cxx-driver-r3.2.1"
+installDir="$extractDir/mongo-cxx-driver-r3.2.1/build/install"
+scriptDir="$(readlink -f "$(dirname "$0")")"
+pwd="$(pwd)"
+
+# You first have to install libbson-dev and libmongoc-dev (not necessary on the lab pcs)
+#sudo apt install libbson-dev libmongoc-dev
+
+# Then you have to update the symlinks (not necessary on the lab pcs)
+# Update the symlinks because the default mongoc bson cmake configs are shitty
+#sudo ln -s /usr/include/libbson-1.0/ /usr/lib/include/libbson-1.0
+#sudo ln -s /usr/include/libbson-1.0/ /usr/lib/include/libbson-1.0
+#sudo ln -s /usr/include/libmongoc-1.0/ /usr/lib/include/libmongoc-1.0
+#sudo ln -s /usr/lib /usr/lib/lib
+
+# Then you can build the mongocxx driver
+mkdir $extractDir &> /dev/null || true
+tar -xvf mongo-cxx-driver-r3.2.1.tar.gz -C $extractDir
+cd $sourceDir
+mkdir build &> /dev/null || true
+cd build
+cmake ..
+cmake .. -DBSON_LIBRARY="/usr/lib/x86_64-linux-gnu/libbson-1.0.so" -DMONGOC_LIBRARY="/usr/lib/x86_64-linux-gnu/libmongoc-1.0.so" -DCMAKE_INSTALL_PREFIX="$installDir"
+# install to $extractDir/build/install
+make -j`nproc`
+make install
+
+# Finally, tell RobotAPI where to find mongocxx
+echo "You need to cmake RobotAPI now with: cmake -DCMAKE_PREFIX_PATH=$installDir .."
+#armarx-dev exec --no-deps RobotAPI "cd build && cmake -DCMAKE_PREFIX_PATH=$installDir ."
diff --git a/etc/mongocxx/mongo-cxx-driver-r3.2.1.tar.gz b/etc/mongocxx/mongo-cxx-driver-r3.2.1.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..c7ce0e9b587972ef723eaaf04dbdb49d7ffe5888
Binary files /dev/null and b/etc/mongocxx/mongo-cxx-driver-r3.2.1.tar.gz differ