diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e77dc052869e8c289d4b9caca3ca518d2a2ab801..69190f24460f704fdcdc0641c1dc9018f010b882 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -31,25 +31,88 @@ stages:
     - synthesis
     - hardware
 
-lint-vhdl-libraries:
+lint-vhdl-lib-base:
     tags:
         - hdl
     stage: linting
     allow_failure: true
     before_script:
-        - DEBIAN_FRONTEND=noninteractive apt-get update
-        - DEBIAN_FRONTEND=noninteractive apt-get install -y python3 python3-pip python3-ipython
         - pip3 install vsg --use-pep517
     script:
-        - cd libraries
-        - find . -name "*.vhd" -exec vsg -f {} \;
+        - cd libraries/base
+        - find . -name "*.vhd" -exec vsg -c ../../vsg_config.yaml -f {} \;
 
+lint-vhdl-lib-dsp:
+    tags:
+        - hdl
+    stage: linting
+    allow_failure: true
+    before_script:
+        - pip3 install vsg --use-pep517
+    script:
+        - cd libraries/dsp
+        - find . -name "*.vhd" -exec vsg -c ../../vsg_config.yaml -f {} \;
+
+lint-vhdl-lib-io:
+    tags:
+        - hdl
+    stage: linting
+    allow_failure: true
+    before_script:
+        - pip3 install vsg --use-pep517
+    script:
+        - cd libraries/io
+        - find . -name "*.vhd" -exec vsg -c ../../vsg_config.yaml -f {} \;
+
+lint-vhdl-lib-technology:
+    tags:
+        - hdl
+    stage: linting
+    allow_failure: true
+    before_script:
+        - pip3 install vsg --use-pep517
+    script:
+        - cd libraries/technology
+        - find . -name "*.vhd" -exec vsg -c ../../vsg_config.yaml -f {} \;
+
+lint-vhdl-boards-uniboard2b:
+    tags:
+        - hdl
+    stage: linting
+    allow_failure: true
+    before_script:
+        - pip3 install vsg --use-pep517
+    script:
+        - cd boards/uniboard2b
+        - find . -name "*.vhd" -exec vsg -c ../../vsg_config.yaml -f {} \;
+
+lint-vhdl-boards-uniboard2c:
+    tags:
+        - hdl
+    stage: linting
+    allow_failure: true
+    before_script:
+        - pip3 install vsg --use-pep517
+    script:
+        - cd boards/uniboard2c
+        - find . -name "*.vhd" -exec vsg -c ../../vsg_config.yaml -f {} \;
+
+lint-vhdl-applications-lofar2:
+    tags:
+        - hdl
+    stage: linting
+    allow_failure: true
+    before_script:
+        - pip3 install vsg --use-pep517
+    script:
+        - cd applications/lofar2
+        - find . -name "*.vhd" -exec vsg -c ../../vsg_config.yaml -f {} \;
 
 ###############################################################################
 # HDL simulation stage
 ###############################################################################
 sim-compile:
-    tags: 
+    tags:
         - fpga
     stage: simulation
     script:
@@ -61,12 +124,12 @@ sim-compile:
             - build/
 
 sim-run:
-    tags: 
+    tags:
         - fpga
     stage: simulation
     script:
         - echo "Running simulations"
-#        - test -f "build/info.txt" # This fails despite having artifact (see 
+#        - test -f "build/info.txt" # This fails despite having artifact (see
                                     # sim-compile code block where a folder and
                                     # file are generated and preserved by using
                                     # 'artifacts').
@@ -75,21 +138,21 @@ sim-run:
 # HDL synthesis stage
 ###############################################################################
 synth-compile:
-    tags: 
+    tags:
         - fpga
     stage: synthesis
     script:
         - echo "Compiling for synthesis"
 
 synth-check-fmax:
-    tags: 
+    tags:
         - fpga
     stage: synthesis
     script:
         - echo "Checking achieved fMax"
 
 synth-check-programming-files:
-    tags: 
+    tags:
         - fpga
     stage: synthesis
     script:
diff --git a/applications/lofar2/doc/prestudy/station2_sdp_transient_buffer.txt b/applications/lofar2/doc/prestudy/station2_sdp_transient_buffer.txt
index 9a54def39092dd7ed5021298802a2956d79552a0..a04243e671ad514f506f57ccd9d657bb83b87d06 100644
--- a/applications/lofar2/doc/prestudy/station2_sdp_transient_buffer.txt
+++ b/applications/lofar2/doc/prestudy/station2_sdp_transient_buffer.txt
@@ -575,7 +575,7 @@ The CP FPGA_beamlet_output_nof_beamlets_RW is not supported in SDPTR and SDPFW y
         . N_remaining == 0, else something went wrong in SDPFW
         . N_dumped = N_read - N_dropped, else something went wrong in SDPFW
         . N_dropped == 0, else packets got lost due to DDR4 memory access errors
-        . N_lost == 0, else packets got lost on the ring
+        . N_lost == 0, else packets got lost on the ring --> check ring MP for details
         . N_read == FPGA_tbuf_dump_nof_packets_R * nof active ai, else something went wrong in SDPFW
         . N_output == N_read - N_dropped - N_lost, else something went wrong in SDPFW
 
@@ -607,23 +607,22 @@ The CP FPGA_beamlet_output_nof_beamlets_RW is not supported in SDPTR and SDPFW y
   . 8b version_id
   - 32b observation_id --> like for beamlets, may be useful for cosmic ray piggy back, not in LOFAR1
   . 16b station_info
-    - 4b antenna_field_index (e.g. HBA-0, HBA-1)
+    - 4b antenna_field_index (e.g. HBA-0, HBA-1, Nenufar)
     - 12b station_id
-  . 16b source_info (as in beamlet packet)
+  . 16b source_info
     - 1b antenna_band_index (LB, HB)
     - 2b nyquist_zone_index
     - 1b f_adc --> sample clock rate, period is 5 ns or 6.25 ns
-    - 3b reserved
     - 4b sample_width --> 14b, where 16b is represented by 0
-    - 5b gn_index --> purpose fault analysis
+    - 8b gn_index --> purpose fault analysis
   . 32b reserved
   .  8b antenna_input_index --> 0..95
-  . 16b nof_samples_per_packet --> (8kB - 16) / 14b = 4672 (= 1022 words of 64b) --> log2() = 13b
+  . 16b nof_samples_per_packet --> log2(2000) = 12b
   . 64b RSN = Sample Sequence Number --> is prefered over a BSN, because RSN can start at any sample, whereas a BSN has to fit start at 1970.
 
-??? 4b antenna_field_index in station_info
-??? 8b gn_index
-??? 2 Byte antenne_input_index
+??? 4b antenna_field_index in station_info --> L2SDP-917
+??? 8b gn_index --> Ja voor TBuf, L2SDP-930 voor beamlets
+??? 2 Byte of 12b antenne_input_index --> Nee houdt eerst 8b, L2SDP-931 voor SST, XST
 
 
 - headers: 14 + 20 + 8 + 24 = 66 bytes
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..596433603b54df86df2a5ffaad5c34fe7cc161f3
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,18 @@
+# Gitlab CI/CD
+
+HDL linting is using *gitlab-runners* on *dop349*.
+
+Linting tool used is *vhdl-style-guide* (VSG)
+
+link: https://vhdl-style-guide.readthedocs.io/en/latest/index.html
+
+##### Linting settings.
+
+By default all rules are disabled in de *vsg_config.yaml* file.
+
+The only active rule on this moment is *case.keyword* and is set to *upper*.
+
+
+
+
+
diff --git a/vsg_config.yaml b/vsg_config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3c6e3bc83c6a0ece2c1a858a8c833377dc84edec
--- /dev/null
+++ b/vsg_config.yaml
@@ -0,0 +1,7 @@
+rule:
+    global:
+        disable: True
+    group:
+        case::keyword:
+            disable: False
+            case: 'upper'