Difference between revisions of "Lisa/M v2.0"

From PaparazziUAV
Jump to navigation Jump to search
m
 
(101 intermediate revisions by 19 users not shown)
Line 3: Line 3:
<div style="float: right; width: 40%">__TOC__</div>
<div style="float: right; width: 40%">__TOC__</div>


Lisa/M is a small, general purpose autopilot designed with flexibility across multiple applications in mind. Small weight and size, with (optional) integrated [[AspirinIMU | Aspirin IMU]] and full size 0.1" servo headers make the Lisa/M suitable for both fixed-wing and rotorcraft vehicles. This autopilot is based on the STM32 for improved peripherals and faster processing.
Lisa/M is a small, general purpose autopilot designed with flexibility across multiple applications in mind. Small weight and size, with (optional) integrated [[AspirinIMU | Aspirin IMU]] and full size 0.1" servo headers make the Lisa/M suitable for both fixed-wing and rotorcraft vehicles. This autopilot is based on a STM32 processor for extensive peripheral connection and faster processing.


A number of tutorials are being prepared for getting started with Lisa/M:
A number of tutorials are being prepared for getting started with Lisa/M:
Line 9: Line 9:
* [[Lisa/M/Tutorial/RotorCraft|Rotorcraft tutorial]]
* [[Lisa/M/Tutorial/RotorCraft|Rotorcraft tutorial]]


== Hardware Revision History ==
Please join us in our quest to make the getting started information even more, eh... informative, by adjusting those pages with your own improvements.
 
{|border="1"  cellspacing="0" style="text-align:center" cellpadding="6"
!''Version #''!!''Release Date''!!''Release Notes''
|-
|v2.0(current)||03/2012||Updated Production Release
|-
|v1.1||MM/YYYY||Updated Prototype
|-
|v1.0||MM/YYYY||Initial Production Release
|-
|v0.1||MM/YYYY||Initial prototype of Lisa/M
|}
For detailed hardware revision history, please [[Lisa/M#Detailed_Hardware_Revision_History | see below]].


== Features ==
== Features ==
Line 30: Line 17:


* STM32 microcontroller [http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00220364.pdf STM32F105RCT6 datasheet] with 256kB flash and 64kB RAM
* STM32 microcontroller [http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00220364.pdf STM32F105RCT6 datasheet] with 256kB flash and 64kB RAM
* Pressure sensor [http://www.bosch-sensortec.com/content/language1/html/3477.htm BMP085]
* Pressure sensor [http://www.bosch-sensortec.com/content/language1/html/3477.htm BMP085] (optional as of 08/2012)
* 7 x Analog input channels
* 7 x Analog input channels
* 3 x Generic digital in-/out-puts
* 3 x Generic digital in-/out-puts
* 2 x 3.3V TTL UART (5V tolerant)
* 2 x 3.3V TTL UART (5V tolerant)
* 8 x Servo PPM outputs (6 w/ second I2C bus in use)
* 8 x Servo PPM outputs (only 6 if second I2C (I2C1) bus in use)
* 1 x CAN bus
* 1 x CAN bus
* 1 x [http://en.wikipedia.org/wiki/Serial_Peripheral_Interface SPI] bus
* 1 x [http://en.wikipedia.org/wiki/Serial_Peripheral_Interface SPI] bus
Line 50: Line 37:
* 3 Axis Accelerometer
* 3 Axis Accelerometer
* 3 Axis Magnetometer
* 3 Axis Magnetometer
* Barometer MS5611 (as of Aspirin v2.1)


A BMP085 pressure sensor is mounted directly on the board in the first batch of boards as this sensor is not provided by first batch of Aspirin IMU yet. It is however possible to solder a MS5611 sensor on the Aspirin 2.x . To be able to use this baromeric sensor software will be written and likely available late 2012. It would be great to help out if you are able to.  
NOTE:
'''Lisa/M has pads for the BMP085 pressure sensor. Lias/M 2 boards made before August 2012 had the BMP085 sensor mounted. Boards made after August 2012 do not have the sensor mounted as they are designed to be used with Aspirin 2.1 which has the new MS5611-01BA03 barometric pressure sensor.'''


So, except for a GPS unit you have all necessary sensors for full attitude and altitude stabilization in an extremely small package.
So, except for a GPS unit you have all necessary sensors for full attitude and altitude stabilization in an extremely small package.


<gallery widths=200px heigths=200px>
<gallery widths=200px heights=200px>
Image:LisaM_V2_0_TopView.JPG|Lisa/M V2.0 top view
Image:LisaM_V2_0_TopView.JPG|Lisa/M V2.0 top view
Image:LisaM_V2_0_BottomView.JPG|Lisa/M V2.0 bottom view
Image:LisaM_V2_0_BottomView.JPG|Lisa/M V2.0 bottom view
Line 144: Line 133:
|3|| +5V||PWR||5V Rail from autopilot||style="background:Red; color:white"|Red
|3|| +5V||PWR||5V Rail from autopilot||style="background:Red; color:white"|Red
|-
|-
|4||ADC4||I/O||ADC4, by default connected to LED7 cathode (Remove LED/resistor to use as ADC)||style="background:magenta; color:white"|Magenta
|4||ADC4||I/O||by default connected to LED_4 cathode (Remove LED/resistor to use as ADC4)||style="background:magenta; color:white"|Magenta
|-
|-
|5||ADC6||I/O||ADC6, by default connected to LED8 cathode (Remove LED/resistor to use as ADC)||style="background:#FFA1B2; color:black"|Pink
|5||ADC6||I/O||by default connected to LED_3 cathode (Remove LED/resistor to use as ADC6)||style="background:#FFA1B2; color:black"|Pink
|-
|-
|6||BOOT0||I/O||BOOT0||style="background:grey; color:black"|Grey
|6||BOOT0||I/O||BOOT0||style="background:grey; color:black"|Grey
Line 166: Line 155:
|1||GND||PWR||common ground||style="background:black; color:white"|Black
|1||GND||PWR||common ground||style="background:black; color:white"|Black
|-
|-
|2|| V_BATT||PWR||V_BAT Bus on autopilot, voltage divider for V_BAT_MEAS, (conf w/ JP2 to connect to V_IN)||style="background:Red; color:white"|Red
|2|| V_BATT||PWR||V_BATT Bus on autopilot, voltage divider for V_BAT_MEAS, (conf w/ JP2 to connect to V_IN)||style="background:Red; color:white"|Red
|-
|-
|3|| V_IN||PWR||Connected to autopilot voltage regulator inputs (conf w/ JP1, JP2 and JP3)||style="background:Red; color:white"|Red
|3|| V_IN||PWR||Connected to autopilot voltage regulator inputs (conf w/ JP1, JP2 and JP3)||style="background:Red; color:white"|Red
Line 210: Line 199:
|3|| +5V||PWR||5V Rail from autopilot||style="background:Red; color:white"|Red
|3|| +5V||PWR||5V Rail from autopilot||style="background:Red; color:white"|Red
|-
|-
|4||ADC1||In||ADC1||style="background:green; color:white"|Green
|4||ADC1||In||ADC1 (or LED_6 if populated)||style="background:green; color:white"|Green
|-
|-
|5||ADC2||In||ADC2||style="background:blue; color:white"|Blue
|5||ADC2||In||ADC2 (or LED_7 if populated)||style="background:blue; color:white"|Blue
|-
|-
|6||ADC3||In||ADC3||style="background:#FED6B1; color:black"|Light Tan
|6||ADC3||In||ADC3 (or LED_8 if populated)||style="background:#FED6B1; color:black"|Light Tan
|}
|}


Line 246: Line 235:




'''NOTE 1''': SERVO7 and SERVO8 are directly connected to I2C1_SCL and I2C1_SDA. As such, SERVO7 and SERVO8 '''CAN NOT''' be used while the second I2C bus (I2C1) also needs to be used for some reason.
'''NOTE 1''': SERVO7 and SERVO8 are directly connected to I2C1_SCL and I2C1_SDA lines. Therefore one has to choose, either use SERVO7 and SERVO8 '''OR''' have the I2C1 bus available, if that one needs to be used for whatever reason alongside the I2C2 bus. To use the servos 7 and 8 just set the  <define name="USE_SERVOS_7AND8"/>  in your airframe file and you are good to go. For this to work one must make sure to have the latest Paparazzi sourcecode.


=== LEDs ===
Lisa/M 2.0 has 5 LEDS (+1 power LED). There are 3 additional LEDs (LED_6, LED_7, LED_8) that are not populated by default (in favor of using ADC1-3 on the ANALOG1 connector).
By default the LEDs are use for:
; LED_1, red: ''SYS_TIME_LED'': blinks with 1Hz
; LED_2, green : ''AHRS_ALIGNER_LED'': blinks until the AHRS is aligned (gyro bias initialized) and then stays on
; LED_3, green : ''GPS_LED'': blinking if trying to get a fix, on if 3D fix
; LED_4, red : ''RADIO_CONTROL_LED'': on if RC signal is ok
; LED_5, green : not set to anything by default


=== Jumper Configuration ===
=== Jumper Configuration ===
There are a number of jumpers on Lisa/M used to configure voltage levels and power input.
There are a number of jumpers on Lisa/M used to configure voltage levels and power input.


The default configuration is UART3 VCC at V_IN, UART1/2/5 VCC at +3V3, with the V_SERVO servo voltage rail NOT connected to the autopilot V_IN rail, allowing one to power the autopilot and servos separately. The +5V regulator is NOT bypassed, allowing a regulated +5V on listed headers and for the CAN transceiver and I2C level shifter. The V_BAT connector is NOT connected to V_IN, so one can attach a battery voltage to the V_BAT pin to measure the battery voltage, if so desired.
The default configuration is UART3 VCC at V_IN, UART1/2/5 VCC at +3V3, with the V_SERVO servo voltage rail NOT connected to the autopilot V_IN rail, allowing one to power the autopilot and servos separately. The +5V regulator is NOT bypassed, allowing a regulated +5V on listed headers and for the CAN transceiver and I2C level shifter. The V_BATT connector is NOT connected to V_IN, so one can attach a battery voltage to the V_BATT pin to measure the battery voltage, if so desired.


<gallery widths=380px heights=205px>
<gallery widths=380px heights=205px>
Line 264: Line 261:
!width="7%"|''Jumper''!!width="20%"|''Bus Connection''!!width="7%"|''Default''!!''Description''
!width="7%"|''Jumper''!!width="20%"|''Bus Connection''!!width="7%"|''Default''!!''Description''
|-
|-
|JP1||SERVO_BUS to V_IN||OPEN||Connects servo header voltage rail SERVO_BUS to autopilot input voltage V_IN rail
|JP1||SERVO_BUS to V_IN||OPEN||If closed then connects servo header voltage rail SERVO_BUS to autopilot input voltage V_IN rail
|-
|-
|JP2||V_BAT to V_IN||OPEN||Connects I2C1/CAN rail V_BAT to autopilot input voltage V_IN rail
|JP2||V_BATT to V_IN||OPEN||If closed then connects I2C1/CAN rail V_BATT to autopilot input voltage V_IN rail
|-
|-
|JP3||V_IN to +5V||OPEN||Connects autopilot input voltage V_IN rail to autopilot +5V rail, bypassing onboard 5V supply
|JP3||V_IN to +5V||OPEN||If closed then connects autopilot input voltage V_IN rail to autopilot +5V rail, bypassing onboard 5V supply
|}
|}


Line 278: Line 275:
|JP6||UART3_VCC to V_IN||style="background:black; color:white"|CLOSED||Connects UART3 connector VCC to autopilot input voltage V_IN rail
|JP6||UART3_VCC to V_IN||style="background:black; color:white"|CLOSED||Connects UART3 connector VCC to autopilot input voltage V_IN rail
|-
|-
|JP7||UART3_VCC to +3V3||OPEN||Connects UART3 connector VCC to autopilot +3V3 rail
|JP7||UART3_VCC to +3V3||OPEN||If closed then connects UART3 connector VCC to autopilot +3V3 rail
|}
|}
'''WARNING: UART3 GPS Connector is connected to V_IN, check your GPS input voltage before connecting!!!'''
'''WARNING: UART3 GPS Connector is connected to V_IN, check your GPS input voltage before connecting!!!'''
Line 289: Line 286:
!width="7%"|''Jumper''!!width="20%"|''Bus Connection''!!width="7%"|''Default''!!''Description''
!width="7%"|''Jumper''!!width="20%"|''Bus Connection''!!width="7%"|''Default''!!''Description''
|-
|-
|JP4||UART2_VCC to V_IN||OPEN||Connects UART2 connector VCC to autopilot input voltage V_IN rail '''SEE WARNING BELOW'''
|JP4||UART2_VCC to V_IN||OPEN||If closed then connects UART2 connector VCC to autopilot input voltage V_IN rail '''SEE WARNING BELOW'''
|-
|-
|JP5||UART2_VCC to +3V3||style="background:black; color:white"|CLOSED||Connects UART2 connector VCC to autopilot +3V3 rail
|JP5||UART2_VCC to +3V3||style="background:black; color:white"|CLOSED||If closed then connects UART2 connector VCC to autopilot +3V3 rail
|}
|}
'''WARNING: UART2 RX is NOT 5V TOLERANT. Thus, while possible to connect UART2_VCC to V_IN, DO NOT ATTEMPT THIS. Only use JP5 (the default).
'''WARNING: UART2 RX is NOT 5V TOLERANT. Thus, while possible to connect UART2_VCC to V_IN, DO NOT ATTEMPT THIS. Only use JP5 (the default).
Line 302: Line 299:
!width="7%"|''Jumper''!!width="20%"|''Bus Connection''!!width="7%"|''Default''!!''Description''
!width="7%"|''Jumper''!!width="20%"|''Bus Connection''!!width="7%"|''Default''!!''Description''
|-
|-
|JP8||UART1&5_VCC to V_IN||OPEN||Connects UART1 and UART5 connector VCC to autopilot input voltage V_IN rail
|JP8||UART1&5_VCC to V_IN||OPEN||If closed then connects UART1 and UART5 connector VCC to autopilot input voltage V_IN rail
|-
|-
|JP9||UART1&5_VCC to +3V3||style="background:black; color:white"|CLOSED||Connects UART1 and UART5 connector VCC to autopilot +3V3 rail
|JP9||UART1&5_VCC to +3V3||style="background:black; color:white"|CLOSED||If closed then connects UART1 and UART5 connector VCC to autopilot +3V3 rail
|}
|}
'''WARNING: DO NOT CLOSE BOTH JP8 AND JP9 SIMULTANEOUSLY!!!'''
'''WARNING: DO NOT CLOSE BOTH JP8 AND JP9 SIMULTANEOUSLY!!!'''
Line 318: Line 315:
The onboard 5V regulator on Lisa/M is a [http://www.national.com/pf/LP/LP2992.html LP2992], a low-noise, low-dropout linear regulator capable of delivering up to 250mA. This regulator can be bypassed with JP3, connecting the autopilot V_IN bus directly to the autopilot 5V bus if, for example, one is using an external 5V regulated supply, and a higher current is needed. Unless external use of 5V is required on the ANALOG1 and ANALOG2 headers, the only 5V usage onboard is for the CAN transceiver and the I2C1 level shifter.
The onboard 5V regulator on Lisa/M is a [http://www.national.com/pf/LP/LP2992.html LP2992], a low-noise, low-dropout linear regulator capable of delivering up to 250mA. This regulator can be bypassed with JP3, connecting the autopilot V_IN bus directly to the autopilot 5V bus if, for example, one is using an external 5V regulated supply, and a higher current is needed. Unless external use of 5V is required on the ANALOG1 and ANALOG2 headers, the only 5V usage onboard is for the CAN transceiver and the I2C1 level shifter.


When measuring the supply voltage of a battery with the V_BAT pin (could be connected to V_IN through JP2), it is important to note the maximum voltage limit. The voltage divider on the board for measuring with a 3.3V ADC is --'''V_BAT'''--/\/\'''10k'''/\/\--'''V_BAT_MEAS'''--/\/\'''2k2'''/\/\--'''GND'''--. This means that the maximum allowable voltage on V_BAT is
When measuring the supply voltage of a battery with the V_BATT pin (could be connected to V_IN through JP2), it is important to note the maximum voltage limit. The voltage divider on the board for measuring with a 3.3V ADC is --'''V_BAT'''--/\/\'''10k'''/\/\--'''V_BAT_MEAS'''--/\/\'''2k2'''/\/\--'''GND'''--. This means that the maximum allowable voltage on V_BATT is


<math>V\_BAT_{max} = 3.3V*\frac{10k}{2.2k} = 15V</math>
<math>V\_BAT_{max} = 3.3V*\frac{10k+2.2k}{2.2k} = 18.3V</math>


If a higher voltage measurement is desired, another voltage divider is required off-board. Alternatively, one could modify the existing voltage divider (e.g. change 10k resistor to 22k to get 33V maximum). When checking if voltage exceeds the maximum, make sure to consider maximum battery voltage, not nominal voltage (e.g. 4.22V or so for a single lithium cell, not 3.7V nominal, so the maximum number of cells in series is 3, like a 3S LiPo pack).
If a higher voltage measurement is desired, another voltage divider is required off-board. Alternatively, one could modify the existing voltage divider (e.g. change 10k resistor to 22k to get 33V maximum). When checking if voltage exceeds the maximum, make sure to consider maximum battery voltage, not nominal voltage (e.g. 4.22V or so for a single lithium cell, not 3.7V nominal, so the maximum number of cells in series is 3, like a 3S LiPo pack).
Line 329: Line 326:
Image:Lisa_m_v2_0_sheet_2.png | LisaM V2.0 Schematic Sheet 2/3
Image:Lisa_m_v2_0_sheet_2.png | LisaM V2.0 Schematic Sheet 2/3
Image:Lisa_m_v2_0_sheet_3.png | LisaM V2.0 Schematic Sheet 3/3
Image:Lisa_m_v2_0_sheet_3.png | LisaM V2.0 Schematic Sheet 3/3
</gallery>
<gallery widths=250px heights=168px>
Image:Lisa_m_v2_1_r3_sheet_1.png | Lisa/M V2.1 R3 Schematic Sheet 1/2
Image:Lisa_m_v2_1_r3_sheet_2.png | Lisa/M V2.1 R3 Schematic Sheet 1/2
</gallery>
</gallery>
<br style="clear:both">
<br style="clear:both">


== Examples of Airborne Equipment Electrical Connections ==
== Examples of Airborne Equipment Electrical Connections ==
=== Small Aircraft Connection Diagram ===
Need an Umarim_v1.0-style ([[Umarim_v10#Small_Aircraft_Connection_Diagram | here]]) small aircraft airborne equipment electrical connections here.
<br style="clear:both">


=== Large Aircraft Connection Diagram ===
=== Quadrocopter, Spektrum Satellite Receivers, PWM Motor Controllers (ESC) and dedicated avionics Battery Elimination Circuit (BEC) ===
Need an Umarim V1.0-style ([[Umarim_v10#Large_Aircraft_Connection_Diagram | here]]) large aircraft airborne equipment electrical connections diagram here.
 
<br style="clear:both">
[[File:LisaM_V2_0_wiring_quadrocopter_spektrum_bec_pwmesc.png|700px]]
 
This is a recommended powering configuration. It eliminates the balancing issues of the built in BECs into the ESCs.
 
The dotted lines from the BEC show the alternative wiring that does not require closing the VS jumper on the Lisa/M. The disadvantage is that you have to wire/crimp the BEC output wires into the picoblade molex connector providing the battery voltage reference. Usually it is easier to just use the existing "servo" connector on the BEC and closing the jumper instead.
 
=== Quadrocopter, Spektrum Satellite Receivers and PWM Motor Controllers (ESC) ===
 
[[File:LisaM_v2_0_wiring_quadrocopter_spektrum_pwmesc.png|700px]]
 
This configuration assumes the ESCs have a battery eliminator circuit (BEC) function and provide 5 volts on their 5V pins. Closing JP1 powers Lisa/M and the attached accessories.
 
<span style="color:red">Warning:</span> The built in BECs on the ESCs are usually linear voltage regulators, they are fairly inefficient compared to dedicated BECs that are usually implemented as switching DC/DC converters.
 
<span style="color:red">Warning:</span> Due to manufacturing differences of BECs, connecting more then one BEC in parallel will likely cause one of the BECs to take majority of the load and dissipate most of the drop down voltage. ([https://en.wikipedia.org/wiki/Linear_regulator Read on how linear voltage regulators work.]) As in this example the BECs are part of the ESCs, one of the ESCs will get warmer than the others, which in turn may lead to reliability issues.
 
[[File:LisaM_V2_0_wiring_quadrocopter_spektrum_pwmesc_shunts.png|700px]]
 
<span style="color:green">Tip:</span> To improve balancing between the ESC built in BECs you can add a 1Ohm resistor in the +5V line coming from the motor controller. This will cause some pre-loading of the voltage regulator and improve the load sharing between the BECs while decreasing the efficiency of the supply.
 
When using cheap ATMega or SiLabs-based PWM motor controllers consider replacing their firmware with either [https://github.com/sim-/tgy Simon Kirby] or [https://github.com/bitdump/BLHeli BLHeli] firmware respectively to get useful performance of your multicopter! You can find a firmware compatibility list [https://docs.google.com/spreadsheet/ccc?key=0AhR02IDNb7_MdEhfVjk3MkRHVzhKdjU1YzdBQkZZRlE here].
 
=== Quadrocopter, Spektrum Satellite Receivers and I2C Motor Controllers (ESC) ===
 
[[File:LisaM_V2_0_quadrocopter_spektrum_i2c_esc_wiring.png|700px]]
 
This diagram "should" be the same for AscTec as well as Mikrokopter motor controller based airframes.
 
=== Fixedwing, Spektrum Satellite Receivers and Elevons Only ===
 
[[File:LisaM_V2_0_wiring_fixedwing_spektrum_elevons.png|700px]]
 
This configuration assumes the ESC has a BEC and provides 5 volts on its 5V pin. Closing JP1 powers Lisa/M and the attached accessories.
 
=== Fixedwing, Spektrum Satellite Receivers ===
 
[[File:LisaM_V2_0_wiring_fixedwing_spektrum.png|700px]]
 
This configuration assumes the ESC has a BEC and provides 5 volts on its 5V pin. Closing JP1 powers Lisa/M and the attached accessories.
 
=== Transitioning [http://wiki.thequadshot.com Quadshot] Using Spektrum Receivers ===
 
[[File:LisaM_V2_0_wiring_quadshot_spektrum.png|700px]]
 
The ESCs have BECs and provide 5 volts on their 5V pins. Closing JP1 powers Lisa/M and the attached accessories.
 
Still need: Large Fixed-wing with advanced power system and/or IC engine, PPM example
 
== R/C Receivers ==
 
One can use [[Subsystem/radio_control#Spektrum|Spektrum]] DSM2 or compatible receivers as well as traditional PPM receivers.  It is even possible to [[Subsystem/radio_control#Spektrum|connect two Spectrum or compatible satellite receivers]] for better redundancy or to improve RC signal reception. Connecting a RC receiver for flying your aircraft in manual mode during setup and test phase is 99% of the cases a must. Therefore the Paparazzi team made it easy to connect one.
 
===  Using a Spektrum DSM receiver ===
 
==== Physically connecting ====
 
Wiring up a Spektrum or compatible satellite receiver is not all to difficult to do. Note however that it is very important to make absolutely sure the connectors are properly made. Not being precise in this step can mean full RC loss and loss of airframe in the first tuning testflights.
 
A spektrum satellite receiver should be connected to the UART1 connector on the autopilot board. Make sure the voltage on the AP board UART1 + pin is not to high, or to low for your receiver.
 
Steps:
# Connect the minus(-) of the receiver to GND of UART1
# The receiver plus(+) to the UART1 Plus(+)
# Data out signal of the receiver to the RX pin on the UART1
 
==== Binding ====
 
To get a receiver and transmitter to work together you must perform a binding process.
 
It is important to '''bind''' your Spectrum DSM receiver to your transmitter '''via''' your '''Lisa board''', not in any other way!
 
The way to bind is by temporary connecting via fiddly small molex pins.
It is advised to make a small bind plug out of a molex connector for this purpose.
Before you start make sure you have your airframe configuration already uploaded either via USB or a JTAG cable.
 
The bind procedure:
 
# On the connector '''ANALOG1''' have a wire between the GND and ADC1 pin, located in the middle of the board
# Power up your autopilot board
# Hold the bind button on your '''transmitter''', while '''keeping it pressed''' switch on your transmitter
#:Wait...! All lights of the receiver blink and then go steady
# Let go of your transmitter bind button
# Power off your Lisa Board
# Remove the wire connecting the GND and ADC1 pins on the ANALOG1 connector
# Repower your board, if you have servos connected and wiggle the RC transmitter sticks some servos should move
 
That is all, you are done.
The bind procedure only needs to be done '''once''' for your receiver.
 
===  Using a CPPM receiver ===
 
Using a CPPM receiver, a so called '''PPM sum stream''' input is possible. [[RC_Receivers_and_Radios#PPM_Based_Systems | To make it work, you need a CPPM a.k.a. PPM sum, stream out capable receiver. Find out more following this link]]
 
==== Connecting ====
 
Connect the CPPM out signal to the RX pin of UART1.
 
Make sure put this in your airframe file in your AP target section.
<source lang="xml">
  <firmware name="fixedwing">  <!-- or use "rotorcraft" -->
    ...
    <module name="radio_control" type="ppm">
        <configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/>
    </module>
    ...
  </firmware>
</source>
 
===== Alternative =====
 
However if in the case you want to use the UART1 port for something else, there is an option to connect the receiver to a servo pin. Yes, that's right, a servo connector is used for receiving a CPPM stream '''input'''.  If you want to walk that path, the default pin number to capture the CPPM datastream is via servo connector SERVO6
 
If you connect the CPPM out capable receiver that way make sure to put this in your airframe file in your AP target section:
 
<source lang="xml">
  <firmware name="fixedwing">  <!-- or use "rotorcraft" -->
    ...
    <module name="radio_control" type="ppm">
        <configure name="RADIO_CONTROL_PPM_PIN" value="SERVO6"/>
    </module>
    ...
  </firmware>
</source>
 
If you do not have or cannot modify a receiver to a ''CPPM out'' able receiver, a [[PPM_Encoder | PPM encoder board]] can be used to avoid opening your receiver for PPM out modification. However with the very low prices of Spectrum DSMX CPPM out, lat time we looked you could have one starting from EUR 10,-
 
===Using a S-Bus receiver===
 
There is a third option, connect a receiver with S-Bus signal output. For this with regular Futaba receiver an inverter my be needed.
 
== Extras ==
 
=== UART I/O ===
 
UART pins can also be used as general purpose I/O, this might come in handy in case all other inputs or your AP board are in use.
 
===  USB as UART1TX + hardware flow control===
 
[[File:Lisam-usb-uart1.jpg]]
 
The USB_VBUS on the Lisa/M 2.0 can be used as UART1 TX. To do this, a diode has to be removed. Make sure to include a series resistor of 100-3000 Ohm to protect the microcontroller from overcurrents. The 2nd and 3th pin of the USB pads are CTS and RTS respectively. It is recommended to include a series resistor in the RTS line, as this is an outgoing line.


=== R/C Receivers ===
If you want to enable flow control in the software, but don't want to use flow control when no cable is connected to the CTS/RTS, a pulldown resistor of 10 kOhm has to be added between the CTS and the GND. If you do this, take care when connecting UART devices that have a large series resistor in their RTS line. The combination of the pulldown resistor and the series resistor might cause the high-level voltage to drop under the high-level threshold of the microcontroller, causing strange behaviour.
There is Spektrum parser available already, enabling the direct use of 1 or 2 Spektrum satellite receivers.


Also UART pins can be used as general purpose I/O to be used for PPM input. By default connect your PPM out able receiver to servo pin 6. If you do not have or cannot create a PPM out able receiver, additionally a [[PPM_Encoder | PPM encoder board]] can be used to avoid receiver hardware modification.
For Example the RTS , mostly a purple wire, is the '''pin 10''' on the Xtend module when set in the module with Hardware flow control (use X-CTU)
CTS, most blue, on pin 9 of the Xtend
 
<gallery widths=380px heights=205px>
Image:Lisam-diode.JPG | Remove this diode. After removing this diode you can not power the board via USB anymore.
Image:Lisam-gpio-usb.JPG | Take care of the small distance between the GPIO pins and the USB pads.
</gallery>


== PCB ==
== PCB ==
Line 350: Line 493:
=== Gerber & Drill Files  ===
=== Gerber & Drill Files  ===


'''''Download  Lisa/M v2.0 gerber & drill files (zip)''''' ''NOT YET AVAILABLE BUT SEE [[Lisa/M#Downloads|Downloads]]''
'''''Download  Lisa/M v2.0 gerber & drill files (zip)''''' ''[[Lisa/M_v2.0#Get the design|Get the design]]''
Need some generated gerbers and drill files here.


== Assembly ==
== Assembly ==
To create and assemble a board oneself is possible. It takes some skills however.
For the Lisa/m v2.0 without the Aspirin sensor board a good soldering iron is enough.(smallest components are 0402) For the Aspirin Sensor board you need a hot air soldering station.
In case you wan to follow that path you need the design. You came to the right place here is the info to get the needed files;


===Components Layout===
===Components Layout===


''NOT YET AVAILABLE BUT SEE [[Lisa/M#Downloads|Downloads]]''
''[[Lisa/M_v2.0#Get the design|Get the design]]''
 
Need some top and bottom of board images and line drawings here.
Need some top and bottom of board images and line drawings here.


=== Bill Of Material ===
=== Bill Of Material ===


'''''Download  Lisa/M v2.0 Bill Of Material (zipped .xls file)''''' ''NOT YET AVAILABLE BUT SEE [[Lisa/M#Downloads|Downloads]]''
'''''Download  Lisa/M v2.0 Bill Of Material (zipped .xls file)''''' ''[[Lisa/M_v2.0#Get the design|Get the design]]''
<br>
 
<br>
Open .sch File in Eagle, execute UPL --> bom.ulp , save as .txt


== PCB and assembled boards suppliers ==
== PCB and assembled boards suppliers ==


Available on [[Get_Hardware|Get Hardware]] page, hopefully :)
To difficult to create your own AP board, understandable, thus pre made board available via [[Get_Hardware|Get Hardware]] page... hopefully :)
 


== Mechanical Dimensions ==
== Mechanical Dimensions ==
Line 376: Line 524:


The overall height of the board including the servo connectors is 10mm. Note that the overall length includes the USB connector. The mounting holes are nominal 2mm diameter (with a bit of clearance).
The overall height of the board including the servo connectors is 10mm. Note that the overall length includes the USB connector. The mounting holes are nominal 2mm diameter (with a bit of clearance).
Beware that in version 2.1 of the Lisa/MX the mounting holes are for m3 screws.


== Downloads ==
== Get the design ==


'''Source files'''
'''Source files'''
Line 387: Line 536:
:*download ''NOT YET AVAILABLE'' Need Lisa/M v2.0 Bill Of Material
:*download ''NOT YET AVAILABLE'' Need Lisa/M v2.0 Bill Of Material


== Programming ==
== Uploading new software ==
New onboard software for the Lisa/M v2.0 can uploaded by connecting your PC via a micro-USB port to the autopilot board. For this the board need to contain the [[Luftboot]] bootloader. All Lisa/M 2.0 and Lisa/M 2.1 from [[1BitSquared]] come with luftboot already in the board.
 
An alternative to get your firmware in the board is by using a Black Magic Probe JTAG/SWD debugger and programmer connected via the 10-pin JTAG/SWD Samtec connector that is on the board.


Lisa/M v2.0 can be programmed via its micro-USB port using the luftboot bootloader or with a JTAG via the 10-pin Samtec connector.
See the [[FirmwareFlashing]] page for an overview of different methods to upload new software to your autopilot.
All Lisa/M 2.0 from Transition Robotics Inc. come with luftboot preloaded.


=== Using luftboot ===
=== Using luftboot ===
'''This is the default FLASH_MODE for Lisa/M v2.0 and v2.1''', it could be explicitly selected by adding
:<source lang="xml"><configure name="FLASH_MODE" value="DFU"/></source>
to the firmware section of your airframe file. Make sure to set Lisa/M 2.0 or 2.1 as it's target board.


Paparazzi git dev branch already has support for the bootloader and will by default use the associated DFU loader to program the firmware. (Don't forget to check that your airframe file is set to use Lisa/M 2.0 as its target board)
Once USB is plugged in, the board automatically goes to bootloader mode and the status LEDs cycle up and down:
 
Currently Paparazzi firmware does not contain the needed USB stack stub to switch into bootloader mode using software.
To force the bootloader to run, bridge ADC2 and GND by making up a connector.
This won't be necessary in the future once the USB stack stub is added to Paparazzi.
 
Once the bridge connector is attached, attach the Lisa/M to the PC via a micro-usb cable and it should start in bootloader mode, and the status LEDs will cycle up and down:


[[File:Luftboot.gif|320px]]
[[File:Luftboot.gif|320px]]


You can and should disconnect the bridge connector after enforcing the bootloader.
If you have trouble entering the bootloader mode or want to upload/update the bootloader itself, see the [[Luftboot]] page.
Assuming your build target uses the Lisa/M board, pressing upload should now load code onto the board.


If you overwrite/remove luftboot you can recover it by following the instructions below:
On Lisa/M V2.1 if you plug in the usb connector the board should go into bootloader mode automatically, older versions of the board come with a bootloader that has to be explicitly entered. If you have trouble with any part of the process, make a github account and click on the chat button in the lower right corner on this page.


=== Uploading the Paparazzi USB Bootloader ===
=== Using JTAG ===
You still can use a [[JTAG|JTAG adapter]] for [[FirmwareFlashing#JTAG|flashing]] and [[DevGuide/JTAG-Debug|debugging]] your paparazzi firmware. To use [[FirmwareFlashing#JTAG|JTAG flashing]] configure the ''FLASH_MODE'' in your firmware section:
:<source lang="xml"><configure name="FLASH_MODE" value="JTAG"/></source>


This section describes the process on how to upload/recover the luftboot bootloader on your Lisa/M 2.0. It is not needed if you got your Lisa/M 2.0 from Transition Robotics Inc. as the boards come with luftboot preloaded.
It is recommended to use the Black Magic Probe as your JTAG adapter. This avoids issues that result from using OpenOCD software. See more details [[JTAG#Black_Magic_Probe|here]]


[https://github.com/paparazzi/luftboot Luftboot] is a Paparazzi-compatible bootloader for STM32-based autopilots.
Using JTAG will not overwrite the bootloader by default. To overwrite the luftboot bootloader configure
Depending on your vendor, your Lisa/M may already come with a bootloader, in which case you should skip to [[Lisa/M#Programming]]
:<source lang="xml"><configure name="NO_LUFTBOOT" value="1"/></source>


==== Required components ====
Then press upload as normal...
*Floss-JTAG debugger
*Lisa/M
*PC


==== Procedure ====
=== Serial Firmware Upload ===
<ol>
Firmware upload using the factory integrated bootloader can be useful e.g. if you have overwritten [[Luftboot]] accidentally and don´t have access to [[JTAG]].<br/>
<li>
Either set the flash mode in the target section of the airframe configuration:
Checkout [https://github.com/paparazzi/luftboot Luftboot from Github]
:<source lang="xml"><configure name="FLASH_MODE" value="SERIAL"/></source>
<source lang=bash>git clone https://github.com/paparazzi/luftboot.git</source>
or add it to the commandline invocation:
</li>
make AIRCRAFT=<aircraftname> ap.upload FLASH_MODE=SERIAL
<li>
Change directory into the luftboot/src folder
<source lang=bash>cd ./luftboot/src</source>
</li>
<li>
Build luftboot
<source lang=bash>make clean && make</source>
</li>
<li>
Flash the Lisa/M
Attach the floss-jtag unit to the PC and connect it to the Lisa/M via the black connector.
Power the Lisa/M (easiest way is to connect to the PC via a micro-USB cable).
<source lang=bash>make flash DEV_SERIAL="LM2-ser"</source>
where "ser" stands for the serial number of your Lisa/M. So for example if you have lisa/m with the serial number 020 this would be:
<source lang=bash>make clean && make flash DEV_SERIAL="LM2-020"</source>
</li>
</ol>


==== Connection Diagram ====
Due to hardware constraints, the board has to be modified to make use of the bootloader, which is only accessible on UART1:
# Diode D3 has to be removed (the bigger black brick next to the USB connector). Attention, no more powering via USB after that.
# BOOT1 has to be set to GND by connecting ACC_DRDY(unused) to GND at the Aspirin pads


Now a boot sequence works as follows:
#BOOT0 has to be set to 3.3V by use of a jumper cable
#Connect a 3.3V serial cable (FTDI, MAX232...) to UART1, the TX pin is USB_VBUS (accessible were the previously mentioned diode was located)
#Power the board and activate the bootloader program


==== Boot Sequence ====
=== Prevent board from going into bootloader mode ===


* Luftboot
Normally, if you power up the board with the USB cable connected to a PC it will automatically go into bootloader mode. If you want the board to power up normally with the cable connected you can ground the ADC2 in the ANALOG1 connector.
** Check if ADC2 is configured as output pull down indicating software bootloader request
*** '''If ADC2 output pull down:''' initialize usb and stay in bootloader mode
** Setting the ADC2 pin to input pull up
** Checking if the ADC2 pin is low
*** '''If ADC2 low:''' initialize USB and stay in bootloader mode
*** '''If ADC2 high:''' check if there is a payload at 0x8002000
**** '''If payload detected:''' set vector table pointer to be at 0x8002000 and jump to the reset handler of the payload
**** '''If payload not detected:''' initialize USB and stay in bootloader mode


== Detailed Hardware Revision History ==


==== Luftboot USB permissions ====
=== Changes Between LISA v1.1 and v2.0 ===


stm32_mem.py needs permission to write to the the Luftboot USB device. (The error message is quite obscure due to the way python-libusb accesses the device)
* Lots of silkscreen improvements
* Added attributes to all parts to make the usage of bom-ex ulp possible.
* Improved routing to allow teardropping
* Fixed stm32f1, f2 and f4 compatibility circuit. (has to jump to ground not to 3v3)
* Connected existing UART RX pullups to the respective connector power pins instead of 3v3. To prevent connecting 5V over IO pin to the 3v3 power rail.
* Added pullups on all UART RX lines to prevent undesired floatation.
* LED's are connected to 3v3 now. To make sure we don't have an issue with voltage tolerance on the gpio pins.
* ...


[[Installation/Linux#Udev_rules|Copy the udev-rules file]] get write permissions.
== Hardware Change Requests ==


=== JTAG ===
If you have a Lisa/M 2.0 and in the process of using it you come up with something you find annoying, dangerous, or restricting, add your hardware update requests here. Better still, modify the Lisa schematics yourself and show your new improvements if you are skilled enough to do this.
If you are using the Lisa/M 2.0 target board you still can use JTAG for programming and debugging your paparazzi firmware. Using JTAG will not overwrite the bootloader by default. You need to set NO_LUFTBOOT config in your airframe file to force overwrite.


* [[JTAG]] description;
* REQ: Replace BMP085 with MS5611 (the MS5611 seems to be better in performance then the BMP but it is more expensive and seems to be more difficult to obtain.
* General [[Dev/Debugging|debugging information]];
** A: Using a MS5611 is possible through using a Aspirin v2.1 board
* [[DevGuide/JTAG-Debug|JTAG usage]], includes Eclipse uplink tutorial.


==== Quick JTAG Upload Guide ====
* REQ: Replace 7 Pin CAN with molex with something less risky to be inserted in 7 Pin SPI in relation to powering the board via CAN molex.
# Connect floss-jtag to Lisa via the cortex cable (little black socket)
# Attach the UART port on the bottom of the floss-jtag to UART2 on the Lisa.
# Plug in USB port of the floss jtag
# Plug in USB port of the Lisa
# Make sure your airframe uses the <target name="ap" board="lisa_m_2.0"> definition
# Click Build, wait until complete, then click Upload.  You should see the following towards the end:
{{{
...
Info : device id = 0x10016418
Info : flash size = 256kbytes
stm32x mass erase complete
Info : Padding image section 1 with 7972 bytes
wrote 152576 bytes from file src/paparazzi/var/Hexa_LisaL/ap/ap.elf in 7.498179s (19.871 KiB/s)
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32.bs tap/device found: 0x06418041 (mfg: 0x020, part: 0x6418, ver: 0x0)
shutdown command invoked
}}}
# Run Flight USB-serial at the baud rate you need (default 57600 for rotorcraft)
# You may need to change the device to /dev/ttyUSB1, and 'Redo' the Data Link


=== Serial Firmware Upload ===
* REQ: Separate spot for external power if powered via separate battery. Realizing we can via Servo ports by Bridge J1 but still like to measure board voltage then and have a way to add power without mistakenly insert I2CCAN Molex conector into SPI Molex on board connector. Thus a separate CAN and Power plug. Power on regular four pin molex with GND, V+5, , V_BATT, V_I (Current sense). Option to have thicker wire to be soldered to the board, for power hungry setups and other issues connectors for power are not a good idea.
Firmware upload using the factory integrated bootloader can be useful e.g. if you have overwritten Luftboot accidentally and don´t have access to JTAG.


Due to hardware constraints, the board has to be modified to make use of the bootloader, which is only accessible on UART1:
* REQ: Replace Aspirin IMU board with InvenSense MPU-9150 and bring the MS5611 back onto the Lisa/M board to reduce footprint, mass, and manufacturing cost once the 9150 becomes readily available(if at al with SPI) and is tested to perform well.
# Diode D3 has to be removed (the bigger black brick next to the USB connector). Attention, no more powering via USB after that.
# BOOT1 has to be set to GND by connecting ACC_DRDY(unused) to GND at the Aspirin pads


Now a boot sequence works as follows:
#BOOT1 has to be set to 3.3V by use of a jumper cable
#Connect a 3,3V serial cable (FTDI, MAX232...) to UART1, the TX pin is USB_VBUS
#Power the board and activate the bootloader program


The according bootloader script can be found at :
== Swap STM32 F1 for STM32 F4 ==
[https://github.com/jsnyder/stm32loader stm32loader from Github]
<source lang=bash>git clone https://github.com/jsnyder/stm32loader.git</source>


To reload Luftboot, upload luftboot.bin
A Lisa m v2 and a Lia autopilot can be easily converted to a much more powerful autopilot, We can swap the default STM32 F1 MCU for a STM32 F4 one. To be more specific, a STM32F405RGT6 chip [http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN1035/PF252144]. A STM32F415RGT6 also works. The chip has the same dimensions (LQFP64 10x10mm package) with the exact same pinout as the original STM32F105RCT6 chip. The main advantages of the F4 chip are:


Serial upload can also be used directly from paparazzi Center by adapting the right path in [https://github.com/paparazzi/paparazzi/blob/dev/conf/Makefile.stm32 Makefile.stm32] for the LOADER argument and setting
* 168MHz CPU speed, 1MB flash and 192kb RAM
* FPU (fast floating point computations)
* Configurable DMA streams so more peripherals can use DMA
* Multiplexed I/O pins so peripherals can be mapped to various I/O pins
* CPU usage only about 5% with standard rotorcraft flight configuration


<define name="FLASH_MODE" value="SERIAL"/>
STM32F405RGT6 chip can be ordered for example [http://cz.mouser.com/ProductDetail/STMicroelectronics/STM32F405RGT6/?qs=Z8%252beY1k3TIKgj7QWsYGpQw== here].


in the target section of the airframe configuration.
====HOW====
* NEEDS: To replace the chip a good soldering station with microscope and enough light is recommended.
* NOTES: If you never done tings like this, better first practice de-solder skills on an old unused PCB from whatever electronic device, and old PC mainboard for example.


== Example wiring diagrams ==
Steps:
# Removal of old MCU F1 chip is possible via various techniques. One way that works well and proven at least numerous times is to cut the pins where they enter the black MCU housing with a very sharp scalpel surgery knive. 
# Remove the now lose old MCU 
# Remove left over pins end stil on PCB by heating with soldeing iron tip and slide them inwards, static and a bit solder make sure they "stick" to your iron. Wipe of the pins from the tip e.g. via your copper wool sponge.
# Take a good tacky flux from tube and braid wire and with sliding solder iron and braid wire between iron and PCB carefully remove all solder from the solder pads on the PC. Remember: Flux is your friend!
# The small jumpers parts on '''CMP1''' and '''CMP2''' have to be '''removed''' so that they are '''open'''
# Now Re-solder your new F4 MCU, make sure the orientation is correct! Best to solder the first 2 opposite corner pins first to keep MCU in place while soldering other pins. If you are good, flux and drag soldering works ;)


=== Quadrocopter, Spektrum Satellite receivers and PWM motor controllers (ESC) ===
That is it. Don't forget to change your boardtype in you old airframe file


[[File:LisaM_v2_0_wiring_quadrocopter_spektrum_pwmesc.png|700px]]
<gallery widths=300px heights=200px>
[[File:F4_digikey.jpg]]
Image:F4_digikey.jpg|DigiKey part number for F4 chip
Image:F4_on_board.jpg|Lia F4 with the new chip
</gallery>


When using cheep china PWM motor controllers consider replacing their firmware with Simon Kirby firmware that you can find in his [https://github.com/sim-/tgy GitHub repository] to get useful performance of your multicopter!
=== Flashing ===
The STM32F4 can be flashed via SWD/JTAG (e.g. with the BlackMagicProbe) or via [[DFU#Native_DFU_bootloader_.28embedded_in_ROM.29|DFU-UTIL]].
[[Luftboot|Luftboot]] currently supports only F1xx chips.


== Detailed Hardware Revision History ==
'''To program via DFU-UTIL:'''


=== Changes Between v1.1 and v2.0 ===
[[File:LisaMX v2_0_DFU.jpg|500px]]
* Lots of silkscreen improvements
* Added attributes to all parts to make the usage of bom-ex ulp possible.
* Improved routing to allow teardropping
* Fixed stm32f1, f2 and f4 compatibility circuit. (has to jump to ground not to 3v3)
* Connected existing UART RX pullups to the respective connector power pins instead of 3v3. To prevent connecting 5V over IO pin to the 3v3 power rail.
* Added pullups on all UART RX lines to prevent undesired floatation.
* LED's are connected to 3v3 now. To make sure we don't have an issue with voltage tolerance on the gpio pins.
* ...
 
=== Changes Between v1.0 and v1.1 ===
* Removed pull-ups on the USB gpio
* Removed pull-ups on the CAN gpio
* Connected usb_vbus to pa9 (needed by the USBotg)
* Removed USB pullup transistor as usbotg has a built in pullup
* Swapped UART1 with UART3 (uart1 was used for gps and pa9 was it's tx line, to be able to talk to the gps unit uart3 is a better choice, as uart1 only has an rx line now it is a better choice for spektrum RX modules)
* Removed USART3 TX gpio from the GPIO connector and moved to the GPS connector
* Added voltage selector jumpers to the RC RX connector; to enable powering of 3v3 or an 5v receivers
* Replaced vertical board solution with through hole servo pin headers (easier assembly)
* Servo connectors are in groups of two; for easier assembly
* Servo VBUS is connected together on all four layers; for lower resistance
* Moved LED's from under the analog2 connector; to be able to populate LED's and the connector
* Moved the RC RX connector a bit; to prevent crashing with the jtag plug
* Added one additional servo connector; now we have all 8 accessible through the standard servo connectors
* Fixed servo channel labeling to start at '''S0''' as it is the case on TWOG and Tiny autopilot boards
* Added secondary through hole picoblade USB connector for easier routing of USB inside an airframe
* ...


=== Changes Between v0.1 and v1.0 ===
[[DFU#Native_DFU_bootloader_.28embedded_in_ROM.29|First, install DFU-UTIL as shown here.]]<br>
* Switched to stm32f105 to be able to use usb and can at the same time
The two pairs of pins circled in red should be shorted (VERY CAREFULLY), eg with tweezers, as shown, i.e.:<br>
* Added alternative use of the adc lines as led output
1) The Boot0 and VDD pins on the STM32F4 should be shorted together.<br>
* ...
2) The ACC_DRDY (Boot1) and GND pins should be shorted together on the Aspirin mounting pads. (This can be done even if an aspirin IMU is mounted).<br>
The USB connector should then be plugged in. This action also powers the board. Do not connect any additional source of power.<br>
Remove the shorts. The board should now be in bootloader mode. Only one green LED should be lit.<br>
The board can then be flashed using DFU-UTIL.<br>
Tested functional on a [http://transition-robotics.com/products/lisa-m-f4-with-10dom-aspirin-imu TRI Lisa/MX v2.0] using Paparazzi Master branch on 18 Nov 2014.<br><br>


=== Hardware Change Requests ===
'''A guide how to flash the F4 chip from Eclipse can be found in [[RT_Paparazzi|RT_Paparazzi]].'''
* REQ: Replace BMP085 with MS5611 (the MS5611 seems to be better in performance then the BMP but it is more expensive and seems to be more difficult to obtain.
** A: This upgrade will be available through Aspirin v2.0 --[[User:Esden|Esden]] 22:54, 5 January 2012 (CET)
 
* REQ: Replace 7 Pin CAN with molex with something less risky to be inserted in 7 Pin SPI in relation to powering the board via CAN molex.


* REQ: Separate spot for external power if powered via separate battery. Realizing we can via Servo ports by Bridge J1 but still like to measure board voltage then and have a way to add power without mistakenly inject CAN Molex into SPI.


[[Category:Lisa]] [[Category:User_Documentation]]
[[Category:Lisa]] [[Category:User_Documentation]] [[Category:Autopilots]]

Latest revision as of 05:23, 21 February 2020

Lisa/M V2.0 top view

Lisa/M is a small, general purpose autopilot designed with flexibility across multiple applications in mind. Small weight and size, with (optional) integrated Aspirin IMU and full size 0.1" servo headers make the Lisa/M suitable for both fixed-wing and rotorcraft vehicles. This autopilot is based on a STM32 processor for extensive peripheral connection and faster processing.

A number of tutorials are being prepared for getting started with Lisa/M:

Please join us in our quest to make the getting started information even more, eh... informative, by adjusting those pages with your own improvements.

Features

Lisa/M is based on the 64 pins STM32F105RCT6 connectivity line family processor featuring 64k of RAM and 256k of FLASH. All the pins are exposed, providing access to the complete set of the STM32 peripherals. NOTE: This MCU is different from LISA/L. Lisa/L is based on the 64 pins STM32F103RE processor featuring 64k of RAM and 512k of FLASH, which is part of the high-density performance line family.

  • STM32 microcontroller STM32F105RCT6 datasheet with 256kB flash and 64kB RAM
  • Pressure sensor BMP085 (optional as of 08/2012)
  • 7 x Analog input channels
  • 3 x Generic digital in-/out-puts
  • 2 x 3.3V TTL UART (5V tolerant)
  • 8 x Servo PPM outputs (only 6 if second I2C (I2C1) bus in use)
  • 1 x CAN bus
  • 1 x SPI bus
  • 1 x I2C bus (2 x when using only the first 6 Servo PPM outputs)
  • 1 x Micro USB
  • 4 x status LEDs with attached test point
  • 10.8 grams (0.4 oz) (with Aspirin IMU mounted)
  • 9.9 grams (0.35 oz) (without Aspirin IMU mounted)
  • ~34mm x ~60mm x ~10mm
  • 4 layers PCB design

With mounted Aspirin IMU has the following additional sensors on board:

  • 3 Axis Gyroscope
  • 3 Axis Accelerometer
  • 3 Axis Magnetometer
  • Barometer MS5611 (as of Aspirin v2.1)

NOTE: Lisa/M has pads for the BMP085 pressure sensor. Lias/M 2 boards made before August 2012 had the BMP085 sensor mounted. Boards made after August 2012 do not have the sensor mounted as they are designed to be used with Aspirin 2.1 which has the new MS5611-01BA03 barometric pressure sensor.

So, except for a GPS unit you have all necessary sensors for full attitude and altitude stabilization in an extremely small package.

Pinout

Pins Name and Type are specified with respect to the Autopilot Board.

LisaM V2 0 top labeled.png LisaM warning label.png

SERVO1/2/3/4/5/6/7/8
Pin # Name Type Description Color
1 SERVOx OUT Servo signal (PWM)(See Note 1 below) Yellow
2 SV PWR Servo Bus Voltage Rail (conf w/ JP1) Red
3 GND PWR common ground Black


JTAG
Pin # Name Type Description Color
1 N/A N/A JTAG Debug Header (Pin 1 is +3V3) None


UART3
Pin # Name Type Description Color
1 GND PWR common ground Black
2 V_IN PWR UART Voltage (conf w/ JP6 and JP7) Red
3 TX OUT USART3 Serial Output (3.3V level) Yellow
4 RX IN USART3 Serial Input (3.3V level)(Pullup to Pin 2 voltage)(5V tolerant) Orange


UART1/5
Pin # Name Type Description Color
1 GND PWR common ground Black
2 +3V3 PWR 3.3V Rail from autopilot (conf w/ JP8 and JP9) Red
3 RX1 IN USART1 Serial Input (3.3V level)(Pullup to Pin 2 voltage)(5V tolerant) Orange
4 GND PWR common ground Black
5 +3V3 PWR 3.3V Rail from autopilot (conf w/ JP8 and JP9) Red
6 RX5 IN UART5 Serial Input (3.3V level)(Pullup to Pin 5 voltage)(5V tolerant) Orange


GPIO
Pin # Name Type Description Color
1 GND PWR common ground Black
2 +3V3 PWR 3.3V Rail from autopilot Red
4 PC12 I/O GPIO, connected to PC12 (5V tolerant) Dark Tan
5 TRST I/O JTAG_TRST (also connected to LED1 cathode) Light Tan


ANALOG2
Pin # Name Type Description Color
1 GND PWR common ground Black
2 +3V3 PWR 3.3V Rail from autopilot Red
3 +5V PWR 5V Rail from autopilot Red
4 ADC4 I/O by default connected to LED_4 cathode (Remove LED/resistor to use as ADC4) Magenta
5 ADC6 I/O by default connected to LED_3 cathode (Remove LED/resistor to use as ADC6) Pink
6 BOOT0 I/O BOOT0 Grey


USB
Pin # Name Type Description Color
1 N/A N/A USB (The USB connections are also available as 0.05" (1.27mm) through hole pads underneath the GPIO header) None


I2C1 CAN
Pin # Name Type Description Color
1 GND PWR common ground Black
2 V_BATT PWR V_BATT Bus on autopilot, voltage divider for V_BAT_MEAS, (conf w/ JP2 to connect to V_IN) Red
3 V_IN PWR Connected to autopilot voltage regulator inputs (conf w/ JP1, JP2 and JP3) Red
4 CANL I/O CANL (5V level) Orange
5 CANH I/O CANH (5V level) Yellow
6 SCL I/O SCL (5V level)(See Note 1 below) Green
7 SDA I/O SDA (5V level)(See Note 1 below) Blue


SPI1
Pin # Name Type Description Color
1 GND PWR common ground Black
2 +3V3 PWR 3.3V Rail from autopilot Red
3 MOSI Out MOSI Orange
4 MISO In MISO Yellow
5 SCK Out SCK Green
6 SS Out SS Blue
7 DRDY I/O DRDY Dark Tan


ANALOG1
Pin # Name Type Description Color
1 GND PWR common ground Black
2 +3V3 PWR 3.3V Rail from autopilot Red
3 +5V PWR 5V Rail from autopilot Red
4 ADC1 In ADC1 (or LED_6 if populated) Green
5 ADC2 In ADC2 (or LED_7 if populated) Blue
6 ADC3 In ADC3 (or LED_8 if populated) Light Tan


UART2
Pin # Name Type Description Color
1 GND PWR common ground Black
2 +3V3 PWR UART Voltage (conf w/ JP4 and JP5) Red
3 TX OUT USART2 Serial Output (3.3V level) Yellow
4 RX IN USART2 Serial Input (3.3V level)(NOT 5V TOLERANT)(Pullup to Pin 2 voltage) Orange


I2C2
Pin # Name Type Description Color
1 GND PWR common ground Black
2 +3V3 PWR 3.3V Rail from autopilot Red
3 SCL I/O SCL (3.3V level) Green
4 SDA I/O SDA (3.3V level) Blue


NOTE 1: SERVO7 and SERVO8 are directly connected to I2C1_SCL and I2C1_SDA lines. Therefore one has to choose, either use SERVO7 and SERVO8 OR have the I2C1 bus available, if that one needs to be used for whatever reason alongside the I2C2 bus. To use the servos 7 and 8 just set the <define name="USE_SERVOS_7AND8"/> in your airframe file and you are good to go. For this to work one must make sure to have the latest Paparazzi sourcecode.

LEDs

Lisa/M 2.0 has 5 LEDS (+1 power LED). There are 3 additional LEDs (LED_6, LED_7, LED_8) that are not populated by default (in favor of using ADC1-3 on the ANALOG1 connector). By default the LEDs are use for:

LED_1, red
SYS_TIME_LED: blinks with 1Hz
LED_2, green
AHRS_ALIGNER_LED: blinks until the AHRS is aligned (gyro bias initialized) and then stays on
LED_3, green
GPS_LED: blinking if trying to get a fix, on if 3D fix
LED_4, red
RADIO_CONTROL_LED: on if RC signal is ok
LED_5, green
not set to anything by default

Jumper Configuration

There are a number of jumpers on Lisa/M used to configure voltage levels and power input.

The default configuration is UART3 VCC at V_IN, UART1/2/5 VCC at +3V3, with the V_SERVO servo voltage rail NOT connected to the autopilot V_IN rail, allowing one to power the autopilot and servos separately. The +5V regulator is NOT bypassed, allowing a regulated +5V on listed headers and for the CAN transceiver and I2C level shifter. The V_BATT connector is NOT connected to V_IN, so one can attach a battery voltage to the V_BATT pin to measure the battery voltage, if so desired.


Power Jumper Configuration
Jumper Bus Connection Default Description
JP1 SERVO_BUS to V_IN OPEN If closed then connects servo header voltage rail SERVO_BUS to autopilot input voltage V_IN rail
JP2 V_BATT to V_IN OPEN If closed then connects I2C1/CAN rail V_BATT to autopilot input voltage V_IN rail
JP3 V_IN to +5V OPEN If closed then connects autopilot input voltage V_IN rail to autopilot +5V rail, bypassing onboard 5V supply


UART3 VCC Configuration
Jumper Bus Connection Default Description
JP6 UART3_VCC to V_IN CLOSED Connects UART3 connector VCC to autopilot input voltage V_IN rail
JP7 UART3_VCC to +3V3 OPEN If closed then connects UART3 connector VCC to autopilot +3V3 rail

WARNING: UART3 GPS Connector is connected to V_IN, check your GPS input voltage before connecting!!!

WARNING: DO NOT CLOSE BOTH JP6 AND JP7 SIMULTANEOUSLY!!!


UART2 VCC Configuration
Jumper Bus Connection Default Description
JP4 UART2_VCC to V_IN OPEN If closed then connects UART2 connector VCC to autopilot input voltage V_IN rail SEE WARNING BELOW
JP5 UART2_VCC to +3V3 CLOSED If closed then connects UART2 connector VCC to autopilot +3V3 rail

WARNING: UART2 RX is NOT 5V TOLERANT. Thus, while possible to connect UART2_VCC to V_IN, DO NOT ATTEMPT THIS. Only use JP5 (the default).

WARNING: DO NOT CLOSE BOTH JP4 AND JP5 SIMULTANEOUSLY!!!


UART1 and UART5 VCC Configuration
Jumper Bus Connection Default Description
JP8 UART1&5_VCC to V_IN OPEN If closed then connects UART1 and UART5 connector VCC to autopilot input voltage V_IN rail
JP9 UART1&5_VCC to +3V3 CLOSED If closed then connects UART1 and UART5 connector VCC to autopilot +3V3 rail

WARNING: DO NOT CLOSE BOTH JP8 AND JP9 SIMULTANEOUSLY!!!

There are additional jumpers on the board for expert or developer configurations, please see schematic and layout for more information.

Powering the Board

LisaM warning label.png

The 3.3V regulator on Lisa/M is a MIC5209-3.3YM capable of delivering up to 500mA. While it is possible to power this regulator with up to 16V, DO NOT do this. By default, the UART3 RX pin is pulled up to the input voltage V_IN. For this reason, 5V is the maximum input voltage. Note that the UART3 GPS Connector is connected to V_IN, check your GPS input voltage before connecting. If one desires to have V_IN at a higher voltage, the jumpers should be adjusted accordingly. As noted, this regulator can handle up to 16V, though experience has shown that this regulator can become very hot in operation with high input voltages, resulting in potential thermal shutdown while in flight. Depending on the expected current draw, it is best to power this regulator with a lower voltage. 5V is the perfect choice.

The onboard 5V regulator on Lisa/M is a LP2992, a low-noise, low-dropout linear regulator capable of delivering up to 250mA. This regulator can be bypassed with JP3, connecting the autopilot V_IN bus directly to the autopilot 5V bus if, for example, one is using an external 5V regulated supply, and a higher current is needed. Unless external use of 5V is required on the ANALOG1 and ANALOG2 headers, the only 5V usage onboard is for the CAN transceiver and the I2C1 level shifter.

When measuring the supply voltage of a battery with the V_BATT pin (could be connected to V_IN through JP2), it is important to note the maximum voltage limit. The voltage divider on the board for measuring with a 3.3V ADC is --V_BAT--/\/\10k/\/\--V_BAT_MEAS--/\/\2k2/\/\--GND--. This means that the maximum allowable voltage on V_BATT is

If a higher voltage measurement is desired, another voltage divider is required off-board. Alternatively, one could modify the existing voltage divider (e.g. change 10k resistor to 22k to get 33V maximum). When checking if voltage exceeds the maximum, make sure to consider maximum battery voltage, not nominal voltage (e.g. 4.22V or so for a single lithium cell, not 3.7V nominal, so the maximum number of cells in series is 3, like a 3S LiPo pack).

Schematic


Examples of Airborne Equipment Electrical Connections

Quadrocopter, Spektrum Satellite Receivers, PWM Motor Controllers (ESC) and dedicated avionics Battery Elimination Circuit (BEC)

LisaM V2 0 wiring quadrocopter spektrum bec pwmesc.png

This is a recommended powering configuration. It eliminates the balancing issues of the built in BECs into the ESCs.

The dotted lines from the BEC show the alternative wiring that does not require closing the VS jumper on the Lisa/M. The disadvantage is that you have to wire/crimp the BEC output wires into the picoblade molex connector providing the battery voltage reference. Usually it is easier to just use the existing "servo" connector on the BEC and closing the jumper instead.

Quadrocopter, Spektrum Satellite Receivers and PWM Motor Controllers (ESC)

LisaM v2 0 wiring quadrocopter spektrum pwmesc.png

This configuration assumes the ESCs have a battery eliminator circuit (BEC) function and provide 5 volts on their 5V pins. Closing JP1 powers Lisa/M and the attached accessories.

Warning: The built in BECs on the ESCs are usually linear voltage regulators, they are fairly inefficient compared to dedicated BECs that are usually implemented as switching DC/DC converters.

Warning: Due to manufacturing differences of BECs, connecting more then one BEC in parallel will likely cause one of the BECs to take majority of the load and dissipate most of the drop down voltage. (Read on how linear voltage regulators work.) As in this example the BECs are part of the ESCs, one of the ESCs will get warmer than the others, which in turn may lead to reliability issues.

LisaM V2 0 wiring quadrocopter spektrum pwmesc shunts.png

Tip: To improve balancing between the ESC built in BECs you can add a 1Ohm resistor in the +5V line coming from the motor controller. This will cause some pre-loading of the voltage regulator and improve the load sharing between the BECs while decreasing the efficiency of the supply.

When using cheap ATMega or SiLabs-based PWM motor controllers consider replacing their firmware with either Simon Kirby or BLHeli firmware respectively to get useful performance of your multicopter! You can find a firmware compatibility list here.

Quadrocopter, Spektrum Satellite Receivers and I2C Motor Controllers (ESC)

LisaM V2 0 quadrocopter spektrum i2c esc wiring.png

This diagram "should" be the same for AscTec as well as Mikrokopter motor controller based airframes.

Fixedwing, Spektrum Satellite Receivers and Elevons Only

LisaM V2 0 wiring fixedwing spektrum elevons.png

This configuration assumes the ESC has a BEC and provides 5 volts on its 5V pin. Closing JP1 powers Lisa/M and the attached accessories.

Fixedwing, Spektrum Satellite Receivers

LisaM V2 0 wiring fixedwing spektrum.png

This configuration assumes the ESC has a BEC and provides 5 volts on its 5V pin. Closing JP1 powers Lisa/M and the attached accessories.

Transitioning Quadshot Using Spektrum Receivers

LisaM V2 0 wiring quadshot spektrum.png

The ESCs have BECs and provide 5 volts on their 5V pins. Closing JP1 powers Lisa/M and the attached accessories.

Still need: Large Fixed-wing with advanced power system and/or IC engine, PPM example

R/C Receivers

One can use Spektrum DSM2 or compatible receivers as well as traditional PPM receivers. It is even possible to connect two Spectrum or compatible satellite receivers for better redundancy or to improve RC signal reception. Connecting a RC receiver for flying your aircraft in manual mode during setup and test phase is 99% of the cases a must. Therefore the Paparazzi team made it easy to connect one.

Using a Spektrum DSM receiver

Physically connecting

Wiring up a Spektrum or compatible satellite receiver is not all to difficult to do. Note however that it is very important to make absolutely sure the connectors are properly made. Not being precise in this step can mean full RC loss and loss of airframe in the first tuning testflights.

A spektrum satellite receiver should be connected to the UART1 connector on the autopilot board. Make sure the voltage on the AP board UART1 + pin is not to high, or to low for your receiver.

Steps:

  1. Connect the minus(-) of the receiver to GND of UART1
  2. The receiver plus(+) to the UART1 Plus(+)
  3. Data out signal of the receiver to the RX pin on the UART1

Binding

To get a receiver and transmitter to work together you must perform a binding process.

It is important to bind your Spectrum DSM receiver to your transmitter via your Lisa board, not in any other way!

The way to bind is by temporary connecting via fiddly small molex pins. It is advised to make a small bind plug out of a molex connector for this purpose. Before you start make sure you have your airframe configuration already uploaded either via USB or a JTAG cable.

The bind procedure:

  1. On the connector ANALOG1 have a wire between the GND and ADC1 pin, located in the middle of the board
  2. Power up your autopilot board
  3. Hold the bind button on your transmitter, while keeping it pressed switch on your transmitter
    Wait...! All lights of the receiver blink and then go steady
  4. Let go of your transmitter bind button
  5. Power off your Lisa Board
  6. Remove the wire connecting the GND and ADC1 pins on the ANALOG1 connector
  7. Repower your board, if you have servos connected and wiggle the RC transmitter sticks some servos should move

That is all, you are done. The bind procedure only needs to be done once for your receiver.

Using a CPPM receiver

Using a CPPM receiver, a so called PPM sum stream input is possible. To make it work, you need a CPPM a.k.a. PPM sum, stream out capable receiver. Find out more following this link

Connecting

Connect the CPPM out signal to the RX pin of UART1.

Make sure put this in your airframe file in your AP target section.

  <firmware name="fixedwing">   <!-- or use "rotorcraft" -->
    ...
    <module name="radio_control" type="ppm">
        <configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/>
    </module>
    ...
  </firmware>
Alternative

However if in the case you want to use the UART1 port for something else, there is an option to connect the receiver to a servo pin. Yes, that's right, a servo connector is used for receiving a CPPM stream input. If you want to walk that path, the default pin number to capture the CPPM datastream is via servo connector SERVO6

If you connect the CPPM out capable receiver that way make sure to put this in your airframe file in your AP target section:

  <firmware name="fixedwing">   <!-- or use "rotorcraft" -->
    ...
    <module name="radio_control" type="ppm">
        <configure name="RADIO_CONTROL_PPM_PIN" value="SERVO6"/>
    </module>
    ...
  </firmware>

If you do not have or cannot modify a receiver to a CPPM out able receiver, a PPM encoder board can be used to avoid opening your receiver for PPM out modification. However with the very low prices of Spectrum DSMX CPPM out, lat time we looked you could have one starting from EUR 10,-

Using a S-Bus receiver

There is a third option, connect a receiver with S-Bus signal output. For this with regular Futaba receiver an inverter my be needed.

Extras

UART I/O

UART pins can also be used as general purpose I/O, this might come in handy in case all other inputs or your AP board are in use.

USB as UART1TX + hardware flow control

Lisam-usb-uart1.jpg

The USB_VBUS on the Lisa/M 2.0 can be used as UART1 TX. To do this, a diode has to be removed. Make sure to include a series resistor of 100-3000 Ohm to protect the microcontroller from overcurrents. The 2nd and 3th pin of the USB pads are CTS and RTS respectively. It is recommended to include a series resistor in the RTS line, as this is an outgoing line.

If you want to enable flow control in the software, but don't want to use flow control when no cable is connected to the CTS/RTS, a pulldown resistor of 10 kOhm has to be added between the CTS and the GND. If you do this, take care when connecting UART devices that have a large series resistor in their RTS line. The combination of the pulldown resistor and the series resistor might cause the high-level voltage to drop under the high-level threshold of the microcontroller, causing strange behaviour.

For Example the RTS , mostly a purple wire, is the pin 10 on the Xtend module when set in the module with Hardware flow control (use X-CTU) CTS, most blue, on pin 9 of the Xtend

PCB

Gerber & Drill Files

Download Lisa/M v2.0 gerber & drill files (zip) Get the design

Assembly

To create and assemble a board oneself is possible. It takes some skills however.

For the Lisa/m v2.0 without the Aspirin sensor board a good soldering iron is enough.(smallest components are 0402) For the Aspirin Sensor board you need a hot air soldering station.

In case you wan to follow that path you need the design. You came to the right place here is the info to get the needed files;

Components Layout

Get the design

Need some top and bottom of board images and line drawings here.

Bill Of Material

Download Lisa/M v2.0 Bill Of Material (zipped .xls file) Get the design

Open .sch File in Eagle, execute UPL --> bom.ulp , save as .txt

PCB and assembled boards suppliers

To difficult to create your own AP board, understandable, thus pre made board available via Get Hardware page... hopefully :)

Mechanical Dimensions

Lisa/M v2.0 Mechanical Dimensions

The overall height of the board including the servo connectors is 10mm. Note that the overall length includes the USB connector. The mounting holes are nominal 2mm diameter (with a bit of clearance). Beware that in version 2.1 of the Lisa/MX the mounting holes are for m3 screws.

Get the design

Source files

Gerber & Drill files

  • download NOT YET AVAILABLE Need generated gerbers and drill files

Assembly files

  • download NOT YET AVAILABLE Need Lisa/M v2.0 Components layouts (pdf)
  • download NOT YET AVAILABLE Need Lisa/M v2.0 Bill Of Material

Uploading new software

New onboard software for the Lisa/M v2.0 can uploaded by connecting your PC via a micro-USB port to the autopilot board. For this the board need to contain the Luftboot bootloader. All Lisa/M 2.0 and Lisa/M 2.1 from 1BitSquared come with luftboot already in the board.

An alternative to get your firmware in the board is by using a Black Magic Probe JTAG/SWD debugger and programmer connected via the 10-pin JTAG/SWD Samtec connector that is on the board.

See the FirmwareFlashing page for an overview of different methods to upload new software to your autopilot.

Using luftboot

This is the default FLASH_MODE for Lisa/M v2.0 and v2.1, it could be explicitly selected by adding

<configure name="FLASH_MODE" value="DFU"/>

to the firmware section of your airframe file. Make sure to set Lisa/M 2.0 or 2.1 as it's target board.

Once USB is plugged in, the board automatically goes to bootloader mode and the status LEDs cycle up and down:

Luftboot.gif

If you have trouble entering the bootloader mode or want to upload/update the bootloader itself, see the Luftboot page.

On Lisa/M V2.1 if you plug in the usb connector the board should go into bootloader mode automatically, older versions of the board come with a bootloader that has to be explicitly entered. If you have trouble with any part of the process, make a github account and click on the chat button in the lower right corner on this page.

Using JTAG

You still can use a JTAG adapter for flashing and debugging your paparazzi firmware. To use JTAG flashing configure the FLASH_MODE in your firmware section:

<configure name="FLASH_MODE" value="JTAG"/>

It is recommended to use the Black Magic Probe as your JTAG adapter. This avoids issues that result from using OpenOCD software. See more details here

Using JTAG will not overwrite the bootloader by default. To overwrite the luftboot bootloader configure

<configure name="NO_LUFTBOOT" value="1"/>

Then press upload as normal...

Serial Firmware Upload

Firmware upload using the factory integrated bootloader can be useful e.g. if you have overwritten Luftboot accidentally and don´t have access to JTAG.
Either set the flash mode in the target section of the airframe configuration:

<configure name="FLASH_MODE" value="SERIAL"/>

or add it to the commandline invocation:

make AIRCRAFT=<aircraftname> ap.upload FLASH_MODE=SERIAL

Due to hardware constraints, the board has to be modified to make use of the bootloader, which is only accessible on UART1:

  1. Diode D3 has to be removed (the bigger black brick next to the USB connector). Attention, no more powering via USB after that.
  2. BOOT1 has to be set to GND by connecting ACC_DRDY(unused) to GND at the Aspirin pads

Now a boot sequence works as follows:

  1. BOOT0 has to be set to 3.3V by use of a jumper cable
  2. Connect a 3.3V serial cable (FTDI, MAX232...) to UART1, the TX pin is USB_VBUS (accessible were the previously mentioned diode was located)
  3. Power the board and activate the bootloader program

Prevent board from going into bootloader mode

Normally, if you power up the board with the USB cable connected to a PC it will automatically go into bootloader mode. If you want the board to power up normally with the cable connected you can ground the ADC2 in the ANALOG1 connector.

Detailed Hardware Revision History

Changes Between LISA v1.1 and v2.0

  • Lots of silkscreen improvements
  • Added attributes to all parts to make the usage of bom-ex ulp possible.
  • Improved routing to allow teardropping
  • Fixed stm32f1, f2 and f4 compatibility circuit. (has to jump to ground not to 3v3)
  • Connected existing UART RX pullups to the respective connector power pins instead of 3v3. To prevent connecting 5V over IO pin to the 3v3 power rail.
  • Added pullups on all UART RX lines to prevent undesired floatation.
  • LED's are connected to 3v3 now. To make sure we don't have an issue with voltage tolerance on the gpio pins.
  • ...

Hardware Change Requests

If you have a Lisa/M 2.0 and in the process of using it you come up with something you find annoying, dangerous, or restricting, add your hardware update requests here. Better still, modify the Lisa schematics yourself and show your new improvements if you are skilled enough to do this.

  • REQ: Replace BMP085 with MS5611 (the MS5611 seems to be better in performance then the BMP but it is more expensive and seems to be more difficult to obtain.
    • A: Using a MS5611 is possible through using a Aspirin v2.1 board
  • REQ: Replace 7 Pin CAN with molex with something less risky to be inserted in 7 Pin SPI in relation to powering the board via CAN molex.
  • REQ: Separate spot for external power if powered via separate battery. Realizing we can via Servo ports by Bridge J1 but still like to measure board voltage then and have a way to add power without mistakenly insert I2CCAN Molex conector into SPI Molex on board connector. Thus a separate CAN and Power plug. Power on regular four pin molex with GND, V+5, , V_BATT, V_I (Current sense). Option to have thicker wire to be soldered to the board, for power hungry setups and other issues connectors for power are not a good idea.
  • REQ: Replace Aspirin IMU board with InvenSense MPU-9150 and bring the MS5611 back onto the Lisa/M board to reduce footprint, mass, and manufacturing cost once the 9150 becomes readily available(if at al with SPI) and is tested to perform well.


Swap STM32 F1 for STM32 F4

A Lisa m v2 and a Lia autopilot can be easily converted to a much more powerful autopilot, We can swap the default STM32 F1 MCU for a STM32 F4 one. To be more specific, a STM32F405RGT6 chip [1]. A STM32F415RGT6 also works. The chip has the same dimensions (LQFP64 10x10mm package) with the exact same pinout as the original STM32F105RCT6 chip. The main advantages of the F4 chip are:

  • 168MHz CPU speed, 1MB flash and 192kb RAM
  • FPU (fast floating point computations)
  • Configurable DMA streams so more peripherals can use DMA
  • Multiplexed I/O pins so peripherals can be mapped to various I/O pins
  • CPU usage only about 5% with standard rotorcraft flight configuration

STM32F405RGT6 chip can be ordered for example here.

HOW

  • NEEDS: To replace the chip a good soldering station with microscope and enough light is recommended.
  • NOTES: If you never done tings like this, better first practice de-solder skills on an old unused PCB from whatever electronic device, and old PC mainboard for example.

Steps:

  1. Removal of old MCU F1 chip is possible via various techniques. One way that works well and proven at least numerous times is to cut the pins where they enter the black MCU housing with a very sharp scalpel surgery knive.
  2. Remove the now lose old MCU
  3. Remove left over pins end stil on PCB by heating with soldeing iron tip and slide them inwards, static and a bit solder make sure they "stick" to your iron. Wipe of the pins from the tip e.g. via your copper wool sponge.
  4. Take a good tacky flux from tube and braid wire and with sliding solder iron and braid wire between iron and PCB carefully remove all solder from the solder pads on the PC. Remember: Flux is your friend!
  5. The small jumpers parts on CMP1 and CMP2 have to be removed so that they are open
  6. Now Re-solder your new F4 MCU, make sure the orientation is correct! Best to solder the first 2 opposite corner pins first to keep MCU in place while soldering other pins. If you are good, flux and drag soldering works ;)

That is it. Don't forget to change your boardtype in you old airframe file

Flashing

The STM32F4 can be flashed via SWD/JTAG (e.g. with the BlackMagicProbe) or via DFU-UTIL. Luftboot currently supports only F1xx chips.

To program via DFU-UTIL:

LisaMX v2 0 DFU.jpg

First, install DFU-UTIL as shown here.
The two pairs of pins circled in red should be shorted (VERY CAREFULLY), eg with tweezers, as shown, i.e.:
1) The Boot0 and VDD pins on the STM32F4 should be shorted together.
2) The ACC_DRDY (Boot1) and GND pins should be shorted together on the Aspirin mounting pads. (This can be done even if an aspirin IMU is mounted).
The USB connector should then be plugged in. This action also powers the board. Do not connect any additional source of power.
Remove the shorts. The board should now be in bootloader mode. Only one green LED should be lit.
The board can then be flashed using DFU-UTIL.
Tested functional on a TRI Lisa/MX v2.0 using Paparazzi Master branch on 18 Nov 2014.

A guide how to flash the F4 chip from Eclipse can be found in RT_Paparazzi.