christianrauch / msp

Implementation of the MultiWii Serial Protocol (MSP) for MultiWii and Cleanflight flight controller
http://www.multiwii.com/wiki/index.php?title=Multiwii_Serial_Protocol
GNU Lesser General Public License v3.0
73 stars 26 forks source link

How to verify feature RX_MSP for my board #24

Closed weixingsun closed 5 years ago

weixingsun commented 5 years ago

Hello I have problem when doing MSP_SET_RAW_RC via USB serial for my OMNIBUS F4 board (cleanflight) added #define USE_RX_MSP to src/main/target/OMNIBUSF4/target.h recompiled cleanflight 2.5 for my board, and flashed it to my board successfully. most MSP get codes work, but MSP_SET_RAW_RC function looks not working yet, how can I see if MSP_SET_RAW_RC is enabled for my board ? Thanks a lot!

christianrauch commented 5 years ago

You need to (1) activate USE_RX_MSP in the firmware (which you did) and (2) enable the features via the CLI: feature RX_MSP (see Sending and Receiving RC commands in the README). To see if USE_RX_MSP is enabled, have a look at the message definition for MSP_RC: https://github.com/christianrauch/msp/blob/7ec316286cd20a0ecc9245e5c033fa055ea2923c/inc/msp/msp_msg.hpp#L424-L426 I.e. if USE_RX_MSP is not enabled, but RX_MSP is, you will get MSP_RC messages with empty channels.

weixingsun commented 5 years ago

Great information, I would suggest to add these lines to README for anybody else to understand it clearly, thanks a lot!

christianrauch commented 5 years ago

The required settings for using MSP_SET_RAW_RC are mentioned in the README.

That the MSP_RC message has empty channels if USE_RX_MSP is enabled, but RX_MSP is not, is a betaflight specific behaviour and not part of the standard MSP protocol. I.e. the MSP_RC message should always have the the correct number of channels. I am not documenting this behaviour since it's also not documented in betaflight and therefore not part of the public interface. It might change anytime without notification.