diff --git a/CREDITS.txt b/CREDITS.txt index 671ad47e6..b6e6db727 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -27,6 +27,10 @@ N: Pedro Assuncao E: pedro (dot) agda (plus) openpilot (at) gmail (dot) com D: Initial GCS Settings Gadget work +N: Werner Backes +E: werner (at) bit-1 (dot) de +D: Port of CopterControl to PS3 Move Controller (MoveCopter) + N: Jose Barros E: josembarros (at) hotmail (dot) com D: Next-Gen OP Map Lib, Y-Modem Library, Uploader Plugin diff --git a/HISTORY.txt b/HISTORY.txt new file mode 100644 index 000000000..ac278b889 --- /dev/null +++ b/HISTORY.txt @@ -0,0 +1,30 @@ +Short summary of changes. For a complete list see the git log. + +2011-08-04 +Fixed packaging aesthetic issues. Also avoid runtime issues on OSX Lion by +disabling the ModelView and Notify plugins for now (sorry). + +2011-07-29 +Added support for PPM receivers from James W. Now all 4 interfaces (R/C +standard PWM, combined PPM (MK), Spektrum satellite, Futaba S.Bus) are +supported and configurable through the GCS hardware configuration tab. + +2011-07-17 +Updated module initialization from Mathieu which separates the initialization +from the task startup. Also implements a method to reclaim unused ram from +initialization and end of memory for the FreeRTOS heap. + +2011-07-12 +Improvements to the stabilization code. Included a LPF on the gyros to smooth +out noise in high vibration environments. Also two new modes: axis-lock and +weak leveling. Axis-lock will try and hold an axis at a fixed position and +reject any disturbances. This is like heading-hold on a heli for the tail but +can be useful for other axes. Weak leveling is rate mode with a weak +correction to self level the craft - good for easier rate mode flying. + +2011-07-07 +Dynamic hardware configuration from Stac. The input type is now +selected from ManualControlSettings.InputMode and the aircraft must be rebooted +after changing this. Also for CopterControl the HwSettings object must +indicate which modules are connected to which ports. PPM currently not +working. diff --git a/MILESTONES.txt b/MILESTONES.txt index 3895e977b..776c4a758 100644 --- a/MILESTONES.txt +++ b/MILESTONES.txt @@ -117,11 +117,45 @@ C: Sami Korhonen (Sambas) D: May 2011 V: http://vimeo.com/24258192 -M: First CopterControl flip on a Flybarless Heli +M: First Y6 CopterControl flight +C: Michel Pet +D: June 2011 +V: http://www.youtube.com/watch?v=QsE2MQELPZY + +M: First MoveCopter flight +C: Werner Backes +D: July 2011 +V: http://vimeo.com/25983655 + +M: First Y4 CopterControl flight +C: Mat Wellington +D: July 2011 +V: http://www.youtube.com/watch?v=TxZ4MDGIj1o + +M: First V-Tail4 CopterControl flight +C: Mat Wellington +D: July 2011 +V: http://www.youtube.com/watch?v=YE4Fd9vdg1I + +M: First Altitude Hold using Sonar C: D: V: +M: First CopterControl Navigation on RC Ground Vechicle +C: +D: +V: + +M: First CopterControl Navigation on RC Water Vechicle +C: +D: +V: + +M: First CopterControl flip on a Flybarless Heli +C: +D: +V: An incomplete list of some future Milestones is below: @@ -131,8 +165,7 @@ An incomplete list of some future Milestones is below: * First successful flight using the GCS only and no RC TX * First use of Magic Waypoint * First Flybarless Helicopter flight with OpenPilot -* First flight with CopterControl -* First fixed wing navigation flight +* First fixed wing navigation flight * First Multirotor navigation flight * First Helicopter navigation flight * First over 1km navigation flight diff --git a/Makefile b/Makefile index 6b0601ebb..18cdb3b2e 100644 --- a/Makefile +++ b/Makefile @@ -71,6 +71,7 @@ help: @echo " qt_sdk_install - Install the QT v4.6.2 tools" @echo " arm_sdk_install - Install the Code Sourcery ARM gcc toolchain" @echo " openocd_install - Install the OpenOCD JTAG daemon" + @echo " stm32flash_install - Install the stm32flash tool for unbricking boards" @echo @echo " [Big Hammer]" @echo " all - Generate UAVObjects, build openpilot firmware and gcs" @@ -92,21 +93,25 @@ help: @echo " - Build firmware for " @echo " supported boards are ($(ALL_BOARDS))" @echo " fw_ - Build firmware for " - @echo " supported boards are ($(FW_TARGETS))" + @echo " supported boards are ($(FW_BOARDS))" @echo " fw__clean - Remove firmware for " @echo " fw__program - Use OpenOCD + JTAG to write firmware to " @echo @echo " [Bootloader]" @echo " bl_ - Build bootloader for " - @echo " supported boards are ($(BL_TARGETS))" + @echo " supported boards are ($(BL_BOARDS))" @echo " bl__clean - Remove bootloader for " @echo " bl__program - Use OpenOCD + JTAG to write bootloader to " @echo @echo " [Bootloader Updater]" @echo " bu_ - Build bootloader updater for " - @echo " supported boards are ($(BU_TARGETS))" + @echo " supported boards are ($(BU_BOARDS))" @echo " bu__clean - Remove bootloader updater for " @echo + @echo " [Unbrick a board]" + @echo " unbrick_ - Use the STM32's built in boot ROM to write a bootloader to " + @echo " supported boards are ($(BL_BOARDS))" + @echo @echo " [Simulation]" @echo " sim_posix - Build OpenPilot simulation firmware for" @echo " a POSIX compatible system (Linux, Mac OS X, ...)" @@ -175,10 +180,10 @@ qt_sdk_clean: $(V1) [ ! -d "$(QT_SDK_DIR)" ] || $(RM) -rf $(QT_SDK_DIR) # Set up ARM (STM32) SDK -ARM_SDK_DIR := $(TOOLS_DIR)/arm-2009q3 +ARM_SDK_DIR := $(TOOLS_DIR)/arm-2011.03 .PHONY: arm_sdk_install -arm_sdk_install: ARM_SDK_URL := http://www.codesourcery.com/sgpp/lite/arm/portal/package5353/public/arm-none-eabi/arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 +arm_sdk_install: ARM_SDK_URL := http://www.codesourcery.com/sgpp/lite/arm/portal/package8734/public/arm-none-eabi/arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 arm_sdk_install: ARM_SDK_FILE := $(notdir $(ARM_SDK_URL)) # order-only prereq on directory existance: arm_sdk_install: | $(DL_DIR) $(TOOLS_DIR) @@ -226,6 +231,25 @@ openocd_install: openocd_clean openocd_clean: $(V1) [ ! -d "$(OPENOCD_DIR)" ] || $(RM) -r "$(OPENOCD_DIR)" +STM32FLASH_DIR := $(TOOLS_DIR)/stm32flash + +.PHONY: stm32flash_install +stm32flash_install: STM32FLASH_URL := http://stm32flash.googlecode.com/svn/trunk +stm32flash_install: STM32FLASH_REV := 52 +stm32flash_install: stm32flash_clean + # download the source + $(V0) @echo " DOWNLOAD $(STM32FLASH_URL) @ r$(STM32FLASH_REV)" + $(V1) svn export -q -r "$(STM32FLASH_REV)" "$(STM32FLASH_URL)" "$(STM32FLASH_DIR)" + + # build + $(V0) @echo " BUILD $(STM32FLASH_DIR)" + $(V1) $(MAKE) --silent -C $(STM32FLASH_DIR) all + +.PHONY: stm32flash_clean +stm32flash_clean: + $(V0) @echo " CLEAN $(STM32FLASH_DIR)" + $(V1) [ ! -d "$(STM32FLASH_DIR)" ] || $(RM) -r "$(STM32FLASH_DIR)" + ############################## # # Set up paths to tools @@ -277,7 +301,7 @@ openpilotgcs: uavobjects_gcs .PHONY: openpilotgcs_clean openpilotgcs_clean: - $(V0) @echo " CLEAN $@" + $(V0) @echo " CLEAN $@" $(V1) [ ! -d "$(BUILD_DIR)/ground/openpilotgcs" ] || $(RM) -r "$(BUILD_DIR)/ground/openpilotgcs" .PHONY: uavobjgenerator @@ -307,7 +331,7 @@ uavobjects_test: $(UAVOBJ_OUT_DIR) uavobjgenerator $(V1) $(UAVOBJGENERATOR) -v -none $(UAVOBJ_XML_DIR) $(ROOT_DIR) uavobjects_clean: - $(V0) @echo " CLEAN $@" + $(V0) @echo " CLEAN $@" $(V1) [ ! -d "$(UAVOBJ_OUT_DIR)" ] || $(RM) -r "$(UAVOBJ_OUT_DIR)" ############################## @@ -335,7 +359,7 @@ fw_$(1)_%: uavobjects_flight .PHONY: $(1)_clean $(1)_clean: fw_$(1)_clean fw_$(1)_clean: - $(V0) @echo " CLEAN $$@" + $(V0) @echo " CLEAN $$@" $(V1) $(RM) -fr $(BUILD_DIR)/fw_$(1) endef @@ -355,9 +379,23 @@ bl_$(1)_%: REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \ $$* +.PHONY: unbrick_$(1) +unbrick_$(1): bl_$(1)_hex +$(if $(filter-out undefined,$(origin UNBRICK_TTY)), + $(V0) @echo " UNBRICK $(1) via $$(UNBRICK_TTY)" + $(V1) $(STM32FLASH_DIR)/stm32flash \ + -w $(BUILD_DIR)/bl_$(1)/bl_$(1).hex \ + -g 0x0 \ + $$(UNBRICK_TTY) +, + $(V0) @echo + $(V0) @echo "ERROR: You must specify UNBRICK_TTY= to use for unbricking." + $(V0) @echo " eg. $$(MAKE) $$@ UNBRICK_TTY=/dev/ttyUSB0" +) + .PHONY: bl_$(1)_clean bl_$(1)_clean: - $(V0) @echo " CLEAN $$@" + $(V0) @echo " CLEAN $$@" $(V1) $(RM) -fr $(BUILD_DIR)/bl_$(1) endef @@ -377,7 +415,7 @@ bu_$(1)_%: bl_$(1)_bino .PHONY: bu_$(1)_clean bu_$(1)_clean: - $(V0) @echo " CLEAN $$@" + $(V0) @echo " CLEAN $$@" $(V1) $(RM) -fr $(BUILD_DIR)/bu_$(1) endef @@ -403,14 +441,20 @@ pipxtreme_friendly := PipXtreme ins_friendly := INS ahrs_friendly := AHRS -FW_TARGETS := $(addprefix fw_, $(ALL_BOARDS)) -BL_TARGETS := $(addprefix bl_, $(ALL_BOARDS)) -BU_TARGETS := $(addprefix bu_, $(ALL_BOARDS)) +# Start out assuming that we'll build fw, bl and bu for all boards +FW_BOARDS := $(ALL_BOARDS) +BL_BOARDS := $(ALL_BOARDS) +BU_BOARDS := $(ALL_BOARDS) # FIXME: The INS build doesn't have a bootloader or bootloader # updater yet so we need to filter them out to prevent errors. -BL_TARGETS := $(filter-out bl_ins, $(BL_TARGETS)) -BU_TARGETS := $(filter-out bu_ins, $(BU_TARGETS)) +BL_BOARDS := $(filter-out ins, $(ALL_BOARDS)) +BU_BOARDS := $(filter-out ins, $(ALL_BOARDS)) + +# Generate the targets for whatever boards are left in each list +FW_TARGETS := $(addprefix fw_, $(FW_BOARDS)) +BL_TARGETS := $(addprefix bl_, $(BL_BOARDS)) +BU_TARGETS := $(addprefix bu_, $(BU_BOARDS)) .PHONY: all_fw all_fw_clean all_fw: $(addsuffix _opfw, $(FW_TARGETS)) @@ -428,6 +472,7 @@ all_bu_clean: $(addsuffix _clean, $(BU_TARGETS)) all_flight: all_fw all_bl all_bu all_flight_clean: all_fw_clean all_bl_clean all_bu_clean +# Expand the groups of targets for each board $(foreach board, $(ALL_BOARDS), $(eval $(call BOARD_PHONY_TEMPLATE,$(board)))) # Expand the bootloader updater rules diff --git a/artwork/3D Model/multi/joes_cnc/CC.PNG b/artwork/3D Model/multi/joes_cnc/CC.PNG new file mode 100644 index 000000000..467f34a97 Binary files /dev/null and b/artwork/3D Model/multi/joes_cnc/CC.PNG differ diff --git a/artwork/3D Model/multi/joes_cnc/J14-QT_+.3DS b/artwork/3D Model/multi/joes_cnc/J14-QT_+.3DS new file mode 100644 index 000000000..1879b07c6 Binary files /dev/null and b/artwork/3D Model/multi/joes_cnc/J14-QT_+.3DS differ diff --git a/artwork/3D Model/multi/joes_cnc/J14-QT_+.jpg b/artwork/3D Model/multi/joes_cnc/J14-QT_+.jpg new file mode 100644 index 000000000..bb5d7a8de Binary files /dev/null and b/artwork/3D Model/multi/joes_cnc/J14-QT_+.jpg differ diff --git a/artwork/3D Model/multi/joes_cnc/J14-QT_X.3DS b/artwork/3D Model/multi/joes_cnc/J14-QT_X.3DS new file mode 100644 index 000000000..f26dacb45 Binary files /dev/null and b/artwork/3D Model/multi/joes_cnc/J14-QT_X.3DS differ diff --git a/artwork/3D Model/multi/joes_cnc/J14-QT_X.jpg b/artwork/3D Model/multi/joes_cnc/J14-QT_X.jpg new file mode 100644 index 000000000..24bd15569 Binary files /dev/null and b/artwork/3D Model/multi/joes_cnc/J14-QT_X.jpg differ diff --git a/artwork/3D Model/multi/joes_cnc/J14-Q_+.3DS b/artwork/3D Model/multi/joes_cnc/J14-Q_+.3DS new file mode 100644 index 000000000..21fbccf01 Binary files /dev/null and b/artwork/3D Model/multi/joes_cnc/J14-Q_+.3DS differ diff --git a/artwork/3D Model/multi/joes_cnc/J14-Q_+.jpg b/artwork/3D Model/multi/joes_cnc/J14-Q_+.jpg new file mode 100644 index 000000000..bdc45dd07 Binary files /dev/null and b/artwork/3D Model/multi/joes_cnc/J14-Q_+.jpg differ diff --git a/artwork/3D Model/multi/joes_cnc/J14-Q_X.3DS b/artwork/3D Model/multi/joes_cnc/J14-Q_X.3DS new file mode 100644 index 000000000..529e60fac Binary files /dev/null and b/artwork/3D Model/multi/joes_cnc/J14-Q_X.3DS differ diff --git a/artwork/3D Model/multi/joes_cnc/J14-Q_X.jpg b/artwork/3D Model/multi/joes_cnc/J14-Q_X.jpg new file mode 100644 index 000000000..8e1de3196 Binary files /dev/null and b/artwork/3D Model/multi/joes_cnc/J14-Q_X.jpg differ diff --git a/artwork/3D Model/multi/joes_cnc/TEXTURE.PNG b/artwork/3D Model/multi/joes_cnc/TEXTURE.PNG new file mode 100644 index 000000000..5d26bb120 Binary files /dev/null and b/artwork/3D Model/multi/joes_cnc/TEXTURE.PNG differ diff --git a/artwork/Dials/deluxe/lineardial-horizontal.svg b/artwork/Dials/deluxe/lineardial-horizontal.svg new file mode 100644 index 000000000..2f6f71b17 --- /dev/null +++ b/artwork/Dials/deluxe/lineardial-horizontal.svg @@ -0,0 +1,1329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Edouard Lafargue + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/artwork/Dials/deluxe/lineardial-vertical.svg b/artwork/Dials/deluxe/lineardial-vertical.svg index 11a4e1c93..010283c2c 100644 --- a/artwork/Dials/deluxe/lineardial-vertical.svg +++ b/artwork/Dials/deluxe/lineardial-vertical.svg @@ -30,7 +30,7 @@ style="stop-color:#000000;stop-opacity:1" /> + style="stop-color:#dcaf28;stop-opacity:1" /> + offset="0.38184431" + style="stop-color:#00a000;stop-opacity:1" /> + style="stop-color:#aa0000;stop-opacity:1" />