Difference between revisions of "Lisa/M v2.0"
m (→Using JTAG) |
m (typo) |
||
Line 46: | Line 46: | ||
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 | <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 |
Revision as of 13:07, 25 March 2013
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.
The drivers for the MS5611-01BA03 are work in progress and are available in the master branch of the Paparazzi codebase. All help with testing and improving the driver are very welcome!
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.
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 |
Pin # | Name | Type | Description | Color |
---|---|---|---|---|
1 | N/A | N/A | JTAG Debug Header (Pin 1 is +3V3) | None |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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. There one has to choose, either use SERVO7 and SERVO8 OR the use second I2C bus (I2C1) if that one needs to be used for whatever reason. 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 initilalized) 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.
Jumper | Bus Connection | Default | Description |
---|---|---|---|
JP1 | SERVO_BUS to V_IN | OPEN | Connects servo header voltage rail SERVO_BUS to autopilot input voltage V_IN rail |
JP2 | V_BATT to V_IN | OPEN | 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 |
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 | 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!!!
Jumper | Bus Connection | Default | Description |
---|---|---|---|
JP4 | UART2_VCC to V_IN | OPEN | Connects UART2 connector VCC to autopilot input voltage V_IN rail SEE WARNING BELOW |
JP5 | UART2_VCC to +3V3 | CLOSED | 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!!!
Jumper | Bus Connection | Default | Description |
---|---|---|---|
JP8 | UART1&5_VCC to V_IN | OPEN | Connects UART1 and UART5 connector VCC to autopilot input voltage V_IN rail |
JP9 | UART1&5_VCC to +3V3 | CLOSED | 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
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 and PWM Motor Controllers (ESC)
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.
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)
This diagram "should" be the same for AscTec as well as Mikrokopter motor controller based airframes.
Fixedwing, Spektrum Satellite Receivers and Elevons Only
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
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
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 Spectrum DSM receiver
Connecting
Connect the out signal to the RX pin of UART1 , the GND to GND or receiver and + to the + of Spectrum receiver. Make sure the voltage on the AP board UARD1 pins can be handled by your Spectrum DSM or compatible receiver.
Binding
It is important to bind your Spectrum DSM receiver with your transmitter via your Lisa board, not in any other way. The way to do this is 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 procedure:
- On the connector ANALOG1 have a wire between the GND pin ADC1, 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 light of receiver blink then go steady
- Let go of your transmitter bind button
- Power off your Lisa Board
- remove the wire between GND and ADC1 pins
- Repower your board, if you have servos connected and wiggle the RC transmitter sticks some servos should move
That all, you are done. Only needs to be done once for your receiver.
Using a PPM receiver
Using a PPM receiver, a so called PPM sum stream input is possible. To make it work, you need a PPM sum stream out capable receiver. Find out more following this link
Connecting
Connect the PPM out signal to the RX pin of UART1.
Make sure put this in your airframe file in your AP target section.
... <subsystem name="radio_control" type="ppm"> <configure name="RADIO_CONTROL_PPM_PIN" value="UART1_RX"/> </subsystem> ...
Alternative
However if in the case you want to use the RX or UART1 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 receiver PPM stream input. The default pin number to capture the PPM sum stream is via servo connector six(6)
If you connect the PPM ou capable receiver that way make sure to put this in your airframe file in your AP target section:
... <subsystem name="radio_control" type="ppm"> <configure name="RADIO_CONTROL_PPM_PIN" value="SERVO6"/> </subsystem> ...
If you do not have or cannot modify a receiver to a PPM out able receiver, a PPM encoder board can be used to avoid opening your receiver for PPM out modification.
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
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 respactively. 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 treshold 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 ake some skills ofcouse. In case you wan to follow that path you need the desing. You came to the right place here is the info to get the needed files;
Components Layout
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
PCB and assembled boards suppliers
To difficult to creat your own AP board, understandable, thus pre made board available via Get Hardware page... hopefully :)
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).
Get the design
Source files
- download available on GitHub: Lisa/M v2.0 Cadsoft Eagle 6 Design
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 from Transition Robotics Inc. come with luftboot already in the board.
An alternative to get your firmware in the board is by using a JTAG connector connected via the 10-pin Samtec connector that is available 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, 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 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:
If you have trouble entering the bootloader mode or want to upload/update the bootloader itself, see the Luftboot 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"/>
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:
- 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
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.