Skip to content
This repository has been archived by the owner on Oct 1, 2021. It is now read-only.

PX4IO: Added support for JR XBus Mode B #36

Open
wants to merge 125 commits into
base: master
Choose a base branch
from

Conversation

omcaree
Copy link

@omcaree omcaree commented May 13, 2015

JR XBus Mode B uses the same serial port parameters as the DSM port (3.3V logic, 115200, 8n1), this update adds support for decoding it.

XBus Mode B is effectively the SRXL protocol, using the Multiplex 12-channel format (start charachter 0xA1)

Decoding of XBus packets only occurs if a valid checksum is received, so this should not interfere with DSM packets.

Andrew Tridgell and others added 30 commits November 26, 2014 08:48
If we check OUTPUTS_ARMED then we can't update trim values and scaling
in flight, as there is no way to clear OUTPUTS_ARMED.

If safety is on then it should be perfectly safe to update the mixer
and RC config or reboot for fw update
airspeed sensors often need to be on longer cables due to having to be
outside the prop wash.
the vehicle may not have setup a control_mode. We need to check the
return of orb_copy() to ensure we are getting initialised values
This merges in the PX4Flow changes from upstream
we were running out of file descriptors with the new battery monitoring
Add mpu6000 regdump command for debugging mpu6000.
this will catch both bad SPI bus comms and a sensor that has been
reset causing incorrect configuration.
this uses the same method as is now used in the MPU6000 to check that
the sensor retains its correct values
this mirrors the ardupilot driver. We have seen situations where the
mpu6000 on the Pixhawk comes up in SLEEP mode, despite a reset
this checks at runtime that key registers have correct values
this follows the factory calibration self-test method in the datasheet
to see if the sensor still has the same calibration it had in the factory
used to generate a error case for reset testing
this prevents the mpu6000 getting in a really weird state!
this may help automatic reset on the faulty boards
this seems to prevent a mpu6000 reset from causing an issue on the
l3gd20H
LorenzMeier and others added 19 commits April 2, 2015 10:23
added "hmc5883 tempon" and "hmc5883 tempoff" to enable/disable
if we can't read the temperature registers 10 times then disable the
feature.
this also fixes the behaviour of the -C option
Also use full charge capacity instead of design capacity so that an old
battery's capacity will appear as lower than its original capacity but
it will still report 100% charged after charging
this runs the sampling of the accelerometer 200usec faster than
requested and then throw away duplicates using the accelerometer
status register data ready bit. This avoids aliasing due to drift in
the stm32 clock compared to the lsm303d clock
this runs the mpu6000 200usec faster than requested then detects and
disccards duplicates by comparing accel values. This avoids a nasty
aliasing issue due to clock drift between the stm32 and mpu6000
JR XBus Mode B uses the same serial port parameters as the DSM port (3.3V logic, 115200, 8n1), this update adds support for decoding it.

XBus Mode B is effectively the SRXL protocol, using the Multiplex 12-channel format (start charachter 0xA1)

Decoding of XBus packets only occurs if a valid checksum is received, so this should not interfere with DSM packets.

- RC Failsafe is now disabled when XBus data is bein received
Owen McAree added 5 commits July 9, 2015 10:43
Because DSM packets do not have checksums it is possible for the DSM decoder to find 'valid' packets in XBus data, decode them, and override XBus outputs. To avoid this behaviour, an option has been added to choose (currently at compile time) which input decoding to use.

Ideally, this option should be runtime selectable
Conflicts:
	src/modules/mavlink/mavlink_messages.cpp
	src/modules/px4iofirmware/controls.c
	src/modules/px4iofirmware/px4io.h
	src/modules/px4iofirmware/xbus.c
dam_input was always returning false as we weren't seeing a full DSM frame, this was unfortunate for XBus decoding!

Fixed this by only checking for a full DSM frame in the DSM decoding block
Conflicts:
	src/modules/px4iofirmware/px4io.h
@doc2005
Copy link

doc2005 commented Aug 3, 2015

it would be great if that were merged, would be a great improvement!

@rickpayne
Copy link

I would appreciate this one being merged too.

@cromartic
Copy link

It would be great if that were merged.

@pedrodparkes
Copy link

hey, can somebody say exactly, was it implemented or not?
Can I somehow make pixhawk work with JR X-BUS?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.