diff --git a/docs/documentation.md b/docs/documentation.md
index 4bc572a..9fe2b46 100644
--- a/docs/documentation.md
+++ b/docs/documentation.md
@@ -367,8 +367,10 @@
   - [Inference results are incorrect for my custom files](./sections/troubleshooting.md#inference-results-are-incorrect-for-my-custom-files)
   - [The application does not work with my custom model](./sections/troubleshooting.md#the-application-does-not-work-with-my-custom-model)
   - [NPU configuration mismatch error when running inference](./sections/troubleshooting.md#npu-configuration-mismatch-error-when-running-inference)
-  - [Problem installing Vela](./sections/troubleshooting.md#problem-installing-vela)
   - [Errors when cloning the repository](./sections/troubleshooting.md#errors-when-cloning-the-repository)
+  - [Problem installing Vela](./sections/troubleshooting.md#problem-installing-vela)
+  - [No matching distribution found for ethos-u-vela==3.3.0](./sections/troubleshooting.md#no-matching-distribution-found-for-ethos_u_vela)
+    - [How to update Python3 package to newer version](./sections/troubleshooting.md#how-to-update-python3-package-to-newer-version)
 
 ## Appendix
 
diff --git a/docs/quick_start.md b/docs/quick_start.md
index dc8df50..d21a554 100644
--- a/docs/quick_start.md
+++ b/docs/quick_start.md
@@ -7,11 +7,11 @@
 sharing SRAM with the Arm® *Cortex®-M55*.
 
 The FVP is also available via Arm Virtual Hardware (AVH) hosted on AWS. This quick start guide can also be executed on an AVH instance
-but requires creation of an AWS account and basic configuration outlined [here](./arm_virtual_hardware.md).
+but requires creation of an AWS account and basic configuration outlined [here](./sections/arm_virtual_hardware.md#getting-started).
 
 To get started quickly, please follow these steps:
 
-1. First, verify that you have installed [the required prerequisites](sections/building.md#Build-prerequisites).
+1. First, verify that you have installed [the required prerequisites](sections/building.md#build-prerequisites).
 
 2. Clone the *Ethos-U* evaluation kit repository:
 
@@ -47,16 +47,16 @@
     ./build_default.py --toolchain arm
     ```
 
-5. Launch the project as explained in the following section: [Deployments](sections/deployment.md#Deployment). In quick
+5. Launch the project as explained in the following section: [Deployments](sections/deployment.md#deployment). In quick
    start guide, we use the keyword spotting application and the FVP.
 
     Change directory to generated cmake build folder which contains the .axf file output from step 4 in it's `bin`
-    subdirectory. Launch the application by passing the axf to the FVP you downloaded when installing the prerequisites. 
+    subdirectory. Launch the application by passing the axf to the FVP you downloaded when installing the prerequisites.
     Alternatively, from the root directory add `<cmake-build-your_config>` to the path to the axf and use one of the
     following commands:
 
     ```commandline
-   From auto-generated (or custom) build directory: 
+   From auto-generated (or custom) build directory:
    <path_to_FVP>/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-kws.axf
    From root directory:
    <path_to_FVP>/FVP_Corstone_SSE-300_Ethos-U55 -a <cmake-build-your_config>/bin/ethos-u-kws.axf
diff --git a/docs/sections/arm_virtual_hardware.md b/docs/sections/arm_virtual_hardware.md
index dcd5534..23c21c4 100644
--- a/docs/sections/arm_virtual_hardware.md
+++ b/docs/sections/arm_virtual_hardware.md
@@ -2,13 +2,15 @@
 
 - [Overview](./arm_virtual_hardware.md#overview)
   - [Getting started](./arm_virtual_hardware.md#getting-started)
+  - [Useful Links](./arm_virtual_hardware.md#useful-links)
 
 ## Overview
 
-Arm® Virtual Hardware is an accurate representation of a physical System on Chip and runs as a simple application in a Linux environment for easy
-scalability in the cloud and removes dependency from silicon availability. Powered by Amazon Web Services (AWS), developers can launch Amazon Machine Image
-(AMI) running as a virtual server in the cloud. The Arm Virtual Hardware is configured with the Corstone™-300 MPS3 based Fixed Virtual Platform (FVP),
-compiler and other tools.
+Arm® Virtual Hardware is an accurate representation of a physical System on Chip and runs as a simple application in a
+Linux environment for easy scalability in the cloud and removes dependency from silicon availability.
+Powered by Amazon Web Services (AWS), developers can launch Amazon Machine Image
+(AMI) running as a virtual server in the cloud. The Arm Virtual Hardware is configured with the Corstone™-300 MPS3
+based Fixed Virtual Platform (FVP), compiler and other tools.
 
 ### Getting started
 
@@ -19,19 +21,21 @@
  3. Subscribe to the Arm Virtual Hardware Amazon Machine Image.
  4. Launch the AWS instance.
 
-
- To access the Arm Virtual Hardware AWS instance via ssh, accept the prompt  to generate a *.pem* key while creating the instance or add it later.
- You can then access the AWS instance over ssh: `$ ssh -i <mykey.pem> ubuntu@<ec2-ip-address>`. 
+ To access the Arm Virtual Hardware AWS instance via ssh, accept the prompt  to generate a *.pem* key
+ while creating the instance or add it later.
+ You can then access the AWS instance over ssh: `$ ssh -i <mykey.pem> ubuntu@<ec2-ip-address>`.
  It may be necessary to change the permissions for mykey.pem with `$ chmod 400 mykey.pem`.
 
-
 ### Useful Links
-Note that you can register to receive free AWS credits to use Arm Virtual Hardware from [here](https://www.arm.com/company/contact-us/virtual-hardware).
+
+Note that you can register to receive free AWS credits to use Arm Virtual Hardware from
+[here](https://www.arm.com/company/contact-us/virtual-hardware).
 
 You can find more information about Arm Virtual Hardware [here](https://arm-software.github.io/VHT/main/overview/html/index.html).
 
-Once you have access to the AWS instance, we recommend starting from the [quick start guide](../quick_start.md#Quick-start-example-ML-application) in order to get familiar
+Once you have access to the AWS instance, we recommend starting from the
+[quick start guide](../quick_start.md#Quick-start-example-ML-application) in order to get familiar
 with the ml-embedded-evaluation-kit. Note that on the AWS instance, the FVP is available under `/opt/FVP_Corstone_SSE-300`.
 
 In order to view the FVP window when launching on the AWS instance a VNC is required.
-See relevant section [here](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-2-install-gui/).
\ No newline at end of file
+See relevant section [here](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-2-install-gui/).
diff --git a/docs/sections/building.md b/docs/sections/building.md
index f4acfa1..301d945 100644
--- a/docs/sections/building.md
+++ b/docs/sections/building.md
@@ -86,6 +86,10 @@
     Python 3.8.12
     ```
 
+  > **Note:** If you have an older version of Python installed (< 3.8) see the
+  > [Troubleshooting](./troubleshooting.md#how-to-update-python3-package-to-newer-version)
+  > for instruction on how to update it.
+
 - The build system creates a Python virtual environment during the build process. Please make sure that Python virtual
   environment module is installed by running:
 
diff --git a/docs/sections/troubleshooting.md b/docs/sections/troubleshooting.md
index 8b2646a..998600a 100644
--- a/docs/sections/troubleshooting.md
+++ b/docs/sections/troubleshooting.md
@@ -4,8 +4,10 @@
   - [Inference results are incorrect for my custom files](./troubleshooting.md#inference-results-are-incorrect-for-my-custom-files)
   - [The application does not work with my custom model](./troubleshooting.md#the-application-does-not-work-with-my-custom-model)
   - [NPU configuration mismatch error when running inference](./troubleshooting.md#npu-configuration-mismatch-error-when-running-inference)
-  - [Problem installing Vela](./troubleshooting.md#problem-installing-vela)
   - [Errors when cloning the repository](./troubleshooting.md#errors-when-cloning-the-repository)
+  - [Problem installing Vela](./troubleshooting.md#problem-installing-vela)
+  - [No matching distribution found for ethos-u-vela==3.3.0](./troubleshooting.md#no-matching-distribution-found-for-ethos_u_vela)
+    - [How to update Python3 package to 3.8 version](./troubleshooting.md#how-to-update-python3-package-to-newer-version)
 
 ## Inference results are incorrect for my custom files
 
@@ -67,6 +69,33 @@
 INFO - ARM ML Embedded Evaluation Kit
 ```
 
+## Errors when cloning the repository
+
+If you see following errors when cloning the repository:
+
+- ```log
+   fatal: unable to access 'https://review.mlplatform.org/ml/ethos-u/ml-embedded-evaluation-kit/':
+   server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
+  ```
+
+  We suggest to update to the latest common CA certificates:
+
+  ```commandline
+  sudo apt-get update
+  sudo apt-get install ca-certificates
+  ```
+
+- ```log
+  fatal: unable to access 'https://review.mlplatform.org/ml/ethos-u/ml-embedded-evaluation-kit/':
+  error:06FFF089:digital envelope routines:CRYPTO_internal:bad key length
+  ```
+
+  We suggest to export the `CURL_SSL_BACKEND` variable as `secure-transport`:
+
+  ```commandline
+  export CURL_SSL_BACKEND="secure-transport"
+  ```
+
 ## Problem installing Vela
 
 During Vela installation, part of the package is compiled and requires libpython3.
@@ -95,31 +124,81 @@
 
 To solve this issue install libpython3 on the system.
 
-## Errors when cloning the repository
+## No matching distribution found for ethos-u-vela
 
-If you see following errors when cloning the repository:
+Vela 3.3.0 increases Python requirement to at least version 3.8, if not installed on your system the following error will occur:
 
-- ```log
-   fatal: unable to access 'https://review.mlplatform.org/ml/ethos-u/ml-embedded-evaluation-kit/':
-   server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
-  ```
+```log
+python3 -m pip install ethos-u-vela==3.3.0
+ERROR: Could not find a version that satisfies the requirement ethos-u-vela==3.3.0 (from versions: 0.1.0, 1.0.0, 1.1.0, 1.2.0, 2.0.0, 2.0.1, 2.1.1, 3.0.0, 3.1.0, 3.2.0)
+ERROR: No matching distribution found for ethos-u-vela==3.3.0
+```
 
-  We suggest to update to the latest common CA certificates:
+Ensure that the minimum Python 3.8 requirement is installed and it's the default version.
+Check your current installed version of Python by running:
 
-  ```commandline
-  sudo apt-get update
-  sudo apt-get install ca-certificates
-  ```
+```commandline
+python3 --version
+```
 
-- ```log
-  fatal: unable to access 'https://review.mlplatform.org/ml/ethos-u/ml-embedded-evaluation-kit/':
-  error:06FFF089:digital envelope routines:CRYPTO_internal:bad key length
-  ```
+### How to update Python3 package to newer version
 
-  We suggest to export the `CURL_SSL_BACKEND` variable as `secure-transport`:
+1. Check your current installed version of Python by running:
 
-  ```commandline
-  export CURL_SSL_BACKEND="secure-transport"
-  ```
+   ```commandline
+   python3 --version
+   ```
+
+   For example:
+
+   ```log
+   Python 3.6.9
+   ```
+
+2. Install the Python 3.8 packages necessary on the system:
+
+   ```commandline
+   sudo apt-get install python3.8 python3.8-venv libpython3.8 libpython3.8-dev
+   ```
+
+3. Update the `python3` alternatives (set as 1 your previous version displayed at step 1):
+
+   ```commandline
+   sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
+   sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2
+   ```
+
+4. At the prompt, update the configuration by selecting Python3.8 as the chosen default alternative:
+
+   ```commandline
+   sudo update-alternatives --config python3
+   ```
+
+5. Python3.8 is now set as default you can check it by running:
+
+   ```commandline
+   python3 --version
+   ```
+
+   ```log
+   Python 3.8.0
+   ```
+
+> **Note:** After updating to from Python3.6 Python3.8 it may happen that the `gnome-terminal` or the relative
+> shortcuts doesn't work anymore.
+> If when opening it from XTerm with `gnome-terminal` the following error appear:
+>
+> ```log
+> Traceback (most recent call last):
+>   File "/usr/bin/gnome-terminal", line 9, in <module>
+>     from gi.repository import GLib, Gio
+>   File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
+>     from . import _gi
+> ImportError: cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import)
+> (/usr/lib/python3/dist-packages/gi/> __init__.py)
+> ```
+>
+> Modify the `gnome-terminal` script located in `/usr/bin/` and changing the environment (first line of the script)
+> from `#!/usr/bin/python3` to `#!/usr/bin/python3.6`.
 
 Next section of the documentation: [Appendix](appendix.md).
diff --git a/set_up_default_resources.py b/set_up_default_resources.py
index 56363a1..a4c3594 100755
--- a/set_up_default_resources.py
+++ b/set_up_default_resources.py
@@ -27,6 +27,7 @@
 from argparse import ArgumentTypeError
 from collections import namedtuple
 from urllib.error import URLError
+
 from scripts.py.check_update_resources_downloaded import get_md5sum_for_file
 
 
@@ -345,7 +346,7 @@
     additional_npu_config_names: list = (),
     arena_cache_size: int = 0,
     check_clean_folder: bool = False,
-    additional_requirements_file: str = ''
+    additional_requirements_file: str = "",
 ):
     """
     Helpers function that retrieve the output from a command.
@@ -375,6 +376,18 @@
 
     metadata_dict = dict()
     vela_version = "3.3.0"
+    py3_major_version_minimum = 3  # Python > 3.8 is required
+    py3_minor_version_minimum = 8
+
+    # Is Python minimum requirement matched?
+    py3_version = sys.version_info
+    if (
+        py3_version.major < py3_major_version_minimum
+        or py3_version.minor < py3_minor_version_minimum
+    ):
+        raise Exception(
+            "ERROR: Python3.8+ is required, please see the documentation on how to update it."
+        )
 
     setup_script_hash_verified = False
     setup_script_hash = get_md5sum_for_file(os.path.abspath(__file__))
@@ -401,7 +414,9 @@
                     else:
                         # Check if the set_up_default_resorces.py has changed from last setup
                         setup_script_hash_verified = (
-                            metadata_dict.get('set_up_script_md5sum') == setup_script_hash)
+                            metadata_dict.get("set_up_script_md5sum")
+                            == setup_script_hash
+                        )
         else:
             raise
 
@@ -628,8 +643,12 @@
         "--requirements-file",
         help="Path to requirements.txt file to install additional packages",
         type=str,
-        default=os.path.join(os.path.dirname(os.path.abspath(__file__)),
-                             'scripts', 'py', 'requirements.txt')
+        default=os.path.join(
+            os.path.dirname(os.path.abspath(__file__)),
+            "scripts",
+            "py",
+            "requirements.txt",
+        ),
     )
 
     args = parser.parse_args()
@@ -648,5 +667,5 @@
         args.additional_ethos_u_config_name,
         args.arena_cache_size,
         args.clean,
-        args.requirements_file
+        args.requirements_file,
     )
