1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-15 20:35:33 +03:00
Commit graph

38 commits

Author SHA1 Message Date
timecop@gmail.com
134a37d811 corrected a bug that would cause motors to spin up after saving parameters in 3D mode, thx englishman.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@443 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-18 15:38:39 +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
37b73a057b core.numRCChannels now set by RC drivers to show max inputs available.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@433 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-12 06:58:28 +00:00
timecop@gmail.com
28d5927836 Totally rework software serial to provide tx at the same time as rx using only one timer.
First cut at polymorphic serial port implementation.  Split serialPort_t into uartPort_t and serialPort_t.  Calls to uartWrite() can now be replaced with calls to serialWrite().

Replacing calls to serialWriteByte(softSerial_t*, char) with calls to serialWrite(serialPort_t*, char).  This completes the proof of concept for polymorphic serial port implementations (uartPort and softSerialPort).

Renaming isSerialAvailable to uartTotalBytesWaiting.  Renaming serialAvailable to softSerialTotalBytesWaiting.  Adding serialTotalBytesWaiting to serial API and updating calls to the former methods to use the serial API.

Renaming serialRead to softSerialRead.  Adding serialRead to serial API and updating calls to uartRead and softSerialRead to use the serial API.  Renamed uartPrint to serialPrint which now works on any serialPort implementation.

Replacing calls to isUartTransmitEmpty with isSoftSerialTransmitBufferEmpty.  Replacing remaing calls to uartWrite with serialWrite.  Adding isSoftSerialTransmitBufferEmpty to the serial API.  Adding serialSet/GetBaudRate to the serial API.  Since softSerial does not implement serialSetBaudRate some GPS serial initialisation code has been updated.

At this point it is probably possible to switch around all the ports and use a software serial implementation if desired.

By Dominic Clifton / https://github.com/hydra/baseflight/

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@423 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-01 00:07:44 +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
77a241bd5f Software serial implementation. Compile with SOFTSERIAL_19200_LOOPBACK to test. Without the define the implementation will have no effect. Next step is to add a 'feature' to enable softserial and settings for the baud rate. Note, only READ is currently supported, write will come later. The highlevel api calls are used in main.c. Uart implementation needs cleanup to make serial port code generic, see uart files for details.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@390 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-08-28 01:26:10 +00:00
timecop@gmail.com
003c2a91c5 Separate timer code from PWM/PPM code. The method of looking up a callback is now generic which means other (forthcoming) code can configure callback handlers.
Killed some leftovers of GPIO_Pin* stuff I forgot about.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@387 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-08-25 12:45:36 +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
fbef1aa284 changed pwmGPIOConfig() signature to better show that last parameter is pin mode.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@380 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-08-20 00:34:21 +00:00
timecop@gmail.com
d442c9dfb6 initial pass at gpio cleanup. removed almost all dependency on stdperiphlib (remaining exti).
slightly modified initial pin configuration, but this needs rework soon anyway.
couple spacing/line ending/formatting fixes in sonar driver file while fixing gpio there.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@357 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-06-29 14:09:54 +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
f2a931d248 OLIMEXINO - Initial support for the OLIMEXINO board.
PWM and ADC configuration is the same as the naze32 for now.  Requires an accelerometer is connected via I2C2.
I2C signals SDA2 and SCL2 are on the UEXT header (Pins 6 and 5 respectively)
USART signals TX and RX are on the CON3/CON4 headers (TX = D7, RX = D8)
Onboard LEDs (LED1/LED2) working.
Buzzer support removed for now as it conflicted with PWM map and LEDs.
mma845x support disabled as it conflicted with an LED.
Relocated some NAZE specific comments.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@302 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-04-07 13:18:37 +00:00
timecop@gmail.com
af7e135d75 fix from frog32 for external adc channel allocation;
fix from mwc forum for frsky telemetry gps output

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@237 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-11-12 09:08:16 +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
005308b430 Applied patch from trunet for running at 64MHz off HSI for broken Chinese kcopter clones
status in cli now prints cpu MHz, 72 when running off crystal, 64 when running off intrc.
corrected WHO_AM_I check for mpu6050 when it's used on alternate address (AD0 high).
corrected PWM driver to consider CPU clock for timer prescalers - now things properly work below 72MHz
added a neat hack for pitch angle calculation so that it's not affected when roll reaches 90deg
added proper math for vector rotation instead of small-angle approximation

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@225 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-10-06 14:40:24 +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
817eb09b8a fixed bug in soft_i2c driver (doesnt affect anyone except testing)
added VAR_FLOAT to cli - now allows setting/printing float vars
fixed newlines in pwm driver
exported new althold tunables to cli (some are floats) - still not enabled by default until I know it works

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@219 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-18 13:29:35 +00:00
timecop@gmail.com
b94c13b1c5 allow using GPS in PWM input mode. This (obviously) reduces number of available channels by 2.
I heard thats not a problem since tarduino only allows 4RC+2AUX channels anyway! If you want more, upgrade to PPM.
So you use RC3/4 for GPS, and connect the rest of the channels as usual. Channels used for GPS uart are
skipped, so no changes to 'map' are necessary. Simply connect in order.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@212 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-09-08 12:53:55 +00:00
timecop
e6cb4a0b1c cleaned up bmp085 driver
added ms5611 driver
refactored pressure sensor subsystem to allow multiple sensors
couple changes in PWM driver to make motor/servo arrangement for airplane mode more intuitive
moved MAX_MOTORS/MAX_SERVOS etc into drv_pwm.h
staring to merge back in airplane/flyingwing mixes
fix for tri servo display - mwc moved it to servo[5] again, gui was broken, function not.
will probably implement custom mixer soon (motors only, no servos)


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@198 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-08-20 10:25:10 +00:00
timecop
ee76242525 rewritten and cleaned up PWM driver
this has been hover-tested.
all current functionality *should* work even though the driver has been rewritten.
please test carefully, especially servo configurations!

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@197 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-08-17 06:48:30 +00:00
timecop
c98113b82c synced with mwc 2.1. it's suprising how many "new" things in 2.1 didn't actually matter on a real platform.
removed camtrig stuff since it wasnt possible. somewhat replaced with aux forwarding (see below)
2.1 buzzer code changed, untested.
removed flying wing mixer. nobody used that. 
added alt_hold_throttle_neutral, nav_slew_rate and looptime configuration to cli. default looptime set to 3000. changed default gyro_cmpf to 400 to sync with 2.1.
increased bmp085 oversampling
added gimbal_flags (bit 4 set) flag which, in PPM mode, forwards AUX1..4 to the lower 4 PWM outputs instead of using them as motors. set gimbal_flags=8 to test it out. output is fixed to 50Hz.
merged 2.1 gps changes (not many)
casting in gyro smoothing (nobody uses that anyway)
calibrate accel in gimbal mode, set smallangle in gyro-only mode
vtail4 mixer fix
flight tested on quadx w/ppm.


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@182 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-07-20 14:53:15 +00:00
timecop
e70d7b5d16 added softi2c source file (oops)
changed gpio speeds to 2mhz from 50, nothing is toggling at 50mhz here. reduce ringing/noise.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@181 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-07-14 07:43:18 +00:00
timecop
829331c020 added pidalt stuff into cli
added a modifier for set (type "set *") to see min/max values for each parameter. this is for gui stuff
bumped config VERSION
fixed 0xffff - now stuff in drv_pwm, after it was mentioned to me for the  3rd time :p
replaced some uint8_t -> uint32_t for loop counters - saving 4 to 8 bytes of flash each time. thanks goes to thee 35+ years of C experience kicad guy.
turned bitfiends into a regular struct - instant 100byte flash size reduction

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@174 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-07-02 15:47:12 +00:00
timecop
2fd5645dce made sonar support compiled in (lol)
changed PPM pulse idle detect to 2.7ms per JimDrew instructions
updated keil project w /sonar source files.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@168 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-06-26 01:36:58 +00:00
timecop
18db641282 readded support for failsafe (thanks rimshotcopter for bugging me about it for a month)
new config ooptions for failsafe, so current settings are cleared
fixed mistake where yaw servo stuff for tri was still hardcoded even though it had configurable values in cli
reduced level default D to 20 from 100 (dunno what effect this has, shrug)
untested, enable feature FAILSAFE at your own risk.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@155 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-05-09 05:29:30 +00:00
timecop
910df63a7f fixed motor output when using spektrum.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@151 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-05-04 01:59:37 +00:00
timecop
f3a4e9f731 fix for pwm preload (not possible with this firmware, reported by marcin)
added gimbal flags to mixer. allows making gimbal tilt only or pantilt or disabling all pan/tilt by aux3/4

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@149 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-04-10 07:19:57 +00:00
timecop
cb334ecf47 fixed acczero offsets to 0 on initial eeprom cleanup
added fifo mode to adxl345 driver, currently disabled. work in progress.
fixed output for PWM 5-8 when used with PPM + camstab + abovequad configs.
fixed baro, now alt-hold actually works. silly copypaste typo.
trashed all remaining parts of power meter and lcd configuration stuff. useless.


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@145 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-04-07 15:29:00 +00:00
timecop
58eb2b966f added configurable motor and servo period settings (50-498Hz). both set by cli, default is 50 for servo, 400 for motors.
removed feature digital_servo since its now set by cli instead.
added proper tx end check into uart, to remove delay inside printing out set values and tx buffer overrun during help()
instead of passing a bunch of params to pwm driver, made a config struct
fixed a bug in gps baudrate
fixed typo in stmloader.c
whitespace / indentation cleanups in various drivers

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@137 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-30 09:49:00 +00:00
timecop
da5ac020e1 added gps baudrage config setting
renamed gcc startup file to .S (breaks some lunix dudes apparently)
ppm sum handler waws hardcoded to TIM2 instead of using passed parameter. fixed. (thanks sbaron)
invalid data from pwm/ppm read are returned as midrc, not 1500. (robert_b)


git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@133 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-27 12:55:44 +00:00
timecop
e0537e5aa0 nice boner in PWM output
now fixed.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@131 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-26 16:11:28 +00:00
timecop
96829b7306 synced code with multiwii 2.0 release
split uart2 initialization inside drv_uart. added receive data callback to use either with GPS or spektrum satellite
added spektrum satellite support, also freeing up 4 motor outputs for hexa/octo/camstab
configurable acc lpf and gyro lpf via cli
configurable (build-time) temperature lpf on baro. seems mostly useless.
fixed a nice boner bug in mag code which ended up multiplying magADC twice with magCal data.
fixed mpu3050 driver to allow configurable lpf, also broke other stuff in the process. considering moving this sort of stuff to "init" struct for sensor.
pwm driver rewritten to fully disable pwm/ppm inputs (such as using spektrum satellite case)
cleaned up double math in gps.c to use sinf/cosf etc
removed TRUSTED_ACCZ since its useless anyway
whitespace cleanup

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@130 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-26 15:28:36 +00:00
timecop
0534444b2d temporarily removed throttle calibration. broken until further notice.
implemented channel order selection (map in cli). example "map AETR1234" -> ail, ele, throttle, rudder, aux1234. thanks simon for all the halp on this one. truly a mindfuck.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@126 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-24 07:10:17 +00:00
timecop
670390e7a6 ugh. only check 1st channel.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@125 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-23 10:29:58 +00:00
timecop
f39ed713cb cancel throttle calibration if any RC signal is detected
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@124 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-23 10:28:15 +00:00
timecop
8318331f27 fixed mag calibration stuff as reported by multiwii dudes
added (untested) support for additional PWM output channels incase of PPM input - 4 more, so total of 10 outputs in this mode.
added (mostly untested) support for throttle calibration - short out PPM input connector with a bind plug and power up.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@122 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-23 03:59:15 +00:00
timecop
5091f3e9ff moved source files around in preparation to adding makefile build way
added makefile (thx gke)
added linker script (thx gke)
moved startups into src directory as well
no code changes.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@105 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2012-03-06 04:41:23 +00:00
Renamed from drv_pwm.c (Browse further)