b2bc4bf9e6Finished 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)
timecop@gmail.com
2012-09-04 16:26:46 +0000
80d7ba604bmerged 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
timecop@gmail.com
2012-09-04 09:13:59 +0000
70db9006afmag init after gyro
timecop
2012-08-23 23:50:52 +0000
10570a6579i2c 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
timecop
2012-08-21 05:41:58 +0000
e6cb4a0b1ccleaned 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)
timecop
2012-08-20 10:25:10 +0000
ee76242525rewritten 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!
timecop
2012-08-17 06:48:30 +0000
9b7e26b274makefile fix to add l3gd driver
timecop
2012-08-15 14:51:17 +0000
288d0ca4a6committing built firmware w/currentTime fix
timecop
2012-08-15 08:48:07 +0000
9a842f6bb0fix for 32bit overflow of currentTime killing baro/mag after 72 minutes (yes, someone noticed) thanks to enots @ feenode.
timecop
2012-08-15 08:47:23 +0000
e894dba995fixed bug in mpu6050 accel code added mpu6050 acc scale factor fixup for es/non es chips (exposed as cli option as well)
timecop
2012-08-07 08:00:16 +0000
ecda218e8fadded support for l3g4200d i2c gyro, autodetected added motors off in hardfault handler, so we drop to the ground on hardfault.
timecop
2012-08-05 01:57:51 +0000
75adda0597allow 0 for looptime to go back to not-rate-limited loop.
timecop
2012-07-21 07:06:19 +0000
c98113b82csynced 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.
timecop
2012-07-20 14:53:15 +0000
e70d7b5d16added softi2c source file (oops) changed gpio speeds to 2mhz from 50, nothing is toggling at 50mhz here. reduce ringing/noise.
timecop
2012-07-14 07:43:18 +0000
23d11299b8added test driver for software i2c. disabled by default. no, that wasn't the cause of cycletime jumps. increased flash size to 128k, moved config data in last kbyte of that. as a result all settings are reset, please save them. corrected hex6x mixer. added telemetry to makefile.
timecop
2012-07-14 02:00:39 +0000
829331c020added 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
timecop
2012-07-02 15:47:12 +0000
c998f5ca67added support for outputting FrSky telemetry by silpstream @ rcgroups feature TELEMETRY to enable it. when armed, telemetry is sent out the TX pin. It must be connected to 'Rx' pin of FrSky telemetry receiver via a level shifter. When disarmed, port goes back to 115200 bps for GUI. fixed a typo in imu.c introduced by GYRO_INTERLEAVE junk. todo: just switch serial speed instead of reinitializing everything.
timecop
2012-07-01 15:32:45 +0000
9c2204c179synced serial protocol to multiwii-dev 20120622 changed booleans to bitfield struct to match with 0622 no other functional changes, and not all enhancements (like boxlight) from 0622 are implemented yet NOT flight tested, use at your own risk.
timecop
2012-06-30 13:20:53 +0000
2fd5645dcemade sonar support compiled in (lol) changed PPM pulse idle detect to 2.7ms per JimDrew instructions updated keil project w /sonar source files.
timecop
2012-06-26 01:36:58 +0000
ce1ec92a67Makefile fix from zippe; Untested to build on Win32, but presumably works on Lunix, etc. Now properly builds both Naze and FY90Q targets.
timecop
2012-06-19 05:46:55 +0000
f73ccdd0a9fixed mma driver ID; fixed a boner #ifdef typo in imu.c go back to gyro glitch stuff in sensors.c do gyrocal during acc cal as well
timecop
2012-06-14 04:12:23 +0000
8fb580d3f5added FY90Q buyild target to Makefile fixed mag calibration finally I think... heading + mag declination calculation done using better precision. increased gyro bias calculation to 1000.
timecop
2012-06-14 03:35:23 +0000
572d5827cctook out cycle counter stuff for timing, now using systick + counter strictly. ... seems improved loop precision a bit. put gyro interleave under define. this needs to be cleaned sometime. took out "gyro glitch" stuff that was leftover from nintendo days.
timecop
2012-06-07 15:29:37 +0000
19ca85963btrashed uvop keil file since that was system-specific stuff. applied mwc-dev GPS code with bits of tarducopter code by sbaron. Thanks again. Moved some of the GPS config stuff into cli - gps_lpf, min/max nav speed, nav_controls_heading. Remember I don't test any GPS functionality at all, so if this makes your quad fly towards North Korea at over 9000cm/sec, this is NOT my problem. spacing fixes in a couple files. trashed old serial code that was under #if 0
timecop
2012-06-06 15:09:44 +0000
12d6c41407oops, my retarded arm fix disabled all arming :)
timecop
2012-06-01 03:15:22 +0000
49653ec65erearranged accelerometer autodetect code and allow user override by "set acc_hardware" in CLI (0=autodetect,1=adxl345,2=mpu6050,3=mma845x) added arm/disarm on left/righ roll while throttle down to configuration options and disabled it by default. "set retarded_arm" in CLI put gyro_cmpf_factor into settings. default is 310, can be increased to decrease acc influence. debug use only. dropped acc_lpf_factor back to 4. those who want it at 100, make it so. cleaned up MPU6050 driver with humanreadable register names got rid of MMGYRO crap - no use
timecop
2012-05-31 17:28:05 +0000
e124390bb1oops, forgot to commit mma845x driver.
timecop
2012-05-19 03:07:00 +0000
59ccf93dd3added driver for MMA8452QT accelerometer added mag_declination set option to cli - oops status in cli now prints which ACC hardware is used. work in proress to show difference between hardware with MPU6050 and MPU3050
timecop
2012-05-18 16:01:10 +0000
b929f79b54Fix for shipping MPU6050 versions (AFS=2 fix, only affected a couple sample boards with MPU6000-ES, MPU6050-EL now works).
timecop
2012-05-17 15:22:04 +0000
18db641282readded 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.
timecop
2012-05-09 05:29:30 +0000
6da3320be8oops. mistake in serial.c which made it impossible to do 'R' anymore. fixed.
timecop
2012-05-06 14:42:00 +0000
941f2f1762added improved mag calibration from http://www.multiwii.com/forum/viewtopic.php?p=13334#p13334 (thanks EOSBandi) new hex file only works with Java GUI 20120504-dev :( WinGUI is still not updated. Use latest release version on downloads page if want to use WinGUI.
timecop
2012-05-06 09:58:03 +0000
0d7460960emerged changes from multiwii_dev 20120504. this means new serial protocol, new buzzer code fixed spacing in ledring.c defaulted acc_lpf to 100 correction in vtail4 mix (from multiwii_dev) trashed more unused LOG_VALUES crap no binary build since this is untested / non-flight-tested.
timecop
2012-05-05 12:47:52 +0000
910df63a7ffixed motor output when using spektrum.
timecop
2012-05-04 01:59:37 +0000
26b2031e24fixed cli version from pre-3 stuff increased gyro complementary filter factor to 500 to reduce acc influence (should hopefully fix random walk stuff?) fixed a bug in servotilt stuff (maybe?)
timecop
2012-05-01 00:07:22 +0000
f3a4e9f731fix 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
timecop
2012-04-10 07:19:57 +0000
8f80611324fix for Makefile building of FY90Q components.
timecop
2012-04-10 00:24:11 +0000
4087cc0ca7corrected gyro scale factor for MPU3000/6000 fixed fy90q battery adc (which didn't actually exist) spektrum channel order is configurable by 'map' command (maybe).
timecop
2012-04-09 15:01:51 +0000
d9920756d9Initial support for FY90Q hardware
timecop
2012-04-08 14:46:50 +0000
cb334ecf47fixed 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.
timecop
2012-04-07 15:29:00 +0000
9e5504acd8added a fix for roundf() and friends for keil added float-based acc lpf, acc_lpf_factor values now changed, its 1/factor now, values 60+ and larger filter heavier. playing with release MPU6050 hardware, looks like acc1G is fucked, as predicted bug in serial output (forgot to output armed bit to GUI, estalt is /10)
timecop
2012-04-06 02:23:25 +0000
861b274039fixed up mpu6050 DMP stuff. increased i2c send buffer to 16bytes (was needed for DMP) decreased interrupt priority of both uarts - with GPS running at 115200, this would cause I2C errors (i2c interrupt must be highest priority). GPS was tested with $25 FMP04 GPS module ghettoed up outside my window, locking 5 satellites in a few minutes.
timecop
2012-04-02 16:08:24 +0000
14f87034c7Makefile fix by g1pete. now not trying to build stmloader by arm-eabi-gcc.
timecop
2012-03-31 06:07:50 +0000
703234b608renamed 'tilt_*_prop' stuff into gimbal_[axis]_gain and added more dynamically-configurable gimbal/camstab stuff into cli. whitespace fixes in mw.h and trashed the old XA-XB based mixer setting leftovers. settings are cleared again due to updated config struct.
timecop
2012-03-31 03:52:16 +0000
58eb2b966fadded 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
timecop
2012-03-30 09:49:00 +0000
97cdebfb13added windows batch file to make uploading firmware easier. it calls command line version of STMFlashLoader. added stmloader modified w/sending 'R' at start.
timecop
2012-03-29 15:02:20 +0000
c98b6b30afmain uart baud rate commit before tearing stuff up
timecop
2012-03-29 06:00:22 +0000
da5ac020e1added 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)
timecop
2012-03-27 12:55:44 +0000
791d67b4eeadded separate yaw deadband from issue #6 after fixing some stuff. config version bumped again.
timecop
2012-03-26 16:53:40 +0000
e0537e5aa0nice boner in PWM output now fixed.
timecop
2012-03-26 16:11:28 +0000
96829b7306synced 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
timecop
2012-03-26 15:28:36 +0000
fd9d986169added printing detected sensors in 'status' in cli took out leftovers of old dynamic mixer binary protocol - now cli sets it. added some mpu6050 DMP stuff - all disabled by default, only for testing stuff. ignore it.
timecop
2012-03-24 15:43:09 +0000
007e033364committed (untested) GPS support by sbaron; fix for channel map cli stuff by simonk. reindented some code, so changes are large.
timecop
2012-03-24 09:27:40 +0000
0534444b2dtemporarily 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.
timecop
2012-03-24 07:10:17 +0000
670390e7a6ugh. only check 1st channel.
timecop
2012-03-23 10:29:58 +0000
f39ed713cbcancel throttle calibration if any RC signal is detected
timecop
2012-03-23 10:28:15 +0000
be56a148f6send 1000us for low throttle during cal, not minthrottle.
timecop
2012-03-23 04:47:33 +0000
8318331f27fixed 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.
timecop
2012-03-23 03:59:15 +0000
c526d2f3b9renamed orient to align for sensor orientation implemented battery cell count auto detect (DJI, you can steal this source from me for your next product). automatically finds 2S..6S battery, and sets warning voltage accordingly added new battery config -related stuff in cli, min/max cell voltage for non-lipo users. Defaults for lipo are 4.3V/cell (max) and 3.3V/cell (min). added pid setting stuff into cli from nicodh added 'status' command to cli to print out system info. added build date/time to 'version' in cli, to track down stupid users. config version bumped, settings are cleared again. refactored battery voltage stuff a bit, and got rid of 3 levels of warnings. don't see any benefit at all.
timecop
2012-03-20 14:54:26 +0000
8bcbf5e41eadded mincheck, maxcheck, vbatscale to settings configurable via cli
timecop
2012-03-18 06:06:45 +0000
2fc24b338eimplemented various things for cli added 'reset to defaults' to cli got rid of 'servo' feature since that's not really a feature a user can set added couple more configurable tricopter things to config struct.
timecop
2012-03-17 14:09:14 +0000
2861482bb6cli improvements by simonk
timecop
2012-03-17 08:27:06 +0000
3748f2b72dpatch for core_cm3 and new gcc fail commented values in vbat calculation
timecop
2012-03-17 07:13:45 +0000
7592316c04added inflight acc cal as a feature (NOT TESTED NOT GUARANTEED TO WORK ETC) changed gyro/acc to allow different drivers without recompile, this allowed adding mpu6050 support w/autodetect moved sensor orientation code into driver - each driver provides its own added support for mpu6050 - desolder mpu3050 and adxl345, replace with mpu6050 for instant ??? merged multiwii 2.0pre3 code changes (none that mattered except mag calibration and typo in baro stuff) changes to sensor autodetect for new dynamic drivers more of ledring stuff done (still doesn't work, so dont try)
timecop
2012-03-17 07:08:36 +0000
0f6a75af4acommitting before tearing stuff up
timecop
2012-03-17 00:12:18 +0000
07be618756latest bulit hex is now in SVN to save time creating uploads. these are NOT guaranteed to work, use with caution.
timecop
2012-03-13 15:34:05 +0000
6e88b8ae30started adding ledring stuff (yawn). found out i2c was broken, stopped. default rc input is now pwm (non-nerds won) added deadband to config
timecop
2012-03-13 10:49:23 +0000
e92d9e8261Makefile fixes by IceWind - make building on lunix / mac succeed, and I've tested it works on a real OS as well.
timecop
2012-03-06 23:27:12 +0000
5091f3e9ffmoved 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.
timecop
2012-03-06 04:41:23 +0000
aae8ef4c3dwarnings fixes by gke
timecop
2012-03-06 01:16:27 +0000
ef0f756c7badded pwm/ppm switch cli command took out bug from gyro smoothing stuff.
timecop
2012-03-05 15:40:25 +0000
9b48d45bcatrashed old eeprom config struct and retarded eeprom code. replaced with config_t stuff to allow more dynamic changes implemented cli (press # in serial to enter it). no commands except exit/version yet. added uartPrint fixed bug in task switching with missing breaks - was failing baro and perhaps mag readings dynamic yaw direction, camtilt feature, camtrig feature.
timecop
2012-03-05 02:01:26 +0000
14e12ce0bfadded startup assembler for gcc-based build (broken) proper tilt compensation (not currently enabled).
timecop
2012-03-01 13:22:27 +0000
0545d79457changed mag orientation again... output seems a bit more sane now.
timecop
2012-02-29 16:29:25 +0000
57b289466dadded featureClearAll to fix pwm/ppm switching due to erased eeprom being FF's switched nop to __NOP from cm3 headers got rid of __GNUC__ DMB stuff as well, since its all properly defined in cm3 headers added mpu lowpass filter config and defaulted to 42hz. seems to fly smoother. features are in eeprom, removed default setting from main.c
timecop
2012-02-28 12:30:21 +0000
da757d9250fixes stupid config mistake that messed up servo values stored in eeprom.
timecop
2012-02-25 18:33:06 +0000
13173a30dcadded dynamic mixer stuff moved around features/sensors setting stuff into config instead of drv_system saving features to eeprom now to avoid stupid added gcc crap for __nop and __dmb added digital servo feature to pwm driver, used for tri or whatever added just plain reboot option in addition to reboot to bootloader
timecop
2012-02-24 03:42:07 +0000
e1afcdca09merged multiwii_dev-20120219 untested, but compiles and works in gui.
timecop
2012-02-21 09:15:51 +0000
5ff5b69db6turn on both leds when entering STM32 bootloader mode. this should give visual cue when bootloader has been activated. added i2c timeouts and i2c error counter.
timecop
2012-02-18 14:12:17 +0000
e4574698c5fixed open #endif in sensors.c, and added using i2cUnstick() at startup to clean up I2C bus.
timecop
2012-02-18 07:55:10 +0000
738541b269implemented IAP by using ROM bootloader, changed ADXL init stuff, changed mag axis orientation. added startup assembly file to root since it got modified with bootloader reboot check.
timecop
2012-02-18 07:02:29 +0000
d262c6e66cimported STM32 multiwii port into baseflight dir
timecop
2012-02-16 09:39:58 +0000