diff --git a/README.md b/README.md
index 683a277d71..06baa544b6 100644
--- a/README.md
+++ b/README.md
@@ -157,6 +157,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
   - [Faker::Dessert](doc/default/dessert.md)
   - [Faker::Device](doc/default/device.md)
   - [Faker::DrivingLicence](doc/default/driving_licence.md)
+  - [Faker::Drone](doc/drone/drone.md)
   - [Faker::Educator](doc/default/educator.md)
   - [Faker::ElectricalComponents](doc/default/electrical_components.md)
   - [Faker::Esport](doc/default/esport.md)
diff --git a/doc/drone/drone.md b/doc/drone/drone.md
new file mode 100644
index 0000000000..20a4afeded
--- /dev/null
+++ b/doc/drone/drone.md
@@ -0,0 +1,34 @@
+# `Faker::Drone`
+
+```ruby
+# Aircraft Properties
+Faker::Drone.name                   #=> "DJI Mavic Air 2"
+Faker::Drone.weight                 #=> "570 g"
+Faker::Drone.max_ascent_speed       #=> "4 m/s"
+Faker::Drone.max_descent_speed      #=> "3 m/s"
+Faker::Drone.flight_time            #=> "34 min"
+Faker::Drone.max_altitude           #=> "5000 m"
+Faker::Drone.max_flight_distance    #=> "18500 m"
+Faker::Drone.max_speed              #=> "19 m/s"
+Faker::Drone.max_wind_resistance    #=> "10.5 m/s"
+Faker::Drone.max_angular_velocity   #=> "250º/s"
+Faker::Drone.max_tilt_angle         #=> "35º"
+Faker::Drone.operating_temprature   #=> "14º-104ºF"
+
+# Battery Properties
+Faker::Drone.battery_capacity       #=> "3500 mAh"
+Faker::Drone.battery_voltage        #=> "13.2V"
+Faker::Drone.battery_type           #=> "LiPo 4S"
+Faker::Drone.battery_weight         #=> "198 g"
+Faker::Drone.charging_temprature    #=> "41º-104ºF"
+Faker::Drone.max_charging_power     #=> "38W"
+
+# Camera Properties
+Faker::Drone.iso                    #=> "100-3200"
+Faker::Drone.max_resolution         #=> "48MP
+Faker::Drone.photo_format           #=> "JPEG"
+Faker::Drone.video_format           #=> "MP4"
+Faker::Drone.shutter_speed_range    #=> "8-1/8000s"
+Faker::Drone.max_shutter_speed      #=> "60"
+Faker::Drone.min_shutter_speed      #=> "1/8000"
+```
diff --git a/lib/faker/default/drone.rb b/lib/faker/default/drone.rb
new file mode 100644
index 0000000000..6272039247
--- /dev/null
+++ b/lib/faker/default/drone.rb
@@ -0,0 +1,332 @@
+# frozen_string_literal: true
+
+module Faker
+  class Drone < Base
+    class << self
+      ##
+      # Returns random drone name with company
+      #
+      # @return [string]
+      #
+      # @example
+      #   Faker::Drone.name #=> "DJI Mavic Air 2"
+      #
+      # @faker.version next
+      def name
+        fetch('drone.name')
+      end
+
+      ##
+      # Returns total drone weight in grams
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.weight #=> "570 g"
+      #
+      # @faker.version next
+      def weight
+        parse('drone.weight')
+      end
+
+      ##
+      # Returns maximum ascent speed for drone in m/s
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.max_ascent_speed #=> "4 m/s"
+      #
+      # @faker.version next
+      def max_ascent_speed
+        parse('drone.max_ascent_speed')
+      end
+
+      ##
+      # Returns maximum descent speed for drone in m/s
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.max_descent_speed #=> "4 m/s"
+      #
+      # @faker.version next
+      def max_descent_speed
+        parse('drone.max_descent_speed')
+      end
+
+      ##
+      # Returns max flight time for drone in optimal conditions
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.flight_time #=> "34 min"
+      #
+      # @faker.version next
+      def flight_time
+        parse('drone.flight_time')
+      end
+
+      ##
+      # Returns max altitude drone can go above sea level in meters
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.max_altitude #=> "5000 m"
+      #
+      # @faker.version next
+      def max_altitude
+        parse('drone.max_altitude')
+      end
+
+      ##
+      # Returns how far drone can go in optimal condition when full charged in meters
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.max_flight_distance #=> "18500 m"
+      #
+      # @faker.version next
+      def max_flight_distance
+        parse('drone.max_flight_distance')
+      end
+
+      ##
+      # Returns max horizontal speed by drone in m/s
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.max_speed #=> "19 m/s"
+      #
+      # @faker.version next
+      def max_speed
+        parse('drone.max_speed')
+      end
+
+      ##
+      # Returns max wind resistance by drone in m/s
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.max_wind_resistance #=> "10.5 m/s"
+      #
+      # @faker.version next
+      def max_wind_resistance
+        parse('drone.max_wind_resistance')
+      end
+
+      ##
+      # Returns max angular velocity of drone in degrees/s
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.max_angular_velocity #=> "250 degree/s"
+      #
+      # @faker.version next
+      def max_angular_velocity
+        parse('drone.max_angular_velocity')
+      end
+
+      ##
+      # Returns max tilt angle drone can go in degrees
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.max_tilt_angle #=> "35 degrees"
+      #
+      # @faker.version next
+      def max_tilt_angle
+        parse('drone.max_tilt_angle')
+      end
+
+      ##
+      # Returns operating temprature for drone in Fahrenheit
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.operating_temperature #=> "14-104F"
+      #
+      # @faker.version next
+      def operating_temperature
+        parse('drone.operating_temperature')
+      end
+
+      ##
+      # Returns the drone battery capacity
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.battery_capacity #=> "3500 mAh"
+      #
+      # @faker.version next
+      def battery_capacity
+        parse('drone.battery_capacity')
+      end
+
+      ##
+      # Returns battery voltage
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.battery_voltage #=> "13.2V"
+      #
+      # @faker.version next
+      def battery_voltage
+        parse('drone.battery_voltage')
+      end
+
+      ##
+      # Returns the battery type
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.battery_type #=> "LiPo 4S"
+      #
+      # @faker.version next
+      def battery_type
+        parse('drone.battery_type')
+      end
+
+      ##
+      # Returns total battery weight in grams
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.battery_weight #=> "198 g"
+      #
+      # @faker.version next
+      def battery_weight
+        parse('drone.battery_weight')
+      end
+
+      ##
+      # Returns charging temperature for battery in Fahrenheit
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.charging_temperature #=> "41-104F"
+      #
+      # @faker.version next
+      def charging_temperature
+        parse('drone.charging_temperature')
+      end
+
+      ##
+      # Returns max chargin power required for battery
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.max_charging_power #=> "38W"
+      #
+      # @faker.version next
+      def max_charging_power
+        parse('drone.max_charging_power')
+      end
+
+      ##
+      # Returns camera ISO range for drone
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.iso #=> "100-3200"
+      #
+      # @faker.version next
+      def iso
+        parse('drone.iso')
+      end
+
+      ##
+      # Returns max camera resolution in MP"
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.max_resolution #=> "48MP"
+      #
+      # @faker.version next
+      def max_resolution
+        parse('drone.max_resolution')
+      end
+
+      ##
+      # Returns photo format for drone
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.photo_format #=> "JPEG"
+      #
+      # @faker.version next
+      def photo_format
+        parse('drone.photo_format')
+      end
+
+      ##
+      # Returns video format
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.video_format #=> "MP4"
+      #
+      # @faker.version next
+      def video_format
+        parse('drone.video_format')
+      end
+
+      ##
+      # Returns max and min shutter speed for camera
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.shutter_speed_range #=> "8-1/8000s"
+      #
+      # @faker.version next
+      def shutter_speed_range
+        "#{fetch('drone.max_shutter_speed')}-#{fetch('drone.min_shutter_speed')}#{fetch('drone.shutter_speed_units')}"
+      end
+
+      ##
+      # Returns max shutter speed for camera
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.max_shutter_speed #=> "60s"
+      #
+      # @faker.version next
+      def max_shutter_speed
+        "#{fetch('drone.max_shutter_speed')}#{fetch('drone.shutter_speed_units')}"
+      end
+
+      ##
+      # Returns min shutter speed for camera
+      #
+      # @return [String]
+      #
+      # @example
+      #   Faker::Drone.min_shutter_speed #=> "1/8000s"
+      #
+      # @faker.version next
+      def min_shutter_speed
+        "#{fetch('drone.min_shutter_speed')}#{fetch('drone.shutter_speed_units')}"
+      end
+    end
+  end
+end
diff --git a/lib/locales/en/drone.yml b/lib/locales/en/drone.yml
new file mode 100644
index 0000000000..075b5a8f60
--- /dev/null
+++ b/lib/locales/en/drone.yml
@@ -0,0 +1,95 @@
+en:
+  faker:
+    drone:
+      name:
+        - 'DJI Mavic Air 2'
+        - 'DJI Mavic Air'
+        - 'DJI Mavic 2 Pro'
+        - 'DJI Mavic Mini'
+        - 'DJI Mavic Pro'
+        - 'DJI Phantom 4 RTK'
+        - 'DJI Phantom 4 Pro'
+        - 'DJI Inspire 2'
+        - 'DJI Matrice 300 RTK'
+        - 'DJI Matrice 600 Pro'
+        - 'DJI Agras T16'
+        - 'Parrot ANAFI Thermal'
+        - 'Yuneec H520 RTK'
+        - 'Yuneec H520'
+        - 'Yuneec Typhoon H3'
+        - 'Yuneec Typhoon H Plus'
+        - 'SenseFly eBee X'
+        - 'SenseFly eBee SQ'
+        - 'SenseFly eBee Plus'
+        - 'SenseFly eBee Classic'
+        - 'FreeFly Alta X'
+        - 'FreeFly Alta Pro'
+        - 'FreeFly Alta 8'
+        - 'FlyAbility Elios 2'
+        - 'FlyAbility Elios'
+        - 'Autel Evo II Pro 6K'
+        - 'Autel Evo II 8K'
+        - 'Delair UX 11'
+        - 'Delair UX AG'
+        - 'Delair DT26E LiDAR'
+        - 'Delair DT26E Surveillance'
+        - 'Delair DT26E Tactical'
+        - 'Delair DT26E Open Payload'
+      weight: '### g'
+      max_ascent_speed: '# m/s'
+      max_descent_speed: '# m/s'
+      flight_time: '## min'
+      max_altitude: '#### m'
+      max_flight_distance: '#### m'
+      max_speed: '## m/s'
+      max_wind_resistance: '##.# m/s'
+      max_angular_velocity: '##°/s'
+      max_tilt_angle: '##°'
+      operating_temperature: '##°-###°F'
+      battery_capacity:
+        - '3### mAh'
+        - '2### mAh'
+      battery_voltage: '##.#V'
+      battery_type:
+        - 'LiPo 4S'
+        - 'LiPo 3S'
+        - 'Li-Polymer'
+      battery_weight: '### g'
+      charging_temperature: '##°-###°F'
+      max_charging_power: '##W'
+      iso:
+        - '100-3200'
+        - '100-6400'
+      max_resolution: '##MP'
+      photo_format:
+        - 'JPEG'
+        - 'PNG'
+        - 'TIF'
+      video_format:
+        - 'MP4'
+        - 'FLV'
+        - 'MOV'
+      max_shutter_speed:
+        - '1'
+        - '2'
+        - '4'
+        - '8'
+        - '15'
+        - '30'
+        - '60'
+      min_shutter_speed:
+        - '1/8000'
+        - '1/4000'
+        - '1/2000'
+        - '1/1000'
+        - '1/500'
+        - '1/250'
+        - '1/125'
+        - '1/60'
+        - '1/30'
+        - '1/15'
+        - '1/8'
+        - '1/4'
+        - '1/2'
+      shutter_speed_units:
+        - 's'
diff --git a/test/faker/default/test_faker_drone.rb b/test/faker/default/test_faker_drone.rb
new file mode 100644
index 0000000000..568187bb92
--- /dev/null
+++ b/test/faker/default/test_faker_drone.rb
@@ -0,0 +1,109 @@
+# frozen_string_literal: true
+
+require_relative '../../test_helper'
+
+class TestFakerDrone < Test::Unit::TestCase
+  def setup
+    @tester = Faker::Drone
+  end
+
+  def test_name
+    assert @tester.name.match(/[A-Za-z0-9]+/)
+  end
+
+  def test_weight
+    assert @tester.weight.match(/[0-9]{3}\sg/)
+  end
+
+  def test_max_ascent_speed
+    assert @tester.max_ascent_speed.match(/[0-9]\sm\/s/)
+  end
+
+  def test_max_descent_speed
+    assert @tester.max_descent_speed.match(/[0-9]\sm\/s/)
+  end
+
+  def test_max_flight_time
+    assert @tester.flight_time.match(/[0-9]{2} min/)
+  end
+
+  def test_max_altitude
+    assert @tester.max_altitude.match(/[0-9]{4}\sm/)
+  end
+
+  def test_max_flight_distance
+    assert @tester.max_flight_distance.match(/[0-9]{4}\sm/)
+  end
+
+  def test_max_speed
+    assert @tester.max_speed.match(/[0-9]{2}\sm\/s/)
+  end
+
+  def test_max_wind_resistance
+    assert @tester.max_wind_resistance.match(/[0-9]{2}\.[0-9]\sm\/s/)
+  end
+
+  def test_max_anngular_velocity
+    assert @tester.max_angular_velocity.match(/[0-9]{2}\W\/s/)
+  end
+
+  def test_max_tilt_angle
+    assert @tester.max_tilt_angle.match(/[0-9]{2}\W/)
+  end
+
+  def test_operating_temperature
+    assert @tester.operating_temperature.match(/[0-9]{2}\W\-[0-9]{3}\WF/)
+  end
+
+  def test_battery_capacity
+    assert @tester.battery_capacity.match(/[2-3][0-9]{3}\smAh/)
+  end
+
+  def test_battery_type
+    assert @tester.battery_type.match(/Li(Po\s|-)[3-4]*[A-Za-z]+/)
+  end
+
+  def test_battery_weight
+    assert @tester.battery_weight.match(/[0-9]{3}\sg/)
+  end
+
+  def test_battery_voltage
+    assert @tester.battery_voltage.match(/[0-9]{2}\.[0-9]V/)
+  end
+
+  def test_charging_temperature
+    assert @tester.charging_temperature.match(/[0-9]{2}\W\-[0-9]{3}\WF/)
+  end
+
+  def test_max_charging_power
+    assert @tester.max_charging_power.match(/[0-9]{2}W/)
+  end
+
+  def test_camera_iso
+    assert @tester.iso.match(/(100-3200|100-6400)/)
+  end
+
+  def test_max_resolution
+    assert @tester.max_resolution.match(/[0-9]{2}MP/)
+  end
+
+  def test_photo_format
+    assert @tester.photo_format.match(/(JPEG|PNG|TIF)/)
+  end
+
+  def video_format
+    assert @tester.video_format.match(/MP4|FLV|MOV/)
+  end
+
+  def test_max_shutter_speed_range
+    assert @tester.shutter_speed_range.match(/[0-9]{1,2}\-1\/[0-9]{1,4}s/)
+  end
+
+  def test_max_shutter_speed
+    assert @tester.max_shutter_speed.match(/[0-9]{1,2}s/)
+  end
+
+  def test_min_shutter_speed
+    assert @tester.min_shutter_speed.match(/1\/[0-9]{1,4}s/)
+  end
+end