diff --git a/.gitignore b/.gitignore
index 567609b1234a9b8806c5a05da6c866e480aa148d..c9c7bf9b0b6ce6211d145f7f714a9dec0e807f70 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 build/
+card10.bin
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c6ee1a7759b301311005268d8cccfc1fc84953d4
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,35 @@
+image: "debian"
+
+build:
+    stage: build
+    before_script:
+        - apt update -qq && apt install -y -qq gcc-arm-none-eabi python-pip
+        - pip install crc16
+    script:
+        - cd bootloader
+        - make
+        - cd ..
+        - cd Hello_World
+        - ./build_image
+        - cd ..
+        - cd Hello_World_FreeRTOS
+        - ./build_image
+        - cd ..
+        - cd ble
+        - ./build_image
+        - cd ..
+        - cd bmatest
+        - ./build_image
+        - cd ..
+        - cd bmetest
+        - ./build_image
+        - cd ..
+        - cd ecgtest
+        - ./build_image
+        - cd ..
+        - cd imutest
+        - ./build_image
+        - cd ..
+        - cd ips
+        - ./build_image
+        - cd ..
diff --git a/README.md b/README.md
index d7946e225ceed43d2785fa29c4b2643112fb3d89..ccd33641e315c11b48c6ac0fa96eb7ca35d123f1 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,9 @@ This allows gdb to use our .gdbinit files without specifying them on the command
 ### OpenOCD
 If you want to debug code or replace the bootloader, you need OpenOCD and GDB.
 
-Get OpenOCD from [Maxim](https://github.com/maximmbed/openocd) and checkout the `max32xxx` branch. Build using `./configure` and 'make'. Make sure that the `CMSIS-DAP Compliant Debugger` is set to `yes(auto)` after running `./configure` (you might need to install libusb and other USB related libaries).
+Get OpenOCD from [Maxim](https://github.com/maximmbed/openocd) and checkout the `max32xxx` branch. Run `git submodule update --init`.
+Build using `./bootstrap`, `./configure` and 'make'. Make sure that the `CMSIS-DAP Compliant Debugger` is set to `yes(auto)` after running `./configure` (you might need to install libusb and other USB related libaries).
+If you get errors making the documentation you can `touch doc/openocd.info` to skip it and continue with 'make'.
 
 Please run `make install` after removing any already installed OpenOCD version. Otherwise please always specify the full path to openocd (the binary is under `src/openocd`, when calling `openocd`.
 
diff --git a/ble/card10.bin b/ble/card10.bin
deleted file mode 100755
index cd36d5a1e2ba6831faf14db9728359de670c688b..0000000000000000000000000000000000000000
Binary files a/ble/card10.bin and /dev/null differ