Commit Graph

334 Commits

Author SHA1 Message Date
Lorenz Meier d16d66f990 Enabled UART3, added JTAG make target for IO, removed potentially problematic usleep 2012-11-30 10:42:27 +01:00
px4dev 9fa794a8fa Rework the PX4IO software architecture:
- Use a separate thread for handing R/C inputs and outputs.
 - Remove all PX4IO R/C receiver configuration; it's all automatic now.
 - Rework the main loop, dedicate it to PX4FMU communications after startup.
 - Fix several issues in the px4io driver that would cause a crash if PX4IO was not responding.
2012-11-30 00:02:47 -08:00
Lorenz Meier 401c54bdd3 Merge branch '#78-px4io-firmware-updater' of github.com:PX4/Firmware into sbus 2012-11-29 09:54:23 +01:00
px4dev d0efd1a419 Fix the DSM (spektrum) protocol decoder, and add some format auto-detection to it. 2012-11-29 00:35:21 -08:00
px4dev 92e1d5eb78 Possible fix for #78 - increase the wait timeout for discard when flashing PX4IO. It's not clear this solves the issue, but I can't reproduce it with this added. 2012-11-28 20:12:36 -08:00
Lorenz Meier e5177b383b Merge branch 'master' into fixedwing_outdoor 2012-11-27 17:27:55 +01:00
Lorenz Meier 15236d1ff2 Hotfix: calibration status returns sanity checks with better granularity 2012-11-27 17:26:04 +01:00
Lorenz Meier 90b94b5050 Ported all mixers to actuator_controls_effective topic, mixers do not output the limited result yet 2012-11-27 11:53:50 +01:00
Lorenz Meier 11b0242f55 Not arming FMU in HIL mode 2012-11-26 17:50:14 +01:00
Lorenz Meier 4298f68fcd IO does not arm in HIL mode 2012-11-26 17:43:07 +01:00
Lorenz Meier b1bc5e0e46 Improved drivers, allowed parallel use of multiple gyros 2012-11-23 22:52:37 +01:00
px4dev adb04f632f Local changes to match upstream changes. 2012-11-22 20:35:08 -08:00
Julian Oes 33e750602a Merge remote-tracking branch 'upstream/master' into io
Fixed Conflicts:
	apps/multirotor_att_control/multirotor_att_control_main.c

rc loss failsafe throttle tested
2012-11-15 11:55:55 -08:00
Lorenz Meier df5e4d1904 Improved self-test logic 2012-11-15 17:19:21 +01:00
Lorenz Meier 5020a0a063 Addes sensor self test commands 2012-11-15 15:13:27 +01:00
Lorenz Meier f803540415 Added preflight_check app which checks core system sensors, so far only mag 2012-11-15 13:21:00 +01:00
Lorenz Meier 3eb36bbd21 Fix led assignment for FMU 2012-11-14 15:17:49 +01:00
Lorenz Meier 722af669fe Better integrate calibration check 2012-11-14 15:17:30 +01:00
Julian Oes b7c6a11e67 Merge remote-tracking branch 'upstream/master' into io 2012-11-13 14:20:31 -08:00
Julian Oes 359cc4bb86 Merge remote-tracking branch 'upstream/master' into io 2012-11-13 14:18:59 -08:00
Lorenz Meier d15e6ae73a Merge branch 'master' of github.com:PX4/Firmware 2012-11-13 10:58:24 +01:00
Lorenz Meier 050698bedc Added missing channel count in px4io driver 2012-11-13 10:03:39 +01:00
Lorenz Meier e52c7e3c4b Merge branch 'master' of github.com:PX4/Firmware 2012-11-12 21:08:57 +01:00
Lorenz Meier e9942e4af7 minor HIL related tweaks 2012-11-12 21:08:51 +01:00
Lorenz Meier 2c12802f25 Fixed HIL compile warnings 2012-11-12 10:59:35 +01:00
Lorenz Meier 596d20e2a3 Increased stack sizes, 1K is not enough when calling printf() from within app 2012-11-10 18:32:20 +01:00
Lorenz Meier 41629e0ddb Operational mixing and outputs in hil 2012-11-10 18:14:25 +01:00
Lorenz Meier b43f692d3a Correctly handling 8+ outputs, currently only first 8 supported 2012-11-10 17:07:17 +01:00
Lorenz Meier e8eb887515 Added hil command to emulate PWM outputs 2012-11-10 16:52:06 +01:00
Lorenz Meier e99a684fd8 Removed debug ioctl output 2012-11-10 16:51:17 +01:00
Julian Oes 2b5f551838 Revert "Revert "Another take on Spektrum/DSM frame decoding, based on more careful examination of the relevant docs.""
This reverts commit 38b20f2a1a.
2012-11-07 14:56:03 -08:00
Julian Oes 38b20f2a1a Revert "Another take on Spektrum/DSM frame decoding, based on more careful examination of the relevant docs."
This reverts commit ff3a014971.
2012-11-07 14:46:28 -08:00
Julian Oes 9f92c6df67 Merge branch 'master' of https://github.com/PX4/Firmware 2012-11-07 10:24:49 -08:00
px4dev ff3a014971 Another take on Spektrum/DSM frame decoding, based on more careful examination of the relevant docs. 2012-11-07 02:47:01 -08:00
Julian Oes e0e96c005a Corrected two small bugs considering arming and disarming 2012-11-06 18:57:42 -08:00
Lorenz Meier e7f2c053c2 Quickly separated low-level raw RC from mapped / scaled RC, supports FMU PPM and IO PPM / Spektrum now 2012-11-05 16:04:45 +01:00
px4dev 39659e57f8 Add prototypical support for Spektrum satellite remotes to PX4IO. 2012-11-05 00:55:45 -08:00
px4dev 06e17eae5d Fix off-by-one reading PWM output values. Minor robustness tweaks. 2012-11-04 16:44:06 -08:00
px4dev 487597b385 Checkpoint; messages from FMU now make it to IO intact; fix HRT init timing, process more bytes from the serial port, add some simple packet counting. 2012-11-03 01:14:25 -07:00
px4dev b0da90b6db When starting the px4io driver, check that data is being received from the PX4IO board. 2012-11-03 01:14:25 -07:00
px4dev f11cf48bb9 Attach the interrupt before powering on the HRT timer. 2012-11-03 01:14:25 -07:00
px4dev 5af84e3b11 Check for transmit errors. 2012-11-03 01:14:24 -07:00
px4dev ea539031da Cleanup and refactor of the PX4IO firmware and board support. Builds, not tested yet. 2012-11-03 01:14:24 -07:00
Lorenz Meier 5e1416178a Merged 2012-11-01 08:14:31 +01:00
Lorenz Meier 18dbdf0a54 Report mag status to system, sanity-check calibration 2012-11-01 08:11:55 +01:00
px4dev 34a3b260f3 Move the last of the board-specific code for PX4FMU out of the NuttX tree. Now it's just configuration. 2012-10-31 00:37:15 -07:00
px4dev b685d46dbf Clean out remains of the old EEPROM driver. 2012-10-30 20:51:45 -07:00
px4dev 270a5d351f Warning fixes. 2012-10-29 21:47:37 -07:00
px4dev 9a85801cb0 Doxyheader fixes 2012-10-29 18:01:31 -07:00
Lorenz Meier 574eb96a2e Calibration improvement 2012-10-29 16:41:53 +01:00
px4dev 98791bc674 Remove reboot() API, replace with a prototype for up_systemreset() which is portable. 2012-10-27 22:42:43 -07:00
px4dev 9184753f17 Remove an annoying message. 2012-10-27 11:38:14 -07:00
px4dev 0272fc49aa Build fix due to missing include. 2012-10-27 11:37:11 -07:00
px4dev 6cec7f131e Minor board.h changes. 2012-10-27 11:34:20 -07:00
px4dev 5135e5308b Hoist the GPIO driver out and integrate it with the px4fmu driver. Move these pieces into the drivers tree. 2012-10-27 01:39:10 -07:00
px4dev 1065118ebc Separate config from implementation for the STM32 pwm servo driver. 2012-10-24 00:55:37 -07:00
px4dev 2fc1032069 Major formatting/whitespace cleanup 2012-10-23 23:51:13 -07:00
px4dev 34f99c7dca Hoist the ADC and CAN board-specific pieces. 2012-10-23 23:51:13 -07:00
px4dev db044b64cd Hoist the oard-specific USB pieces. 2012-10-23 23:51:13 -07:00
px4dev 7b4118a5e7 Hoist SPI functions. 2012-10-23 23:51:13 -07:00
px4dev eaf91f05bd Fix a filename 2012-10-23 23:51:13 -07:00
px4dev 3d79b9a0b0 Tease the PWM driver out and fix some build issues after cleaning up behind the cpuload pieces. 2012-10-23 23:51:13 -07:00
px4dev c3fe915b44 Checkpoint - moving things out of the NuttX configs/*/src directories 2012-10-23 23:51:12 -07:00
px4dev 0afeeb5dd8 Move the PX4IO driver into the drivers folder. 2012-10-22 21:39:55 -07:00
Lorenz Meier 3932bad137 Merge branch 'master' of github.com:PX4/Firmware into calibration 2012-10-22 12:14:40 +02:00
Lorenz Meier df8148033a Cleaned up calibration, added text messages ring buffer 2012-10-22 08:14:43 +02:00
px4dev 5b9c469770 Function type fix 2012-10-21 19:12:32 -07:00
px4dev 5925d146bc Move the tone_alarm driver out of the NuttX configs area and add it as an stm32-specific driver in the PX4 apps space.
Add a new tone_alarm command that can be used to start/stop alarm tones from the shell.
2012-10-21 17:51:21 -07:00
Lorenz Meier 096bf2dc93 Checkpoint: Working, but non-verified full mag calibration 2012-10-21 15:36:29 +02:00
Lorenz Meier 28171fb596 Merge branch 'master' of github.com:PX4/Firmware into calibration 2012-10-21 11:24:51 +02:00
px4dev bfbd17a2fa Make it possible to run fmu and px4io simultaneously with full control over both sets of possible PWM outputs. First started wins. 2012-10-20 16:53:52 -07:00
Lorenz Meier 97726fa679 Calibration WIP, not compiling 2012-10-17 08:02:50 +02:00
Lorenz Meier 642f3426a7 Added mag calibration routine, fixed minor typos without runtime effects 2012-10-15 08:52:17 +02:00
Lorenz Meier bd3f3b1031 Sensor rate and throttle inversion fixes 2012-10-09 16:26:29 +02:00
px4dev 22537447db Adjust to changes in the work queue API. 2012-09-14 22:59:42 -07:00
Lorenz Meier c25cef299f Fixed to mag measurement and filter 2012-09-07 16:56:47 +02:00
Lorenz Meier db6ec2d7d2 Various minor fixes and improvements across system 2012-09-05 18:05:11 +02:00
Lorenz Meier 84e11a0cac Fixed correct RC loss detection, AR.Drone is now shutting down motors after 1 s of RC loss. Added debug topic. 2012-09-05 11:37:17 +02:00
Lorenz Meier eb01cd6fd3 Changed a critical section to double precision calculation. It may not be necessary, but lets not risk precision unless we have properly analyzed what numerical precision is required. 2012-09-03 22:29:51 +02:00
px4dev 00ba1d629b Redo the math in the ms5611 driver to a) avoid re-computing scaling factors for every pressure measurement, b) be perhaps more readable and follow the data sheet more closely, and c) support calibration of the MSL pressure. 2012-09-01 16:26:12 -07:00
Lorenz Meier cf62c892f9 Added temperature measurement, added led system command 2012-09-01 19:56:42 +02:00
Lorenz Meier 39fd8b9cda Fixed minor compile warnings (just warnings, no effect on execution) in BMA180 2012-08-31 14:38:55 +02:00
Lorenz Meier 4ba8036d80 minor typo in comment 2012-08-31 14:06:34 +02:00
Lorenz Meier 5f131e8c11 Checkpoint: Operational BMA180 driver 2012-08-31 14:02:23 +02:00
px4dev 63485b91b2 Kick the BMA180 driver mostly into shape. Still not reading data correctly. 2012-08-30 22:33:20 -07:00
px4dev 116306ae3e units in comments 2012-08-30 22:32:54 -07:00
px4dev 1e80bd544b Make the buffer ring work.
Avoid reading from the misaligned structure more than once.
Discard some redundant whitespace / prototype.
2012-08-30 22:32:42 -07:00
px4dev 45885f15dc Fix the readout transfer size. 2012-08-29 23:25:14 -07:00
px4dev da3cd24352 Be a bit more careful with which bits we stuff into the l3gd20 registers. 2012-08-29 23:16:38 -07:00
px4dev d0898cb947 Something approximating a driver for the L3GD20 2012-08-29 22:55:15 -07:00
px4dev d0f10a3550 driver work in progress 2012-08-29 21:40:48 -07:00
Lorenz Meier d8210a8e2f Implemented missing IOCTLs to set MPU scalings 2012-08-28 11:30:45 +02:00
Lorenz Meier 2d2548e714 Final parameter interface cleanup - removed last bit of old cruft, fixed a bug on parameter update notification, cleaned up API slightly in naming 2012-08-27 22:57:20 +02:00
Lorenz Meier 967c0869a9 Cleaned up MPU driver slightly 2012-08-27 09:48:16 +02:00
Lorenz Meier 248bb11d93 removed stop() from I2C driver startup routines, work in progress on MPU scaling 2012-08-27 09:08:34 +02:00
Lorenz Meier 2963dc679a Driver debugging (scaling, ranges, endianess) MPU-6000 needs more love 2012-08-26 23:48:16 +02:00
Lorenz Meier 56e66a80cd Printing fixes 2012-08-26 15:01:08 +02:00
Lorenz Meier dfa5cc52d5 MS5611 test is now printing floats. Note that the issue with the scheduled reads of the sensor started BEFORE this change and is thus unrelated. 2012-08-26 14:52:44 +02:00
Lorenz Meier 207b077d8a Cleaned up scaling / offset handling for mag and gyro / acc 2012-08-26 14:51:33 +02:00
Lorenz Meier 6026595d83 Fixed axis assignment and raw value outputs. Scaling and offsets to be done 2012-08-26 13:51:18 +02:00
px4dev efda95101f Streamline mag and baro topic advertisement now that handles are global.
Use perf counters for error counting in mag/baro drivers.
2012-08-25 19:27:12 -07:00
px4dev 35009cd332 clean up an error message 2012-08-25 19:09:23 -07:00
px4dev 26244c43f2 make the I2C and SPI device signons distinct 2012-08-25 18:26:21 -07:00
px4dev 5c6b6038a7 turn off debug output from the mpu6000 driver 2012-08-25 18:25:56 -07:00
px4dev e51b23d309 Now that it's safe to perform SPI transfers from interrupt context, re-enable the mpu6000 auto-poller. 2012-08-25 13:15:23 -07:00
px4dev e5e2d7216c Make it non-fatal to perform SPI transfers from interrupt context. 2012-08-25 13:15:23 -07:00
px4dev 23d8b69e3d Sensor drivers should run all the time, not just when their device is open.
Disable this for the mpu6000 driver though, as it's currently busted in that regard.
2012-08-25 11:52:44 -07:00
px4dev 0dc0a0539d Increase the retry count while probing for I2C sensors. This will also unwedge stuck sensors. 2012-08-25 10:53:14 -07:00
px4dev 4456ca8827 Sensor IOCTL reorganization. Common sensor operations are now shared across sensor drivers.
Revamp hmc5883, ms5611 and mpu6000 driver startup and test code.
2012-08-25 00:12:11 -07:00
px4dev f901a35bd4 Remove erroneous sensor read timing checks. 2012-08-24 08:55:30 -07:00
px4dev d55dd67d77 Remove spurious I2C clock frequency resets. 2012-08-24 08:18:18 -07:00
Lorenz Meier d12c09cc86 improvements / debugging on I2C drivers 2012-08-24 14:58:14 +02:00
px4dev f28a757f92 We need to init the gyro subdevice, or there is no device node. Oops. 2012-08-23 20:32:13 -07:00
Lorenz Meier 295e9da1ba Added required scalings, added gyro to MPU6000 test, changed sensors app to read from new drivers 2012-08-24 02:16:26 +02:00
px4dev a0b9c056d7 Add a bus reset on I2C error. Also add a mechanism for automated retries of operations. 2012-08-22 22:25:10 -07:00
Lorenz Meier 5f259e41d5 Sensor readout, testing and driver adjustments 2012-08-22 16:20:05 +02:00
px4dev 88f0080a0f Fix an architectural issue with the ORB that prevented publication from interrupt context.
ORB topic advertisements are now global handles that can be used in any context.  It is still possible to open a topic node as a publisher, but it's not the default.  As a consequence, the type of the handle returned from orb_advertise has changed; all other API remains the same.
2012-08-21 23:44:22 -07:00
px4dev 8c22e2a092 Whitespace 2012-08-21 22:30:04 -07:00
px4dev 5f77561ed4 Fix output scaling for the hmc5883 driver. Add data checking, and fix an issue where the ORB topic could not be published due to being advertised in the wrong context. 2012-08-21 22:05:42 -07:00
px4dev 63831fa908 Fix an issue where the baro ORB topic was advertised from the wrong context and thus could not be published to. 2012-08-21 22:04:38 -07:00
px4dev 228fbb975a New-style driver for the HMC5883 on I2C. 2012-08-21 01:09:03 -07:00
Lorenz Meier 1530aeccae Working towards full sensor flexibility 2012-08-16 11:21:59 +02:00
px4dev 34118c72ef mechanical style fixups 2012-08-14 08:47:04 -07:00
px4dev 735f8ffa3d Config tweaks to enable the new-style ms5611 driver. 2012-08-14 00:07:19 -07:00
px4dev f1f843099b Nuke a dead file. 2012-08-13 23:51:46 -07:00
px4dev 3c5bb3f57c New-style driver for the MPU6000. 2012-08-13 23:51:24 -07:00
px4dev edfdb8f47e force 8-bit SPI transactions for device::SPI drivers. 2012-08-13 23:50:55 -07:00
px4dev 65aec69705 Syntax change to improve readability; output scalers are now labelled O: instead of looking like control scalers.
Make mixer terminology more consistent; mixer inputs are 'controls'.
2012-08-11 11:27:07 -07:00
px4dev 67e0f8b179 Rework the mixer architecture based on discussions about arbitrary geometry mixing and plugins.
Now the mixer is a C++ library that can be fairly easily bolted into an output driver to provide mixing services.

Teach the FMU driver how to use it as an example.  More testing is still required.
2012-08-10 00:30:40 -07:00
px4dev 9804447a66 More work on the mixer architecture.
Solve the multiple publishers issue with 'control groups', one group per controller.  Mixer inputs now specify both group and control offset within the group.

Avoid using %f when loading/saving mixers; use scaled integers instead.
2012-08-05 14:13:34 -07:00
px4dev 9804776a0c Checkpoint: more work in progress on mixer load/save 2012-08-05 14:13:33 -07:00
px4dev 145a6c4c49 Work in progress; standard mixer API and utility 2012-08-05 14:13:33 -07:00
Lorenz Meier 139cd09176 Faster sensor bus resets on timeouts, massively reworked fixed wing app, tested 2012-08-05 15:56:24 +02:00
px4dev 8a365179ea Fresh import of the PX4 firmware sources. 2012-08-04 15:12:36 -07:00