Commit graph

2704 commits

Author SHA1 Message Date
timecop@gmail.com
5bbf2bc88d rewrote box serialization to not use a buffer, also maybe fixed mismatched boxes in GUI (thx Luggi09)
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@452 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-27 11:40:45 +00:00
timecop@gmail.com
d63c1f0604 Properly set ADXL345 driver default orientation (thx enots)
Fixed compile error in i2c_soft driver which still used old GPIO init syntax.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@451 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-24 11:34:32 +00:00
timecop@gmail.com
7ce9aab3d8 fixing servo output for flying_wing w/new servo reorganization
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@450 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-24 00:37:20 +00:00
timecop@gmail.com
35927540b1 cleaning up some misc fuckups from msp handler
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@449 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-23 09:52:04 +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
47a4d30358 fixed cli status command (thx alexk)
moved mpuscale into core struct since it's not a changeable setting

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@447 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-21 00:22:33 +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
6b93f06e49 corrected mag task switcher for good this time
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@444 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-19 09:53:52 +00:00
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
c1d82bcf46 fixed bug in task state machine introduced by re-adding gps thread. thanks to alu for catching it.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@441 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-14 22:42:32 +00:00
timecop@gmail.com
ca7d7e32f6 removed some double promotions that sneaked in, as well as replaced fabs() with float-only fabsf() version. trashed doubles from _atof(). Considering trashing that whole function for KEIL builds.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@439 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-13 16:19:46 +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
04560808e7 implemented MSP_MISC get/set to support 'SETTINGS' tab of mwcgui
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@437 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-13 08:58:47 +00:00
timecop@gmail.com
07055c8872 fixing initializion for anglesrad[]
add drv_softserial to common drivers in Makefile

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@436 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-12 08:07:08 +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
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
6bbc8fdb22 fix accZ/shake detection when copter upside down. oops.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@432 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-12 06:57:31 +00:00
timecop@gmail.com
a9b094dca6 fixing buzzer related compilation errors on OLIMEXINO target [by Dominic Clifton]
moved alignSensors from drv_system to utils
updating uvproj to keil5

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@431 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-12 02:04:08 +00:00
Dominic Clifton
ed3a3e683c 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. 2013-10-12 02:30:47 +01:00
Dominic Clifton
dd0a962682 fixing buzzer related compilation errors on OLIMEXINO target. 2013-10-11 22:17:49 +01:00
Dominic Clifton
d8e9282f04 Merge remote-tracking branch 'multiwii/upstream'
Conflicts:
	src/drv_system.c
	src/main.c
2013-10-11 21:39:40 +01:00
timecop@gmail.com
3bb1063001 fixed buzzer on rev5 boards;
added experimental gyro-based headfree boxes

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@429 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-04 14:36:34 +00:00
timecop@gmail.com
800ce6bdf7 fixed a fuckup with yaw_rate that was caused by more 8bit leftover garbage
fixed althold vel/constrain typo thx Marcin
flight-tested this build on my shitcopter, CAREFUL flight testing may commence.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@428 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-04 01:51:31 +00:00
timecop@gmail.com
891bce4e19 reset heading to zero when calibrating gyro w/stick combo on hardware without mag
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@427 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-02 02:29:52 +00:00
timecop@gmail.com
3744f36895 calculate heading using gyro-only on boards without mag - idea by Cesco
added constants for gyro/acc/baro cal and fixed calibration to add /2
warning cleanup in drv_serial.c

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@426 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-02 02:18:14 +00:00
timecop@gmail.com
5332b78200 simplify serialrx by Cesco
fix bug in softserial with digitalIn usage (todo rewrite this properly)

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@425 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-02 00:10:40 +00:00
Dominic Clifton
767babed1d Merge remote-tracking branch 'multiwii/upstream'
Conflicts:
	src/board.h
	src/drv_softserial.c
	src/drv_uart.c
	src/drv_uart.h
	src/main.c
2013-10-01 22:31:38 +01:00
Dominic Clifton
750fea4b80 Merge branch 'softserial'
Conflicts:
	src/board.h
	src/drv_pwm.c
	src/drv_softserial.c
	src/drv_softserial.h
	src/drv_system.c
	src/drv_timer.c
	src/drv_uart.c
	src/drv_uart.h
	src/main.c
	src/sensors.c
2013-10-01 22:16:25 +01:00
timecop@gmail.com
8003d06049 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

Conflicts:

	src/drv_serial.c
	src/drv_serial.h
	src/main.c
2013-10-01 22:05:10 +01:00
timecop@gmail.com
fa810e907a some whitespace and formatting cleanups on the last commit.
also changed GPIO_GetInputDataBit to use proper digitalIn() api

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@424 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-10-01 00:25:56 +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
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
Dominic Clifton
b92c3fa192 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.
2013-10-01 00:24:23 +01:00
Dominic Clifton
2ff881aa69 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. 2013-09-30 23:30:12 +01:00
Dominic Clifton
a6f6a5e28b 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. 2013-09-30 23:05:53 +01:00
Dominic Clifton
97f54561f0 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). 2013-09-30 20:29:10 +01:00
Dominic Clifton
6425877b2c 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(). 2013-09-30 20:13:24 +01:00
Dominic Clifton
c950dbea09 Totally rework software serial to provide tx at the same
time as rx using only one timer.
2013-09-30 00:39:30 +01: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
04ab548d2e actually adding BMA280 driver files, oops.
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@417 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-29 14:00:14 +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
91d64fc6c1 removed retarded small_angles shit and replaced with proper calculation.
no more small angles while shaking the board.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@415 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-29 13:10:58 +00:00
timecop@gmail.com
6763d8810b added test BMA280 driver
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@414 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-29 12:53:02 +00:00
timecop@gmail.com
c8f0fc78b3 removed references to avr optimizations we stopped using long time ago
fixed heading calculation jump

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@413 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-22 04:03:18 +00:00
timecop@gmail.com
64e8f247bf oops. gyro only does NOT need getEstimatedAttitude. bad!
ms5611 driver improvements (was failing below 20c)
merged some althold cleanups

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@411 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-21 11:18:15 +00:00
timecop@gmail.com
1ff4bcec5a Nice catch on gyro-only fly fail
-robertb

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@410 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-21 07:57:28 +00:00
timecop@gmail.com
8a5157db46 disconnected magcal from core and put it all into hmc5883 driver. no need to keep track of it if driver does init by itself as well.
moved annexcode into mw.c instead of imu.c
hopefully didn't break anything.
NOT FLIGHT TESTED.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@405 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-19 15:07:48 +00:00
timecop@gmail.com
ac3cee7788 oops, this should be a bitfield
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@404 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-19 11:26:30 +00:00
timecop@gmail.com
14893afb32 cleanup of sensor readings and sensor driver API reorganization part 1
documented L3G4200D driver why 0x28 read was suddenly turning into 0xA8
removed old wiimotion averaging cruft from computeIMU
NOT FLIGHT TESTED

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@403 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
2013-09-19 11:20:53 +00:00