Classix

From PaparazziUAV
Revision as of 14:09, 3 September 2007 by Alexisld (talk | contribs) (→‎Assembly)
Jump to navigation Jump to search

The Classix autopilot was designed for advanced applications. Dual processors provide a true hardware segregation of critical code for reliability - allowing the user to run experimental navigation or payload control software without fear of a processor crash causing a total loss of control. A Gumstix header is included so that the autopilot can be directly interfaced with this small onboard Linux PC for advanced video processing, sensor management, or sophisticated navigation routines such as sense-and-avoid or target following.

Classix Control Board

Classix autopilot with Gumstix daughterboard
Classix Dual MCUs


Features

  • Dual LPC2148 MCUs
  • 14 ADC channels
  • 2 UARTs
  • 6 PWM outputs
  • 2 R/C Receiver inputs
  • 2 combined USB clients
  • 2 SPI busses
  • 2 I2C
  • Connector to dock with a Gumstix board
  • 5V input
  • 3.3V linear regulator & 3.7V linear regulator (for Gumstix)
  • Audio (for data downlink without a modem)
  • 2 LEDs (status display)
  • 12 grams
  • 89 x 30mm

The Classix Control Board use 2 Philips LPC2148 ARM7 based microcontroller. The ARM7 is a low-power 32-bit RISC processor core and the Philips LPC2148 has 512KB on-chip Flash ROM, 40KB RAM and can be clocked at 60MHz.

With 2 MCUs this system is very robust, 1 MCU can handle all critical code, fly-by-wire and such, and the other can handle all autonomous processing. In the case of autonomous code error, the aircraft may be saved via manual control and the fbw MCU.

The ability to dock with a Gumstix board would allow for image processing, heavy communications, or payload support.

Architecture

Classix Architecture.jpg

Pinout

Classix v099 pinout.jpg

BOM

The materials list can be produced from the Eagle CAD files on the downloads page.

Assembly

Here are a few observation from my Classix assembly/programming (see Tiny_Assembly for more info):

  • check the polarity of all parts, compare to a picture of a working reference board
  • use a microscope or a magnifying glass to check for short circuits
  • use a power supply for first tests, not a battery, limit the current to about 100mA, use a voltage of about 5V
  • the 5V should not drop due to current limiting, measure the 3.7V and the 3.3V supply on the board

-> wrong voltages: check the parts around the power supply

  • measure the current, it should be around 40mA at 5V with the LPC running and no code loaded
  • attach one reset to GND, current should reduce to 30mA at 5V

-> check if reset signal can be measured at the LPC reset pin 57

  • check the 12MHz at LPC pin 61, XTAL2 (XTAL_out)
  • connect TXD and RXD of either AP_Serial or FBW_Serial to the serial port of your PC through a 3.3V-USB-RS232 converter (LPC_TXD_0 - PC_RX, LPC_RX_0 - PC_TX), attach LPC_P0.14 to ground or connect to a pushbutton and reset the board
  • run the serial ROM loader lpc21isp to flash USB bootloader with
make upload_bl PROC=GENERIC

-> check the rx/tx pins for data if flashing does not succeed

  • deattach the LPC_P0.14, reset the board, current should be around 160 mA @ 5V when both AP and FWB are programmed
  • the USB bootloader outputs debug information with 115200 8N1 on the serial port
picocom -b 115200 /dev/ttyUSB0
  • connect USB+ (D+), USB- (D-), and GND of AP or FBW with your PC, reset the board
  • the PC will detect a new USB device, check with "dmesg" and "lsusb" - they should both show a USB device with VID/PID 7070:1234

-> if a new USB device is detected but does not accept new address, the USBconnect worked, but not the communication, check USB+ and USB-

  • flash the autopilot with
make AIRCRAFT=myplane clean_ac ap.upload
(where myplane is the name of your airframe as defined in conf/conf.xml... Try with AIRCRAFT=TJ1 if you don't know what to use)
  • check telemetry through serial port, messages should be displayed
  • test A/D converters for supply voltage and IR sensors
  • check modem, connect tx, rx, gnd and supply
  • try to aquire sats outside

TODO

As noted in the IRC channel the clasix lacks certain "conveniences" of the tiny

  • No onboard CD4015B for a servo driver
  • No onboard 5V VR 2A VR for Servos
  • No onboard GPS

The above being said , the first 2 items should be easily fixed by modifying the schematic(s) for the classix and regenerating the board layout in eagle(adding the necessary lines etc) or generating a servo driver and 5v VR board to interface with the classix for now till the above is completed.