Commit Graph
198 Commits
Author SHA1 Message Date
px4dev 10e673aa4b Send error response if register write fails. 2013-07-05 19:02:42 -07:00
px4dev 46a4a44321 Be more consistent with the packet format definition.
Free perf counters in ~PX4IO_serial
2013-07-05 18:36:00 -07:00
Jean Cyr 3f9f2018e2 Support binding DSM2 and DSMX satellite receivers
The px4io bind command allows you to put a DSM satellite receiver into
bind mode. Since this feature requires that
the dsm VCC line (red wire) be cut and routed through relay one, it is
not enabled by default in order not to
affect those not using a DSM satellite receiver or wising to use relay
one for other purposes.

NOTE: Binding DSM2 satellites in 11-bit mode is not supported due to
potential bug in some DSM2 receiver streams
when in 11-bit mode. Furthermore the px4io software folds 11 bit data
down to 10 bits so there is no resolution
advantage to to 11-bit mode.

To enable the feature the RC_RL1_DSM_VCC parameter must be set to a non
zero value from the console, or using
QGroundControl:

param set RC_RL1_DSM_VCC 1

From the console you can initiate DSM bind mode with:

uorb start
param set RC_RL1_DSM_VCC 1
px4io start
px4io bind dsm2

For binding a DSMX satellite to a DSMX transmitter you would instead
use:

px4io bind dsmx

Your receiver module should start a rapid flash and you can follow the
normal binding sequence of your
transmitter.

Note: The value of parameter RC_RL1_DSM_VCC defaults to 0, so none of
this will have any effect on an unmodified
DSM receiver connection. For this feature to work, the power wire (red)
must be cut and each side connected to a
terminal on relay1 of the px4io board.

This has been tested using Spektrum as well as Hobby King 'Orange' DSM
satellite receivers.

Both px4fmu and px4io images are updated.
2013-07-05 20:51:29 -04:00
px4dev 50cae347b4 Check packet CRCs and count errors; don't reject packets yet. 2013-07-05 17:13:54 -07:00
px4dev 5a8f874166 Add an 8-bit CRC to each transmitted packet. 2013-07-05 16:56:47 -07:00
px4dev 313231566c Encode the packet type and result in the unused high bits of the word count. 2013-07-05 16:41:27 -07:00
px4dev e55a37697d Always send and expect a reply for every message. 2013-07-05 16:34:44 -07:00
px4dev 83213c66df Reset the PX4IO rx DMA if we haven't seen any traffic in a while; this gets us back into sync. 2013-07-04 23:22:59 -07:00
px4dev 94b638d848 One more piece of paranoia when resetting DMA 2013-07-04 23:19:24 -07:00
px4dev 43210413a9 More test work on the px4io side of the serial interface. 2013-07-04 23:17:55 -07:00
px4dev c21237667b iov2 pin definition cleanup sweep 2013-07-04 23:16:13 -07:00
px4dev be6ad7af3b Rework the FMU<->IO connection to use a simple fixed-size DMA packet; this should let us reduce overall latency and bump the bitrate up.
Will still require some tuning.
2013-07-03 00:08:12 -07:00
px4dev d1562f926f More implementation for the serial side on IO; fix a couple of bugs on the FMU side.
Still needs serial init and some more testing/config on the FMU side, but closer to being ready to test.
2013-06-28 23:39:35 -07:00
px4dev 90c458cb61 Checkpoint: interface abstraction for px4io driver 2013-06-25 23:08:34 -07:00
Julian Oes 9b6c9358ed First try for an ESC calibration tool 2013-06-20 01:13:49 +02:00
Julian Oes 23858a6726 Added functionality to enable PWM output for stupid ESCs even when safety is not off, arming button functionality remains as is 2013-06-19 22:59:40 +02:00
Julian Oes f3ce61d740 Forgot to remove some debug stuff 2013-06-19 09:35:19 +02:00
Julian Oes 202792294a Merge remote-tracking branch 'upstream/io_fixes' into new_state_machine
Conflicts:
	src/drivers/px4io/px4io.cpp
	src/modules/commander/commander.c
	src/modules/commander/state_machine_helper.c
	src/modules/commander/state_machine_helper.h
	src/modules/px4iofirmware/mixer.cpp
	src/modules/uORB/topics/actuator_controls.h
	src/modules/uORB/topics/vehicle_status.h
2013-06-18 15:35:26 +02:00
Julian Oes b5f4f1ee80 Adressed performance concern and fixed a copy paste bug 2013-06-18 10:00:42 +02:00
Julian Oes cc452834c0 First try to prevent motors from stopping when armed 2013-06-18 00:30:10 +02:00
Lorenz Meier c3a8f177b6 Software version check fixes 2013-06-12 12:58:17 +02:00
Lorenz Meier eb76d116cc Minor state machine improvements and fixes for IO safety / in-air restart handling 2013-06-12 12:30:42 +02:00
Lorenz Meier 9444def5f8 Merge branch 'master' into fmuv2_bringup 2013-06-10 15:01:44 +02:00
Lorenz Meier 8567134d64 Made pwm command sending continously, improved failsafe logic 2013-06-07 19:41:41 +02:00
Lorenz Meier ebc12eebd0 Merged 2013-06-07 13:04:49 +02:00
Lorenz Meier 6c7c130de7 Hotfix: Make IOs mixer loading pedantic to make sure the full mixer loads 2013-06-07 10:34:55 +02:00
Lorenz Meier 8ad3aa315f Merged master 2013-06-06 07:57:31 +02:00
Lorenz Meier 4db739b5e1 Integration WIP with current NuttX version 2013-06-01 01:48:42 +02:00
Lorenz Meier abb024c724 More safety added by disabling pulses 2013-05-29 18:32:23 +02:00
Lorenz Meier f6570172da Set default failsafe value to 0 of mixer 2013-05-29 17:07:26 +02:00
Lorenz Meier 2876bc72f9 Slightly reworked IO internal failsafe, added command to activate it (px4io failsafe), does not parse commandline arguments yet 2013-05-28 17:46:24 +02:00
px4dev 308ec6001a Add serial read-length handling. 2013-05-22 22:09:00 +02:00
px4dev 437d9e4180 Merge branch 'fmuv2_bringup' into fmuv2_bringup_io2 2013-05-22 21:39:30 +02:00
Lorenz Meier 88ba97816d Better preflight check, catches wrong RC configs. Needs rework of mavlink text message API to VARARGs 2013-05-21 09:14:22 +02:00
Lorenz Meier 0165034e49 Hotfix: Changed alarms back to what they originally were designed for: Traps to later see if condition was once violated. Currente status can be read through the status flags 2013-05-21 09:14:22 +02:00
Lorenz Meier 3ac76c4476 Blink pattern fixes 2013-05-13 10:15:36 +02:00
Lorenz Meier 69571c48c4 Fixed compile and logic errors, behaving now 2013-05-13 10:02:15 +02:00
Lorenz Meier 79f9b61aff Fixed led patterns to be up to the latest specs 2013-05-12 20:05:20 +02:00
Lorenz Meier 26efba2ff3 New blink patterns for safety switch, removed GPS lock indicator 2013-05-09 17:38:12 +02:00
Andrew Tridgell 5b75519925 px4io: handle errors from adc_measure()
don't update the voltage/current values on error
2013-05-04 19:18:58 +10:00
Andrew Tridgell af27101ffe px4io: changed adc_measure() to return 0xffff on error, and lower timeout
the timeout of 1ms was far too long, and could impact flight
performance

Returning 0xffff on error matches the FMU code, and allows bad values
to be discarded
2013-05-04 19:18:51 +10:00
Andrew Tridgell 44015d6915 px4io: return raw ADC value for current
we don't know how to scale it as we have no info on what sensor is
attached. As we are returning a uint16_t it is better to let the FMU
sort it out or we'll just lose precision.
2013-05-04 19:18:47 +10:00
px4dev e67022f874 Serial interface for IOv2 2013-04-28 18:14:46 -07:00
px4dev 8f7200e011 Frame up the configuration for the serial interface on IOv2 2013-04-28 13:51:33 -07:00
Lorenz Meier dc2c3cad3e Re-enabled mixer 2013-04-28 14:59:42 +02:00
Lorenz Meier 0eafc2ade1 IO compiling 2013-04-28 14:54:44 +02:00
Lorenz Meier 13fc670386 Moved last libs, drivers and headers, cleaned up IO build 2013-04-28 09:54:11 +02:00
Lorenz Meier f57439b90e Moved all drivers to new world, PX4IO completely in new world 2013-04-28 01:30:14 +02:00