Difference between revisions of "Chimera/v1.00"
m (→Communication Buses: UART number correction for GPS and Modem) |
|||
(29 intermediate revisions by 3 users not shown) | |||
Line 11: | Line 11: | ||
== Overview == | == Overview == | ||
* STMicro ''' | * STMicro '''STM32F767''' Micro Controller Unit<small> | ||
** ARM Cortex-M7 | ** ''ARM Cortex-M7, 216 MHz CPU, FPU & DSP instructions, 2 Mbytes Flash, 512 Kbytes SRAM, General-purpose DMA,etc.'' | ||
** ''Unlike STM32F4, FPU of STM32F767 [https://en.wikipedia.org/wiki/Double-precision_floating-point_format double precision] capable. It means </small>'''double precision computation is 10 times faster on chimera'''<small> than on STM32F4 based hardware</small>'' | |||
* '''9 DOF Inertial Measurement Unit''' | |||
* '''Barometer/altimeter''' <small>''(I2C, IMU slave capability)''</small> | |||
* '''Differential Pressure Sensor for Pitot tube''' | |||
** | * '''microSD card''' <small>''(+ dedicated power supply for emergency files closing system)''</small> | ||
* All connectors available both in '''standard 0.1” header and Molex Picoblade''' <small>''(except servos and R/C receiver, 0.1” header only)''</small> | |||
* | * '''Dedicated serial link and power supply for "Companion Computer"''' <small>''(Beaglebone, Raspberry, Gumstix, ...)''</small> | ||
* | |||
* | |||
* '''microSD card''' ( | |||
* All connectors available both in '''standard 0.1” header and Molex Picoblade''' (except servos and R/C receiver, 0.1” header only) | |||
* '''Dedicated serial link and power supply for "Companion | |||
* x4 status Leds + '''8 segments LED display''' | * x4 status Leds + '''8 segments LED display''' | ||
* SWD debug connector (STM STLink compliant header) | * SWD debug connector <small>''(STM STLink compliant header)''</small> | ||
* '''x8 Servos''' | * '''x8 Servos''' <small>''(+ '''Servos Power supply selection capabilities''': Chimera onboard power supply or external source)''</small> | ||
* '''x2 RC Receiver inputs''' <small>''(S.BUS, PPM & Spektrum Satellite compatible, including receiver binding)''</small> | |||
* ''x2 RC Receiver inputs''' | * '''x5 UARTs''' <small>''(including one with hardware flow control signals)''</small> | ||
* '''x1 I2C''' bus <small>''(3.3V and 5V logic level)''</small> | |||
* '''x1 SPI''' bus <small>''(with Slave Select, Master or Slave)''</small> | |||
* '''x5 UARTs''' | * '''x1 CAN''' bus | ||
* '''x8 auxiliary Inputs/Outputs''' spread over 2 connectors <small>''(x6 ADC, x6 Timers different from servos, x1 UART, x1 DAC)''</small> | |||
* '''XBEE modem''' holder <small>''(ASSO and Reset connected to MCU GPIOs)''</small> | |||
* '''x1 USB''' :<small> | |||
** ''DFU mode (download) or USB storage (direct access to MicroSD card)'' | |||
** ''micro-USB plug (+ Picoblade & 0.1” header in //)'' | |||
* x1 I2C | ** ''Board can be flashed even if aircraft battery is off)''</small> | ||
* Controlled Powerswitch 5V supply on AUX A (AUX0 to 3) header | |||
* '''Twin switching power supply''' :<small> | |||
* '''x1 SPI''' bus with Slave Select | ** ''source '''2 to 6 Lipo cells''' (6 to 26v)'' | ||
* '''x1 CAN | ** ''5v/3A for “Companion” Computer(controlled by GPIO)'' | ||
* '''x8 auxiliary Inputs/Outputs''' spread over 2 connectors ( | ** ''5v/3A dedicated to Chimera (servos and other 5v peripherals)''</small> | ||
* VBat+Gnd connectors for peripheral | |||
* 89x60mm (3.5x2.4") | |||
* '''XBEE modem''' holder | |||
* '''micro-USB plug | |||
** Board can be flashed even if aircraft battery is off | |||
* '''Twin switching power supply''' | |||
** source '''2 to 6 Lipo cells''' (6 to 26v) | |||
** | |||
** | |||
* | |||
== Hardware Revision History == | == Hardware Revision History == | ||
Line 67: | Line 49: | ||
|v1.00||10/2016||Initial release of Chimera | |v1.00||10/2016||Initial release of Chimera | ||
|} | |} | ||
== Pictures == | |||
<gallery> | |||
Image:Chimera_v100_top_1E_woXB_1.JPG | |||
Image:Chimera_v100_top_1E_woXB_2.JPG | |||
Image:Chimera_v100_woXB_1.JPG | |||
Image:Chimera_v100_woXB_2.JPG | |||
Image:Chimera_v100_woXB_3.JPG | |||
Image:Chimera_v100_woXB_4.JPG | |||
Image:Chimera_v100_woXB_5.JPG | |||
Image:Chimera_v100_woXB_6.JPG | |||
Image:Chimera_v100_picoblade_1.JPG | |||
Image:Chimera_v100_picoblade_2.JPG | |||
</gallery> | |||
== Detailed Features == | == Detailed Features == | ||
== | === MicroSD card (SDIO) === | ||
* software support available with '''v5.2''' and above | |||
* hi-cap power designed to give enough time to cleanly save buffer and close file(s) when power outage detected | |||
* USB-storage mode when plugging an USB cable after startup | |||
=== On-board Sensors === | |||
* 9 DOF IMU<br>[http://www.invensense.com/ Invensense] chip [https://www.invensense.com/products/motion-tracking/9-axis/mpu-9250/ MPU-9250] : 9 DOF, 3 axis Accelerometer + 3 axis Gyroscope + 3 axis Magnetometer | |||
* Barometer/Altimeter<br>[http://www.te.com/ TE Connectivity] module [http://www.te.com/usa-en/product-CAT-BLPS0036.html MS5611-01BA03] : High resolution Integrated digital pressure sensor, 10 to 1200 mbar, 24 bit ADC, I2C & SPI interface | |||
* Differential pressure sensor / Pitot<br>[http://www.te.com/ TE Connectivity] transducer [http://www.te.com/usa-en/product-CAT-BLPS0002.html MS4525DO-DS5AI001DP] : Digital Output Temperature and Differential Pressure sensor, Dual Sideport, 1PSI pressure range, I2C interface | |||
=== USB Modes === | |||
* USB plugged before autopilot is powered : enter DFU mode to be flashed<br>''New ! : Can be flashed even if autopilot is not powered.'' | |||
* USB plugged after autopilot is powered : stop ap task, enter usb storage mode to made sdcard content easily avalaible, after the host has mounted;copied;dismounted storage;unplugged usb, ap restart | |||
=== SWD: Serial Wire Debug === | |||
Permits flash and source level debugging via SWD part of cheap discovery card, or via more capable, fastest, more expensive probe like black magic probe or [[CricketProbe/v1.00|CricketProbe]] | |||
=== R/C Serial === | |||
Chimera offer '''two different R/C Receiver port''' allowing direct connection (3 pin) of several brand off-the-shelf receivers '''without hardware modification''' or external encoder board: | |||
* RC1: '''PPM''' (Timer2 or 5 / Ch2) or '''S.BUS''' (inverted UART4 Rx) or '''Serial''' (non-inverted UART4 Rx) or Serial '''Spektrum satellite''' (non-inverted UART4 Rx + GPIO for binding procedure) | |||
* RC2: '''S.BUS''' (inverted UART7 Rx) or '''Serial''' (non-inverted UART7 Rx) or Serial '''Spektrum satellite''' (non-inverted UART4 Rx + GPIO for binding procedure) | |||
''(see [[RC_Receivers_and_Radios | R/C Receivers and Radios page]] for compatible receivers)'' | |||
=== Power === | |||
The input power source (Battery) voltage range of Chimera is '''6V to 26V''' (2 to 6 Lipo cells) | |||
* Twin Power Supply | |||
** one 5V/3A dedicated to Chimera, servos (see ''Servo Power Supply selection'' below) and other 5V peripheral | |||
** one 5V/3A dedicated to "Companion Computer" available on '''UART1 connector''' ("5V Comp.",#2) '''can be switched ON and OFF''' on demand using EN_COMP (MCU GPIO output PC04). | |||
*** EN_COMP = 1 => 5V Comp. OFF | |||
*** EN_COMP = 0 => 5V Comp. ON (default) | |||
* Servo Power Supply selection<br> Chimera offer 2 options for servo power supply | |||
** Onboard 5V, provided total current (autopilot + external 5V modules + servos) does not exceed 3A. | |||
** External 5V source (BEC) for special servo configuration | |||
(see [[#Servo Power options|''Servo Power options section'']] below for more information) | |||
* Power Switch<br>'''5V''' power output pin on '''AUX A connector''' ("5V Aux.",#2) '''can be switched ON and OFF''' on demand using APSW (MCU GPIO output PE06). | |||
** APSW = 0 => 5V Aux OFF | |||
** APSW = 1 => 5V Aux ON (default) | |||
The internal switch TPS2051B is designed to withstand 500mA continuous current and is '''short-circuit and thermally protected'''.<br> | |||
(see [http://www.ti.com/product/tps2051b TPS2051B] datasheet for recommended operation conditions) | |||
=== Onboard Modem === | |||
Chimera offer two options for Modem: | |||
* External Modem.<br> In this case, Modem should be plugged on "UART3" serial interface connector. | |||
* Onboard XBee module.<br>In this case, XBee pins are connected to : | |||
** Dout -> UART3 Rx (PD09) | |||
** Din -> UART3 Tx (PD08) | |||
** Asso -> GPIO (PA08) | |||
** Reset -> GPIO (PE15)<br>''Note : do not use UART3 Rx and Tx signals if XBee plugged.'' | |||
=== Companion Computer === | |||
Chimera allows to easily connect a "Companion Computer" (Raspberry Pi, BeagleBoneBlack, Intel Edison, Odroid, etc.) to perform on-board computationally intensive tasks impossible to achieve by the autopilot alone.<br> | |||
This connection is made using "UART1" connector which offer: | |||
* Dedicated 5V/3A supply (can be switched ON and OFF on demand using EN_COMP, GPIO output PC04) | |||
* Serial interface UART1 Rx (PB07) & Tx (PB06) for fast communication | |||
=== Communication Buses === | |||
* UART/Serial<br>5 UART serial communication: | |||
** x1 with hardware flow control signals (UART 2) | |||
** x1 for GPS receiver (UART 8) | |||
** x1 (free if no) modem XBee (UART 3) | |||
** x1 (free if no) “Companion Computer” (UART 1) | |||
** x1 free on AUX B connector (UART 6) | |||
* I2C Bus<br>I2C2 interface (SDA2-PB11 and SCL2-PB10) is available in two voltage levels to allow connection of various types of external sensors: | |||
** 3.3V Logic ("I2C2 3V3" 2x 0.1" header and 2x Molex Picoblade connectors in //) | |||
** 5V Logic ("I2C2 5V" 1x 0.1" header and 1x Molex Picoblade connectors in //) | |||
''Note: for testing purpose, I2C1 internal bus signals dedicated to IMU and IMU Slave I2C Bus dedicated to Barometer and Differential pressure sensor are available on 4 pads (or 4 pin MolexPicoblade connector if populated) next to the IMU.'' | |||
* SPI Bus<br>SPI1 interface (MOSI1-PB5 MISO1-PB4 SCK1-PB3 NSS1-PA15) is available on "SPI1" connector.<br>If more than one selection signal (NSS1) is needed, use auxiliary pins (AUX0 to AUX7) configured as GPIO output | |||
* CAN Bus | |||
=== LEDs & Display === | |||
* 4x Leds classical paparazzi state diplay | |||
* 1x 7 segment (plus dot) Led digit for extended mode display | |||
== Pinout == | == Pinout == | ||
Line 78: | Line 151: | ||
[[Image:Chimera_v100_pinout_general.png|1200px|Chimera v1.00 general pinout]] | [[Image:Chimera_v100_pinout_general.png|1200px|Chimera v1.00 general pinout]] | ||
<br> | <br> | ||
<small> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
|+'''UART1 (Companion)''' | |+'''UART1 (Companion)''' | ||
Line 85: | Line 158: | ||
|1||style="background:black; color:white"|GND||PWR||-||common ground | |1||style="background:black; color:white"|GND||PWR||-||common ground | ||
|- | |- | ||
|2||style="background:Orange; color:white"|+5V Comp.||PWR||Controlled by<br>PC5||5V/3A specific for Companion | |2||style="background:Orange; color:white"|+5V Comp.||PWR||Controlled by<br>PC5||5V/3A specific for Companion Computer<br>(PC5 = LOW => ON (default, pulldown) / PC5 = High => OFF) | ||
|- | |- | ||
|3||style="background:Red; color:white"|+3.3V||PWR||-||3.3V Rail from autopilot | |3||style="background:Red; color:white"|+3.3V||PWR||-||3.3V Rail from autopilot | ||
Line 93: | Line 166: | ||
|5||style="background:blue; color:white"|TX1||OUT||PB6||UART1 Serial Output (3.3V level) | |5||style="background:blue; color:white"|TX1||OUT||PB6||UART1 Serial Output (3.3V level) | ||
|} | |} | ||
<br> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
Line 113: | Line 186: | ||
|7||style="background:purple; color:white"|CTS2||IN||PD3||UART2 Flow Control Clear to Send (3.3V level, 5V tolerant) | |7||style="background:purple; color:white"|CTS2||IN||PD3||UART2 Flow Control Clear to Send (3.3V level, 5V tolerant) | ||
|} | |} | ||
<br> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
Line 129: | Line 202: | ||
|5||style="background:blue; color:white"|TX3||OUT||PD8||UART3 Serial Output (3.3V level) '''DO NOT USE''' if XBee module present on Chimera | |5||style="background:blue; color:white"|TX3||OUT||PD8||UART3 Serial Output (3.3V level) '''DO NOT USE''' if XBee module present on Chimera | ||
|} | |} | ||
<br> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
Line 145: | Line 218: | ||
|5||style="background:blue; color:white"|TX8||OUT||PE1||UART8 Serial Output (3.3V level) | |5||style="background:blue; color:white"|TX8||OUT||PE1||UART8 Serial Output (3.3V level) | ||
|} | |} | ||
<br> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
Line 162: | Line 235: | ||
|} | |} | ||
''Note: 2 x Molex Picoblade and 2 x 0.1" Header are all in parallel'' | ''Note: 2 x Molex Picoblade and 2 x 0.1" Header are all in parallel'' | ||
<br> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
Line 178: | Line 251: | ||
|5||style="background:blue; color:white"|SCL2||Open Drain<br>I/O||PB10||I2C12 bus Serial CLock ('''5V level''', 3.3k pull-up) | |5||style="background:blue; color:white"|SCL2||Open Drain<br>I/O||PB10||I2C12 bus Serial CLock ('''5V level''', 3.3k pull-up) | ||
|} | |} | ||
<br> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
Line 198: | Line 271: | ||
|7||style="background:Yellow; color:black"|SCK1||I/O||PB3||SPI1 Serial clock. Clock output from master or input to slave | |7||style="background:Yellow; color:black"|SCK1||I/O||PB3||SPI1 Serial clock. Clock output from master or input to slave | ||
|} | |} | ||
<br> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
|+'''AUX A''' | |+'''AUX A''' ('''paparazzi names''') | ||
!width="5%"|''Pin #''!!width="8%"|''Name''!!width="8%"|''Type''!!width="10%"|''MCU Port''!!''Description'' | !width="5%"|''Pin #''!!width="8%"|''Name''!!width="8%"|''Type''!!width="10%"|''MCU Port''!!''Description'' | ||
|- | |- | ||
Line 210: | Line 283: | ||
|3||style="background:Red; color:white"|+3.3V||PWR||-||3.3V Rail from autopilot | |3||style="background:Red; color:white"|+3.3V||PWR||-||3.3V Rail from autopilot | ||
|- | |- | ||
|4|| | |4||AUX1||I/O||PA5||General Purpose I/O (LED '''5''', SPI '''SLAVE1''') / ADC1+2 in5 ('''ADC_1''') / DAC2 / TIM2 ch1 | ||
|- | |- | ||
|5|| | |5||AUX2||I/O||PA3||General Purpose I/O (LED '''6''', SPI '''SLAVE2''') / ADC1+2+3 in3 ('''ADC_2''') / TIM2 ch4 / TIM5 ch4 / TIM9 ch2 | ||
|- | |- | ||
|6|| | |6||AUX3||I/O||PA2||General Purpose I/O (LED '''7''', SPI '''SLAVE3''') / ADC1+2+3 in2 ('''ADC_3''') / TIM2 ch3 / TIM5 ch3 / TIM9 ch1 | ||
|- | |- | ||
|7|| | |7||AUX4||I/O||PA0||General Purpose I/O (LED '''8''', SPI '''SLAVE4''') / ADC1+2+3 in0 ('''ADC_4''') / TIM2 ch1 ('''PWM_INPUT1''') / TIM5 ch1 | ||
|} | |} | ||
<br> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
|+'''AUX B''' | |+'''AUX B''' ('''paparazzi names''') | ||
!width="5%"|''Pin #''!!width="8%"|''Name''!!width="8%"|''Type''!!width="10%"|''MCU Port''!!''Description'' | !width="5%"|''Pin #''!!width="8%"|''Name''!!width="8%"|''Type''!!width="10%"|''MCU Port''!!''Description'' | ||
|- | |- | ||
Line 230: | Line 303: | ||
|3||style="background:Red; color:white"|+3.3V||PWR||-||3.3V Rail from autopilot | |3||style="background:Red; color:white"|+3.3V||PWR||-||3.3V Rail from autopilot | ||
|- | |- | ||
|4|| | |4||AUX5||I/O||PC3||General Purpose I/O (LED '''9''', SPI '''SLAVE5''') / ADC1+2+3 in13 ('''ADC_5''') | ||
|- | |- | ||
|5|| | |5||AUX6||I/O||PC2||General Purpose I/O (LED '''10''') / ADC1+2+3 in12 ('''ADC_6''') | ||
|- | |- | ||
|6|| | |6||AUX7||I/O||PC6||General Purpose I/O (LED '''11''') / TIM3 ch1 / TIM8 ch1 / UART6 Tx | ||
|- | |- | ||
|7|| | |7||AUX8||I/O||PC7||General Purpose I/O (LED '''12''') / TIM3 ch2 / TIM8 ch2 ('''PWM_INPUT2''') / UART6 Rx | ||
|} | |} | ||
<br> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
Line 253: | Line 326: | ||
|} | |} | ||
''Note: Embedded 120R terminator resistor.'' | ''Note: Embedded 120R terminator resistor.'' | ||
<br> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
Line 268: | Line 341: | ||
|} | |} | ||
''Note: MicroUSB, Molex Picoblade and 0.1" Header USB connectors are in parallel, only one can be connected at a time.'' | ''Note: MicroUSB, Molex Picoblade and 0.1" Header USB connectors are in parallel, only one can be connected at a time.'' | ||
<br> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
Line 287: | Line 360: | ||
|} | |} | ||
''Note: Pin to pin compatible with STM ST-LINK/V2 debug tool connector'' | ''Note: Pin to pin compatible with STM ST-LINK/V2 debug tool connector'' | ||
<br> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
Line 297: | Line 370: | ||
|2||style="background:Red; color:white"|VBAT||PWR||+ Rail from battery<br>use only to power peripheral modules, '''DO NOT''' use as power supply input for autopilot | |2||style="background:Red; color:white"|VBAT||PWR||+ Rail from battery<br>use only to power peripheral modules, '''DO NOT''' use as power supply input for autopilot | ||
|} | |} | ||
<br>< | <br> | ||
</small> | |||
=== R/C Receivers and Servos header pinout === | === R/C Receivers and Servos header pinout === | ||
[[Image:Chimera_v100_pinout_RC_&_Servos.png|1200px|Chimera v1.00 R/C Receivers and Servos header pinout]] | [[Image:Chimera_v100_pinout_RC_&_Servos.png|1200px|Chimera v1.00 R/C Receivers and Servos header pinout]] | ||
<br> | <br> | ||
<small> | |||
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | {|border="1" cellspacing="0" style="text-align:center" cellpadding="2%" width="70%" | ||
|+'''RC Receiver 1''' | |+'''RC Receiver 1''' | ||
Line 311: | Line 385: | ||
|2||style="background:Orange; color:white"|+5V||PWR||-||5V Rail from autopilot | |2||style="background:Orange; color:white"|+5V||PWR||-||5V Rail from autopilot | ||
|- | |- | ||
|3||RC1||I/O||PA1||Serial (SBUS, Spektrum, etc.) or PPM Stream RC receiver signal (5V Tolerant)<br>UART4 Rx / TIM2 ch2 / TIM5 ch2 | |3||RC1||I/O||PA1||Serial (SBUS, Spektrum, etc.) or PPM Stream RC receiver signal (5V Tolerant)<br>UART4 Rx / TIM2 ch2 / TIM5 ch2<br>'''PPM, SPEKTRUM primary, SBUS secondary''' | ||
|} | |} | ||
<br> | <br> | ||
Line 323: | Line 397: | ||
|2||style="background:Orange; color:white"|+5V||PWR||-||5V Rail from autopilot | |2||style="background:Orange; color:white"|+5V||PWR||-||5V Rail from autopilot | ||
|- | |- | ||
|3|| | |3||RC2||I/0||PE7||Serial (SBUS, Spektrum, etc.) RC receiver signal (5V Tolerant)<br>UART7 Rx<br>'''SBUS primary, SPEKTRUM secondary''' | ||
|} | |} | ||
<br> | <br> | ||
Line 338: | Line 412: | ||
|} | |} | ||
<br> | <br> | ||
</small> | |||
=== Servo Power options === | === Servo Power options === | ||
Line 361: | Line 436: | ||
== Schematic == | == Schematic == | ||
[[Image:Chimera_v100_schematic.png|left|1200px|Chimera v1.00 Schematic]] | |||
<br style="clear:both"> | |||
== | == Board production == | ||
=== | === Gerber & Drill for PCB === | ||
PCB design [http://www.eurocircuits.com/PCB-design-guidelines/#classification Eurocircuits 6-C class] compliant: | |||
:'''''[[Media:Chimera_v100_gerber.zip|Download Chimera v1.00 PCB production files (zip)]]''''' | |||
<small> | |||
:RS274X, units = Inches, format = 2:5 | |||
:*Chimera_v100_Silkscreen_TOP.GBR (Top Component Print Layer) | |||
:*Chimera_v100_Soldermask_Top.GBR (Top Solder Mask) | |||
:*Chimera_v100_Paste_Mask_Top.GBR (Top Paste Mask, stencil) | |||
:*Chimera_v100_Signal_Top.GBR (Top Copper Layer) | |||
:*Chimera_v100_Internal_Plane_1.GBR (Internal Copper Layer GND) | |||
:*Chimera_v100_Internal_Plane_2.GBR (Internal Copper Layer +3.3V) | |||
:*Chimera_v100_Signal_Bottom.GBR (Bottom Copper Layer) | |||
:*Chimera_v100_Soldermask_Bottom.GBR (Bottom Solder Mask) | |||
:*Chimera_v100_Outline.GBR (Board Outline) | |||
:*Chimera_v100_Drill.GBR (NC XY coordinates & Drill tools sizes) | |||
</small> | |||
=== Bill Of Material === | === Bill Of Material === | ||
:'''''[[Media:Chimera_v100_BoM.zip |Download Chimera v1.00 Bill of Material (zipped LibreOffice Calc & PDF file)]]''''' | |||
=== | === Components Layout === | ||
<gallery> | |||
Image:Chimera_v100_components_layout_noXB_noDP.png|Chimera v1.00 components Layout<br>(no Xbee modem & no differential pressure sensor) | |||
Image:Chimera_v100_components_layout_XB_DP.png|Chimera v1.00 components Layout | |||
Image:Chimera_v100_components_detail.png|Chimera v1.00 components detail | |||
</gallery> | |||
=== Pick-and-Place === | |||
:'''''[[Media:Chimera v100_pick_place.zip|Download Chimera v1.00 Pick-and-Place files (zip)]]''''' | |||
<small> | |||
:* Chimera_v100_pick_place.csv | |||
:* Chimera_v100_pick_place.pik | |||
:* Chimera_v100_pick_place.txt | |||
</small> | |||
== Mechanical Dimensions == | == Mechanical Dimensions == | ||
[[Image:Chimera_v100_top_mechanical_dimensions.png|800px|Apogee v1.00 Top Mechanical Dimensions]]<br> | |||
== Programming == | == Programming == | ||
==On-board Data Logging== | In order to compile airborne code for the STM32F7 line, it is required to have a GCC '''5.4.x''' or above. If not packaged by default in your distribution, you need to download and install it from https://launchpad.net/gcc-arm-embedded. | ||
Chimera autopilot can reprogrammed in two different ways: | |||
* Using the MCU native (embedded in rom) DFU USB bootloader over the on-board USB connectors (so pre-loading an "external" bootloader is useless) | |||
** required hardware : USB cable with USB-micro connector | |||
** required software : dfu_util tool (present in ubuntu repository) | |||
* Using the SWD (Serial Wire Debug) connector | |||
** required hardware : SWD part of a cheap stm32 evaluation board (any discovery board, start @ 8$), 2.54mm pitch pin-to-pin cable and USB cable with USB-mini or micro connector matching your evaluation board | |||
** required software : st_flash and st_util, have to be compiled from source (https://github.com/texane/stlink) | |||
== On-board Data Logging == | |||
It is possible to write data on the embedded SD card from the main autopilot program. In order to cope with a real-time constraints of the autopilot, a light RTOS called [http://http://www.chibios.org ChibiOS] is used to split the logging task from the rest of the system. Two modules are necessary to enable the logging system: the driver of the SD card system that also handle the file system (using FATFS) and a dynamic memory allocation system called TLSF. | |||
In order to enable this features for your Chimera board, you need to select the correct board type and add the required modules to the firmware section of your airframe file (logging is currently only available for '''fixedwing''' firmware): | |||
<firmware name="firmware"> | |||
... | |||
<target name="ap" board="chimera_1.0"> | |||
... | |||
</target> | |||
... | |||
<module name="tlsf"/> | |||
<module name="logger" type='sd_chibios"/> | |||
</firmware> | |||
This will active the automatic opening of a new log file (30 seconds) after each startup of the autopilot. Then you can freely write ASCII or binary data into this file (see a simple example logging for [https://github.com/paparazzi/paparazzi/blob/master/sw/airborne/modules/meteo/mf_ptu.c meteorological data logging]). | |||
The file is '''automatically''' closed upon battery disconnection, no need to press any button to stop the logging. | |||
To recover the data on the SD card, just power up the board '''without''' the USB plugged (otherwise it will enter in DFU boot mode), then plug the USB cable to the board and to your computer. This will stop the main autopilot program and will mount the SD card as a regular mass storage with a FAT file system. The log files are placed in a PPRZ folder. Unplugging the USB will reset the autopilot. | |||
In addition to this, you can also load a [http://docs.paparazziuav.org/latest/module__flight_recorder.html '''flight recorder''' module] (it also needs the '''pprzlog''' module for supporting the specific paparazzi binary log format). | |||
<firmware> | |||
... | |||
<module name="pprzlog"/> | |||
<module name="flight_recorder"/> | |||
... | |||
</firmware> | |||
with the appropriate telemetry file (conf/telemetry/fixedwing_flight_recorder.xml). This will automatically open a second file where telemetry messages described in the FlightRecorder section of the telemetry file will be logged in [[Data_Logger#Storage_format|binary format]]. The files are store in a separated FR folder on the SD card. The decoding procedure is the same than [[Openlog#Decoding|OpenLog]] and is using the '''sd2log''' tool: | |||
~/paparazzi/sw/logalizer/sd2log [log_file] [optinal_output_dir] | |||
This will produce 3 files: a ''.log'' and a ''.data'' files similar to the normal [[Logs|ground station log]] and ''.tlm'' file that is a simple copy of the binary file (but rename with the same base name than the two others). | |||
== Debugging == | |||
===Debugging with | === Debugging with STM Discovery ST-LINK/V2 embedded debug tool === | ||
[[Image:SWD_Discovery_to_Chimera.png|Chimera debugging with Discovery dev board]] | |||
== | === Debugging with [[CricketProbe/v1.00 | CricketProbe]] === | ||
[[Image:SWD_CricketProbe_to_Chimera.png|800px|Chimera debugging with CricketProbe]] | |||
== Source code == | == Source code == | ||
Available in latest git master branch. | |||
== Where to Buy == | == Where to Buy == | ||
Check availability on [[Get_Hardware|Get Hardware]] page | |||
[[Category:Autopilots]] | [[Category:Autopilots]] |
Latest revision as of 01:41, 12 April 2018
Overview
- STMicro STM32F767 Micro Controller Unit
- ARM Cortex-M7, 216 MHz CPU, FPU & DSP instructions, 2 Mbytes Flash, 512 Kbytes SRAM, General-purpose DMA,etc.
- Unlike STM32F4, FPU of STM32F767 double precision capable. It means double precision computation is 10 times faster on chimera than on STM32F4 based hardware
- 9 DOF Inertial Measurement Unit
- Barometer/altimeter (I2C, IMU slave capability)
- Differential Pressure Sensor for Pitot tube
- microSD card (+ dedicated power supply for emergency files closing system)
- All connectors available both in standard 0.1” header and Molex Picoblade (except servos and R/C receiver, 0.1” header only)
- Dedicated serial link and power supply for "Companion Computer" (Beaglebone, Raspberry, Gumstix, ...)
- x4 status Leds + 8 segments LED display
- SWD debug connector (STM STLink compliant header)
- x8 Servos (+ Servos Power supply selection capabilities: Chimera onboard power supply or external source)
- x2 RC Receiver inputs (S.BUS, PPM & Spektrum Satellite compatible, including receiver binding)
- x5 UARTs (including one with hardware flow control signals)
- x1 I2C bus (3.3V and 5V logic level)
- x1 SPI bus (with Slave Select, Master or Slave)
- x1 CAN bus
- x8 auxiliary Inputs/Outputs spread over 2 connectors (x6 ADC, x6 Timers different from servos, x1 UART, x1 DAC)
- XBEE modem holder (ASSO and Reset connected to MCU GPIOs)
- x1 USB :
- DFU mode (download) or USB storage (direct access to MicroSD card)
- micro-USB plug (+ Picoblade & 0.1” header in //)
- Board can be flashed even if aircraft battery is off)
- Controlled Powerswitch 5V supply on AUX A (AUX0 to 3) header
- Twin switching power supply :
- source 2 to 6 Lipo cells (6 to 26v)
- 5v/3A for “Companion” Computer(controlled by GPIO)
- 5v/3A dedicated to Chimera (servos and other 5v peripherals)
- VBat+Gnd connectors for peripheral
- 89x60mm (3.5x2.4")
Hardware Revision History
Version # | Release Date | Release Notes |
---|---|---|
v1.00 | 10/2016 | Initial release of Chimera |
Pictures
Detailed Features
MicroSD card (SDIO)
- software support available with v5.2 and above
- hi-cap power designed to give enough time to cleanly save buffer and close file(s) when power outage detected
- USB-storage mode when plugging an USB cable after startup
On-board Sensors
- 9 DOF IMU
Invensense chip MPU-9250 : 9 DOF, 3 axis Accelerometer + 3 axis Gyroscope + 3 axis Magnetometer - Barometer/Altimeter
TE Connectivity module MS5611-01BA03 : High resolution Integrated digital pressure sensor, 10 to 1200 mbar, 24 bit ADC, I2C & SPI interface - Differential pressure sensor / Pitot
TE Connectivity transducer MS4525DO-DS5AI001DP : Digital Output Temperature and Differential Pressure sensor, Dual Sideport, 1PSI pressure range, I2C interface
USB Modes
- USB plugged before autopilot is powered : enter DFU mode to be flashed
New ! : Can be flashed even if autopilot is not powered. - USB plugged after autopilot is powered : stop ap task, enter usb storage mode to made sdcard content easily avalaible, after the host has mounted;copied;dismounted storage;unplugged usb, ap restart
SWD: Serial Wire Debug
Permits flash and source level debugging via SWD part of cheap discovery card, or via more capable, fastest, more expensive probe like black magic probe or CricketProbe
R/C Serial
Chimera offer two different R/C Receiver port allowing direct connection (3 pin) of several brand off-the-shelf receivers without hardware modification or external encoder board:
- RC1: PPM (Timer2 or 5 / Ch2) or S.BUS (inverted UART4 Rx) or Serial (non-inverted UART4 Rx) or Serial Spektrum satellite (non-inverted UART4 Rx + GPIO for binding procedure)
- RC2: S.BUS (inverted UART7 Rx) or Serial (non-inverted UART7 Rx) or Serial Spektrum satellite (non-inverted UART4 Rx + GPIO for binding procedure)
(see R/C Receivers and Radios page for compatible receivers)
Power
The input power source (Battery) voltage range of Chimera is 6V to 26V (2 to 6 Lipo cells)
- Twin Power Supply
- one 5V/3A dedicated to Chimera, servos (see Servo Power Supply selection below) and other 5V peripheral
- one 5V/3A dedicated to "Companion Computer" available on UART1 connector ("5V Comp.",#2) can be switched ON and OFF on demand using EN_COMP (MCU GPIO output PC04).
- EN_COMP = 1 => 5V Comp. OFF
- EN_COMP = 0 => 5V Comp. ON (default)
- Servo Power Supply selection
Chimera offer 2 options for servo power supply- Onboard 5V, provided total current (autopilot + external 5V modules + servos) does not exceed 3A.
- External 5V source (BEC) for special servo configuration
(see Servo Power options section below for more information)
- Power Switch
5V power output pin on AUX A connector ("5V Aux.",#2) can be switched ON and OFF on demand using APSW (MCU GPIO output PE06).- APSW = 0 => 5V Aux OFF
- APSW = 1 => 5V Aux ON (default)
The internal switch TPS2051B is designed to withstand 500mA continuous current and is short-circuit and thermally protected.
(see TPS2051B datasheet for recommended operation conditions)
Onboard Modem
Chimera offer two options for Modem:
- External Modem.
In this case, Modem should be plugged on "UART3" serial interface connector. - Onboard XBee module.
In this case, XBee pins are connected to :- Dout -> UART3 Rx (PD09)
- Din -> UART3 Tx (PD08)
- Asso -> GPIO (PA08)
- Reset -> GPIO (PE15)
Note : do not use UART3 Rx and Tx signals if XBee plugged.
Companion Computer
Chimera allows to easily connect a "Companion Computer" (Raspberry Pi, BeagleBoneBlack, Intel Edison, Odroid, etc.) to perform on-board computationally intensive tasks impossible to achieve by the autopilot alone.
This connection is made using "UART1" connector which offer:
- Dedicated 5V/3A supply (can be switched ON and OFF on demand using EN_COMP, GPIO output PC04)
- Serial interface UART1 Rx (PB07) & Tx (PB06) for fast communication
Communication Buses
- UART/Serial
5 UART serial communication:- x1 with hardware flow control signals (UART 2)
- x1 for GPS receiver (UART 8)
- x1 (free if no) modem XBee (UART 3)
- x1 (free if no) “Companion Computer” (UART 1)
- x1 free on AUX B connector (UART 6)
- I2C Bus
I2C2 interface (SDA2-PB11 and SCL2-PB10) is available in two voltage levels to allow connection of various types of external sensors:- 3.3V Logic ("I2C2 3V3" 2x 0.1" header and 2x Molex Picoblade connectors in //)
- 5V Logic ("I2C2 5V" 1x 0.1" header and 1x Molex Picoblade connectors in //)
Note: for testing purpose, I2C1 internal bus signals dedicated to IMU and IMU Slave I2C Bus dedicated to Barometer and Differential pressure sensor are available on 4 pads (or 4 pin MolexPicoblade connector if populated) next to the IMU.
- SPI Bus
SPI1 interface (MOSI1-PB5 MISO1-PB4 SCK1-PB3 NSS1-PA15) is available on "SPI1" connector.
If more than one selection signal (NSS1) is needed, use auxiliary pins (AUX0 to AUX7) configured as GPIO output
- CAN Bus
LEDs & Display
- 4x Leds classical paparazzi state diplay
- 1x 7 segment (plus dot) Led digit for extended mode display
Pinout
Pins Name and Type are specified with respect to the Autopilot Board
General Pinout
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V Comp. | PWR | Controlled by PC5 |
5V/3A specific for Companion Computer (PC5 = LOW => ON (default, pulldown) / PC5 = High => OFF) |
3 | +3.3V | PWR | - | 3.3V Rail from autopilot |
4 | RX1 | IN | PB7 | UART1 Serial Input (3.3V level, 5V tolerant) |
5 | TX1 | OUT | PB6 | UART1 Serial Output (3.3V level) |
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V | PWR | - | 5V Rail from autopilot |
3 | +3.3V | PWR | - | 3.3V Rail from autopilot |
4 | RX2 | IN | PD6 | UART2 Serial Input (3.3V level, 5V tolerant) |
5 | TX2 | OUT | PD5 | UART2 Serial Output (3.3V level) |
6 | RTS2 | OUT | PD4 | UART2 Flow Control Request to Send (3.3V level) |
7 | CTS2 | IN | PD3 | UART2 Flow Control Clear to Send (3.3V level, 5V tolerant) |
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V | PWR | - | 5V Rail from autopilot |
3 | +3.3V | PWR | - | 3.3V Rail from autopilot |
4 | RX3 | IN | PD9 | UART3 Serial Input (3.3V level, 5V tolerant) DO NOT USE if XBee module present on Chimera |
5 | TX3 | OUT | PD8 | UART3 Serial Output (3.3V level) DO NOT USE if XBee module present on Chimera |
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V | PWR | - | 5V Rail from autopilot |
3 | +3.3V | PWR | - | 3.3V Rail from autopilot |
4 | RX8 | IN | PE0 | UART8 Serial Input (3.3V level, 5V tolerant) |
5 | TX8 | OUT | PE1 | UART8 Serial Output (3.3V level) |
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V | PWR | - | 5V Rail from autopilot |
3 | +3.3V | PWR | - | 3.3V Rail from autopilot |
4 | SDA2 | Open Drain I/O |
PB11 | I2C2 bus Serial DAta (3.3V level, 1.5k pull-up) |
5 | SCL2 | Open Drain I/O |
PB10 | I2C12 bus Serial CLock (3.3V level, 1.5k pull-up) |
Note: 2 x Molex Picoblade and 2 x 0.1" Header are all in parallel
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V | PWR | - | 5V Rail from autopilot |
3 | +3.3V | PWR | - | 3.3V Rail from autopilot |
4 | SDA2 | Open Drain I/O |
PB11 | I2C2 bus Serial DAta (5V level, 3.3k pull-up) |
5 | SCL2 | Open Drain I/O |
PB10 | I2C12 bus Serial CLock (5V level, 3.3k pull-up) |
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V | PWR | - | 5V Rail from autopilot |
3 | +3.3V | PWR | - | 3.3V Rail from autopilot |
4 | NSS1 | OUT | PA15 | Slave Select. Selects the SPI slave |
5 | MOSI1 | I/O | PB5 | SPI1 Master Out Slave In. Data output from master / data input to slave |
6 | MISO1 | I/O | PB4 | SPI1 Master In Slave Out. Data input to master / data output from slave |
7 | SCK1 | I/O | PB3 | SPI1 Serial clock. Clock output from master or input to slave |
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V Aux | PWR | Controlled by PC4 |
5V from autopilot through Power Switch (PC4 = LOW => OFF / PC4 = High => ON) |
3 | +3.3V | PWR | - | 3.3V Rail from autopilot |
4 | AUX1 | I/O | PA5 | General Purpose I/O (LED 5, SPI SLAVE1) / ADC1+2 in5 (ADC_1) / DAC2 / TIM2 ch1 |
5 | AUX2 | I/O | PA3 | General Purpose I/O (LED 6, SPI SLAVE2) / ADC1+2+3 in3 (ADC_2) / TIM2 ch4 / TIM5 ch4 / TIM9 ch2 |
6 | AUX3 | I/O | PA2 | General Purpose I/O (LED 7, SPI SLAVE3) / ADC1+2+3 in2 (ADC_3) / TIM2 ch3 / TIM5 ch3 / TIM9 ch1 |
7 | AUX4 | I/O | PA0 | General Purpose I/O (LED 8, SPI SLAVE4) / ADC1+2+3 in0 (ADC_4) / TIM2 ch1 (PWM_INPUT1) / TIM5 ch1 |
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V | PWR | - | 5V Rail from autopilot |
3 | +3.3V | PWR | - | 3.3V Rail from autopilot |
4 | AUX5 | I/O | PC3 | General Purpose I/O (LED 9, SPI SLAVE5) / ADC1+2+3 in13 (ADC_5) |
5 | AUX6 | I/O | PC2 | General Purpose I/O (LED 10) / ADC1+2+3 in12 (ADC_6) |
6 | AUX7 | I/O | PC6 | General Purpose I/O (LED 11) / TIM3 ch1 / TIM8 ch1 / UART6 Tx |
7 | AUX8 | I/O | PC7 | General Purpose I/O (LED 12) / TIM3 ch2 / TIM8 ch2 (PWM_INPUT2) / UART6 Rx |
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V | PWR | - | 5V Rail from autopilot |
3 | CANH | I/O | - | CAN bidirectional + line |
4 | CANL | I/O | - | CAN bidirectional - line |
Note: Embedded 120R terminator resistor.
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | USB+ | I/O | PA12 | USB bidirectional D+ line |
3 | USB- | I/O | PA11 | USB bidirectional D- line |
4 | VBUS | IN | PA9 | Indicates the presence of USB bus power (5V level), DFU or USB storage Mode selection (BOOT0 MCU pin) |
Note: MicroUSB, Molex Picoblade and 0.1" Header USB connectors are in parallel, only one can be connected at a time.
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | +3.3V | PWR | - | 3.3V Rail from autopilot |
2 | SWCLK | IN | PA14 | SWD Serial Clock |
3 | GND | PWR | - | common ground |
4 | SWDIO | I/O | PA13 | SWD Serial Data |
5 | RST | IN | NRST | MCU Reset |
6 | NC | - | - | Not connected, for STM ST-LINK/V2 connector compliance |
Note: Pin to pin compatible with STM ST-LINK/V2 debug tool connector
Pin # | Name | Type | Description |
---|---|---|---|
1 | GND | PWR | common ground use only to power peripheral modules, DO NOT use as power supply input for autopilot |
2 | VBAT | PWR | + Rail from battery use only to power peripheral modules, DO NOT use as power supply input for autopilot |
R/C Receivers and Servos header pinout
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V | PWR | - | 5V Rail from autopilot |
3 | RC1 | I/O | PA1 | Serial (SBUS, Spektrum, etc.) or PPM Stream RC receiver signal (5V Tolerant) UART4 Rx / TIM2 ch2 / TIM5 ch2 PPM, SPEKTRUM primary, SBUS secondary |
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V | PWR | - | 5V Rail from autopilot |
3 | RC2 | I/0 | PE7 | Serial (SBUS, Spektrum, etc.) RC receiver signal (5V Tolerant) UART7 Rx SBUS primary, SPEKTRUM secondary |
Pin # | Name | Type | MCU Port | Description |
---|---|---|---|---|
1 | GND | PWR | - | common ground |
2 | +5V Servo | PWR | - | 5V Rail for Servos |
3 | SRV0 SRV1 SRV2 SRV3 SRV4 SRV5 SRV6 SRV7 |
OUT | PA6 PA7 PB0 PB1 PD12 PD13 PD14 PD15 |
Servo signal (PWM) |
Servo Power options
There is two options to supply connected servos.
Note : Whatever option is chosen, autopilot's ground already connected to servomotor's ground.
Powering Servos with Autopilot
This option can be used provided total current from 5V rail (autopilot + external 5V modules + servos) does not exceed 3A.
In this case, 5V servo rail must be connected to autopilot 5V rail as described below.
Warning: make sure shunt current rating exceed servos total consumption
A practical way of making this connection is to use a 2 or 3 way shunt like Samtec's MNT-103-BK-G (3.9A/pin)
Powering Servos using an external BEC/Power Source
This option must be used if total current from 5V rail may exceed 3A or for other special servo configuration.
Schematic
Board production
Gerber & Drill for PCB
PCB design Eurocircuits 6-C class compliant:
- RS274X, units = Inches, format = 2:5
- Chimera_v100_Silkscreen_TOP.GBR (Top Component Print Layer)
- Chimera_v100_Soldermask_Top.GBR (Top Solder Mask)
- Chimera_v100_Paste_Mask_Top.GBR (Top Paste Mask, stencil)
- Chimera_v100_Signal_Top.GBR (Top Copper Layer)
- Chimera_v100_Internal_Plane_1.GBR (Internal Copper Layer GND)
- Chimera_v100_Internal_Plane_2.GBR (Internal Copper Layer +3.3V)
- Chimera_v100_Signal_Bottom.GBR (Bottom Copper Layer)
- Chimera_v100_Soldermask_Bottom.GBR (Bottom Solder Mask)
- Chimera_v100_Outline.GBR (Board Outline)
- Chimera_v100_Drill.GBR (NC XY coordinates & Drill tools sizes)
Bill Of Material
Components Layout
Pick-and-Place
- Chimera_v100_pick_place.csv
- Chimera_v100_pick_place.pik
- Chimera_v100_pick_place.txt
Mechanical Dimensions
Programming
In order to compile airborne code for the STM32F7 line, it is required to have a GCC 5.4.x or above. If not packaged by default in your distribution, you need to download and install it from https://launchpad.net/gcc-arm-embedded.
Chimera autopilot can reprogrammed in two different ways:
- Using the MCU native (embedded in rom) DFU USB bootloader over the on-board USB connectors (so pre-loading an "external" bootloader is useless)
- required hardware : USB cable with USB-micro connector
- required software : dfu_util tool (present in ubuntu repository)
- Using the SWD (Serial Wire Debug) connector
- required hardware : SWD part of a cheap stm32 evaluation board (any discovery board, start @ 8$), 2.54mm pitch pin-to-pin cable and USB cable with USB-mini or micro connector matching your evaluation board
- required software : st_flash and st_util, have to be compiled from source (https://github.com/texane/stlink)
On-board Data Logging
It is possible to write data on the embedded SD card from the main autopilot program. In order to cope with a real-time constraints of the autopilot, a light RTOS called ChibiOS is used to split the logging task from the rest of the system. Two modules are necessary to enable the logging system: the driver of the SD card system that also handle the file system (using FATFS) and a dynamic memory allocation system called TLSF. In order to enable this features for your Chimera board, you need to select the correct board type and add the required modules to the firmware section of your airframe file (logging is currently only available for fixedwing firmware):
<firmware name="firmware"> ... <target name="ap" board="chimera_1.0"> ... </target> ... <module name="tlsf"/> <module name="logger" type='sd_chibios"/> </firmware>
This will active the automatic opening of a new log file (30 seconds) after each startup of the autopilot. Then you can freely write ASCII or binary data into this file (see a simple example logging for meteorological data logging). The file is automatically closed upon battery disconnection, no need to press any button to stop the logging.
To recover the data on the SD card, just power up the board without the USB plugged (otherwise it will enter in DFU boot mode), then plug the USB cable to the board and to your computer. This will stop the main autopilot program and will mount the SD card as a regular mass storage with a FAT file system. The log files are placed in a PPRZ folder. Unplugging the USB will reset the autopilot.
In addition to this, you can also load a flight recorder module (it also needs the pprzlog module for supporting the specific paparazzi binary log format).
<firmware> ... <module name="pprzlog"/> <module name="flight_recorder"/> ... </firmware>
with the appropriate telemetry file (conf/telemetry/fixedwing_flight_recorder.xml). This will automatically open a second file where telemetry messages described in the FlightRecorder section of the telemetry file will be logged in binary format. The files are store in a separated FR folder on the SD card. The decoding procedure is the same than OpenLog and is using the sd2log tool:
~/paparazzi/sw/logalizer/sd2log [log_file] [optinal_output_dir]
This will produce 3 files: a .log and a .data files similar to the normal ground station log and .tlm file that is a simple copy of the binary file (but rename with the same base name than the two others).
Debugging
Debugging with STM Discovery ST-LINK/V2 embedded debug tool
Debugging with CricketProbe
Source code
Available in latest git master branch.
Where to Buy
Check availability on Get Hardware page