Difference between revisions of "Lisa"

From PaparazziUAV
Jump to navigation Jump to search
m (typo)
 
(71 intermediate revisions by 14 users not shown)
Line 1: Line 1:
Lisa ( the Lost Illusions Serendipitous Autopilot) is a new [http://www.st.com/mcu/inchtml-pages-stm32.html STM32] based range of autopilots 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.  


The first two members of the family are 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] and Lisa/S, an all-in-one design focusing on space and weight constraints.
The first members of the family are:


=Lisa/L=
*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.


== Hardware ==
==Lisa/L==


[[Image:lisa_bd.png|thumb|Block Diagram]]
=== Description ===
[[Image:lisa_l_cad.jpg|thumb|CAD view of the beast]]
[[Image:lisa_l_pcb.jpg|thumb|First batch of proto PCBs]]
[[Image:lisa_l_stencil.jpg|thumb| A stencil to help assembly]]
[[Image:lisa_l_proto1.jpg|thumb|On the scale]]
[[Image:lisa_l_proto2.jpg|thumb|On the touchpad]]
[[Image:lisa_l_proto3.jpg|thumb| Upside down]]
[[Image:lisa_l_proto4.jpg|thumb| Power consumption]]
[[Image:lisa_l_hex_1.jpg|thumb| You're gonna fly the Hex]]
[[Image:lisa_l_hex_2.jpg|thumb| Isn't it cute]]
[[Image:lisa_l_hex_3.jpg|thumb| From the other side]]
[[Image:lisa_l_hex_4.jpg|thumb| Same vehicle]]
[[Image:lisa_turntable.jpg|thumb| Calibration]]
[[Image:lisa_l_hex_5.jpg|thumb|alt=Lisa/L on the hex|[http://www.poinix.org/video/lisa_first_lift.avi Download the video]]]
[[Image:lisa_asctec.jpg|thumb| Big Lisa in small Asctec]]
[[Image:getting_closer.jpg|thumb| Almost there]]


Lisa/L is based on the 64 pins STM32F103RE processor featuring 64k of RAM and 512k of FLASH. All the pins are exposed, providing access to the complete set of the STM32 peripherals.  
[[Lisa/L]] is a dual processor board autopilot designed to allow for the possibility of using Linux for Paparazzi airborne code.


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


The design features a pair of two amps switching power supply module, one on 5V for external peripherals ( like modems, servos, USB webcams or wifi sticks) and one on 3V3 for the rest of the avionics. A third linear supply is available for providing clean power to inertial sensors.
=== Documentation ===


=== STM32 ===
The documentation for Lisa/L is broken into several parts due to board complexity and Gumstix [[Overo]] integration.
* [[Lisa/L|Main Documentation]] - primary hardware documentation and intro to software
* [[Dev/LisaL|Additional Developer Documentation]] - additional advanced hardware and software documentation and notes
* [[LisaL_Gallery|Lisa/L Photo Gallery]] - pictures of [[Lisa/L]]
* [[User/LisaL/Tutorial/Quadrocopter|Unfinished Rotorcraft Tutorial]] - rotorcraft tutorial, needs considerable work
* [[User/LisaL/Tutorial/FixedWing|Unfinished Fixedwing Tutorial]] - fixedwing tutorial, needs considerable work
* [[OMAP|Gumstix Integration Intro]] - intro and documentation listing for integrating a Gumstix Overo with [[Lisa/L]], including for USB devices and cameras


In brief, the STM32 features 3 USARTS, 2 SPI, 2 I2C, 1 CAN, a plethora of timers, ADCs and a generic DMA able to serve all of them.
== Lisa/M ==
On the board, a number of the communication interfaces are level shifted with user selectable voltage to allow interfacing with all kind of peripherals.


=== Pressure sensors ===
=== Description ===


The board is equipped with a pair of pressure sensors, one absolute to measure altitude and one differential to measure airspeed. The sensors are amplified and low passed before being sampled by a pair of 16 bits ADCs.
[[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]]


The absolute pressure sensor is the freescale [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx6115&fsrch=1 MPXh6115] and the differential one is the [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx5004&fsrch=1 MPXV5004DP]
[[Image:LisaM_V2_0_TopView.JPG|360px|Lisa/M v2.0 Top View]]
The following plots displays the output of the sensors versus altitude or airspeed


[[Image:absolute_pressure.png|360px]]
[[Image:differential_pressure.png|360px]]


* [[Lisa/M_v1.0|Lisa/M v1.0 Documentation]]


=== FT2232H ===
[[Image:lisa_m_top_small.png|360px|Lisa/M v1.0 Top View]]


This chip is heart of the communications with the board while developing. It provides JTAG on the STM32 and SERIAL/USB conversion for the Overo console. It is powered by the USB bus and hence unpowered while in flight.
=== Usage scenarios ===


datasheet: [http://www.ftdichip.com/Documents/DataSheets/DS_FT2232H_V206.pdf URL]
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):


mini module used for dev : [http://www.ftdichip.com/Products/EvaluationKits/FT2232H_MiniModule.htm URL]
* 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.


== Lia ==


=== Gumstix overo ===
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 [http://paparazzi.enac.fr/wiki/Lia documentation])
* barometer removed
* I2C level shifter removed
* 5V voltage regulator removed
* Added provisions for multiple BEC input balancing on servo connectors


[http://pubs.gumstix.com/boards/COMS/Overo/PF3503-R2410_DWG.pdf] mechanical drawings
[[Image:Lia_1.1_top.jpg|360px|Lia v1.1 Top View]]


The gumstix Overo is a single board computer module featuring a 600Mhz  OMAP35 processor. It communicates with the STM32 through SPI, offering throughput up to 48Mbps and served by DMA on both sides.
Exposed peripherals comprise two level shifted UARTs and two USB controllers ( one Host and one OTG )


== Software ==
[[Lia|Lia documentation]]


Airframe in the svn currently running on lisa/L
== Lisa/S ==


- Poine/booz2_a6 : this is an hexarotor with mikrokopter motor controllers and running booz2 code in the stm32
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.
- Poine/booz2_a7 : this is an asctec quadrotors with astec motor controllers and running booz2 code in the stm32
- Poine/booz2_a8 : this is a biplan with asctec motor controllers and using stm32 only as io processor - this one is in progress


=== STM32 toolchain ===
[[Image:Lisa_S_V0_1_r2_on_finger.jpg|360px]]


Install paparazzi-stm32 package available in the ENAC karmic and lucid repository. This toolchains contains gcc, newlib, libstm32, gdb and openocd
* [[Lisa/S|Lisa/S Documentation]]
apt-get install paparazzi-stm32


Don't forget the udev rule to get the correct permission for JTAG


in pprz2svn/conf/system/udev/rules/10-paparazzi.rules add :
[[Category:Lisa]] [[Category:User_Documentation]] [[Category:Autopilots]]
 
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010",
MODE="0666", GROUP="plugdev"
 
and folow Setting access rights for USB download on this page: http://paparazzi.enac.fr/wiki/Installation
 
Bug in package paparazzi-stm32, will be fixed in the next version, change ft2232_device_desc to "Lisa/L" in /opt/paparazzi/stm32/share/openocd/scripts/interface/openocd-lisa-jtag.cfg
 
replace:
 
ft2232_device_desc "Dual RS232 A"
 
by
 
ft2232_device_desc "Lisa/L"
 
 
=== STM32 programs ===
 
Booz code now runs in the stm32. booz2_a6.xml is an airframe for an hexarotor using mikrokopter controller and booz2_a7 is an airframe for an asctec using asctec controllers.
 
make AIRCRAFT=BOOZ2_A7 ap.upload
 
will compile and upload the booz autopilot on the stm32 through jtag
 
There are a number of test programs ( see targets in conf/autopilot/lisa_test_progs.makefile )
 
make AIRCRAFT=BOOZ2_A7 test_led.upload
 
will compile and upload a simple led blinking program in the stm32
 
=== Open Embedded ===
 
Open Embedded is the linux distribution used on the overo.
[[LisaOveroImage]] summarizes the instructions for building the development tree.
 
obsolete, left for reference : [[Setting_up_a_build_environment_for_overo-oe]]
 
 
 
 
=== OMAP programs ===
 
There are a couple of demo programs ( at the top of conf/autopilot/lisa_test_progs.makefile )
 
overo_test_periodic : shows how to use the high precision timers
 
overo_test_telemetry : shows how to send telemetry through UDP
 
overo_test_link_stm32 : shows how to exchange data through SPI with the stm32
 
make AICRAFT=BOOZ2_A7 overo_test_telemetry.upload
 
will compile and copy the demo program to the gumstix ( using scp ) . You need to configure the variable HOST in the airframe file for the hostname of your overo, and you might want to have ssh keys to avoid typing your password ( man ssh-copy-id )
 
=== BLAAAA ===
 
Running booz on stm32: see http://paparazzi.enac.fr/wiki/Lisa_Asctec_Bringup
 
testing spi link between overo and stm32:
 
  make AIRCRAFT=BETH clean_ac stm_test_spi_link.upload
  make AIRCRAFT=BETH clean_ac overo_test_spi_link.upload
 
 
 
 
=== TODO ===
  - upload schematics and bloc diagram
  - make stm32 able to interrupt overo ( spi link ) to implement data_ready functionality, possibly use that as source o timing for overo program
  - add a checksum to the spi link between overo and stm32
  - make asctec v2 code able to send settings ( address, direction ) to controllers
  - move sign of IMU calibration coef to a the board/hardware header
  - write ppm decoder for the stm32
  - improve spektrum protocol decoder to automatically handle the different models and modes of transmitters
 
  HW:
  - add termination on adg3308 ( http://www.dizziness-and-balance.com/practice/images/oculomotor/saccades/cerebellar%20(bg)%20saccades.jpg  http://www.nu9n.com/images/overshoot.gif http://www.eas.slu.edu/Earthquake_Center/NM/INSTRUMENT/Q330/Q330.png ) - maybe not, our PCB tracks are short enough not to need them
 
= Lisa/S =
 
More on this new project soon, for now just a CAD rendering to wet your appetite.
[[Image:lisa_s_cad.png|360px]]

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