diff --git a/.travis.sh b/.travis.sh deleted file mode 100755 index d3a2b97..0000000 --- a/.travis.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash - -REVISION=$(git rev-parse --short HEAD) -BRANCH=$(git rev-parse --abbrev-ref HEAD) -REVISION=$(git rev-parse --short HEAD) -LAST_COMMIT_DATE=$(git log -1 --date=short --format="%cd") -TARGET_FILE=obj/cleanflight_${TARGET} -TRAVIS_REPO_SLUG=${TRAVIS_REPO_SLUG:=$USER/undefined} -BUILDNAME=${BUILDNAME:=travis} -TRAVIS_BUILD_NUMBER=${TRAVIS_BUILD_NUMBER:=undefined} - -CURL_BASEOPTS=( - "--retry" "10" - "--retry-max-time" "120" ) - -CURL_PUB_BASEOPTS=( - "--form" "revision=${REVISION}" - "--form" "branch=${BRANCH}" - "--form" "travis_build_number=${TRAVIS_BUILD_NUMBER}" - "--form" "last_commit_date=${LAST_COMMIT_DATE}" - "--form" "github_repo=${TRAVIS_REPO_SLUG}" - "--form" "build_name=${BUILDNAME}" ) - -# A hacky way of running the unit tests at the same time as the normal builds. -if [ $RUNTESTS ] ; then - cd ./src/test && make test - -# A hacky way of building the docs at the same time as the normal builds. -elif [ $PUBLISHDOCS ] ; then - if [ $PUBLISH_URL ] ; then - - # Patch Gimli to fix underscores_inside_words - curl -L "${CURL_BASEOPTS[@]}" https://github.com/walle/gimli/archive/v0.5.9.tar.gz | tar zxf - - - sed -i 's/).render(/, :no_intra_emphasis => true).render(/' gimli-0.5.9/ext/github_markup.rb - - cd gimli-0.5.9/ - gem build gimli.gemspec && gem install gimli - cd ../ - - ./build_docs.sh - - curl -k "${CURL_BASEOPTS[@]}" "${CURL_PUB_BASEOPTS[@]}" --form "manual=@docs/Manual.pdf" ${PUBLISH_URL} || true - fi - -elif [ $PUBLISHMETA ] ; then - if [ $PUBLISH_URL ] ; then - RECENT_COMMITS=$(git shortlog -n25) - curl -k "${CURL_BASEOPTS[@]}" "${CURL_PUB_BASEOPTS[@]}" --form "recent_commits=${RECENT_COMMITS}" ${PUBLISH_URL} || true - fi - -else - if [ $PUBLISH_URL ] ; then - make -j2 - if [ -f ${TARGET_FILE}.bin ] ; then - TARGET_FILE=${TARGET_FILE}.bin - elif [ -f ${TARGET_FILE}.hex ] ; then - TARGET_FILE=${TARGET_FILE}.hex - else - echo "build artifact (hex or bin) for ${TARGET_FILE} not found, aborting"; - exit 1 - fi - - curl -k "${CURL_BASEOPTS[@]}" "${CURL_PUB_BASEOPTS[@]}" --form "file=@${TARGET_FILE}" ${PUBLISH_URL} || true - exit 0; - else - make -j2 - fi -fi diff --git a/.travis.yml b/.travis.yml deleted file mode 100755 index b44f657..0000000 --- a/.travis.yml +++ /dev/null @@ -1,55 +0,0 @@ -env: - - RUNTESTS=True - - PUBLISHMETA=True - - PUBLISHDOCS=True - - TARGET=CC3D - - TARGET=COLIBRI_RACE - - TARGET=CHEBUZZF3 - - TARGET=CJMCU - - TARGET=EUSTM32F103RC - - TARGET=SPRACINGF3 - - TARGET=MOTOLAB - - TARGET=NAZE - - TARGET=NAZE32PRO - - TARGET=OLIMEXINO - - TARGET=RMDO - - TARGET=PORT103R - - TARGET=SPARKY - - TARGET=STM32F3DISCOVERY - - TARGET=ALIENWIIF1 - - TARGET=ALIENWIIF3 - -# use new docker environment -sudo: false - -addons: - apt: - packages: - - build-essential - - git - - libc6-i386 - - zlib1g-dev - - libssl-dev - - wkhtmltopdf - - libxml2-dev - - libxslt-dev - -# We use cpp for unit tests, and c for the main project. -language: cpp -compiler: clang - -before_install: - - curl --retry 10 --retry-max-time 120 -L "https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q2-update/+download/gcc-arm-none-eabi-4_9-2015q2-20150609-linux.tar.bz2" | tar xfj - - -install: - - export PATH=$PATH:$PWD/gcc-arm-none-eabi-4_9-2015q2/bin - -before_script: arm-none-eabi-gcc --version -script: ./.travis.sh - -cache: apt - -notifications: - irc: "chat.freenode.net#cleanflight" - use_notice: true - skip_join: true diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index af458ab..5e20e0f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,15 +1,9 @@ # Issues and Support. -Please remember the issue tracker on github is _not_ for user support. Please also do not email developers directly for support. Instead please use IRC or the forums first, then if the problem is confirmed create an issue that details how to repeat the problem so it can be investigated. +Please remember the issue tracker on github is _not_ for user support. Please also do not email developers directly for support. Instead please use the forums first, then if the problem is confirmed create an issue that details how to repeat the problem so it can be investigated. Issues created without steps to repeat are likely to be closed. E-mail requests for support will go un-answered; All support needs to be public so that other people can read the problems and solutions. Remember that issues that are due to mis-configuration, wiring or failure to read documentation just takes time away from the developers and can often be solved without developer interaction by other users. -Please search for existing issues *before* creating new ones. - -# Developers - -Please refer to the development section in the `docs/development` folder. - - +Please search for existing issues *before* creating new ones. \ No newline at end of file diff --git a/Flip32-montaje.png b/Flip32-montaje.png deleted file mode 100755 index a5d8e81..0000000 Binary files a/Flip32-montaje.png and /dev/null differ diff --git a/Notes.md b/Notes.md deleted file mode 100644 index 89d041d..0000000 --- a/Notes.md +++ /dev/null @@ -1,17 +0,0 @@ -#Notes - -## Expected acc/mag/gyro behavior - -Observations of a flight-tested flip32 board in the configurator's 'raw sensor data' tab. - -lift front of board (i.e. pitch back) -gyro y increases (green) -acc x increases (blue) -acc z decreases (red) -mag x decreases (blue) - -lift left of boar (i.e. roll right) -gyro x increases (blue) -acc y increases (green) -mag y decreases (green) -mag z increases (red) diff --git a/README.md b/README.md index 6ca0d69..c361477 100755 --- a/README.md +++ b/README.md @@ -1,43 +1,43 @@ # u360gts (amv-open360tracker 32bits) -u360gts is a complete DIY software and hardware antenna tracker solution for Drones (UAVs, RPAs proffesionals and FPV hobbyiests). We try to make it as unniversal as possible in terms of being compatible with the most popular flight controller, radio and video systems. It is the perfect option if you need to track differenet aircrafts with different telemetry protocol systems. Firmware and hardware desing have been developed by bembers of the spanigh FPV community and it is FREE for you. +u360gts is a complete DIY software and hardware antenna tracker solution for drones (UAVs, RPAs profesionals and FPV hobbyists). We tried to make it as universal as possible in terms of being compatible with the most popular F1/F3 flight controllers, radio and video systems. It is the perfect option if you need to track different aircrafts with different telemetry protocols. Firmware and hardware design have been developed by members of FPV community and are released for free under the GPLv3 license. -Please, we encourage you to [read all the documentation](https://github.com/raul-ortega/u360gts/blob/master/wiki/index.md) before using this firmware in your devices, otherwhise they could be dammaged. In the wiki you'll find detailled information about how to install and configure it with success. +You are encouraged to read all the [documentation](docs/README.md) before using this firmware in your devices in order to prevent damages, unexpected behavior and misconfiguration. ## Hardware platform -This firmware has been developed for controllers based on STM32F series microprocessors, which fit the technical specifications of the popular NAZE32 flight controller. By now, it has been tested on the **Flip32** flight controller which incorporates the magnetometer, but it could work on other NAZE32 based boards like with external magnetometer. +This firmware has been developed for controllers based on STM32 F1 and F3 series microprocessors, such as the popular NAZE32 and its clones. By now it has been tested on other boards such as the Flip32 and a barebone Bluepill. Flight controllers **without** an onboard magnetometer are to be preferred. # Features -* 360 degree continous rotation. +* 360° continous rotation. * Multiprotocol. * Automatic protocol detection. -* Acceps up to 10 Hz of input telemetry frequency. -* Protocol conversion and fordwarding. -* Fully and easy configurable with [u360gts-configurator](https://github.com/raul-ortega/u360gts-configurator) (cross platform) and serial console (CLI mode). +* Up to 10 Hz telemetry input. +* Protocol conversion and forwarding. +* Configurable via [u360gts-configurator](https://github.com/raul-ortega/u360gts-configurator) (cross platform) and serial console (CLI mode). * Tilt easing. * Automatic home position. -* Detailled status data on OLED display. +* Detailed status data on OLED display. * Battery monitoring. * RSSI signal strength on OLED display. * Setup menu on OLED display. -* Acurate PID control system. +* Accurate PID control system. * Position estimation system. -* Sound alarms through out a buzzer. +* Sound alarms via buzzer. * 4 Serial ports, with dynamic assignment. -Take a look to [wiki/overview.md](https://github.com/raul-ortega/u360gts/blob/master/wiki/overview.md) to read more about the features listed above. +Take a look at the [overview](docs/overview.md) to read more about the features listed above. -[See more information about this project](http://www.u360gts.com/) +For more infos on the project refer to the [official website](http://www.u360gts.com/). -# u360gts Firmware Releases +# Releases -[https://github.com/raul-ortega/u360gts/releases](https://github.com/raul-ortega/u360gts/releases) +Check out the [releases](https://github.com/raul-ortega/u360gts/releases) page. -# How To Get Help: +# How To Get Help -- [Submitting a new issue](https://github.com/raul-ortega/u360gts/issues) -- [Asking in u360gts facebook group](https://www.facebook.com/groups/u360gts/) -- [Posting in the spanish community (español)](http://www.zonafpv.com/foro/estacion-de-tierra/u360gts-seguidor-de-antena-de-rotacion-continua-360o/) -- [Posting in Jelle737's Build Log u360gts: 360° antenna tracker on rcgropus](https://www.rcgroups.com/forums/showthread.php?2964122-u360gts-360%C2%B0-antenna-tracker) +- [Ask in u360gts facebook group](https://www.facebook.com/groups/u360gts/) +- [Post in the spanish community (español)](http://www.zonafpv.com/foro/estacion-de-tierra/u360gts-seguidor-de-antena-de-rotacion-continua-360o/) +- [Post in Jelle737's Build Log u360gts: 360° antenna tracker on rcgropus](https://www.rcgroups.com/forums/showthread.php?2964122-u360gts-360%C2%B0-antenna-tracker) +- [Submit a new issue](https://github.com/raul-ortega/u360gts/issues) \ No newline at end of file diff --git a/README_SPANISH.md b/README_SPANISH.md deleted file mode 100755 index efd4e41..0000000 --- a/README_SPANISH.md +++ /dev/null @@ -1,95 +0,0 @@ -# u360gts (amv-open360tracker 32bits) - -Ésta es la versión de 32 bits del firmware para el sistema universal de antena tracker con rotación contínua de 360º para drones. Este proyecto está desarrollado y mantenido por los miembros de la [comunidad española de FPV](http://www.aeromodelismovirtual.com/showthread.php?t=34530). - -Por favor, te rogamos que leas con atención toda la información que suministramos, así como la de los componentes que utilices, para abordar con éxito el montaje, instalación y configuración de tu antena tracker, de lo contrario los dispositivos y elementos electrónicos y/o mecánicos podrían sufrir graves daños. También te pedimos que hagas un uso de tu antena tracker responsable y dentro de la legalidad vigente. - -Este firmware es software libre, puede ser descargado y utilizado de forma gratuita, y redistribuído, con una única restricción: cualquier versión del firmware debe ser distribuída en los mismos términos y condiciones de uso gratuíto y distribución. Los autores se resevan todos los demás derechos sobre este software. Se distrubuye tal cual es, úsalo bajo tu propio riesgo y responsabilidad. - -## Plataforma hardware - -Este firmware ha sido desarrollado para su utilización controladoras basadas microprocesadores de la serie STM32F, cuyas especificaciones técnicas encajan con la popular controladora de vuelo NAZE32 para drones. En la actualidad, este firmware ha sido testeado en las controladoras Flip32 y NAZE32, ambas con magnetómetro incorporado, pero podría ser utilizada en otras controladoras basadas en NAZE32 con magentómetro externo (aún no testado). - -# Características - -* 360 grados de rotación contínua. -* Soporta múltiples sistemas de telemetría. -* Autodetección de protocolo. -* Acepta telemetríaa a frecuencias de hasta 10 Hz. -* Realiza conversión de protocolo y reenvío a aplicaciones externas. -* Completamente configurable desde [u360gts-configurator](https://github.com/raul-ortega/u360gts-configurator) (cross platform) y consola serie (modo CLI). -* Efecto de amortiguación para servo tilt. -* Establecimiento automático de la posición home con GPS local. -* Información detallada del estado en display OLED. -* Monitorización de batería. -* Señal RSSI en display OLED. -* Menú de configuración en display OLED. -* Sistema de control PID para movimientos precisos del servo PAN. -* Sistema de estimación de la posición. -* Alarmas sonora mediante buzzer (batería baja y posición HOME con GPS local). -* Hasta 4 puertos serie ( 2 en 8 bits), con asignación dinámica (32 bits). - -**ROTACIÓN CONTÍUNA DE 360º** - -Podrás mover tú antena de forma contínua en un rango de 360 grados sin tener que retroceder hacia atrás. Con la utilziación de un anillo colector (slip ring) y un servo de 360 grados, o uno normal modificado a tal efecto, el firmware es capaz de enviar órdenes para alcanzar al objetivo de forma rápida y precisa. - -**MULTIPROTOCOLO** - -Este antena tracker es un sistema todo en uno y universal, es capaz de decodificar diferentes protocolos de telemetría de los más populares sistemas de control de vuelo y radio control. Cuando estás en el campo de vuelo, sólo necesitas cambiar el protocolo y la velocidad de transmisión (baud rate) a través del menú de configuración en el display OLED - -Protocolos soportados: - -- **MFD** -- **NMEA directo desde GPS** -- **MAVLINK** -- **RVOSD** -- **FRSKY D** -- **FRSKY X (Smartport)** -- **LTM (Light Telemetry)** -- **PITLAB** - -** TELEMETRÍA A ALTA FRECUENCIA ** - -Este sistema de seguidor de antena es capaz de procesar paquetes de telemetra a frecuancias de hasta 10 veces por segundo. - -**AMORTIGUACIÓN EN SERVO TILT** - -Se aplica efecto de amortiguación (configurable) para evitar daños en el servo tilt y otros mecanismos cuando se utiliza con antenas de grandes dimensiones. - -**POSICIÓN HOME AUTOMÁTICA** - -Soporta dispositivos GPS UBLOX y NMEA para el establecimiento automático e la posición HOME del antena tracker. - -**INFORMACIÓN EN DISPLAY** - -Muestra información detallada sobre el estado del seguimiento, estado del GPS local (sólo 32 bits), monitorización de la batería, y menú de configuración (sólo 32 bits). - -** SEÑAL RSSI EN DISPLAY** - -Puede leer y mostrar en el display el porcentaje de la fuerza de la señal RSSI suministrada desde el receptor de vídeo o receptor de control, con un nivel de detalle mayor cuando el porcentaje cae bajo un valor prefijado por el usuario. - -**SISTEMA DE ESTIMACIÓN DE LA POSICIÓN** - -Incorpora un sistema de estimación de la posición que provee hasta 3 modos de estimación de la posición, especialmente útil para sistemas de telemetría de baja frecuencia. Mientras se espera la recepción de una nueva posición el tracker se anticipa moviendo la antena a posiciones intermedias, dotando de mayor precisión y fluidez al movimiento. - -**4 PUERTOS SERIE** - -Con la versión de 32 bits es posible configurar hasta 4 puertos serie (2 uart y 2 virtuales), con asignación dinámica de funciones (por ejemplo para gestión del GPS local o reenvío de telemetría a aplicaciones externas). - -**COMUNICACIÓN CON APLICACIONES EXTERNAS** - -Convierte la telemetría de entrada a diferentes formatos de telemetría de salida para conectar con aplicaciones externas: MAVLINK, NMEA, MFD. Podrás monitorizar el movimiento del aeromodelo con aplicaciones como Missión Planner, Oruxmaps, Droidplanner/Tower, etc... - -**CONFIGURADOR MULTI PLATAFORMA** - -Podrás configurar e inteactuar con tu antenna tracker a través de [u360gts-configurator](https://github.com/raul-ortega/u360gts-configurator), una aplicación multi plataforma para Google Chrome que facilita la configuración de los parámetros, las operaciones de control, así como realizar pruebas mediante simulación. - -**CONFIGURADOR POR LÍNEA DE COMANDOS** - -También permite la configuración por interfaz de línea de comandos desde consola serie. - -# Versiones del Firmware u360gts - -[https://github.com/raul-ortega/u360gts/releases](https://github.com/raul-ortega/u360gts/releases) - -Encontrarás información detallada sobre la instalación y configuración del firmware en la [WIKI](https://github.com/raul-ortega/amv-open360tracker-32bits/wiki). diff --git a/build_docs.sh b/build_docs.sh deleted file mode 100755 index 9cd7865..0000000 --- a/build_docs.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash - -filename=Manual -doc_files=( - 'Introduction.md' - 'Getting Started.md' - 'Safety.md' - 'Installation.md' - 'Configuration.md' - 'Cli.md' - 'Serial.md' - 'Rx.md' - 'Spektrum bind.md' - 'Failsafe.md' - 'Battery.md' - 'Gps.md' - 'Rssi.md' - 'Telemetry.md' - 'LedStrip.md' - 'Display.md' - 'Buzzer.md' - 'Sonar.md' - 'Profiles.md' - 'Modes.md' - 'Inflight Adjustments.md' - 'Controls.md' - 'Gtune.md' - 'Blackbox.md' - 'Migrating from baseflight.md' - 'Boards.md' - 'Board - AlienWii32.md' - 'Board - CC3D.md' - 'Board - ChebuzzF3.md' - 'Board - CJMCU.md' - 'Board - ColibriRace.md' - 'Board - Motolab.md' - 'Board - Naze32.md' - 'Board - Olimexino.md' - 'Board - Paris Air Hero 32.md' - 'Board - Sparky.md' - 'Board - RMDO.md' - 'Board - SPRacingF3.md' -) - -if which gimli >/dev/null; then - echo "Building ${filename}.pdf" - pushd . >/dev/null - cd docs - - rm -f ${filename}.md - for i in "${doc_files[@]}" - do - cat "$i" >> ${filename}.md - done - rm -f ${filename}.pdf - gimli -f ${filename}.md -stylesheet override.css \ - -w '--toc --title "Cleanflight Manual" --footer-right "[page]" --toc-depth 1' - rm ${filename}.md - popd >/dev/null -else - echo -e "\nFAILED" - echo "Install Gimli to build the PDF documentation" - echo -e "https://github.com/walle/gimli\n" - exit 1 -fi diff --git a/docs/Board - CC3D.md b/docs/Board - CC3D.md deleted file mode 100644 index f313ea1..0000000 --- a/docs/Board - CC3D.md +++ /dev/null @@ -1,190 +0,0 @@ -# Board - CC3D - -The OpenPilot Copter Control 3D aka CC3D is a board more tuned to Acrobatic flying or GPS based -auto-piloting. It only has one sensor, the MPU6000 SPI based Accelerometer/Gyro. -It also features a 16Mbit SPI based EEPROM chip. It has 6 ports labeled as inputs (one pin each) -and 6 ports labeled as motor/servo outputs (3 pins each). - -If issues are found with this board please report via the [github issue tracker](https://github.com/cleanflight/cleanflight/issues). - -The board has a USB port directly connected to the processor. Other boards like the Naze and Flip32 -have an on-board USB to uart adapter which connect to the processor's serial port instead. - -The board cannot currently be used for hexacopters/octocopters. - -Tricopter & Airplane support is untested, please report success or failure if you try it. - -# Pinouts - -The 8 pin RC_Input connector has the following pinouts when used in RX_PPM/RX_SERIAL mode - -| Pin | Function | Notes | -| --- | --------- | -------------------------------- | -| 1 | Ground | | -| 2 | +5V | | -| 3 | PPM Input | Enable `feature RX_PPM` | -| 4 | SoftSerial1 TX / Sonar trigger | | -| 5 | SoftSerial1 RX / Sonar Echo | | -| 6 | Current | Enable `feature CURRENT_METER`. Connect to the output of a current sensor, 0v-3.3v input | -| 7 | Battery Voltage sensor | Enable `feature VBAT`. Connect to main battery using a voltage divider, 0v-3.3v input | -| 8 | RSSI | Enable `feature RSSI_ADC`. Connect to the output of a PWM-RSSI conditioner, 0v-3.3v input | - -The 6 pin RC_Output connector has the following pinouts when used in RX_PPM/RX_SERIAL mode - -| Pin | Function | Notes | -| --- | ----------| ------| -| 1 | MOTOR 1 | | -| 2 | MOTOR 2 | | -| 3 | MOTOR 3 | | -| 4 | MOTOR 4 | | -| 5 | LED Strip | | -| 6 | Unused | | - -The 8 pin RC_Input connector has the following pinouts when used in RX_PARALLEL_PWM mode - -| Pin | Function | Notes | -| --- | ---------| ------| -| 1 | Ground | | -| 2 | +5V | | -| 3 | Unused | | -| 4 | CH1 | | -| 5 | CH2 | | -| 6 | CH3 | | -| 7 | CH4/Battery Voltage sensor | CH4 if battery voltage sensor is disabled | -| 8 | CH5/CH4 | CH4 if battery voltage monitor is enabled| - -The 6 pin RC_Output connector has the following pinouts when used in RX_PARALLEL_PWM mode - -| Pin | Function | Notes | -| --- | ---------| ------| -| 1 | MOTOR 1 | | -| 2 | MOTOR 2 | | -| 3 | MOTOR 3 | | -| 4 | MOTOR 4 | | -| 5 | Unused | | -| 6 | Unused | | - -# Serial Ports - -| Value | Identifier | Board Markings | Notes | -| ----- | ------------ | -------------- | ------------------------------------------| -| 1 | VCP | USB PORT | | -| 2 | USART1 | MAIN PORT | Connected to an MCU controllable inverter | -| 3 | USART3 | FLEX PORT | | -| 4 | SoftSerial | RC connector | Pins 4 and 5 (Tx and Rx respectively) | - -The SoftSerial port is not available when RX_PARALLEL_PWM is used. The transmission data rate is limited to 19200 baud. - -To connect the GUI to the flight controller you just need a USB cable to use the Virtual Com Port (VCP) or you can use UART1 (Main Port). - -CLI access is only available via the VCP by default. - -# Main Port - -The main port has MSP support enabled on it by default. - -The main port is connected to an inverter which is automatically enabled as required. For example, if the main port is used for SBus Serial RX then an external inverter is not required. - -# Flex Port - -The flex port will be enabled in I2C mode unless USART3 is used. You can connect external I2C sensors and displays to this port. - -You cannot use USART3 and I2C at the same time. - -## Flex port pinout - -| Pin | Signal | Notes | -| --- | ------------------ | ----------------------- | -| 1 | GND | | -| 2 | VCC unregulated | | -| 3 | I2C SCL / UART3 TX | 3.3v level | -| 4 | I2C SDA / UART3 RX | 3.3v level (5v tolerant | - - -# Flashing - -There are two primary ways to get Cleanflight onto a CC3D board. - -* Single binary image mode - best mode if you don't want to use OpenPilot. -* OpenPilot Bootloader compatible image mode - best mode if you want to switch between OpenPilot and Cleanflight. - -## Single binary image mode. - -The entire flash ram on the target processor is flashed with a single image. - -The image can be flashed by using a USB to UART adapter connected to the main port when the CC3D is put into the STM32 bootloader mode, achieved by powering on the CC3D with the SBL/3.3v pads bridged. - -## OpenPilot Bootloader compatible image mode. - -The initial section of flash ram on the target process is flashed with a bootloader which can then run the code in the -remaining area of flash ram. - -The OpenPilot bootloader code also allows the remaining section of flash to be reconfigured and re-flashed by the -OpenPilot Ground Station (GCS) via USB without requiring a USB to uart adapter. - -The following features are not available: - * Display - * Sonar - -# Restoring OpenPilot bootloader - -If you have a JLink debugger, you can use JLinkExe to flash the open pilot bootloader. - -1. Run JLinkExe `/Applications/SEGGER/JLink/JLinkExe` -2. `device STM32F103CB` -3. `r` -4. `h` -5. `loadbin opbl.bin, 0x08000000` -6. `q` -7. Re-plug CC3D. - -Here's an example session: - -``` -$ /Applications/SEGGER/JLink/JLinkExe -SEGGER J-Link Commander V4.90c ('?' for help) -Compiled Aug 29 2014 09:52:38 -DLL version V4.90c, compiled Aug 29 2014 09:52:33 -Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04 -Hardware: V7.00 -S/N: -1 -Feature(s): RDI,FlashDL,FlashBP,JFlash,GDBFull -VTarget = 3.300V -Info: Could not measure total IR len. TDO is constant high. -Info: Could not measure total IR len. TDO is constant high. -No devices found on JTAG chain. Trying to find device on SWD. -Info: Found SWD-DP with ID 0x1BA01477 -Info: Found Cortex-M3 r1p1, Little endian. -Info: FPUnit: 6 code (BP) slots and 2 literal slots -Info: TPIU fitted. -Cortex-M3 identified. -Target interface speed: 100 kHz -J-Link>device STM32F103CB -Info: Device "STM32F103CB" selected (128 KB flash, 20 KB RAM). -Reconnecting to target... -Info: Found SWD-DP with ID 0x1BA01477 -Info: Found SWD-DP with ID 0x1BA01477 -Info: Found Cortex-M3 r1p1, Little endian. -Info: FPUnit: 6 code (BP) slots and 2 literal slots -Info: TPIU fitted. -J-Link>r -Reset delay: 0 ms -Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit. -J-Link>h -PC = 0800010C, CycleCnt = 00000000 -R0 = 0000000C, R1 = 0000003F, R2 = 00000000, R3 = 00000008 -R4 = 00003000, R5 = 023ACEFC, R6 = 200000F0, R7 = 20000304 -R8 = 023B92BC, R9 = 00000000, R10= ED691105, R11= F626177C -R12= 000F0000 -SP(R13)= 20000934, MSP= 20000934, PSP= 20000934, R14(LR) = FFFFFFFF -XPSR = 01000000: APSR = nzcvq, EPSR = 01000000, IPSR = 000 (NoException) -CFBP = 00000000, CONTROL = 00, FAULTMASK = 00, BASEPRI = 00, PRIMASK = 00 -J-Link>loadbin opbl.bin, 0x08000000 -Downloading file [opbl.bin]... -WARNING: CPU is running at low speed (8004 kHz). -Info: J-Link: Flash download: Flash download into internal flash skipped. Flash contents already match -Info: J-Link: Flash download: Total time needed: 0.898s (Prepare: 0.709s, Compare: 0.128s, Erase: 0.000s, Program: 0.000s, Verify: 0.000s, Restore: 0.059s) -O.K. -J-Link>q -$ -``` diff --git a/docs/NAZE32+Cleanflight+GPS+FrSkyD.pdf b/docs/NAZE32+Cleanflight+GPS+FrSkyD.pdf deleted file mode 100755 index d947443..0000000 Binary files a/docs/NAZE32+Cleanflight+GPS+FrSkyD.pdf and /dev/null differ diff --git a/docs/NMEA-GGA-RMC.log b/docs/NMEA-GGA-RMC.log deleted file mode 100755 index 344a46b..0000000 --- a/docs/NMEA-GGA-RMC.log +++ /dev/null @@ -1,160 +0,0 @@ -$GPRMC,082626.17,A,4724.21500,N,00832.15100,E,0.0,90.0,180316,000.0,E*6D -$GPGGA,082626.17,4724.21500,N,00832.15100,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*43 -$GPRMC,082627.28,A,4724.21500,N,00832.15100,E,0.0,90.0,180316,000.0,E*60 -$GPGGA,082627.28,4724.21500,N,00832.15100,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4E -$GPRMC,082628.18,A,4724.21500,N,00832.15100,E,0.0,90.0,180316,000.0,E*6C -$GPGGA,082628.18,4724.21500,N,00832.15100,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*42 -$GPRMC,082629.19,A,4724.21500,N,00832.15100,E,0.0,90.0,180316,000.0,E*6C -$GPGGA,082629.19,4724.21500,N,00832.15100,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*42 -$GPRMC,082630.18,A,4724.21500,N,00832.15100,E,0.0,90.0,180316,000.0,E*65 -$GPGGA,082630.18,4724.21500,N,00832.15100,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4B -$GPRMC,082631.18,A,4724.21500,N,00832.15100,E,0.0,90.0,180316,000.0,E*64 -$GPGGA,082631.18,4724.21500,N,00832.15100,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4A -$GPRMC,082632.29,A,4724.21501,N,00832.15349,E,31.8,90.0,180316,000.0,E*51 -$GPGGA,082632.29,4724.21501,N,00832.15349,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*45 -$GPRMC,082633.19,A,4724.21506,N,00832.16668,E,32.4,90.0,180316,000.0,E*5E -$GPGGA,082633.19,4724.21506,N,00832.16668,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*45 -$GPRMC,082634.18,A,4724.21511,N,00832.17938,E,32.4,90.0,180316,000.0,E*55 -$GPGGA,082634.18,4724.21511,N,00832.17938,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4E -$GPRMC,082635.18,A,4724.21517,N,00832.19327,E,32.4,90.0,180316,000.0,E*58 -$GPGGA,082635.18,4724.21517,N,00832.19327,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*43 -$GPRMC,082636.29,A,4724.21523,N,00832.20873,E,64.9,90.0,180316,000.0,E*50 -$GPGGA,082636.29,4724.21523,N,00832.20873,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*45 -$GPRMC,082637.19,A,4724.21534,N,00832.23472,E,64.9,90.0,180316,000.0,E*5A -$GPGGA,082637.19,4724.21534,N,00832.23472,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4F -$GPRMC,082638.18,A,4724.21545,N,00832.26209,E,64.9,90.0,180316,000.0,E*5D -$GPGGA,082638.18,4724.21545,N,00832.26209,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*48 -$GPRMC,082639.18,A,4724.21556,N,00832.28895,E,64.9,91.0,180316,000.0,E*5E -$GPGGA,082639.18,4724.21556,N,00832.28895,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4A -$GPRMC,082640.18,A,4724.21025,N,00832.31403,E,64.9,119.0,180316,000.0,E*6B -$GPGGA,082640.18,4724.21025,N,00832.31403,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4E -$GPRMC,082641.17,A,4724.20037,N,00832.33508,E,64.9,137.0,180316,000.0,E*63 -$GPGGA,082641.17,4724.20037,N,00832.33508,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4A -$GPRMC,082642.28,A,4724.18440,N,00832.35280,E,64.9,155.0,180316,000.0,E*66 -$GPGGA,082642.28,4724.18440,N,00832.35280,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4B -$GPRMC,082643.18,A,4724.16736,N,00832.36051,E,64.9,172.0,180316,000.0,E*60 -$GPGGA,082643.18,4724.16736,N,00832.36051,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*48 -$GPRMC,082644.18,A,4724.14999,N,00832.36094,E,64.9,188.0,180316,000.0,E*62 -$GPGGA,082644.18,4724.14999,N,00832.36094,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4F -$GPRMC,082645.18,A,4724.13260,N,00832.35630,E,64.9,198.0,180316,000.0,E*63 -$GPGGA,082645.18,4724.13260,N,00832.35630,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4F -$GPRMC,082646.18,A,4724.12388,N,00832.35166,E,64.9,214.0,180316,000.0,E*65 -$GPGGA,082646.18,4724.12388,N,00832.35166,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4E -$GPRMC,082647.19,A,4724.10551,N,00832.33257,E,64.9,228.0,180316,000.0,E*6D -$GPGGA,082647.19,4724.10551,N,00832.33257,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*49 -$GPRMC,082648.18,A,4724.09429,N,00832.31350,E,64.9,241.0,180316,000.0,E*6E -$GPGGA,082648.18,4724.09429,N,00832.31350,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*45 -$GPRMC,082649.18,A,4724.08593,N,00832.29011,E,64.9,253.0,180316,000.0,E*62 -$GPGGA,082649.18,4724.08593,N,00832.29011,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4A -$GPRMC,082650.18,A,4724.08081,N,00832.26385,E,64.9,267.0,180316,000.0,E*6A -$GPGGA,082650.18,4724.08081,N,00832.26385,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*45 -$GPRMC,082651.19,A,4724.07955,N,00832.23702,E,64.9,272.0,180316,000.0,E*6F -$GPGGA,082651.19,4724.07955,N,00832.23702,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*44 -$GPRMC,082652.17,A,4724.07997,N,00832.21175,E,64.9,270.0,180316,000.0,E*6A -$GPGGA,082652.17,4724.07997,N,00832.21175,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*43 -$GPRMC,082653.28,A,4724.07990,N,00832.18438,E,64.9,270.0,180316,000.0,E*66 -$GPGGA,082653.28,4724.07990,N,00832.18438,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4F -$GPRMC,082654.18,A,4724.07978,N,00832.15495,E,64.9,270.0,180316,000.0,E*6E -$GPGGA,082654.18,4724.07978,N,00832.15495,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*47 -$GPRMC,082655.18,A,4724.07967,N,00832.12887,E,64.9,270.0,180316,000.0,E*69 -$GPGGA,082655.18,4724.07967,N,00832.12887,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*40 -$GPRMC,082656.18,A,4724.07955,N,00832.09945,E,64.9,270.0,180316,000.0,E*6E -$GPGGA,082656.18,4724.07955,N,00832.09945,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*47 -$GPRMC,082657.28,A,4724.07944,N,00832.07326,E,64.9,270.0,180316,000.0,E*6D -$GPGGA,082657.28,4724.07944,N,00832.07326,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*44 -$GPRMC,082658.19,A,4724.07932,N,00832.04349,E,64.9,270.0,180316,000.0,E*6B -$GPGGA,082658.19,4724.07932,N,00832.04349,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*42 -$GPRMC,082659.18,A,4724.07921,N,00832.01658,E,64.9,270.0,180316,000.0,E*69 -$GPGGA,082659.18,4724.07921,N,00832.01658,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*40 -$GPRMC,082700.18,A,4724.08585,N,00832.00152,E,64.9,9.0,180316,000.0,E*69 -$GPGGA,082700.18,4724.08585,N,00832.00152,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4C -$GPRMC,082701.18,A,4724.08708,N,00832.02781,E,64.9,90.0,180316,000.0,E*55 -$GPGGA,082701.18,4724.08708,N,00832.02781,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*40 -$GPRMC,082702.18,A,4724.08713,N,00832.04110,E,64.9,90.0,180316,000.0,E*54 -$GPGGA,082702.18,4724.08713,N,00832.04110,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*41 -$GPRMC,082703.29,A,4724.08725,N,00832.06969,E,64.9,90.0,180316,000.0,E*56 -$GPGGA,082703.29,4724.08725,N,00832.06969,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*43 -$GPRMC,082704.19,A,4724.08737,N,00832.10038,E,64.9,90.0,180316,000.0,E*5B -$GPGGA,082704.19,4724.08737,N,00832.10038,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*4E -$GPRMC,082705.18,A,4724.08748,N,00832.12699,E,64.9,90.0,180316,000.0,E*5C -$GPGGA,082705.18,4724.08748,N,00832.12699,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*49 -$GPRMC,082706.18,A,4724.08759,N,00832.15513,E,64.9,90.0,180316,000.0,E*59 -$GPGGA,082706.18,4724.08759,N,00832.15513,E,2,15,1.0,3.0,M,15.5,M,2.0,0000*4A -$GPRMC,082707.18,A,4724.08770,N,00832.18243,E,64.9,90.0,180316,000.0,E*5C -$GPGGA,082707.18,4724.08770,N,00832.18243,E,2,15,1.0,300.0,M,15.5,M,2.0,0000*4F -$GPRMC,082708.18,A,4724.08781,N,00832.20775,E,64.9,90.0,180316,000.0,E*56 -$GPGGA,082708.18,4724.08781,N,00832.20775,E,2,15,1.0,300.0,M,15.5,M,2.0,0000*45 -$GPRMC,082709.18,A,4724.08792,N,00832.23547,E,64.9,90.0,180316,000.0,E*55 -$GPGGA,082709.18,4724.08792,N,00832.23547,E,2,15,1.0,300.0,M,15.5,M,2.0,0000*46 -$GPRMC,082710.18,A,4724.08802,N,00832.26205,E,64.9,90.0,180316,000.0,E*5F -$GPGGA,082710.18,4724.08802,N,00832.26205,E,2,15,1.0,300.0,M,15.5,M,2.0,0000*4C -$GPRMC,082711.17,A,4724.08813,N,00832.28897,E,64.9,90.0,180316,000.0,E*5E -$GPGGA,082711.17,4724.08813,N,00832.28897,E,2,15,1.0,300.0,M,15.5,M,2.0,0000*4D -$GPRMC,082712.28,A,4724.08825,N,00832.31767,E,64.9,90.0,180316,000.0,E*5C -$GPGGA,082712.28,4724.08825,N,00832.31767,E,2,15,1.0,3.0,M,15.5,M,2.0,0000*4F -$GPRMC,082713.18,A,4724.08835,N,00832.34367,E,64.9,90.0,180316,000.0,E*5E -$GPGGA,082713.18,4724.08835,N,00832.34367,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*48 -$GPRMC,082714.18,A,4724.08846,N,00832.36977,E,64.9,90.0,180316,000.0,E*54 -$GPGGA,082714.18,4724.08846,N,00832.36977,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*42 -$GPRMC,082715.18,A,4724.08856,N,00832.39629,E,64.9,90.0,180316,000.0,E*5F -$GPGGA,082715.18,4724.08856,N,00832.39629,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*49 -$GPRMC,082716.19,A,4724.08867,N,00832.42280,E,64.9,90.0,180316,000.0,E*54 -$GPGGA,082716.19,4724.08867,N,00832.42280,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*42 -$GPRMC,082717.18,A,4724.08873,N,00832.43612,E,64.9,90.0,180316,000.0,E*5F -$GPGGA,082717.18,4724.08873,N,00832.43612,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*49 -$GPRMC,082718.18,A,4724.08886,N,00832.46883,E,64.9,90.0,180316,000.0,E*59 -$GPGGA,082718.18,4724.08886,N,00832.46883,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*4F -$GPRMC,082719.18,A,4724.08896,N,00832.49450,E,64.9,90.0,180316,000.0,E*54 -$GPGGA,082719.18,4724.08896,N,00832.49450,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*42 -$GPRMC,082720.18,A,4724.08907,N,00832.52190,E,64.9,90.0,180316,000.0,E*54 -$GPGGA,082720.18,4724.08907,N,00832.52190,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*42 -$GPRMC,082721.18,A,4724.08917,N,00832.54715,E,64.9,90.0,180316,000.0,E*59 -$GPGGA,082721.18,4724.08917,N,00832.54715,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*4F -$GPRMC,082722.18,A,4724.08928,N,00832.57363,E,64.9,90.0,180316,000.0,E*50 -$GPGGA,082722.18,4724.08928,N,00832.57363,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*46 -$GPRMC,082723.19,A,4724.08938,N,00832.60020,E,64.9,90.0,180316,000.0,E*51 -$GPGGA,082723.19,4724.08938,N,00832.60020,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*47 -$GPRMC,082724.17,A,4724.08949,N,00832.62797,E,46.6,90.0,180316,000.0,E*58 -$GPGGA,082724.17,4724.08949,N,00832.62797,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*41 -$GPRMC,082725.28,A,4724.08956,N,00832.64411,E,14.9,90.0,180316,000.0,E*58 -$GPGGA,082725.28,4724.08956,N,00832.64411,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*49 -$GPRMC,082726.19,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*69 -$GPGGA,082726.19,4724.08957,N,00832.64889,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*44 -$GPRMC,082727.18,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*69 -$GPGGA,082727.18,4724.08957,N,00832.64889,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*44 -$GPRMC,082728.18,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*66 -$GPGGA,082728.18,4724.08957,N,00832.64889,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*4B -$GPRMC,082729.18,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*67 -$GPGGA,082729.18,4724.08957,N,00832.64889,E,2,15,1.0,350.0,M,15.5,M,2.0,0000*4A -$GPRMC,082730.18,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*6F -$GPGGA,082730.18,4724.08957,N,00832.64889,E,2,15,1.0,347.0,M,15.5,M,2.0,0000*44 -$GPRMC,082731.29,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*6C -$GPGGA,082731.29,4724.08957,N,00832.64889,E,2,15,1.0,333.0,M,15.5,M,2.0,0000*44 -$GPRMC,082732.19,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*6C -$GPGGA,082732.19,4724.08957,N,00832.64889,E,2,15,1.0,320.0,M,15.5,M,2.0,0000*46 -$GPRMC,082733.19,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*6D -$GPGGA,082733.19,4724.08957,N,00832.64889,E,2,15,1.0,305.0,M,15.5,M,2.0,0000*40 -$GPRMC,082734.18,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*6B -$GPGGA,082734.18,4724.08957,N,00832.64889,E,2,15,1.0,290.0,M,15.5,M,2.0,0000*4B -$GPRMC,082735.18,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*6A -$GPGGA,082735.18,4724.08957,N,00832.64889,E,2,15,1.0,277.0,M,15.5,M,2.0,0000*43 -$GPRMC,082736.28,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*6A -$GPGGA,082736.28,4724.08957,N,00832.64889,E,2,15,1.0,273.0,M,15.5,M,2.0,0000*47 -$GPRMC,082737.19,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*69 -$GPGGA,082737.19,4724.08957,N,00832.64889,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*47 -$GPRMC,082738.18,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*67 -$GPGGA,082738.18,4724.08957,N,00832.64889,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*49 -$GPRMC,082739.18,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*66 -$GPGGA,082739.18,4724.08957,N,00832.64889,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*48 -$GPRMC,082740.18,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*68 -$GPGGA,082740.18,4724.08957,N,00832.64889,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*46 -$GPRMC,082741.18,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*69 -$GPGGA,082741.18,4724.08957,N,00832.64889,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*47 -$GPRMC,082742.29,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*68 -$GPGGA,082742.29,4724.08957,N,00832.64889,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*46 -$GPRMC,082743.19,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*6A -$GPGGA,082743.19,4724.08957,N,00832.64889,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*44 -$GPRMC,082744.18,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*6C -$GPGGA,082744.18,4724.08957,N,00832.64889,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*42 -$GPRMC,082745.18,A,4724.08957,N,00832.64889,E,0.0,90.0,180316,000.0,E*6D -$GPGGA,082745.18,4724.08957,N,00832.64889,E,2,15,1.0,270.0,M,15.5,M,2.0,0000*43 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..ea78011 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,70 @@ +## About u360gts + +- [History](history.md) +- [Overview](overview.md) + +## Hardware + +- [Frame](hardware-frame.md) +- [List of components](hardware-list-of-components.md) + +## Installation + +- [Wiring schematics](install-wiring-schematics.md) + +## Configuration + +- [Loading the firmware](configuration-loading-firmware.md) +- [Configurator](https://github.com/raul-ortega/u360gts-configurator) +- [Magnetometer](configuration-compass.md) +- Pan servo +- Tilt servo +- OFFSET setting +- [PID Control](configuration-pid-controller.md) +- NOPID control system +- [GPS](configuration-gps.md) + +## Incoming Telemetry + +- Supported protocols +- Configuring serial 0 (UART1) +- Protocol selection + +## CLI mode + +- Enter CLI mode +- Save settings +- Default settings +- Enable/Disable features +- Help +- Full list of parameters + +## Display + +- Description and operation +- Enable/Disable display + +## Local GPS + +- Installation +- Settings +- Set HOME position + +## Outgoing Telemetry + +- [Settings](outgoing-telemetry.md) + +## Virtual serial ports + +- Configuration and function selection +- Connections + +## Battery monitoring + +- Voltage level +- Settings + +## Buttons + +- MENU +- HOME diff --git a/docs/Sistema-de-Control-de-Servo-PAN-sin-PIDS.md b/docs/Sistema-de-Control-de-Servo-PAN-sin-PIDS.md deleted file mode 100755 index 262ca85..0000000 --- a/docs/Sistema-de-Control-de-Servo-PAN-sin-PIDS.md +++ /dev/null @@ -1,10 +0,0 @@ -# Sistema de Control de Servo PAN sin PIDS - -Se ha includo de forma experimental un sistema de control del servo PAN que no usa PID. Si usas un servo lento, este sistema podra mejorar el seguimiento del tracker, realizando movimientos ms precisos y fludos. El sistema es ms intiutivo de configurar que el sistema PID tradicional. -El sistema realiza una correccin de forma proporcional del ngulo de error entre el heading del tracker y el heading del aeromodelo, mapeando dicho error sobre un rango de pulsos PWM para el servo en base a los siguientes parmetros: - -- **NO_PID_CONTROL:** Descomentando este parmetro desactivamos el sistema PID tracicional y activamos el nuevo sistema de control PAN. -- **MIN_DELTA:** Angulo mnimo en grados entre el heading del tracker y el del aeromodelo, si es mayor que este ngulo movemos el tracker. -- **MIN_PAN_SPEED:** Cantidad mnima en milisegundos que hay que incrementar el pulso del PAN_0 para que se mueva. Este parmetro es comn a ambos sistemas de control y est localizado en el config.h donde siempre ha estado. -- **MAX_PAN_SPEED:** Cantidad mxima en milisegundos que hay que incrementar el pulso del PAN_0 para que se mueva. -- **MAP_ANGLE:** ngulo en grados a partir del cual se empieza a mapear el error del ngulo al gradiente de pulsos. \ No newline at end of file diff --git a/docs/Thumbs.db b/docs/Thumbs.db deleted file mode 100755 index f8b3500..0000000 Binary files a/docs/Thumbs.db and /dev/null differ diff --git a/wiki/configuration-compass.md b/docs/configuration-compass.md similarity index 98% rename from wiki/configuration-compass.md rename to docs/configuration-compass.md index 0c9de6c..eb3b852 100644 --- a/wiki/configuration-compass.md +++ b/docs/configuration-compass.md @@ -75,4 +75,4 @@ To change magnetic declination you have to set correct declination of your spesi If your magnetic declination readings are e.g. +3° 34' , the value entered in the u360gts configurator is 334. For west declination, use a minus value, e.g. for 1° 32' W, the value entered in the u360gts configurator is -132. In all cases (both CLI and GUI), the least significant digits are minutes, not decimal degrees. -[<< Go back](https://github.com/raul-ortega/u360gts/blob/master/wiki/index.md) +[<< Go back](README.md) diff --git a/wiki/configuration-gps.md b/docs/configuration-gps.md similarity index 98% rename from wiki/configuration-gps.md rename to docs/configuration-gps.md index b67d415..09c45a0 100644 --- a/wiki/configuration-gps.md +++ b/docs/configuration-gps.md @@ -170,4 +170,4 @@ Module | Comments -------|-------- MTK 3329 | Tested on hardware serial at 115200 baud (default) and on softserial at 19200 baud. The baudrate and refresh rate can be adjusted using the MiniGPS software (recommended if you lower the baudrate). The software will estimate the percentage of UART bandwidth used for your chosen baudrate and update rate. -[<< Go back](https://github.com/raul-ortega/u360gts/blob/master/wiki/index.md) +[<< Go back](README.md) diff --git a/wiki/configuration-loading-firmware.md b/docs/configuration-loading-firmware.md similarity index 96% rename from wiki/configuration-loading-firmware.md rename to docs/configuration-loading-firmware.md index 305321a..bd04156 100644 --- a/wiki/configuration-loading-firmware.md +++ b/docs/configuration-loading-firmware.md @@ -39,4 +39,4 @@ Download first the firmware [latest release](https://github.com/raul-ortega/u360 After this you are ready to connect and enter CLI Mode in order to configure the new features. -[<< Go back](https://github.com/raul-ortega/u360gts/blob/master/wiki/index.md) +[<< Go back](README.md) diff --git a/wiki/configuration-pan-servo.md b/docs/configuration-pan-servo.md similarity index 99% rename from wiki/configuration-pan-servo.md rename to docs/configuration-pan-servo.md index f8b4957..b266d9f 100644 --- a/wiki/configuration-pan-servo.md +++ b/docs/configuration-pan-servo.md @@ -77,3 +77,5 @@ And finally the minimun increment to start moving: min_pan_speed = (1530 - 1513) / 2 = 8.5 Rounded min_pan_speed = 9 + +[<< Go back](README.md) \ No newline at end of file diff --git a/wiki/configuration-pid-controller.md b/docs/configuration-pid-controller.md similarity index 98% rename from wiki/configuration-pid-controller.md rename to docs/configuration-pid-controller.md index 59e0df1..3120eec 100644 --- a/wiki/configuration-pid-controller.md +++ b/docs/configuration-pid-controller.md @@ -37,3 +37,5 @@ Then, do increase I value until you see that it bounces on the target, but cushi Finally, do increase the D to get it to react vividly, but always without oscillating around the target. ``` + +[<< Go back](README.md) \ No newline at end of file diff --git a/wiki/configuration-quick-start-guide.md b/docs/configuration-quick-start-guide.md similarity index 99% rename from wiki/configuration-quick-start-guide.md rename to docs/configuration-quick-start-guide.md index 912db65..3099a92 100644 --- a/wiki/configuration-quick-start-guide.md +++ b/docs/configuration-quick-start-guide.md @@ -46,3 +46,5 @@ While the aircraft is within those limits, the menu and home buttons function as By default, the antenna tracker has feature NOPID enabled. It works out of the box, and it is more than probability that it is not necessary to configure any of its parameters. With NOPID control enabled the tracking will experience a slight lag with respect the aircraft, especially if it receives position packets at a low frequency. Yo can use NOPID control for simulations and first real flights. But if you want more precision you will have to properly configure the PID for pan servo. The will get into action once feature NOPID is disabled. + +[<< Go back](README.md) \ No newline at end of file diff --git a/docs/Binding_HC-05_and_Crossfire.pdf b/docs/guides/Binding HC-05 and Crossfire.pdf similarity index 100% rename from docs/Binding_HC-05_and_Crossfire.pdf rename to docs/guides/Binding HC-05 and Crossfire.pdf diff --git a/docs/Bluetooth_english_version.pdf b/docs/guides/Bluetooth (ENG).pdf similarity index 100% rename from docs/Bluetooth_english_version.pdf rename to docs/guides/Bluetooth (ENG).pdf diff --git a/docs/Bluetooth.pdf b/docs/guides/Bluetooth (SPA).pdf similarity index 100% rename from docs/Bluetooth.pdf rename to docs/guides/Bluetooth (SPA).pdf diff --git a/docs/Crossfire-Telemetry-from-Taranis-X9D-Plus.pdf b/docs/guides/Crossfire telemetry from Taranis X9D Plus.pdf similarity index 100% rename from docs/Crossfire-Telemetry-from-Taranis-X9D-Plus.pdf rename to docs/guides/Crossfire telemetry from Taranis X9D Plus.pdf diff --git a/docs/DIY_MORE_OLED_2.42_SSD1309_128x64_MOD.pdf b/docs/guides/DIYMore OLED fix.pdf similarity index 100% rename from docs/DIY_MORE_OLED_2.42_SSD1309_128x64_MOD.pdf rename to docs/guides/DIYMore OLED fix.pdf diff --git a/docs/Manual-de-Montaje-del-Kit-aleman.pdf b/docs/guides/Kit mounting manual (GER).pdf similarity index 100% rename from docs/Manual-de-Montaje-del-Kit-aleman.pdf rename to docs/guides/Kit mounting manual (GER).pdf diff --git a/docs/guides/NOPID control system.md b/docs/guides/NOPID control system.md new file mode 100755 index 0000000..b72d563 --- /dev/null +++ b/docs/guides/NOPID control system.md @@ -0,0 +1,10 @@ +# Sistema de Control de Servo PAN sin PIDS + +Se ha incluìdo de forma experimental un sistema de control del servo PAN que no usa PID. Si usas un servo lento, este sistema podrìa mejorar el seguimiento del tracker, realizando movimientos màs precisos y fluìdos. El sistema es màs intiutivo de configurar que el sistema PID tradicional. +El sistema realiza una correcciòn de forma proporcional del àngulo de error entre el heading del tracker y el heading del aeromodelo, mapeando dicho error sobre un rango de pulsos PWM para el servo en base a los siguientes paràmetros: + +- **NO_PID_CONTROL:** Descomentando este paràmetro desactivamos el sistema PID tracicional y activamos el nuevo sistema de control PAN. +- **MIN_DELTA:** Angulo mìnimo en grados entre el heading del tracker y el del aeromodelo, si es mayor que este àngulo movemos el tracker. +- **MIN_PAN_SPEED:** Cantidad mìnima en milisegundos que hay que incrementar el pulso del PAN_0 para que se mueva. Este paràmetro es comùn a ambos sistemas de control y està localizado en el config.h donde siempre ha estado. +- **MAX_PAN_SPEED:** Cantidad màxima en milisegundos que hay que incrementar el pulso del PAN_0 para que se mueva. +- **MAP_ANGLE:** àngulo en grados a partir del cual se empieza a mapear el error del àngulo al gradiente de pulsos. \ No newline at end of file diff --git a/docs/Telemetria-Orange-OpenLRSng.pdf b/docs/guides/OrangeRX OpenLRSng telemetry.pdf similarity index 100% rename from docs/Telemetria-Orange-OpenLRSng.pdf rename to docs/guides/OrangeRX OpenLRSng telemetry.pdf diff --git a/docs/R9M_smart_port_wiring_with_bluetooth.jpeg b/docs/guides/R9M SmartPort-Bluetooth wiring.jpeg similarity index 100% rename from docs/R9M_smart_port_wiring_with_bluetooth.jpeg rename to docs/guides/R9M SmartPort-Bluetooth wiring.jpeg diff --git a/docs/SmartPort-Telemetry-from-Taranis-X9D-Plus.pdf b/docs/guides/SmartPort telemetry from Taranis X9D Plus.pdf similarity index 100% rename from docs/SmartPort-Telemetry-from-Taranis-X9D-Plus.pdf rename to docs/guides/SmartPort telemetry from Taranis X9D Plus.pdf diff --git a/docs/guides/SmartPort-Bluetooth wiring.jpeg b/docs/guides/SmartPort-Bluetooth wiring.jpeg new file mode 100644 index 0000000..24e9d3d Binary files /dev/null and b/docs/guides/SmartPort-Bluetooth wiring.jpeg differ diff --git a/docs/Protocolos.pdf b/docs/guides/Supported protocols (SPA).pdf similarity index 100% rename from docs/Protocolos.pdf rename to docs/guides/Supported protocols (SPA).pdf diff --git a/docs/Taranis_QX7_Bluetooth_mod_with_OpenTX.pdf b/docs/guides/Taranis QX7 Bluetooth mod with OpenTX.pdf similarity index 100% rename from docs/Taranis_QX7_Bluetooth_mod_with_OpenTX.pdf rename to docs/guides/Taranis QX7 Bluetooth mod with OpenTX.pdf diff --git a/docs/How_to_Convert_QX7_to_a_QX7S.pdf b/docs/guides/Taranis QX7 to QX7S conversion.pdf similarity index 100% rename from docs/How_to_Convert_QX7_to_a_QX7S.pdf rename to docs/guides/Taranis QX7 to QX7S conversion.pdf diff --git a/docs/Efecto-Easing-en-Servo-TILT-para-antenas-pesadas.pdf b/docs/guides/Tilt easing effects (SPA).pdf similarity index 100% rename from docs/Efecto-Easing-en-Servo-TILT-para-antenas-pesadas.pdf rename to docs/guides/Tilt easing effects (SPA).pdf diff --git a/wiki/hardware-frame.md b/docs/hardware-frame.md similarity index 94% rename from wiki/hardware-frame.md rename to docs/hardware-frame.md index 984b6bb..460553f 100644 --- a/wiki/hardware-frame.md +++ b/docs/hardware-frame.md @@ -24,4 +24,4 @@ Other alternatives are available for this project: - [u360gts Mini Case, by Albert Kravcov](https://www.thingiverse.com/thing:4108944) -[<< Go back](https://github.com/raul-ortega/u360gts/blob/master/wiki/index.md) +[<< Go back](README.md) diff --git a/wiki/hardware-list-of-components.md b/docs/hardware-list-of-components.md similarity index 97% rename from wiki/hardware-list-of-components.md rename to docs/hardware-list-of-components.md index 2068f7f..72e9beb 100644 --- a/wiki/hardware-list-of-components.md +++ b/docs/hardware-list-of-components.md @@ -36,4 +36,4 @@ This list of components is suitable for the [u360gts official 3d printted frame] - 1 x [8 Pin Aviation Connector Male Female ](https://www.amazon.com/dp/B077485NWB) - 1 x [Female panel power jack dc 5,5 x 2,1 mm-Electronics, Arduino](https://www.ebay.com/itm/2-x-Conector-Hembra-Panel-Power-Jack-DC-5-5-x-2-1-mm-Electronica-arduino/181943263506) -[<< Go back](https://github.com/raul-ortega/u360gts/blob/master/wiki/index.md) +[<< Go back](README.md) diff --git a/docs/history.md b/docs/history.md new file mode 100644 index 0000000..2ff4978 --- /dev/null +++ b/docs/history.md @@ -0,0 +1,11 @@ +## History + +u360gts has been developed and maintained by users of the [FPV spanish community](http://www.aeromodelismovirtual.com/showthread.php?t=34530). + +This project was born as **amv-open360tracker**, forked from the original project open360tracker developed by Samuel Brucksch. The firmware was originally designed to be run on Atmega328p and and Atmega2560 (8-bit AVR Microcontrollers used with Arduino) and was intended to be flashed on the popular flight controllers Crius SE, as well as Arduino UNO, Nano and Mega using external IMU. The main idea was to build a DIY antenna tracker system by reusing those old flight controllers and the electronics devices we had left inside that box... + +Users were requesting more and more functions, protocols... the code was growing and growing, and those microcontrollers had a big limitation on memory and hardware. So Raúl Ortega, the main contibutor of the firmware, decided to migrate to 32 bit processors while keeping in mind the same idea of reusing old electronics, thus creating **amv-open360tracker-32bits**. The firmware had been developed for controllers based on STM32F series microprocessors, which fit the technical specifications of the popular NAZE32 flight controllers (Flip32, NAZE32 rev5/rev6...). + +Later on Raúl Ortega decided to create a graphical user interface to configure the tracker and thought that it would be good to merge both projects under the name **u360gts** (u360gts for the firmware and u360gts-configurator for the configuration tool), and created a website as showcase and starting point for new users: [http://www.u360gts.com](http://www.u360gts.com). + +[<< Go back](README.md) diff --git a/wiki/img/CLI_status_mag.jpg b/docs/img/CLI_status_mag.jpg similarity index 100% rename from wiki/img/CLI_status_mag.jpg rename to docs/img/CLI_status_mag.jpg diff --git a/docs/Crius-SE-V2.5.png b/docs/img/Crius-SE_wiring.png similarity index 100% rename from docs/Crius-SE-V2.5.png rename to docs/img/Crius-SE_wiring.png diff --git a/img/Estimacion-posicion-v6.0-A.png b/docs/img/Estimacion-posicion-v6.0-A.png similarity index 100% rename from img/Estimacion-posicion-v6.0-A.png rename to docs/img/Estimacion-posicion-v6.0-A.png diff --git a/img/Estimacion-posicion-v6.0-B.png b/docs/img/Estimacion-posicion-v6.0-B.png similarity index 100% rename from img/Estimacion-posicion-v6.0-B.png rename to docs/img/Estimacion-posicion-v6.0-B.png diff --git a/docs/img/Naze32_rev6_cut_traces.jpg b/docs/img/Naze32_rev6_cut_traces.jpg new file mode 100644 index 0000000..274e2ef Binary files /dev/null and b/docs/img/Naze32_rev6_cut_traces.jpg differ diff --git a/wiki/img/Naze32_wiring.png b/docs/img/Naze32_wiring.png similarity index 100% rename from wiki/img/Naze32_wiring.png rename to docs/img/Naze32_wiring.png diff --git a/wiki/img/PDB_bluepill_bottom.png b/docs/img/PDB_bluepill_bottom.png similarity index 100% rename from wiki/img/PDB_bluepill_bottom.png rename to docs/img/PDB_bluepill_bottom.png diff --git a/wiki/img/PDB_bluepill_top.png b/docs/img/PDB_bluepill_top.png similarity index 100% rename from wiki/img/PDB_bluepill_top.png rename to docs/img/PDB_bluepill_top.png diff --git a/wiki/img/bluepill_wiring.png b/docs/img/bluepill_wiring.png similarity index 100% rename from wiki/img/bluepill_wiring.png rename to docs/img/bluepill_wiring.png diff --git a/img/easing.png b/docs/img/easing.png similarity index 100% rename from img/easing.png rename to docs/img/easing.png diff --git a/wiki/img/flip32_wiring.png b/docs/img/flip32_wiring.png similarity index 100% rename from wiki/img/flip32_wiring.png rename to docs/img/flip32_wiring.png diff --git a/wiki/img/mag_configuration.jpg b/docs/img/mag_configuration.jpg similarity index 100% rename from wiki/img/mag_configuration.jpg rename to docs/img/mag_configuration.jpg diff --git a/img/outQuartEasing.jpg b/docs/img/outQuartEasing.jpg similarity index 100% rename from img/outQuartEasing.jpg rename to docs/img/outQuartEasing.jpg diff --git a/wiki/img/supported_mag.jpg b/docs/img/supported_mag.jpg similarity index 100% rename from wiki/img/supported_mag.jpg rename to docs/img/supported_mag.jpg diff --git a/wiki/img/u360_gts_official_frame_list_of_components.jpeg b/docs/img/u360_gts_official_frame_list_of_components.jpeg similarity index 100% rename from wiki/img/u360_gts_official_frame_list_of_components.jpeg rename to docs/img/u360_gts_official_frame_list_of_components.jpeg diff --git a/wiki/img/u360gts_frame_3d_view.png b/docs/img/u360gts_frame_3d_view.png similarity index 100% rename from wiki/img/u360gts_frame_3d_view.png rename to docs/img/u360gts_frame_3d_view.png diff --git a/wiki/img/u360gts_spracingf3_wiring_schematics.png b/docs/img/u360gts_spracingf3_wiring_schematics.png similarity index 100% rename from wiki/img/u360gts_spracingf3_wiring_schematics.png rename to docs/img/u360gts_spracingf3_wiring_schematics.png diff --git a/docs/install-wiring-schematics.md b/docs/install-wiring-schematics.md new file mode 100644 index 0000000..ecb221b --- /dev/null +++ b/docs/install-wiring-schematics.md @@ -0,0 +1,34 @@ +# Wiring Schematics + +## Naze32 + +![](img/Naze32_wiring.png) + +### Rev6 boards + +Naze32 Rev6 boards might fail to receive telemetry due to the USB-Serial chip blocking communications; you may need to cut two traces on the board as reported by [jelle737 on RCGroups](https://www.rcgroups.com/forums/showpost.php?p=38456993&postcount=9). You will then have to use an external USB-Serial/FTDI adapter to connect to the board's UART1 instead of the usual Micro-USB connector. + +![](img/Naze32_rev6_cut_traces.jpg) + +## Flip32 + +![](img/flip32_wiring.png) + +## Bluepill + +![](img/bluepill_wiring.png) + +## Ariel'S PDB for Bluepill + +![](img/PDB_bluepill_top.png) +![](img/PDB_bluepill_bottom.png) + +## SP Racing F3 + +![](img/u360gts_spracingf3_wiring_schematics.png) + +## Crius SE + +![](img/Crius-SE_wiring.png) + +[<< Go back](README.md) \ No newline at end of file diff --git a/wiki/outgoing-telemetry.md b/docs/outgoing-telemetry.md similarity index 96% rename from wiki/outgoing-telemetry.md rename to docs/outgoing-telemetry.md index 65feaba..6bfda10 100644 --- a/wiki/outgoing-telemetry.md +++ b/docs/outgoing-telemetry.md @@ -70,4 +70,4 @@ These applications have been tested: * Oruxmpas (NMEA) * EZ-GUI (LTME) -[<< Go back](https://github.com/raul-ortega/u360gts/blob/master/wiki/index.md) +[<< Go back](README.md) diff --git a/docs/overview.md b/docs/overview.md new file mode 100644 index 0000000..69da25b --- /dev/null +++ b/docs/overview.md @@ -0,0 +1,75 @@ +# Features + +**360 DEGREE CONTINOUS ROTATION** + +With this firmware you can move your antenna continuously in a range of 360°, without the need of moving back. Using a slipring and 360 degree servos, your antenna will be pointed at your aircraft in an accurate and fast way. + +**MULTIPROTOCOL AND AUTOMATIC PROTOCOL DETECTION** + +This firmware provides an **all in one antenna tracker controller system**; it is able to work with several telemetry protocols. You can configure your antenna tracker to automatically detect the telemetry protocol that your aircraft is streaming (on the premise that you've already selected the correct baud rate). Now you have a single antenna tracker system for all your aircrafts! + +These are the protocols that are supported and automatically detected: + +- **MFD** +- **GPS TELEMETRY** (DIRECT NMEA from GPS) +- **MAVLINK** +- **RVOSD** +- **FRSKY D** +- **FRSKY X** (SmartPort) +- **Ardupilot** (Passthrough) +- **LTM** +- **PITLAB** + +**INPUT TELEMETRY AT HIGH FREQUENCY** + +This antenna tracker system is capable of reading input telemetry packets sent from your aircraft at a frequency of up to 10 times per seconds. + +**PROTOCOL CONVERSION AND FORWARDING** + +With this firmware you have the possibility to convert the input telemetry data to differents protocols formats, and forward the new frames to externals devices. + +Supported output protocols: + +- **MAVLINK** +- **MFD** +- **NMEA** + +Examples: + +* Your aircraft sends raw GPS telemetry frames to the antenna tracker, which converts them and sends MAVLink packets to a computer running Mission Planner or to a smartphone running the Droidplanner app. +* Your aircraft sends raw GPS telemetry frames to the antenna tracker, which converts them and sends NMEA GPGGA and GPRMC frames to Oruxmaps app. +* The received telemetry data is converted to the MFD protocol to manage an MFD antenna tracker. + +**GRAPHICAL CONFIGURATOR** + +Yo can configure and interact with the antenna tracker through the [u360gts-configurator](https://github.com/raul-ortega/u360gts-configurator), a software which will facilitate setting parameters, control operations, and test its behavior via simulations. + +**COMMAND LINE INTERFACE** + +You can also configure and interact with the antenna tracker through a Command Line Interface (CLI) from any serial console, including connecting directly via Bluetooth _(depends on your FC and the wiring of the components)_. + +**TILT EASING** + +The tilt movement has been improved by adding easing effects at the beginning and smoothing at the end. This will avoid damaging the tilt servo and other mechanisms when using heavy and larger antennas. This feature doesn't affect the accuracy and speed of the movements of the pan servo. + +**AUTOMATIC HOME POSITION** + +You can connect an NMEA or UBLOX GPS to the controller to automatically set the home position without your aircraft needing a valid GPS fix. It will still be possible to reset the home position in case you move the tracker around after powering it up. + +**OLED DISPLAY AND BUTTONS** + +An OLED display can be connected to show telemetry data, local gps status, battery monitoring and other useful informations. Using two buttons it will also be possible to graphically change some parameters without having to use a computer. + +**RSSI SIGNAL STRENGTH ON DISPLAY** + +The RSSI value of the signal can be provided from an external (video or R/C) receiver. The percentage of signal strength is shown on the display with a higer level of detail when the value is lower than a prefixed value by the user. + +**POSITION ESTIMATION SYSTEM** + +An integrated position estimation system can predict the immediate course of the aircraft; useful to avoid break ups in case of low-frequency telemetry. + +**4 SERIAL PORTS** + +Most of the supported STM32 boards incorporate 2 UARTS. This firmware provides a way to activate 2 extra virtual ports _(softserial)_ which can be used for various purposes. They can be assigned dynamically for the different functions the antenna tracker can perform. + +[<< Go back](README.md) diff --git a/docs/tilt-efecto-altura-tracker.pdf b/docs/tilt-efecto-altura-tracker.pdf deleted file mode 100755 index 4687921..0000000 Binary files a/docs/tilt-efecto-altura-tracker.pdf and /dev/null differ diff --git a/fake_travis_build.sh b/fake_travis_build.sh deleted file mode 100755 index ae7d511..0000000 --- a/fake_travis_build.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -targets=("PUBLISHMETA=True" \ - "RUNTESTS=True" \ - "TARGET=CC3D" \ - "TARGET=CHEBUZZF3" \ - "TARGET=CJMCU" \ - "TARGET=COLIBRI_RACE" \ - "TARGET=EUSTM32F103RC" \ - "TARGET=SPRACINGF3" \ - "TARGET=MOTOLAB" \ - "TARGET=NAZE" \ - "TARGET=NAZE32PRO" \ - "TARGET=OLIMEXINO" \ - "TARGET=PORT103R" \ - "TARGET=RMDO" \ - "TARGET=SPARKY" \ - "TARGET=STM32F3DISCOVERY" \ - "TARGET=ALIENWIIF1" \ - "TARGET=ALIENWIIF3") - -#fake a travis build environment -export TRAVIS_BUILD_NUMBER=$(date +%s) -export BUILDNAME=${BUILDNAME:=fake_travis} -export TRAVIS_REPO_SLUG=${TRAVIS_REPO_SLUG:=$USER/simulated} - -for target in "${targets[@]}" -do - unset RUNTESTS PUBLISHMETA TARGET - eval "export $target" - make clean - ./.travis.sh -done diff --git a/img/Thumbs.db b/img/Thumbs.db deleted file mode 100755 index 75527e6..0000000 Binary files a/img/Thumbs.db and /dev/null differ diff --git a/support/buildserver/upload.php b/support/buildserver/upload.php deleted file mode 100755 index 7d2badf..0000000 --- a/support/buildserver/upload.php +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/support/flash.bat b/support/flash.bat deleted file mode 100644 index 0e0f800..0000000 --- a/support/flash.bat +++ /dev/null @@ -1,26 +0,0 @@ -@@echo OFF - -:: User configuration - -:: set your port number. ie: for COM6 , port is 6 -set PORT=2 -:: location of stmflashloader.exe, this is default -set FLASH_LOADER="C:\Program Files (x86)\STMicroelectronics\Software\Flash Loader Demonstrator\STMFlashLoader.exe" -:: path to firmware -set FIRMWARE="D:\baseflight.hex" - -:: ---------------------------------------------- - -mode COM%PORT% BAUD=115200 PARITY=N DATA=8 STOP=1 XON=OFF DTR=OFF RTS=OFF -echo/|set /p ="R" > COM%PORT%: - -TIMEOUT /T 3 - -cd %LOADER_PATH% - -%FLASH_LOADER% ^ - -c --pn %PORT% --br 115200 --db 8 ^ - -i STM32_Med-density_128K ^ - -e --all ^ - -d --fn %FIRMWARE% ^ - -r --a 0x8000000 diff --git a/support/stmloader/Makefile b/support/stmloader/Makefile deleted file mode 100644 index 936fa69..0000000 --- a/support/stmloader/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -CC = $(CROSS_COMPILE)gcc -AR = $(CROSS_COMPILE)ar -export CC -export AR - -all: - $(CC) -g -o stmloader -I./ \ - loader.c \ - serial.c \ - stmbootloader.c \ - -Wall - -clean: - rm -f stmloader; rm -rf stmloader.dSYM diff --git a/support/stmloader/loader.c b/support/stmloader/loader.c deleted file mode 100644 index 8a060fa..0000000 --- a/support/stmloader/loader.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - This file is part of AutoQuad. - - AutoQuad is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - AutoQuad is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with AutoQuad. If not, see . - - Copyright © 2011 Bill Nesbitt -*/ - -#include "serial.h" -#include "stmbootloader.h" -#include -#include -#include -#include -#include -#include -#include - -#define DEFAULT_PORT "/dev/ttyUSB0" -#define DEFAULT_BAUD 115200 -#define FIRMWARE_FILENAME "STM32.hex" - -serialStruct_t *s; - -char port[256]; -unsigned int baud; -unsigned char overrideParity; -unsigned char noSendR; -char firmFile[256]; - -void loaderUsage(void) { - fprintf(stderr, "usage: loader <-h> <-p device_file> <-b baud_rate> <-f firmware_file> <-o> <-n>\n"); -} - -unsigned int loaderOptions(int argc, char **argv) { - int ch; - - strncpy(port, DEFAULT_PORT, sizeof(port)); - baud = DEFAULT_BAUD; - overrideParity = 0; - noSendR = 0; - strncpy(firmFile, FIRMWARE_FILENAME, sizeof(firmFile)); - - /* options descriptor */ - static struct option longopts[] = { - { "help", required_argument, NULL, 'h' }, - { "port", required_argument, NULL, 'p' }, - { "baud", required_argument, NULL, 's' }, - { "firm_file", required_argument, NULL, 'f' }, - { "override_parity", no_argument, NULL, 'o' }, - { "no_send_r", no_argument, NULL, 'n' }, - { NULL, 0, NULL, 0 } - }; - - while ((ch = getopt_long(argc, argv, "hp:b:f:o:n", longopts, NULL)) != -1) - switch (ch) { - case 'h': - loaderUsage(); - exit(0); - break; - case 'p': - strncpy(port, optarg, sizeof(port)); - break; - case 'b': - baud = atoi(optarg); - break; - case 'f': - strncpy(firmFile, optarg, sizeof(firmFile)); - break; - case 'o': - overrideParity = 1; - break; - case 'n': - noSendR = 1; - break; - default: - loaderUsage(); - return 0; - } - argc -= optind; - argv += optind; - - return 1; -} - -int main(int argc, char **argv) { - FILE *fw; - - // init - if (!loaderOptions(argc, argv)) { - fprintf(stderr, "Init failed, aborting\n"); - return 1; - } - - s = initSerial(port, baud, 0); - if (!s) { - fprintf(stderr, "Cannot open serial port '%s', aborting.\n", port); - return 1; - } - - fw = fopen(firmFile, "r"); - if (!fw) { - fprintf(stderr, "Cannot open firmware file '%s', aborting.\n", firmFile); - return 1; - } - else { - printf("Upgrading STM on port %s from %s...\n", port, firmFile); - stmLoader(s, fw, overrideParity, noSendR); - } - - return 0; -} diff --git a/support/stmloader/serial.c b/support/stmloader/serial.c deleted file mode 100644 index b11fa49..0000000 --- a/support/stmloader/serial.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - This file is part of AutoQuad. - - AutoQuad is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - AutoQuad is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with AutoQuad. If not, see . - - Copyright © 2011 Bill Nesbitt -*/ - -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif - -#include "serial.h" -#include -#include -#include -#include -#include -#include -#include - -serialStruct_t *initSerial(const char *port, unsigned int baud, char ctsRts) { - serialStruct_t *s; - struct termios options; - unsigned int brate; - - s = (serialStruct_t *)calloc(1, sizeof(serialStruct_t)); - - s->fd = open(port, O_RDWR | O_NOCTTY | O_NDELAY); - - if (s->fd == -1) { - free(s); - return 0; - } - - fcntl(s->fd, F_SETFL, 0); // clear all flags on descriptor, enable direct I/O - -// bzero(&options, sizeof(options)); -// memset(&options, 0, sizeof(options)); - tcgetattr(s->fd, &options); - -#ifdef B921600 - switch (baud) { - case 9600: - brate = B9600; - break; - case 19200: - brate = B19200; - break; - case 38400: - brate = B38400; - break; - case 57600: - brate = B57600; - break; - case 115200: - brate = B115200; - break; - case 230400: - brate = B230400; - break; - case 460800: - brate = B460800; - break; - case 921600: - brate = B921600; - break; - default: - brate = B115200; - break; - } - options.c_cflag = brate; -#else // APPLE - cfsetispeed(&options, baud); - cfsetospeed(&options, baud); -#endif - - options.c_cflag |= CRTSCTS | CS8 | CLOCAL | CREAD; - options.c_iflag = IGNPAR; - options.c_iflag &= (~(IXON|IXOFF|IXANY)); // turn off software flow control - options.c_oflag = 0; - - /* set input mode (non-canonical, no echo,...) */ - options.c_lflag = 0; - - options.c_cc[VTIME] = 0; /* inter-character timer unused */ - options.c_cc[VMIN] = 1; /* blocking read until 1 chars received */ - -#ifdef CCTS_OFLOW - options.c_cflag |= CCTS_OFLOW; -#endif - - if (!ctsRts) - options.c_cflag &= ~(CRTSCTS); // turn off hardware flow control - - // set the new port options - tcsetattr(s->fd, TCSANOW, &options); - - return s; -} - -void serialFree(serialStruct_t *s) { - if (s) { - if (s->fd) - close(s->fd); - free (s); - } -} - -void serialNoParity(serialStruct_t *s) { - struct termios options; - - tcgetattr(s->fd, &options); // read serial port options - - options.c_cflag &= ~(PARENB | CSTOPB); - - tcsetattr(s->fd, TCSANOW, &options); -} - -void serialEvenParity(serialStruct_t *s) { - struct termios options; - - tcgetattr(s->fd, &options); // read serial port options - - options.c_cflag |= (PARENB); - options.c_cflag &= ~(PARODD | CSTOPB); - - tcsetattr(s->fd, TCSANOW, &options); -} - -void serialWriteChar(serialStruct_t *s, unsigned char c) { - char ret; - - ret = write(s->fd, &c, 1); -} - -void serialWrite(serialStruct_t *s, const char *str, unsigned int len) { - char ret; - - ret = write(s->fd, str, len); -} - -unsigned char serialAvailable(serialStruct_t *s) { - fd_set fdSet; - struct timeval timeout; - - FD_ZERO(&fdSet); - FD_SET(s->fd, &fdSet); - memset((char *)&timeout, 0, sizeof(timeout)); - - if (select(s->fd+1, &fdSet, 0, 0, &timeout) == 1) - return 1; - else - return 0; -} - -void serialFlush(serialStruct_t *s) { - while (serialAvailable(s)) - serialRead(s); -} - -unsigned char serialRead(serialStruct_t *s) { - char ret; - unsigned char c; - - ret = read(s->fd, &c, 1); - - return c; -} diff --git a/support/stmloader/serial.h b/support/stmloader/serial.h deleted file mode 100644 index 90beedc..0000000 --- a/support/stmloader/serial.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - This file is part of AutoQuad. - - AutoQuad is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - AutoQuad is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with AutoQuad. If not, see . - - Copyright © 2011 Bill Nesbitt -*/ - -#ifndef _serial_h -#define _serial_h - -#define INPUT_BUFFER_SIZE 1024 - -typedef struct { - int fd; -} serialStruct_t; - -extern serialStruct_t *initSerial(const char *port, unsigned int baud, char ctsRts); -extern void serialWrite(serialStruct_t *s, const char *str, unsigned int len); -extern void serialWriteChar(serialStruct_t *s, unsigned char c); -extern unsigned char serialAvailable(serialStruct_t *s); -extern void serialFlush(serialStruct_t *s); -extern unsigned char serialRead(serialStruct_t *s); -extern void serialEvenParity(serialStruct_t *s); -extern void serialNoParity(serialStruct_t *s); -extern void serialFree(serialStruct_t *s); - -#endif diff --git a/support/stmloader/stmbootloader.c b/support/stmloader/stmbootloader.c deleted file mode 100644 index 9a0550b..0000000 --- a/support/stmloader/stmbootloader.c +++ /dev/null @@ -1,343 +0,0 @@ -/* - This file is part of AutoQuad. - - AutoQuad is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - AutoQuad is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with AutoQuad. If not, see . - - Copyright © 2011 Bill Nesbitt -*/ - -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif - -#include "serial.h" -#include -#include -#include -#include - -#define STM_RETRIES_SHORT 1000 -#define STM_RETRIES_LONG 50000 - -unsigned char getResults[11]; - -unsigned char stmHexToChar(const char *hex) { - char hex1, hex2; - unsigned char nibble1, nibble2; - - // force data to upper case - hex1 = toupper(hex[0]); - hex2 = toupper(hex[1]); - - if (hex1 < 65) - nibble1 = hex1 - 48; - else - nibble1 = hex1 - 55; - - if (hex2 < 65) - nibble2 = hex2 - 48; - else - nibble2 = hex2 - 55; - - return (nibble1 << 4 | nibble2); -} - - -unsigned char stmWaitAck(serialStruct_t *s, int retries) { - unsigned char c; - unsigned int i; - - for (i = 0; i < retries; i++) { - if (serialAvailable(s)) { - c = serialRead(s); - if (c == 0x79) { -// putchar('+'); fflush(stdout); - return 1; - } - if (c == 0x1f) { - putchar('-'); fflush(stdout); - return 0; - } - else { - printf("?%x?", c); fflush(stdout); - return 0; - } - } - usleep(500); - } - - return 0; -} - -unsigned char stmWrite(serialStruct_t *s, const char *hex) { - unsigned char c; - unsigned char ck; - unsigned char i; - - ck = 0; - i = 0; - while (*hex) { - c = stmHexToChar(hex); - serialWrite(s, (char *)&c, 1); - ck ^= c; - hex += 2; - i++; - } - if (i == 1) - ck = 0xff ^ c; - - // send checksum - serialWrite(s, (char *)&ck, 1); - - return stmWaitAck(s, STM_RETRIES_LONG); -} - -void stmWriteCommand(serialStruct_t *s, char *msb, char *lsb, char *len, char *data) { - char startAddress[9]; - char lenPlusData[128]; - char c; - - strncpy(startAddress, msb, sizeof(startAddress)); - strcat(startAddress, lsb); - - sprintf(lenPlusData, "%02x%s", stmHexToChar(len) - 1, data); - - write: - // send WRITE MEMORY command - do { - c = getResults[5]; - serialWrite(s, &c, 1); - c = 0xff ^ c; - serialWrite(s, &c, 1); - } while (!stmWaitAck(s, STM_RETRIES_LONG)); - - // send address - if (!stmWrite(s, startAddress)) { - putchar('A'); - goto write; - } - - // send len + data - if (!stmWrite(s, lenPlusData)) { - putchar('D'); - goto write; - } - - putchar('='); fflush(stdout); -} - -char *stmHexLoader(serialStruct_t *s, FILE *fp) { - char hexByteCount[3], hexAddressLSB[5], hexRecordType[3], hexData[128]; - char addressMSB[5]; - static char addressJump[9]; - -// bzero(addressJump, sizeof(addressJump)); -// bzero(addressMSB, sizeof(addressMSB)); - memset(addressJump, 0, sizeof(addressJump)); - memset(addressMSB, 0, sizeof(addressMSB)); - - while (fscanf(fp, ":%2s%4s%2s%s\n", hexByteCount, hexAddressLSB, hexRecordType, hexData) != EOF) { - unsigned int byteCount, addressLSB, recordType; - - recordType = stmHexToChar(hexRecordType); - hexData[stmHexToChar(hexByteCount) * 2] = 0; // terminate at CHKSUM - -// printf("Record Type: %d\n", recordType); - switch (recordType) { - case 0x00: - stmWriteCommand(s, addressMSB, hexAddressLSB, hexByteCount, hexData); - break; - case 0x01: - // EOF - return addressJump; - break; - case 0x04: - // MSB of destination 32 bit address - strncpy(addressMSB, hexData, 4); - break; - case 0x05: - // 32 bit address to run after load - strncpy(addressJump, hexData, 8); - break; - } - } - - return 0; -} - -void stmLoader(serialStruct_t *s, FILE *fp, unsigned char overrideParity, unsigned char noSendR) { - char c; - unsigned char b1, b2, b3; - unsigned char i, n; - char *jumpAddress; - - // turn on parity generation - if (!overrideParity) - serialEvenParity(s); - - if(!noSendR) { - top: - printf("Sending R to place Baseflight in bootloader, press a key to continue"); - serialFlush(s); - c = 'R'; - serialWrite(s, &c, 1); - getchar(); - printf("\n"); - } - - serialFlush(s); - - printf("Poking the MCU to check whether bootloader is alive..."); - - // poke the MCU - do { - printf("p"); fflush(stdout); - c = 0x7f; - serialWrite(s, &c, 1); - } while (!stmWaitAck(s, STM_RETRIES_SHORT)); - printf("STM bootloader alive...\n"); - - // send GET command - do { - c = 0x00; - serialWrite(s, &c, 1); - c = 0xff; - serialWrite(s, &c, 1); - } while (!stmWaitAck(s, STM_RETRIES_LONG)); - - b1 = serialRead(s); // number of bytes - b2 = serialRead(s); // bootloader version - - for (i = 0; i < b1; i++) - getResults[i] = serialRead(s); - - stmWaitAck(s, STM_RETRIES_LONG); - printf("Received commands.\n"); - - - // send GET VERSION command - do { - c = getResults[1]; - serialWrite(s, &c, 1); - c = 0xff ^ c; - serialWrite(s, &c, 1); - } while (!stmWaitAck(s, STM_RETRIES_LONG)); - b1 = serialRead(s); - b2 = serialRead(s); - b3 = serialRead(s); - stmWaitAck(s, STM_RETRIES_LONG); - printf("STM Bootloader version: %d.%d\n", (b1 & 0xf0) >> 4, (b1 & 0x0f)); - - // send GET ID command - do { - c = getResults[2]; - serialWrite(s, &c, 1); - c = 0xff ^ c; - serialWrite(s, &c, 1); - } while (!stmWaitAck(s, STM_RETRIES_LONG)); - n = serialRead(s); - printf("STM Device ID: 0x"); - for (i = 0; i <= n; i++) { - b1 = serialRead(s); - printf("%02x", b1); - } - stmWaitAck(s, STM_RETRIES_LONG); - printf("\n"); - -/* - flash_size: - // read Flash size - c = getResults[3]; - serialWrite(s, &c, 1); - c = 0xff ^ c; - serialWrite(s, &c, 1); - - // if read not allowed, unprotect (which also erases) - if (!stmWaitAck(s, STM_RETRIES_LONG)) { - // unprotect command - do { - c = getResults[10]; - serialWrite(s, &c, 1); - c = 0xff ^ c; - serialWrite(s, &c, 1); - } while (!stmWaitAck(s, STM_RETRIES_LONG)); - - // wait for results - if (stmWaitAck(s, STM_RETRIES_LONG)) - goto top; - } - - // send address - if (!stmWrite(s, "1FFFF7E0")) - goto flash_size; - - // send # bytes (N-1 = 1) - if (!stmWrite(s, "01")) - goto flash_size; - - b1 = serialRead(s); - b2 = serialRead(s); - printf("STM Flash Size: %dKB\n", b2<<8 | b1); -*/ - - // erase flash - erase_flash: - printf("Global flash erase [command 0x%x]...", getResults[6]); fflush(stdout); - do { - c = getResults[6]; - serialWrite(s, &c, 1); - c = 0xff ^ c; - serialWrite(s, &c, 1); - } while (!stmWaitAck(s, STM_RETRIES_LONG)); - - // global erase - if (getResults[6] == 0x44) { - // mass erase - if (!stmWrite(s, "FFFF")) - goto erase_flash; - } - else { - c = 0xff; - serialWrite(s, &c, 1); - c = 0x00; - serialWrite(s, &c, 1); - - if (!stmWaitAck(s, STM_RETRIES_LONG)) - goto erase_flash; - } - - printf("Done.\n"); - - // upload hex file - printf("Flashing device...\n"); - jumpAddress = stmHexLoader(s, fp); - if (jumpAddress) { - printf("\nFlash complete, executing.\n"); - - go: - // send GO command - do { - c = getResults[4]; - serialWrite(s, &c, 1); - c = 0xff ^ c; - serialWrite(s, &c, 1); - } while (!stmWaitAck(s, STM_RETRIES_LONG)); - - // send address - if (!stmWrite(s, jumpAddress)) - goto go; - } - else { - printf("\nFlash complete.\n"); - } -} diff --git a/support/stmloader/stmbootloader.h b/support/stmloader/stmbootloader.h deleted file mode 100644 index 9c7a5de..0000000 --- a/support/stmloader/stmbootloader.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - This file is part of AutoQuad. - - AutoQuad is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - AutoQuad is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with AutoQuad. If not, see . - - Copyright © 2011 Bill Nesbitt -*/ - -#ifndef _stmbootloader_h -#define _stmbootloader_h - -#include -#include "serial.h" - -extern void stmLoader(serialStruct_t *s, FILE *fp, unsigned char overrideParity, unsigned char noSendR); - -#endif diff --git a/supported_mag.jpg b/supported_mag.jpg deleted file mode 100644 index b137e58..0000000 Binary files a/supported_mag.jpg and /dev/null differ diff --git a/wiki/history.md b/wiki/history.md deleted file mode 100644 index 923a193..0000000 --- a/wiki/history.md +++ /dev/null @@ -1,11 +0,0 @@ -## History - -u360gts has been developed and maintained by users of the [FPV spanish community](http://www.aeromodelismovirtual.com/showthread.php?t=34530). - -This project was born as **amv-open360tracker**, forked from the original project open360tracker developed by Samuel Brucksch. The firmware was originally designed to be run on Atmega328p and and Atmega2560 (8-bit AVR Microcontrollers used with Arduino) and was intended to be flashed on the popular flight controllers Cruise SE, as well as Arduino UNO, Nano and Mega using external IMU. The main idea was to build a DIY antenna tracker system by reusing those old flight controllers and the electronics devices we had left inside that box... - -Users were requesting more and more funtions, protocols ... the code was growing and growing, and those microcontrollers had a big limitation on memory and hardware, so Raúl Ortega, the main contibutor of the firmware decided to migrate to 32 bit processors trying to keep in mind the same idea of reusing old electronics, giving the way to **amv-open360tracker-32bits** firmware version. The firmware had been developed for controllers based on STM32F series microprocessors, which fit the technical specifications of the popular NAZE32 flight controller (Flip32, NAZE32 rev5/rev6 ... with built-in compass, or ACRO version with external compass). - -Later on Raúl Ortega decided to create a graphical user interface to configure the tracker and thought that would be good to uniffy both projects under the name ... **u360gts**... (u360gts for the firmware and u360gts-configurator for the configuration tool), and created a website as showcase and starting point for new users: [http://www.u360gts.com](http://www.u360gts.com). - -[<< Go back](https://github.com/raul-ortega/u360gts/blob/master/wiki/index.md) diff --git a/wiki/index.md b/wiki/index.md deleted file mode 100644 index 59a1f8b..0000000 --- a/wiki/index.md +++ /dev/null @@ -1,67 +0,0 @@ -## u360gts - The Universal 360º Continous Rotation Tracker System for Drones. -### How to get help? -First of all we would like you to understand the big effort spent to create such a tool for the RC community. This is a open source project, and people involved on it have their own responsabilities in their lifes (a job, a family, ..., definitely a lif). We do this because we love our hobby and would like to share it whith you, please, if something is not clear, or some information is missing, try to contact us by - -- [submitting a new issue](https://github.com/raul-ortega/u360gts/issues) -- [asking in u360 facebook group](https://www.facebook.com/groups/u360gts/) -- [Posting in the spanish community (español)](http://www.zonafpv.com/foro/estacion-de-tierra/u360gts-seguidor-de-antena-de-rotacion-continua-360o/) -- [posting in Jelle737's Build Log u360gts: 360° antenna tracker on rcgropus](https://www.rcgroups.com/forums/showthread.php?2964122-u360gts-360%C2%B0-antenna-tracker) -### About u360gts -- [What is u360gts?](https://github.com/raul-ortega/u360gts/blob/master/wiki/history.md) -- [History](https://github.com/raul-ortega/u360gts/blob/master/wiki/history.md) -- [Overview](https://github.com/raul-ortega/u360gts/blob/master/wiki/overview.md) - -### Hardware -- [Frame](https://github.com/raul-ortega/u360gts/blob/master/wiki/hardware-frame.md) -- [List of components](https://github.com/raul-ortega/u360gts/blob/master/wiki/hardware-list-of-components.md) - -### Installation -- [Wiring schematics](https://github.com/raul-ortega/u360gts/blob/master/wiki/install-wiring-schematics.md) - -## Configuration -- [Loading the firmware](https://github.com/raul-ortega/u360gts/blob/master/wiki/configuration-loading-firmware.md) -- [Configurator](https://github.com/raul-ortega/u360gts-configurator/blob/master/README.md) -- [Magnetometer](https://github.com/raul-ortega/u360gts/blob/master/wiki/configuration-compass.md) -- [Pan servo](index.md) -- [Tilt servo](index.md) -- [OFFSET setting](index.md) -- [PID Control](https://github.com/raul-ortega/u360gts/blob/master/wiki/configuration-pid-controller.md) -- [NOPID controll system](index.md) -- [GPS](https://github.com/raul-ortega/u360gts/blob/master/wiki/configuration-gps.md) - -## Ingoing Telemetry -- [Supported protocols](index.md) -- [Configuring serial 0 (UART1)](index.md) -- [Protocol selection](index.md) - -## CLI mode -- [Enter CLI mode](index.md) -- [Save settings](index.md) -- [Default settings](index.md) -- [Enable/Disable features](index.md) -- [Help](index.md) -- [Full list of parameters](index.md) - -## Display -- [Description and operation](index.md) -- [Enable/Disable display](index.md) - -## Local GPS -- [Installation](index.md) -- [Settings](index.md) -- [Set HOME position](index.md) - -## Outgoing Telemetry: protocol translation and relaying -- [Settings](https://github.com/raul-ortega/u360gts/blob/master/wiki/outgoing-telemetry.md) - -## Virtual serial ports -- [Configuración y asignación de funciones](index.md) -- [Conexiones](index.md) - -## Battery monitoring -- Voltage level -- Settings - -## Buttons -- [MENU](index.md) -- [HOME](index.md) diff --git a/wiki/install-wiring-schematics.md b/wiki/install-wiring-schematics.md deleted file mode 100644 index 8386f87..0000000 --- a/wiki/install-wiring-schematics.md +++ /dev/null @@ -1,27 +0,0 @@ -# Wiring Schematics - -## NAZE32 - - - -## FLIP32 - - - -[<< Go back](https://github.com/raul-ortega/u360gts/blob/master/wiki/index.md) - -## BLUEPILL - - - -## ARIEL'S PDB FOR BLUEPILL - - - - - -## SP RACING F3 - - - -[<< Go back](https://github.com/raul-ortega/u360gts/blob/master/wiki/index.md) diff --git a/wiki/overview.md b/wiki/overview.md deleted file mode 100644 index 162fcd7..0000000 --- a/wiki/overview.md +++ /dev/null @@ -1,73 +0,0 @@ -# Features - -**360 DEGREE CONTINOUS ROTATION** - -With this firmware you can move your antenna continually in a range of 360 degrees, without the need of moving back. Using an slipring and 360 degree servos, or normal servos modified to be able of doing it, the firware will give the orders for reaching the target in an acurate and fast way. - -**MULTIPROTOCOL AND AUTOMATIC PROTOCOL DETECTION** - -This firmware provides an **all in one antenna tracker controller system**, it is able to work with several telemetry protocols. You can configure your antenna tracker to detect automátically the telemetry protocol that your aircraft is streaming (if you configured the appropieated baud rate, otherwhise you have to select the apropiated baud rate in the setup menu on the OLED display once you are at the flying field). Now you have one antenna tracker system for all your aircrafts! - -These are the protocols that are supported (and automatically detected): - -- **MFD** -- **GPS TELEMETRY (DIRECT NMEA from GPS)** -- **MAVLINK** -- **RVOSD** -- **FRSKY D** -- **FRSKY X (SmartPort)** -- **Ardupilot PASSTHROUGH Telemetry -- **LTM (Light Telemetry)** -- **PITLAB** - -**INPUT TELEMETRY AT HIGH FREQUENCY** - -This antenna tracker system is capable of reading input telemetry packets sended from the aircraft at a frequency up to 10 times per seconds. - -**PROTOCOL CONVERSION AND FORWARDING** - -With this firmware, you have the possibility to convert the input telemetry datato differents protocols formats, and fordward the frames to externals devices. - -- **MAVLINK** -- **MFD** -- **NMEA** - -Examples: - -* Your aircrafat sends GPS direct telemetry frames to the antenna tracker, and it converts and send mavlink packets to Mission Planner or Droidplanner app. -* Your aircrafat sends GPS direct telemetry frames to the antenna tracker, and it converts and send NMEA GPGGA and GPRMC frames to Oruxmaps app. -* The received telemetry data is converted to MFD protocol to manage an MFD antenna tracker. - -**GRAPHICAL CONFIGURATOR** - -Yo can configure and interact with the antenna tracker through the [u360gts-configurator](https://github.com/raul-ortega/u360gts-configurator), a software which will facilitate setting parameters, control operations, and test its behavior by simulation. - -**COMMAND LINE INTERFACE** - -Yo also can configure and interact with the antenna tracker through a Command Line Interface (CLI) from any serial console, as well as for example some app over Bluetooth. - -**TILT EASING** - -The tilt movement has been improved by adding easing effects at the beginning and smoothing at the end. This will avoid damaging the tilt servo and other mechanisms when using heavy and larger antennas. This feature doesn't affect the accuracy and speed in the movements of the pan servo. - -**AUTOMATIC HOME POSITION** - -You can connect a NMEA or UBLOX GPS device to the controller to automatically set the home position before starting the tracking. Nonetheless, the user has full control and can reject the home position to get a more accurate one. - -**OLED DISPLAY** - -Telemetry data, local gps status, battery monitoring and other usefull information, are displayed on an OLED display. - -Now you can select the ingoing telemetry protocol,baud rate, enable/disable features, and other parameter settings through the setup menu on the OLED display. - -**RSSI SIGNAL STRENGTH ON DISPLAY** - -The rssi signal can be provided from video or control receiver. The percentage of signal strength is shown on the display with a higer level of detail when the value is lower than a prefixed value by the user. - -**POSITION ESTIMATION SYSTEM** - -It implements a position estimation system which provides 3 estimation modes. It is very useful in case of telemetry at low frecuency. - -**4 SERIAL PORTS** - -These STM32 microprocessor series based boards incorporate 2 UARTS (serial ports 0 and 1). This firmware provides the way to activate 2 extra virtual ports (softserial) which can be used for different purposes. They can be assigned dynamically for the different functions the antenna tracker can perform.