User Tools

Site Tools


projects:crazyflie:hardware:explained

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
projects:crazyflie:hardware:explained [2012-12-03 16:24]
tobias [Sensors]
projects:crazyflie:hardware:explained [2013-01-12 15:54]
tobias [Specification]
Line 1: Line 1:
-====== Crazyflie KIT electonics explained ======+====== Crazyflie KIT electronics explained ======
 This section is here to explain all high level electronics used in the Crazyflie. This section is here to explain all high level electronics used in the Crazyflie.
  
Line 54: Line 54:
 The MCU (Micro Controller Unit) we use, the brain of the Crazyflie, is the ST Microelectronics STM32F103CB. We actually choose this MCU in 2009 and now it is very commonly used by hobbyists and other UAV platforms. The STM32F103CB MCU we run at full speed, 70Mhz, and it has 128Kb flash and 20Kb RAM. As of December 2012 our current firmware takes 46kb flash and 16kb RAM. The RAM can definitely be more optimised so there are plenty of room to implement more algorithms and fun stuff. We use about 40% of its processing power (with a stabilization update loop at 500Hz) and a big chunk of this is because we use a "blocking" I2C driver. The MCU (Micro Controller Unit) we use, the brain of the Crazyflie, is the ST Microelectronics STM32F103CB. We actually choose this MCU in 2009 and now it is very commonly used by hobbyists and other UAV platforms. The STM32F103CB MCU we run at full speed, 70Mhz, and it has 128Kb flash and 20Kb RAM. As of December 2012 our current firmware takes 46kb flash and 16kb RAM. The RAM can definitely be more optimised so there are plenty of room to implement more algorithms and fun stuff. We use about 40% of its processing power (with a stabilization update loop at 500Hz) and a big chunk of this is because we use a "blocking" I2C driver.
 ===== Sensors ===== ===== Sensors =====
-As for sensors we run a "6-axis" system using the MPU-6050 which contains a 3-axis gyroscope and an 3-axis accelerometer. This is enough to "attitude" stabilize the Crazyflie making it self levelling. However with a 6-axis system it is not possible to remove the yaw drift and for an autonomus system this would be important. Therefore it is possible to add an magnetometer (HMC58+As for sensors we run a "6-axis" system using the [[http://www.invensense.com/mems/gyro/mpu6050.html|MPU-6050]] from Invensense which contains a 3-axis gyroscope and an 3-axis accelerometer in a single chip. This is enough to "attitude" stabilize the Crazyflie making it self levelling. Our first versions used the analogue variants IDG500 and ISZ500 but the gyro in the MPU-6050 preforms better. The accelerometer in the MPU-6050 however does not perform as well as the Bosch BMA145 we used before but is adequate. The MPU-6050 does not reject the high frequency vibrations as well as the BMA145 therefore keeping the vibration from the motors/props to a minimum makes a big different performance wise.   
 + 
 +With a 6-axis system it is not possible to remove the yaw drift and for an autonomous system this could important. Therefore it is possible to manually solder-mount an magnetometer HMC5883L/HMC5983 afterwards (we have not tested the HMC5983 yet, dec-2012). However we have not put to much time into testing the Crazyflie with a magnetometer and due to the strong magnet fields from the close-by motors it could be a challenge. 
 + 
 +It is also possible to manually solder-mount a MS5611 pressure sensor afterwards if that is of interest. This could make it possible add an altitude-hold functionality. No SW support now though.
 ===== Expansion header ===== ===== Expansion header =====
 +{{:projects:crazyflie:hardware:crazyflie_expansion_header_wiki.png?300 |}}
 +The expansion header is located on the left side of the Crazyflie. It is a 10x2 pin 1.27mm (0.05") pitch trough-hole footprint which comes unmounted. The idea with the through-hole is that it makes it possible to mount expansion boards on either or both sides. It would even be possible to stack several on top of each other.
  
 +The header is divided into two parts. The JTAG part, pin 1 to 10, and the buss/power part, pin 11 to 20. The UART RX/TX is located on the JTAG part because on many FTDI based JTAGs it is possible to use one channel for serial communication which can be very handy when debugging.
 +
 +Header pin description
 +^^ Pin nr ^^ Name ^^ Description ^^
 +|| 1  || VCC || Digital supply voltage ||
 +|| 2  || TMS || Test Mode Select ||
 +|| 3  || EXT_I2C_SCL/TX || I2C clock or UART TX ||
 +|| 4  || TCK || Test Clock ||
 +|| 5  || EXT_I2C_SDA/RX || I2C data or UART RX ||
 +|| 6  || TDO || Test Data Out ||
 +|| 7  || N/A || Could be used for keying ||
 +|| 8  || TDI || Test Data In ||
 +|| 9  || DGND || Digital ground ||
 +|| 10 || SNRST || System reset ||
 +|| 11 || EXT_SPI_CS/AIN4 || SPI chip select or analogue in 4 ||
 +|| 12 || EXT_SPI_MOSI/AIN5 || SPI Master Out Slave In chip or analogue in 5 ||
 +|| 13 || EXT_SPI_SCK/AIN6  || SPI clock or analogue in 6 ||
 +|| 14 || EXT_SPI_MISO/AIN7 || SPI Master In Slave Out chip or analogue in 7 ||
 +|| 15 || VCC || Digital supply voltage ||
 +|| 16 || VCOM || Battery/USB voltage ||
 +|| 17 || DGND || Digital ground ||
 +|| 18 || DGND || Digital ground ||
 +|| 19 || AGND || Analogue ground||
 +|| 20 || VCCA || Analogue supply ||
 + 
 ===== 2.4GHz radio ===== ===== 2.4GHz radio =====
  
 ===== Motor drivers ===== ===== Motor drivers =====
 +{{:projects:crazyflie:hardware:motor_driver_wiki.png?200 |}}
 +The motor driver, as we use brushed motors, is a simple pull down mosfet as shown in the schematics. There is also a free-wheel diode to take the Back-EMF spikes generated by the motor during PWM-ing.
  
 +The mosfet we choose is the PMV31XN in a SOT-23 package. It can handle a lot of power and should be good for at least 3A each. The most important property of the mosfet though might be the on resistance (Rdson) since it effects the amount of power the motors can make use of. We measured the PMV31XN Rdson at 2.8V G-D voltage and 0.8A D-S current to be ~40 mOhm.
 ===== Motors ===== ===== Motors =====
 +We use a coreless brushed DC motor 6x15mm.
 +
 +==== Specification ====
 +**Electrical**
 +|| Description || Value ||
 +|| Rated voltage || 4.2 V Max ||
 +|| Nominal voltage || 3.7 V ||
 +|| No load speed || 45000 ±15% RPM ||
 +|| No load current || 80 mA Max ||
 +|| Starting voltage || 0.8 V Max ||
 +|| Rated load speed || 21000 ±15% RPM ||
 +|| Rated load current || 810 mA Max ||
 +|| Resistance || 2.3 ±20% Ω ||
 +
 +**Mechanical**
 +|| Description || Value ||
 +|| Shaft diameter|| 0.8 mm ||
 +|| Motor diameter || 6 ± 0.05 mm ||
 +|| Motor length || 15 mm ||
 +|| Weight || 1.6g approx.||
  
projects/crazyflie/hardware/explained.txt · Last modified: 2021-06-24 16:49 by kimberly