diff --git a/missions/9K_Test/config/environmentConfig.m b/missions/9K_Test/config/environmentConfig.m
new file mode 100644
index 0000000000000000000000000000000000000000..a667f90e589c2892f397076c5dff8a46325de11f
--- /dev/null
+++ b/missions/9K_Test/config/environmentConfig.m
@@ -0,0 +1,19 @@
+% CONFIG - This script sets up parameters for the environment
+%
+% Use this file to write launch data, independent from the rocket itself
+
+environment = Environment();
+
+environment.lat0 = 39.388727;           % [deg] Launchpad latitude
+environment.lon0 = -8.287842;           % [deg] Launchpad longitude
+environment.z0 = 160;                   % [m] Launchpad Altitude
+environment.omega = 85*pi/180;          % [deg] Launchpad elevation
+environment.phi = 133*pi/180;           % [deg] Launchpad azimuth
+environment.pin1Length = 0.5603;        % [m] Distance from the upper pin to the upper tank cap
+environment.pin2Length = 0.2055;        % [m] Distance from the lower pin to the lower tank cap  
+environment.rampLength = 12;            % [m] Total launchpad length 
+
+% environment.temperature = [];           % [K] Ground temperature correction
+% environment.pressure = [];              % [Pa] Ground pressure correction
+% environment.rho = [];                   % [Kg/m^3] Gorund air density correction
+% environment.gamma = 1.4;                % [-] Gas constant
\ No newline at end of file
diff --git a/missions/9K_Test/config/paraConfig.m b/missions/9K_Test/config/paraConfig.m
new file mode 100644
index 0000000000000000000000000000000000000000..7ac5c7ea55fe80d7409e6e7ec38ea78e50ce5b1d
--- /dev/null
+++ b/missions/9K_Test/config/paraConfig.m
@@ -0,0 +1,96 @@
+% CONFIG - This script contains information about the parachutes onboard
+% parachute 1
+para{1, 1} = Parachute();
+
+para{1, 1}.name = 'DROGUE chute';
+para{1, 1}.surface = 0.6;                  % [m^2]   Surface
+para{1, 1}.mass = 0.5;                    % [kg]   Parachute Mass
+para{1, 1}.cd = 0.75;                      % [/] Parachute Drag Coefficient
+para{1, 1}.cl = 0;                         % [/] Parachute Lift Coefficient
+para{1, 1}.openingTime = 0.1;              % [s] drogue opening delay
+para{1, 1}.finalAltitude = 350;            % [m] Final altitude of the parachute
+para{1, 1}.cx = 1.4;                       % [/] Parachute Longitudinal Drag Coefficient
+para{1, 1}.chordLength = 1.5;              % [m] Shock Chord Length
+para{1, 1}.chordK = 7200;                  % [N/m^2] Shock Chord Elastic Constant
+para{1, 1}.chordC = 0;                     % [Ns/m] Shock Chord Dynamic Coefficient
+para{1, 1}.m = 1;                          % [m^2/s] Coefficient of the surface vs. time opening model
+para{1, 1}.nf = 12;                        % [/] Adimensional Opening Time
+para{1, 1}.expulsionSpeed = 5;             % [m/s] Expulsion Speed
+para{1, 1}.forceCoefficient = 1.8;         % [-] Empirical coefficient to obtain correct peak force at deployment
+
+% parachute 2
+para{2, 1} = Parachute();
+
+para{2, 1}.name = 'MAIN chute';
+para{2, 1}.surface = 13.5;                  % [m^2]   Surface
+para{2, 1}.mass = 1.75;                   % [kg]   Parachute Mass
+para{2, 1}.cd = 0.65;                      % [/] Parachute Drag Coefficient
+para{2, 1}.cl = 0;                        % [/] Parachute Lift Coefficient
+para{2, 1}.openingTime = 0.9;             % [s] drogue opening delay
+para{2, 1}.finalAltitude = 0;             % [m] Final altitude of the parachute
+para{2, 1}.cx = 1.6;                     % [/] Parachute Longitudinal Drag Coefficient
+para{2, 1}.chordLength = 6;               % [m] Shock Chord Length
+para{2, 1}.chordK = 3000;                 % [N/m^2] Shock Chord Elastic Constant
+para{2, 1}.chordC = 0;                    % [Ns/m] Shock Chord Dynamic Coefficient
+para{2, 1}.m = 1;                         % [m^2/s] Coefficient of the surface vs. time opening model
+para{2, 1}.nf = 8.7;                      % [/] Adimensional Opening Time
+para{2, 1}.expulsionSpeed = 0;             % [m/s] Expulsion Speed
+para{2, 1}.forceCoefficient = 2.2;         % [-] Empirical coefficient to obtain correct peak force at deployment
+
+%% PAYLOAD CHUTES
+% parachute 1
+para{1, 2} = Parachute();
+
+para{1, 2}.name = "Parafoil DROGUE";
+para{1, 2}.surface = 0.11;                % [m^2]   Surface
+para{1, 2}.mass = 0.1;                   % [kg]   Parachute Mass
+para{1, 2}.cd = 1.2;                      % [/] Parachute Drag Coefficient
+para{1, 2}.cl = 0;                        % [/] Parachute Lift Coefficient
+para{1, 2}.openingTime = 1;              % [s] drogue opening delay
+para{1, 2}.finalAltitude = 450;           % [m] Final altitude of the parachute
+para{1, 2}.cx = 1.4;                      % [/] Parachute Longitudinal Drag Coefficient
+para{1, 2}.chordLength = 1.5;             % [m] Shock Chord Length
+para{1, 2}.chordK = 7200;                 % [N/m^2] Shock Chord Elastic Constant
+para{1, 2}.chordC = 0;                    % [Ns/m] Shock Chord Dynamic Coefficient
+para{1, 2}.m = 1;                         % [m^2/s] Coefficient of the surface vs. time opening model
+para{1, 2}.nf = 12;                       % [/] Adimensional Opening Time
+para{1, 2}.expulsionSpeed = 10;           % [m/s] Expulsion Speed
+para{1, 2}.forceCoefficient = 0;           % [-] Empirical coefficient to obtain correct peak force at deployment
+
+% parachute 2
+para{2, 2} = Wing();
+
+para{2, 2}.name = "Parafoil AIRFOIL";
+para{2, 2}.mass = 0.40;                   % [kg]   Wing Mass
+para{2, 2}.openingTime = 0;              % [s] Wing opening delay
+
+para{2, 2}.surface = 0.11;                % [m^2]   Surface
+para{2, 2}.deltaSMax =  0.1;                       % max value
+
+para{2, 2}.semiWingSpan  = 2.55/2;                % [m]   settings.para{2, 2}.b: semiwingspan  - vela nuova: 2.55/2; - vela vecchia: 2.06/2;
+para{2, 2}.MAC           = 0.8;                  % [m]   mean aero chord
+para{2, 2}.surface       = 2.04;                  % [m^2] parafoil surface - vela nuova 2.04; - vela vecchia: 1.64;
+para{2, 2}.inertia       = [0.42, 0,   0.03;
+                            0,    0.4,    0; 
+                            0.03, 0, 0.053];  % [kg m^2] [3x3] inertia matrix parafoil
+
+para{2, 2}.finalAltitude = 0;
+
+para{2, 2}.cd0           =  0.25; 
+para{2, 2}.cdAlpha       =  0.12;
+para{2, 2}.cdSurface      =  0.01;
+
+para{2, 2}.cl0           =  0.091;
+para{2, 2}.clAlpha       =  0.9;
+para{2, 2}.clSurface      = -0.0035;
+
+para{2, 2}.cLP           = -0.84;
+para{2, 2}.cLPhi         = -0.1;
+para{2, 2}.cLSurface      = -0.0035;
+
+para{2, 2}.cM0           =  0.35; 
+para{2, 2}.cMAlpha       = -0.72;
+para{2, 2}.cMQ           = -1.49;
+
+para{2, 2}.cNR           = -0.27;
+para{2, 2}.cNSurface      =  0.0115;
\ No newline at end of file
diff --git a/missions/9K_Test/config/rocketConfig.m b/missions/9K_Test/config/rocketConfig.m
new file mode 100644
index 0000000000000000000000000000000000000000..c0fb8b94bf2764ea3f0a27f6c7d21c1f2d71ffd0
--- /dev/null
+++ b/missions/9K_Test/config/rocketConfig.m
@@ -0,0 +1,111 @@
+% CONFIG - This script sets up rocket's parameters
+
+%% ROCKET - OVERRIDES BAYS CONFIG
+rocket = Rocket();
+
+rocket.diameter = 0.15;                                                 % [m]      Rocket diameter
+% rocket.diameter = 0.18;
+rocket.massNoMotor = 15.4754;                                                % [kg]     OVERRIDE mass without motor
+rocket.inertiaNoMotor = [0.048; 10.3957; 10.3982];                                             % [kg*m^2] OVERRIDE inertia without motor - body axes reference
+rocket.xcgNoMotor = 0.9628;                                                 % [m]      OVERRIDE xCg without motor
+rocket.lengthCenterNoMotor = 1.6225;                                          % [m]      OVERRIDE Center length - no nose, no motor
+
+%% PRF - Includes Parafoil + Nose
+parafoil = Parafoil();
+
+parafoil.length = 646.2 * 1e-3;                                         % [m] Total bay length
+parafoil.mass = 5;                                                   % [kg] Total bay mass
+parafoil.inertia = 1e-9*[10514313; 92235828; 92322682];                % [kg*m^2] Total bay inertia (Body reference)
+parafoil.xcg = 453.55 * 1e-3;                                            % [m] Cg relative to bay upper side
+
+parafoil.noseLength = 0.327;                                              % [m] Nosecone length
+parafoil.noseType = 'MHAACK';                                            % [-] Nosecone shape
+parafoil.nosePower = 3/4;                                                % [-] Nosecone power type parameter
+parafoil.nosePMod = 1.250152e+00;                                        % [-] P coefficient for modified nosecone shapes
+parafoil.noseCMod = 1.799127e-01;                                        % [-] C coefficient for modified nosecone shapes
+
+%% RCS
+recovery = Recovery();
+
+recovery.length = 826 * 1e-3;                                        % [m] Total bay length
+recovery.mass = 4.452;                                               % [kg] Total bay mass
+recovery.inertia = 1e-9*[11889636; 274548189; 275245205];            % [kg*m^2] Total bay inertia (Body reference)
+recovery.xcg = 459 * 1e-3;                                        % [m] Cg relative to bay upper side
+
+%% ELC
+electronics = Electronics();
+
+electronics.length = 422.5 * 1e-3;                                   % [m] Total bay length
+electronics.mass = 3.3271;                                            % [kg] Total bay mass
+electronics.inertia = 1e-9*[10041478; 49742634; 50292878];            % [kg*m^2] Total bay inertia (Body reference)
+electronics.xcg = 221.11 * 1e-3;                                     % [m] Cg relative to bay upper side
+
+%% ARB
+airbrakes = Airbrakes();
+
+airbrakes.identification = false;                           % Control parameter for airbrakes - GNC
+
+airbrakes.length = 54.8 * 1e-3;                                      % [m] Total bay length
+airbrakes.mass = 0.96;                                              % [kg] Total bay mass
+airbrakes.inertia = 1e-9*[1886729; 1931082; 3088968];                % [kg*m^2] Total bay inertia (Body reference)
+airbrakes.xcg = 35.2 * 1e-3;                                        % [m] Cg relative to bay upper side
+
+airbrakes.enabled = false;                                  % If true, multiple and smooth airbrakes opening will be simulated
+airbrakes.extension = [1];                                 % aerobrakes, 1-2-3 for 0%, 50% or 100% opened
+airbrakes.deltaTime = [0.5];                               % aerobrakes, configurations usage time
+
+airbrakes.n = 3;                                           % [-] number of brakes
+airbrakes.height = linspace(0, 0.0363, 3);                 % [m] Block airbrakes opening coordinate ( First entry must be 0! )
+airbrakes.angleFunction = ...
+    @(x) -0.009083*x^4 + 0.02473*x^3 + ...
+    -0.01677*x^2 + 0.03129*x;                              % [-] Relation between angle and extension height
+airbrakes.width = 0.1002754821;                            % [m] brakes width (normal)
+airbrakes.thickness = 0.008;                               % [m] brakes thickness
+airbrakes.xDistance = 1.517;                               % [m] axial position from nosecone base
+
+airbrakes.maxMach = 0.8;                                   % [-] Maximum Mach at which airbrakes can be used
+airbrakes.servoOmega = 300*pi/180;                         % [rad/s] Servo-motor angular velocity
+airbrakes.servoTau = 0.0374588;
+
+%% MOTOR
+motor = Motor();
+
+motor.name = 'HRE_9K_1';
+
+motor.cutoffTime = [];                                               % [s] OVERRIDE Cutoff time
+motor.ignitionTransient = 0.3;                                       % [s] Ignition transient
+motor.cutoffTransient = 0.3;                                         % [s] Cut-off transient
+
+%% REAR - Includes Fincan + Boat
+rear = Rear();
+
+rear.offset = -0.6936;                                               % [m] offset from
+rear.length = 477 * 1e-3;                                            % [m] Total bay length
+rear.mass = 1736.32 *1e-3;                                           % [kg] Total bay mass
+rear.inertia = 1e-9*[13662070; 47529495; 47528846];                  % [kg*m^2] Total bay inertia (Body reference)
+rear.xcg = 236.82 * 1e-3;                                                                                               % [m] Cg relative to bay upper side
+
+rear.boatType = 'OGIVE';                                             % [-] Boat type
+rear.boatLength = 0.240;                                             % [m] Boat length
+rear.boatFinalDiameter = 0.076;                                      % [m] Boat end diameter
+
+rear.finsRootChord = 0.3;                                            % [m] attached chord length
+rear.finsFreeChord = 0.11;                                           % [m] free chord length
+rear.finsHeight = 0.15;                                              % [m] fin height
+% rear.finsDeltaXRootChord = 0.205;
+rear.finsDeltaXFreeChord = 0.16;                                     % [m] start of Chord 2 measured from start of Chord 1
+rear.nPanel = 3;                                                     % [m] number of fins
+rear.finsLeadingEdgeRadius = [0 0];                                  % [deg] Leading edge radius at each span station
+rear.finsAxialDistance = -0.205;                                    % [m] distance between end of root chord and end of center body
+rear.finsSemiThickness = 0.00175;                                    % [m] fin semi-thickness
+rear.finsMaxThicknessPosition = 0.00175;                             % [m] Fraction of chord from leading edge to max thickness
+
+%% PITOT
+pitot = Pitot();
+
+pitot.diameter = [];                                                 % [m] Pitot tube diameter
+pitot.length = [];                                                   % [m] Pitot tube length
+pitot.initialConeLength = [];                                        % [m] Pitot initial conic section length
+pitot.finalConeLength = [];                                          % [m] Pitot final conic section length
+pitot.initialConeDiameter = [];                                      % [m] Pitot initial conic section diameter
+pitot.finalConeDiameter = [];                                        % [m] Pitot final conic section diameter
\ No newline at end of file
diff --git a/missions/9K_Test/config/windConfig.m b/missions/9K_Test/config/windConfig.m
new file mode 100644
index 0000000000000000000000000000000000000000..8217eadfeddaa227707348c72ed18bfc13c6691b
--- /dev/null
+++ b/missions/9K_Test/config/windConfig.m
@@ -0,0 +1,29 @@
+% CONFIG - This script sets up wind direction and magnitude based on
+% altitudes
+%
+% Wind azimuth angle indications - Wind directed from <angle>
+% 0 deg (use 360 instead of 0)  -> North
+% 90 deg                        -> East
+% 180 deg                       -> South
+% 270 deg                       -> West
+
+%% CUSTOM WIND MODEL
+
+windCustom = Wind();
+
+% windCustom.altitudes = [0 140 500 1000 3000 5000 7000 9500];                    % [m] Altitudes at which a distribution change occurs
+% windCustom.magnitudeDistribution = ["u", "g", "g", "g", "g", "g", "g", "g"];     % [-] Distribution type: "u" - uniform, "g" - gaussian
+% windCustom.magnitudeParameters = [0 7 12 13 15 15 18 20; 
+%                                   8.7 1.5 3 3 3 3 4 5];               % [m/s] Distribution parameters: "u" - [min; max], "g" - [mu; sigma]
+% windCustom.azimuthDistribution = ["u", "u", "u", "u", "u", "u", "u", "u"];       % [-] Distribution type: "u" - uniform, "g" - gaussian
+% windCustom.azimuthParameters = [150 150 150 150 150 150 150 150; 
+%                                 180 180 180 180 180 180 180 180]*pi/180;    % [deg] Distribution parameters: "u" - [min; max], "g" - [mu; sigma]
+
+
+windCustom.altitudes = [0 9500];                    
+windCustom.magnitudeDistribution = ["u", "u"];    
+windCustom.magnitudeParameters = [0 0; 
+                                  0 0];             
+windCustom.azimuthDistribution = ["u", "u"];      
+windCustom.azimuthParameters = [0 0; 
+                                359 359]*pi/180;    
diff --git a/missions/9K_Test/data/aeroCoefficients.mat b/missions/9K_Test/data/aeroCoefficients.mat
new file mode 100644
index 0000000000000000000000000000000000000000..623eb9443eebc7df80fbc0a49ce1d85362434be1
--- /dev/null
+++ b/missions/9K_Test/data/aeroCoefficients.mat
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eb2f1485e9349ad9419d12249fd48642ceb870ec306ced44536878ce32a4b80e
+size 35572221
diff --git a/missions/9K_Test/data/aeroCoefficientsHighAOA.mat b/missions/9K_Test/data/aeroCoefficientsHighAOA.mat
new file mode 100644
index 0000000000000000000000000000000000000000..fd18d8eb16322c6349b759c309e752cd8610145f
--- /dev/null
+++ b/missions/9K_Test/data/aeroCoefficientsHighAOA.mat
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:61e55d1e454ffbcf6820ae579a5399ba102272d9373d05e98116b578727030f9
+size 5773914
diff --git a/missions/9K_Test/data/motors.mat b/missions/9K_Test/data/motors.mat
new file mode 100644
index 0000000000000000000000000000000000000000..13d920beeea803bd21e1478b9fbb6e46b02ca04f
--- /dev/null
+++ b/missions/9K_Test/data/motors.mat
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dd6f1b1219467722a9f93f64e4176f3863145a7af3959d5d9814274179125abd
+size 2505
diff --git a/missions/9K_Test/data/satelliteData.mat b/missions/9K_Test/data/satelliteData.mat
new file mode 100644
index 0000000000000000000000000000000000000000..cc4ab62aad6f3f4ab50fa1a3b621d21216f9271f
--- /dev/null
+++ b/missions/9K_Test/data/satelliteData.mat
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e397bc4e9d60eaab3cfcd65adaef7cf5ca31f6e18455abe2d0456fbe22d347cd
+size 197
diff --git a/missions/9K_Test/data/satelliteMap.tif b/missions/9K_Test/data/satelliteMap.tif
new file mode 100644
index 0000000000000000000000000000000000000000..3cf6d60a0e5c7997d98eacaf5cf84a50ed9e949d
Binary files /dev/null and b/missions/9K_Test/data/satelliteMap.tif differ
diff --git a/missions/missionConfig.m b/missions/missionConfig.m
index 59a8ed707d72f51bd05068f6c4cdf0e5a597bdc7..255f79a538f71fd342f385c41ae05abc703feb30 100644
--- a/missions/missionConfig.m
+++ b/missions/missionConfig.m
@@ -3,5 +3,6 @@
 % Use this file to store relevant, universally true settings, 
 % such as the current mission. The config "BIOS"
 mission = Mission();
-mission.name = '2025_Orion_Portugal_October';
-% mission.name = '2024_Lyra_Roccaraso_September';
\ No newline at end of file
+% mission.name = '2025_Orion_Portugal_October';
+% mission.name = '2024_Lyra_Roccaraso_September';
+mission.name = '9K_Test';
\ No newline at end of file