Difference between revisions of "Lisa"

From PaparazziUAV
Jump to navigation Jump to search
m (typo)
 
(113 intermediate revisions by 16 users not shown)
Line 1: Line 1:
Lisa ( the Lost Illusions Serendipitous Autopilot) is a [http://www.st.com/mcu/inchtml-pages-stm32.html STM32]/[http://www.gumstix.net/Setup-and-Programming/cat/Overo-Setup-and-Programming/111.html Overo] board designed to run Paparazzi
<categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Autopilots</categorytree>
__TOC__
Lisa ( the Lost Illusions Serendipitous Autopilot) is a range of autopilots based on [http://www.st.com/mcu/inchtml-pages-stm32.html STM32] microcontrollers ( CortexM3@72Mhz ) designed to run Paparazzi.
There's no such thing as a perfect autopilot, only autopilots adapted to a particular purpose. This is the reason why the Lisa autopilots come in different styles for different uses.


== TODO ==
The first members of the family are:


open questions
*Lisa/L, a design where the STM32 is associated to a gumstix [http://www.gumstix.net/Setup-and-Programming/cat/Overo-Setup-and-Programming/111.html Overo].
*Lisa/M, a design focusing on cost and simplicity.
*Lisa/S, a design focusing on size and weight.


* why not have servo and rc on PC6-9 ?
==Lisa/L==
* change CAN tranceiver for a  SN65HVD230 at 3V3 ?


=== Description ===


List of files currently being edited:
[[Lisa/L]] is a dual processor board autopilot designed to allow for the possibility of using Linux for Paparazzi airborne code.
*


[[Image:lisa_l_bloc_diag_simple.png|360px]]
[[Image:lisa_l_top.png|360px]] [[Image:lisa_l_bot.png|360px]]


Antoine:
=== Documentation ===
* <strike>check JTAG on STM32</strike>
* <strike>work with Piotr on connecting the missing wires on the STM</strike>
* paparazzi drivers for STM32: (software )
* <strike>USB for gumstix : does 5V need to be switchable ? (to allow reset from the gumstix)</strike>
* <strike>Check's from sheet 5</strike>
* <strike>Pressure sensor instruction to gany (redo airspeed computation), so he can finish the schematic for that (or finish it directly in the schematic) ( in progress ) </strike>
* <strike>Check the routing rules below and add if planned on routing a certain part in a specific way</strike>
* write layout ideas / wishes


Esden:
The documentation for Lisa/L is broken into several parts due to board complexity and Gumstix [[Overo]] integration.
* <strike>STM32 spelling and connection check</strike>
* [[Lisa/L|Main Documentation]] - primary hardware documentation and intro to software
* <strike>Fix STM32 footprint pad sizes</strike>
* [[Dev/LisaL|Additional Developer Documentation]] - additional advanced hardware and software documentation and notes
* <strike>Routing rules that have to be followed</strike>
* [[LisaL_Gallery|Lisa/L Photo Gallery]] - pictures of [[Lisa/L]]
* <strike>Add specification of external pressure sensor ADC</strike>
* [[User/LisaL/Tutorial/Quadrocopter|Unfinished Rotorcraft Tutorial]] - rotorcraft tutorial, needs considerable work
* <strike>Replace all 0603 parts with versions from [http://github.com/esden/pretty-eagle-libs pretty-eagle-lib]</strike>
* [[User/LisaL/Tutorial/FixedWing|Unfinished Fixedwing Tutorial]] - fixedwing tutorial, needs considerable work
* <strike>Replace all molex connectors with versions from [http://github.com/esden/pretty-eagle-libs pretty-eagle-lib]</strike>
* [[OMAP|Gumstix Integration Intro]] - intro and documentation listing for integrating a Gumstix Overo with [[Lisa/L]], including for USB devices and cameras
* <strike>Add a LED shift register</strike> (STP08CP05 should do the job)
* <strike>Order a STP08CP05 sample</strike>
* <strike>Test the STP08CP05 on a breadboard</strike>
* howto for STM32 gcc gdb toolchain (blinking LED or similar) (started writing one on [http://openhardwarewiki.org/wiki/Summon_ARM_Toolchain openhardwarewiki.org])


== Lisa/M ==


Gany:
=== Description ===
* <strike>Check FT2232 footprint hw/lbr/booz.lbr  qfn-64 size & pinout
** -> Changed pad size from 0.6 x 0.4  to  0.75 x 0.25  and moved pin1 indicator outside the chip. </strike> 
* <strike>Make sure STM32 can interrupt overo
** -> connected omap pin 176 with stm pin 11 via level shifter</strike>
* <strike>ADC ref and analog supply voltage on STM</strike>
* <strike>Battery voltage measurement</strike>
* <strike>make sure overo console serial port is usable when FT2232 is not powered. protect overo console with a gate to allow to connect something to it when FTDI is not powered/used.</strike>
* <strike>add led to show FT2232 is powered, since power is from USB</strike>
* <strike>pressure sensor filter and hookup for both sensors</strike>
* <strike>Bring remaining GPIO of STM to a connector</strike>
* <strike>Subtract 2V from abs sensor, 0.75 from differential</strike>
* Run simulation on filter
* Place components
* Route board
* Send for production 4pcb/pcbcard(china)/sunstone


[[Lisa/M]] is a great general purpose small-footprint autopilot. There are currently two versions that have been produced. Detailed documentation can be found here:
* [[Lisa/M_v2.0|Lisa/M v2.0 (current) Documentation]]


[[Image:LisaM_V2_0_TopView.JPG|360px|Lisa/M v2.0 Top View]]


== Hardware ==


Hardware is still in development. The current CAD files are maintained in savannah svn in the paparazzi4/trunk/hw/lisa directory.
* [[Lisa/M_v1.0|Lisa/M v1.0 Documentation]]
Software development is done on a Overo/Summit + Olimex STM32-H103 dev board


[[Image:lisa_proto.jpg|thumb]]
[[Image:lisa_m_top_small.png|360px|Lisa/M v1.0 Top View]]


=== Bill Of Material ===
=== Usage scenarios ===


{|border="1" cellspacing="0" style="text-align:center" cellpadding="2" valign="top"
There are many potential applications for the small, relatively inexpensive and flexible [[Lisa/M]]. For regular Autopilot boards a fully equip [[Lisa/M]] board is needed. For some scenarios just a basic [[Lisa/M]] without an [[Inertial_Measurement_Units|IMU]] and barometric pressure sensor is needed, which reduces the board cost. Here are some ideas (not all have yet to be implemented):
|-style="background:LightYellow; color:black"
!''Qty''!!width="150pt"|''Schematic part name''!!width="150pt"|''Value''!!width="150pt"|''Description''!!''Package''!!''Manufacturer''!!''Manufacturer part #''!!''Digikey''!!width="150pt"|''Mouser''
|-style="background:WhiteSmoke; color:black"
|colspan="10" align="left"|''Resistors''
|-
|foo_qty||foo_schem||foo_val||foo_desc||foo_package||foo_man||foo_man#||foo_dk||foo_mouser
|-style="background:WhiteSmoke; color:black"
|colspan="10" align="left"|''LEDs''
|-
|4||LED_1 to LED_4|| N/A || LED 2x1.2mm RD/GN||foo_package||foo_man||foo_man#||754-1093-1-ND||foo_mouser
|-style="background:WhiteSmoke; color:black"
|colspan="10" align="left"|''ICs''
|-
|1||MCU||STM32F103RE||Microcontrollers (MCU) 32BIT Cortex M3 Performance LINE||LQFP64||STMicroelectronics||STM32F103RET6||497-6444-ND||511-STM32F103RET6
|-
|1||BARO_ABS||MPXH6115|| SENSOR ABS PRESS 16.7PSI MAX || 8-SSOP with Port || Freescale|| ||MPXH6115AC6T1CT-ND||foo_mouser
|-
|1||BARO_DIF||MPXV5004DP|| SENSOR PRESSURE SMD 8-SOP || 8-SOP Dual Port || Freescale|| ||MPXV5004DP-ND||foo_mouser
|-
|1||LT_1||TXS0102DCU|| C VOLT-LEVEL TRANSLATOR 8-US8|| US8 || Texas Instruments|| ||296-21931-1-ND||foo_mouser
|-
|1||LT_3||ADG3308|| IC XLATOR 8CH 1.2-5.5V 20-LFCS || 20-LFCSP || Analog Devices Inc|| ||ADG3308BCPZ-REEL7CT-ND||foo_mouser
|-
|2||LT_I2C1 LT_I2C2||PCA9306|| IC LEVEL TRANSLATOR 8TSSOP || 8-TSSOP || NXP Semiconductors|| ||568-4214-1-ND||foo_mouser
|-
|1||REG6V5A||LM317MDTX|| IC REG POS 0.5A ADJ VOLT DPAK || DPak || Fairchild Semiconductor|| ||LM317MDTXFSCT-ND||foo_mouser
|-style="background:WhiteSmoke; color:black"
|colspan="10" align="left"|''Modules''
|-
|2||REG_3V3D REG_5VD||foo_val||foo_desc||foo_package||Texas Instruments||PTH08080WAH||296-20432-ND||foo_mouser
|-style="background:WhiteSmoke; color:black"
|colspan="10" align="left"|''Crystals/Oscillators''
|-
|1||Q3||foo_val||foo_desc||foo_package||Abracom||ABM8-12.000MHz-B2-T|| foo_dk ||815-ABM8-12-B2-T
|}


=== STM32 ===
* As a basic Autopilot
** To use the [[Lisa/M]] as an autopilot, you need to attach a GPS receiver. A nice [[GPS#u-Blox_LEA_Series_Receivers|uBlox LEA-5H]] or newer will perform great.
* As an advanced Autopilot
** Additional sensors for measuring airspeed, current, etc. would enhance a fixed-wing airframe.
* As a servo extender
** Sometimes being able to control seven actuators is just not enough. Large airframes may require flaps or an airbrake and automatic landing facilities. Maybe special ACL/Nav lights, or four cameras with zoom. By using a coupled second basic [[Lisa/M]] and connecting this to the master Autopilot board we can extend the amount of servos. Large airframes can also benefit from remote and/or redundant servo drivers.
* As a Safety Pilot Device
** To provide an extra safety level required in some UAS challenges. A second [[Lisa]] board can make it easy to adhere to the rules for such a challenge.
* As a Data Logger
** Maybe you have a need only to log all kinds of data, like temperature, volts, amps, height, airspeed, and not control the aircraft. For this we can setup a [[Lisa/M]] board. Collecting this data can be to a storage medium like on a micro SD card. Sometimes there is no need for real-time data collection through telemetry but just for storing a huge dataset.
* As a Camera controller
** On some models that do not require many servos (for example - flying wing with only 3 channels used), spare channels can be used for camera control. In addition, it could be used as an independent pan-tilt unit (PTU) controller.
* As a Airframe Tracker
** Tracking an airframe for an antenna or camera on a tripod is one of the many optional uses for a [[Lisa/M]] Board.


STM32-F103RE
== Lia ==


==== pinout ====
Lia is a lower-cost variant of Lisa/M 2.0. The microcontroller, basic layout, servo outputs, and mounting holes are the same. Major differences:
{|border="1" cellspacing="0" style="text-align:center" cellpadding="2" valign="top"
* 0.1" through-hole connections for non-servo I/O instead of Molex picoblade
|-style="background:LightYellow; color:black"
** PCB size increased slightly to (58x34mm) to accommodate throughholes
!''STM32 Pin''!!width="150pt"|''function''!!width="150pt"|''remark''!!width="150pt"|"validated"
* CAN transceiver removed on initial units; populated on later units (see [http://paparazzi.enac.fr/wiki/Lia documentation])
|-style="background:WhiteSmoke; color:black"
* barometer removed
|colspan="10" align="left"|''SPI1: IMU, MAG, BARO. STM32 is master''
* I2C level shifter removed
|-
* 5V voltage regulator removed
|21||SCK || ||
* Added provisions for multiple BEC input balancing on servo connectors
|-
|22||MISO|| ||
|-
|23||MOSI|| ||
|-
|9 ||DRDY IMU|| ||
|-
|8 ||SS IMU|| ||
|-
|24 ||DRDY MAG|| ||
|-
|10 ||SS MAG|| ||
|-
|25 ||RESET MAG|| ||
|}


SPI1 : IMU/baro high speed sensor communications, STM32 is master
[[Image:Lia_1.1_top.jpg|360px|Lia v1.1 Top View]]
        pin 21 (SCK), 22(MISO), 23(MOSI) 
        accel/gyro 16bitsADC  9(DRDY)  8(SS)
        mag                  24(DRDY) 10(SS)  25(RESET)
        eeprom                        53(SS)
        baro                  40(DRDY) 39(SS)


SPI2 :  overo, STM is slave
        pin 33 (SS), 34(SCK), 35(MISO), 36(MOSI),  11(interrupt for OMAP)


I2C1 :  motorcontroller
[[Lia|Lia documentation]]
        pin 58(SCL), 59(SDA)


I2C2 : extension
== Lisa/S ==
      pin 29(SCL), 30(SDA)


UART1 : GPS or IMUxsense
Lisa/S is very small autopilot board. The focus for this design is size, weight and power consumption. It's an autopilot suited for the smallest airframes.
      pin 42(TX), 43(RX)


UART2 : Modem
[[Image:Lisa_S_V0_1_r2_on_finger.jpg|360px]]
      pin 16(TX) ,17(RX)


UART3 : RC24
* [[Lisa/S|Lisa/S Documentation]]
      pin 51(TX), 52(RX)


CAN : motor controller
      pin 42(TX), 43(RX)


SERVO_out: driving 3 servos
[[Category:Lisa]] [[Category:User_Documentation]] [[Category:Autopilots]]
      37(TIM3CH1), 38(TIM3CH2), 26(TIM3CH3)
 
RC_in: analog RC
      27(TIM3H4)
 
JTAG : flash and debug
      46(TMS), 49(TCK), 50(TDI), 55(TDO), 56(TRST), 7(RESET)
 
ADCs : 1 for battery 2/3 for extansion
     
LED :
      3(LED_CLK), 4(LED_DATA)
 
POWER_SWITCHES: This is switched supply, used for example to switch on and off a video transmitter or some LEDS for night flight
                Can be removed for lack of place
 
 
=== Pressure sensors ===
 
The board is equipped with a pair of pressure sensors, one absolute to measure altitude and one differential to measure airspeed.
 
==== Absolute Pressure ====
The proposed absolute pressure sensor is the freescale [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx6115&fsrch=1 MPXh6115]
The following plot displays the output of the sensor versus altitude
 
[[Image:absolute_pressure.png]]
 
==== Differential Pressure ====
 
The proposed differential sensor is the [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx5004&fsrch=1 MPXV5004DP]
 
[[Image:differential_pressure.png]]
 
Because of high resolution requirements in the pressure sensor circuit there is an external ADC needed with the following features:
* 16bit resolution minimum, 20bit would be awesome
* Two channels (multiplexed or not) each at least 100Hz sampling rate
* I2C or SPI interface (I2C preferred)
** We used the [http://www.maxim-ic.com/quick_view2.cfm/qv_pk/4950 MAX11040] as ADC for a meteo payload, some (SPI) code is there. It samples 4 channels simultaneously in 24 bits (less "in real"). Slowest conversion speed is 250.1 samples/second.
 
=== FT2232 ===
This chip is used for JTAG on STM32 and SERIAL/USB convertion on overo console
 
datasheet: [http://www.ftdichip.com/Documents/DataSheets/DS_FT2232H_V206.pdf URL]  
 
mini module used for dev : [http://www.ftdichip.com/Products/EvaluationKits/FT2232H_MiniModule.htm URL]
 
 
schematics used is from the minimodule as ft2232 and minimodule schematics are not coherent ( regarding pullups of the eeprom)
 
 
=== Gumstix overo ===
 
[http://pubs.gumstix.com/boards/COMS/Overo/PF3503-R2410_DWG.pdf] mechanical drawings
 
== Software ==
 
=== STM32 drivers for paparazzi ===
 
LED : done
 
SYS_TIME : done
 
UART : done without DMA, so got datalink, telemetry and RC24 working
 
PPMout: done, needed for servos ( 3 servos ? )
 
PPMin: not done, needed for analog radio control and windvane
 
I2C : not done, needed for motor controllers
 
SPI : not done, needed for IMU ( big works as we share with mag and baro) and for overo
 
CAN : not done, needed for motor controller and CSC
 
ADC: not done,
 
 
=== STM32 toolchain ===
 
You can use the [http://github.com/esden/summon-arm-toolchain summon-arm-toolchain] script to build the required toolchain.
For the default values of the Paparazzi Makefile to work, you should set
 
<code>
PREFIX=/opt/stm32/toolchain/arm-elf
</code>
and
<code>
LIBSTM32_EN=1
</code>
 
=== Open Embedded ===
 
Open Embedded is the linux distribution used on the overo.
You can follow the [http://www.gumstix.net/Setup-and-Programming/view/Overo-Setup-and-Programming/Setting-up-a-build-environment/111.html instructions] on gumstix's website to build a complete cross development environment. Paparazzi's Makefile will default to look for it in /overo-oe
 
 
== Status ==
 
== Routing Notes ==
* Motor controller connectors in 4 corners of the board if possible
* If we are running out of space on the board we have several options:
** Only one connector for the motors
** Two connectors for the motors on each side of the board
** Two connectors for the motors on each side of the board where each connector can accomodate two motor controller wires (4 pins each connector)
** Servo connector: used to drive up to 3 small servos, for example on a small biplan, or a gimbal for a camera, can also have switched 5V to switch on and OFF the video transmitter
 
== Routing Rules ==
 
* 6mil traces/spacings for signals
* 12mil traces/spacings for power traces (this is min value, otherwise as wide as possible or even planes if possible)
* 6mil layout grid
* Layer stacking:
** Top: Signal + Ground plane
** Route2: Ground plane(s) (Separate analogue and digital ground)
** Route15: Power plane(s)
** Bottom: Signal + Ground plane
* 0.4mm vias with 0.1mm restring

Latest revision as of 08:51, 7 January 2016

Lisa ( the Lost Illusions Serendipitous Autopilot) is a range of autopilots based on STM32 microcontrollers ( CortexM3@72Mhz ) designed to run Paparazzi. There's no such thing as a perfect autopilot, only autopilots adapted to a particular purpose. This is the reason why the Lisa autopilots come in different styles for different uses.

The first members of the family are:

  • Lisa/L, a design where the STM32 is associated to a gumstix Overo.
  • Lisa/M, a design focusing on cost and simplicity.
  • Lisa/S, a design focusing on size and weight.

Lisa/L

Description

Lisa/L is a dual processor board autopilot designed to allow for the possibility of using Linux for Paparazzi airborne code.

Lisa l bloc diag simple.png Lisa l top.png Lisa l bot.png

Documentation

The documentation for Lisa/L is broken into several parts due to board complexity and Gumstix Overo integration.

Lisa/M

Description

Lisa/M is a great general purpose small-footprint autopilot. There are currently two versions that have been produced. Detailed documentation can be found here:

Lisa/M v2.0 Top View


Lisa/M v1.0 Top View

Usage scenarios

There are many potential applications for the small, relatively inexpensive and flexible Lisa/M. For regular Autopilot boards a fully equip Lisa/M board is needed. For some scenarios just a basic Lisa/M without an IMU and barometric pressure sensor is needed, which reduces the board cost. Here are some ideas (not all have yet to be implemented):

  • As a basic Autopilot
    • To use the Lisa/M as an autopilot, you need to attach a GPS receiver. A nice uBlox LEA-5H or newer will perform great.
  • As an advanced Autopilot
    • Additional sensors for measuring airspeed, current, etc. would enhance a fixed-wing airframe.
  • As a servo extender
    • Sometimes being able to control seven actuators is just not enough. Large airframes may require flaps or an airbrake and automatic landing facilities. Maybe special ACL/Nav lights, or four cameras with zoom. By using a coupled second basic Lisa/M and connecting this to the master Autopilot board we can extend the amount of servos. Large airframes can also benefit from remote and/or redundant servo drivers.
  • As a Safety Pilot Device
    • To provide an extra safety level required in some UAS challenges. A second Lisa board can make it easy to adhere to the rules for such a challenge.
  • As a Data Logger
    • Maybe you have a need only to log all kinds of data, like temperature, volts, amps, height, airspeed, and not control the aircraft. For this we can setup a Lisa/M board. Collecting this data can be to a storage medium like on a micro SD card. Sometimes there is no need for real-time data collection through telemetry but just for storing a huge dataset.
  • As a Camera controller
    • On some models that do not require many servos (for example - flying wing with only 3 channels used), spare channels can be used for camera control. In addition, it could be used as an independent pan-tilt unit (PTU) controller.
  • As a Airframe Tracker
    • Tracking an airframe for an antenna or camera on a tripod is one of the many optional uses for a Lisa/M Board.

Lia

Lia is a lower-cost variant of Lisa/M 2.0. The microcontroller, basic layout, servo outputs, and mounting holes are the same. Major differences:

  • 0.1" through-hole connections for non-servo I/O instead of Molex picoblade
    • PCB size increased slightly to (58x34mm) to accommodate throughholes
  • CAN transceiver removed on initial units; populated on later units (see documentation)
  • barometer removed
  • I2C level shifter removed
  • 5V voltage regulator removed
  • Added provisions for multiple BEC input balancing on servo connectors

Lia v1.1 Top View


Lia documentation

Lisa/S

Lisa/S is very small autopilot board. The focus for this design is size, weight and power consumption. It's an autopilot suited for the smallest airframes.

Lisa S V0 1 r2 on finger.jpg