1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-19 14:25:20 +03:00
Commit graph

76 commits

Author SHA1 Message Date
dongie
f336fc8d20 allow configurable bootloader reboot character to workaround retarded BT adapters that spam 'R' 2014-04-06 13:42:10 +09:00
Dominic Clifton
c7de7d2ebc Add support for 2 softserial ports on PWM4+5/TIM3_CH1+2/PA6+PA7 and
PWM6+7/TIM3_CH3+4/PB0+PB1

Update software serial to monitor serial pins for signal changes instead
of periodically sampling pin signals.

When reading the data the timer used is syncronized to the falling edge
of the start bit which allows for better syncronisation at higher
speeds.  The code has been tested OK from 1200 baud to 19200.  38400
baud was tested and partially usable but has been disabled because there
are too many transmit and receive errors, especially when transmitting
and receiving at the same time.

Due to the way a single timer is used for transmitting and receiving, if
data comes in while transmitting the system may incorrectly transmit a
short or long bit.  However at 19200 and below this didn't cause a
problem in the limited testing I performed.
2014-04-03 22:42:15 +01:00
dongie
30afff2578 got rid of feature_gyro_smoothing. nobody used that, and its retarded to do anyway. 2014-02-18 15:27:53 +09:00
dongie
202fc17608 added max_angle_inclination to CLI to configure (default) 50 degree max inclination. configurable between 10 and 90 (100..900 in cli) 2014-02-18 15:23:02 +09:00
dongie
92c0947d7f bump config version after PID default changes and add built hex file 2014-01-28 10:03:30 +09:00
Lukas S
073f5116bb new althold PID
althold should work better now, the PID settings are preliminary. There
is definetly room for improvement.
For aquiring your own PID settings set ALT_P = 0 and tune the VEL pid
until the copter only drifts a little from its position when you
activate althold. Then set ALT_P to a value where it holds the position
stable
2014-01-28 01:26:58 +01:00
KipK
6ee98fed90 indents 2014-01-17 17:02:48 +01:00
KipK
7bd2db04be Added a mcfg.telemetry_switch for CLI
If telemetry_switch=1 it change baudrate and protocol using aux channel, either it switch  when armed/disarmed.

This allows to keep MSP serial while armed for BT dongle if needed.
2014-01-16 19:36:54 +01:00
dongie
9a7ff04422 adding untested (and needing work) fixedwing althold implementation.
see comments in code for things to fix. added new variable to cli, fixedwing_althold_dir (though its value isn't really clear, I think it should always be positive since servo direction mix is done later).
2014-01-06 21:38:36 +09:00
Johannes Kasberger
26aa644999 Fixes array out of bound access for lookupPitchRollRC and lookupThrottleRC. 2013-11-07 16:59:36 +01:00
fiendie
6ab48fc438 Revert new PID stuff and move it to a separate branch for now. 2013-11-07 13:15:31 +01:00
dongie
c14e7cf59f whitespace and formatting cleanups from latest commit 2013-11-03 12:21:22 +09:00
Lukas S
b996b26cbb new Baseflight PID
full gyro scale is used now
and a new pid with float calculations was added based on PIDrewrite
eeprom size was also increased from 1kB to 2kB
2013-11-03 03:48:45 +01:00
timecop@gmail.com
35f0a8e4b0 old altitude calculation used again, added lpf for accZ by Luggi09
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@462 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-30 11:57:54 +00:00
timecop@gmail.com
779dfe8a92 separate all telemetry code and add option to use softserial for telemetry.
to use, set softserial_baudrate=9600, softserial_inverted=1 and  telemetry_softserial=1
then enable feature TELEMETRY.
by disq


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@448 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-23 09:47:38 +00:00
timecop@gmail.com
8d7f82dc75 added ability to specify arbitrary roll/pitch/yaw translation for board mounting by alu.
this allows to mount FC vertically/upside down/etc easily.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@445 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-19 09:56:29 +00:00
timecop@gmail.com
30ded7ff04 Beginning of the great GPS unfucking.
* Proper initialization sequence framework for various supported GPS types. NMEA will now auto-detect its baud rate based on received frames.
* As a result of the above, gps_baudrate has been changed to enum, to only allow fixed rates. (GPS baudrate, -1: autodetect (NMEA only), 0: 115200, 1: 57600, 2: 38400, 3: 19200, 4: 9600)
* UBX binary initialization at any specified baudrate with auto-reconnect on signal loss.
* GPS thread to handle initialization, signal loss and configuration. No longer does GPS need to be powered before FC, and on GPS reconnect, it will be re-initialized if needed.
MTK NMEA/binary initialization is omitted for now, as I can't find my MTK GPS
GPS deltaTime can be calculated to display update rate.


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@438 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-13 15:25:45 +00:00
timecop@gmail.com
c682f1f21e Softserial can now be enabled/disabled via the SOFTSERIAL feature switch in the command line. Softserial baud rate can be set via softserial_baudrate setting. Added input & output inversion support, use softserial_inverted setting by Dominic Clifton
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@435 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-12 07:46:55 +00:00
timecop@gmail.com
9ebd82c5ef merged in mwii2.3 generic servo handler. completely untested.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@434 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-12 07:03:01 +00:00
timecop@gmail.com
7c595e4110 started merging in generic servo handler
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@422 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-30 23:42:44 +00:00
timecop@gmail.com
2272e1a5a6 reorganization of uart-based receiver drivers
FEATURE_SPEKTRUM has been removed and replaced with FEATURE_SERIALRX.
cli  option serialrx_type now configures what type of receiver it is
0 = spektrum1024, 1 = spektrum2048, 2 = sbus
sbus will need hardware inverter to use.
also cleaned up receiver drivers to assign readrawRC callback instead of assigning in code in main()
none of this has been tested.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@418 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-29 14:40:20 +00:00
timecop@gmail.com
01eaf85510 added ability to assign one of aux1..4 channels as RSSI by the-kenny
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@416 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-29 13:58:25 +00:00
timecop@gmail.com
71772f137b part 3 of the great sensor axis unfucking. careful flight testing may commence.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@400 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-15 01:56:23 +00:00
timecop@gmail.com
1cc306493b beginnings of the great sensor orientation unfucking. WORK IN PROGRESS DO NOT FLY.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@397 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-14 12:27:26 +00:00
dominicc1974@gmail.com
4c191270bf Changing all line endings to WINDOWS line endings (CR+LF) and removing all End-Of-Line whitespace and using spaces instead of tabs. Please ensure you configure your editors and tools to follow suit. If using git please enable autocrlf in your .git/config file.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@393 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-06 23:14:48 +00:00
timecop@gmail.com
929bbc8c3f added (untested) flag to disable tricopter servo updates when unarmed.
tri_unarmed_servo to 1 (default) always updates tri servo whether armed or not.
tri_unarmed_servo to 0 will only send servo signal to tail servo when armed.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@392 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-06 00:03:32 +00:00
timecop@gmail.com
509e349e69 Whitespace/compiler warnings cleanups by Dominic Clifton;
Slight tweak of new althold defaults
NOT-flight-tested .hex committing so people can commence with althold testing.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@391 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-08-31 01:40:13 +00:00
timecop@gmail.com
fa7eecac18 reload GPS pids on each eeprom read
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@389 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-08-27 07:22:48 +00:00
timecop@gmail.com
f663a57613 improved altitude hold thanks to Luggi09
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@386 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-08-24 14:57:26 +00:00
timecop@gmail.com
01376de3e5 marking some more stuff const that shouldn't be changing. thx Hydra for the catch.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@384 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-08-24 10:20:55 +00:00
timecop@gmail.com
0664b3005d fixed Makefile to build w/new drivers (thanks Hydra)
int32 updates in sonar driver
added 12mhz buzzer check
Removed debug output from GPS module
int32'ified althold
output HSE MHz+SysClkMHz on debug[3]

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@379 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-08-19 23:29:20 +00:00
timecop@gmail.com
3afeb3d1c8 initial take at configurable FEATURE_3D
completely untested and may attempt to kill you when enabled. no binary.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@360 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-06-30 07:11:49 +00:00
timecop@gmail.com
4e94fd07e5 + added alternative PID controller from http://www.multiwii.com/forum/viewtopic.php?f=8&t=3671
+ this is a per-profile setting, and PIDs CHANGE from default multiwii ones. check the above forum post for PID examples. set pid_controller = 0 for default multiwii, or 1 for new one.
= went back to clearing clibuffer after each command


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@341 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-06-16 08:49:36 +00:00
timecop@gmail.com
b6fc652b20 beginnings of cli editing support by cehteh; (still buggy)
added and began work on integrating failsafe_detect_threshold
got rid of acc_lpf_for_velocity since that seemed no longer used.


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@317 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-05-09 12:26:11 +00:00
timecop@gmail.com
c26603dd72 some more minor updates from 2.2
added variable for gyro_cmpfm factor (mag) to configurables
changed gyro_cmpf factor to 600 (higher gyro influence)
got rid of GYRO_INTERLEAVE stuff (didn't work, obsolete)
got rid of applyDeadband hacks, invsqrt hacks, and other shit. ifdef'd original baseflight attitude/heading calcs w/new 2.2 routines
fixed cockup in altitude calculation w/applyDeadband
remaining: GPS

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@304 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-05-02 14:07:52 +00:00
timecop@gmail.com
98d0581ac2 part 2 of ?? of mw2.2 merge (still not flight-tested, so no binaries)
defaulted to looptime of 3500 (yea, yea)
rewrote baro stuff to match mwc2.2 - both supported sensors now return temperature and pressure, which is used in altitude calculation code
rewrote hmc5883 driver to include calibration inside the driver file instead of calling parts of calibration from userspace. it will now blink LED1 while calibrating
some parts remaining to do.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@298 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-03-23 15:58:18 +00:00
timecop@gmail.com
491b3627f6 begin initial merge of 2.2 features
mw2.2-merged stuff:
* implemented profiles 0-2 (called 'setting' in mwiigui)
* merged in MSP changes including profile switch
* cleaned up rc / aux switch stuff in mw.c based on 2.2 rewrite
* main loop switch for baro/sonar shit adjusted
todo: basically the rest of 2.2 changes (i think some minor imu/gps/baro updates)
baseflight-specific stuff:
* made boxitems transmission dynamic, based on enabled features. no more GPS / camstab trash if it's not enabled
* cleaned up gyro drivers to return scale factor to imu code
* set gyro_lpf now controls every supported gyro - not all take same values, see driver files for allowed ranges, in case of invalid lpf, defaults to something reasonable (around 30-40hz)

maybe couple other things I forgot. this is all 100% experimental, untested, and not even flown. thats why there's  no hex.
merge is still ongoing.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@294 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-03-14 14:03:30 +00:00
timecop@gmail.com
23acf529d7 implemented using one of RC inputs as ADC channel for power meter.
added MSP_ACC_TRIM stuff for android GUI.


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@231 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-10-19 02:43:27 +00:00
timecop@gmail.com
e59f639951 made gyrodiff for motion detection configurable, 0 = disabled
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@230 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-10-14 00:34:23 +00:00
timecop@gmail.com
021b486916 added ability to swap sensor axises dynamically. still needs a sane way to configire in CLI, though.
adjusted all drivers for the new align stuff.
commented out default config setting values to zero - memset already did that.


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@227 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-10-07 18:03:42 +00:00
timecop@gmail.com
4a4c0d585d sign error in HEX6P mix.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@224 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-23 11:41:02 +00:00
timecop@gmail.com
1dea2b3b3b integrated tommie's eeprom sanity check. much less chances of new firmware screwing up due to old config version.
fixed pwm init for airplane mode mistakenly deleting motors from the mix. flyingwing should really work now.
removed led debug from althold


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@223 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-21 04:12:17 +00:00
timecop@gmail.com
a51bb66ad4 more mahowik althold changes. at least it doesn't shoot up in the air now on enable... but still nothing impressive.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@217 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-12 07:09:45 +00:00
timecop@gmail.com
8e16d83a37 testing: merged patch from http://www.multiwii.com/forum/viewtopic.php?p=22485#p22485
no binaries, as it doesn't work at the claimed PIDs of 5.0-0.030-30

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@214 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-10 09:11:22 +00:00
timecop@gmail.com
70884d69d5 bring back flying wing w/all configuration options
config version bumped, settings cleared.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@213 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-09 11:35:35 +00:00
timecop@gmail.com
3cd8e4e3f6 added printf() support via SpareTimeLabs printf lib. this cleaned up some mess inside cli.c
example of usage: http://bcas.tv/paste/results/xToE9w26.html
hover-tested quadx loaded as custom mix, works.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@207 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-06 06:35:02 +00:00
timecop@gmail.com
98cba890e1 moving towards custom mixer table and proper fixedwing mixer.
refactored all of mixer.c to use tables instead of hardcoded mix.
custom mixer is stored in flash, but currently has no UI to configure it.
do not choose mixer CUSTOM in console.

hover-tested QUADX, if upgrading anything else, please carefully check motor response first, preferably without props on heavy models.
tec

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@206 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-05 23:44:55 +00:00
timecop@gmail.com
b2bc4bf9e6 Finished merging GPS autoconfig + ubx protocol code.
use set gps_type=X in cli to configure, where X=0 if NMEA (no special config), X=1 if UBX (enters ubx binary mode), X=2 if MTK (sets up MTK for 5Hz operation).
changed default GPS rate to 115200 baud
added baudrate reset stuff to UART driver for GPS autoconfigure
NONE of this is tested (except UBX working on my window)

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@204 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-04 16:26:46 +00:00
timecop@gmail.com
80d7ba604b merged multiwii GPS code from 1097. still no support for UBX, or GPS auto-config, soon.
added interrupt pins from mag/mma/mpu for rev4 hardware. nothing done with them yet - candidates for EXTI use
added tx buffer to UART2 (gps) in preparation for auto-config


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@203 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-04 09:13:59 +00:00
timecop
10570a6579 i2c no-ack fix (never actually worked properly, fixed now)
bumped config version, or else r198 crashed on update from recent version
airplane mode config passed to drv_pwm


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@199 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-08-21 05:41:58 +00:00