MSP protocol support

Yes, that’s correct! You can safely flash it

Alex,

I have finally got it working. thanks for all your help. Compiling my own firmware was a bit of a task but now I understand the concept it’s not too difficult.

Kind Regards,

Perry

1 Like

Hi Alex,

I’ve tried in vain to get the USB com port working on the Holybro Pixhawk, I did manage to see DFU in Inav and Betaflight configurators by repeatedly using the F4 boot pad and Impulse RC driver fixer. However I’m unable to flash a bootloader and load the Pixhawk1-1M firmware that you kindly compiled for me.

So I must accept that I’ve ‘bricked’ the Pixhawk and move on to a replacement.

I’m considering a Holybro Durandal. May I ask if you think that the Latest Master Arducopter for the Durandal would give MSP protocol support for the DJI FPV system ?

Many thanks in advance of your response.

Best Regards, Chris

Hi Chris,
when in DFU mode did you try a firmware with a bootloader like arduplane_with_bl.hex, if you can flash that one and get the USB port to work you can then flash mine from Mission Planner!

As for your question, MSP will work on any board,
Soon the build servers will enable MSP as default, but right now you will need to compile it yourself with the command:
./waf configure --board Durandal --osd

Alex

Hi Alex,

Thanks for your response, yes I did try to flash the DFU with 'arducopter_with_bl (4.0.4 1-1M).hex from both Betaflight and Inav configurators. Each time the configurators hang. MP does not see the DFU.

All best Chris

uhu I see, then you might have bricked it… :frowning:

C’est la vie, Durandal it is…

1 Like

Hi Alex, hi all,
first of all many thanks for developing this firmware! Since I am coming from Eagletree I had to learn a lot (thanks to Reinhard/Target0815) with FC and Ardupilot! Now, I got (almost) everything running: I have a F-765 flashed with “arduplane_with_bl.hex” Version of Oct 2, 2020. F-765, GPS Matek MBQ-5883, AirSpeed ASPD 4525, Scherrer RX700 NR (running on PPM connected to Rx6). GPS is connected to Tx2Rx2, AirSpeed to DA2 CL2.
DJI FPV is connected to Tx1RX1. OSD is correctly shown.
Sadly, I took me hours to find out that a F-765 hangup occured, just when I activate the RSSI in MissionPlanner: if I set the RSSI_TYPE,1 (i.e. analogous) RSSI_PIN_HIGH,1.8 RSSI_PIN_LOW,1.25 and have Scherrer analogous voltage connected to the RSSI pin on F-765, write the parameters everything works fine. The RSSI is correctly shown in the DJI FPV.
However, if I repower the F-765 (i.e. with the RSSI parameters written to the board) the F-765 crashes and the only way to get it to life is to flash the firmware and load the parameters again.
The F-765 only crashes if RSSI_TYPE=1, otherwise I can repower w/o trouble. This is 100% reproducible with two identical F-765 setups.
It appears to me that there is a bug with the analogous RSSI input to the F-765. This could be either here with the “arduplane_with_bl.hex” firmware, or with the original arduplane / F-765. However, in RC-Groups I have read no such issue with the analogous RSSI.
Or, do I do a mistake in one of the other Ardupilot settings?
Many thanks for your help, and greatings from Germany,
Rainer

So I have now set up another 2 wings with arduplane, all using DJI for video. A couple of issues but I don’t know if they’re MSP related or bugs with plane.

These are that on an F405-Wing (Matek) I cannot get the FLTMODE item to display, all other objects are displayed in the goggles but not the mode, it does not show at all. If I have MESSAGES enabled then all I get is ‘CRAFT_NAME’ displayed.

Thanks again for the hard work.

OSD_FLTMODE usually has nothing to show, DJI has different flight mode sthat do not map to ardupilot modes, the only time FLTMODE will display something is during a failsafe when it will display !FS!.

Provided you setup OSD_TYPE = 3, OSD1_MESSAGE shoud show you scrolling status text messages and current flight mode

1 Like

So all this stuff is way over my head. Is there a way someone could make a video on how to enable the dji osd in a form an 8 year old could understand, PLEAASSE? I’m running a matekf405 wing board and trying to get my air unit displaying the osd. This is how I’ve set it up so far according to this link.
https://ardupilot.org/copter/docs/common-msp-overview.html

Trying to get Air Speed to display: I have a correct working Digital Air Speed sensor (ASDP-4525) connected to the F765. The air speed is displayed in MP.
I have tried
OSD1_ASPD1_EN,1
OSD1_ASPD1_X,27
OSD1_ASPD1_Y,7
and
OSD1_GSPEED_EN,1
OSD1_GSPEED_X,27
OSD1_GSPEED_Y,7
and was expecting an override of the GPS Ground speed.
However it makes no difference: there is always the GPS speed displayed.
Any ideas?
Many thanks, Rainer

Hi @FlyEnjoy, you need to use OSD1_ASPEED_EN = 1 (values for X and Y do not matter for the GSPEED_X and GSPEED_Y will be used)

cheers,

Alex

1 Like

Hi Alex,
thanks, however I had tried OSD1_ASPEED_EN=1 before. I just checked again: no AirSpeed displayed. When I turn-off the (OSD1_GSPEED_EN=0) the GPS speed disappears, which is correct I guess.
In MP the Airspeed is correctly shown as “airspeed” in the status window, and also in the left bar.
Any further idea? thanks Rainer

Hi Rainer, I just tried again, here I get airspeed over gspeed when OSD1_ASPEED_EN = 1, mhmm, no ideas actually, you also need to have a valid airspeed estimate, you should see the gspeed widget blink right after boot, it signals no valid estimate with flashing, do you see it flash?

yes - I have the GPS speed (0km/h) flashing as long as there is no GPS fix. After GPS is fixed the flashing stops and a solid 0km/h ist shown right to the odometer pictogram.
Could it be an issue with the unit? In MP the air speed is shown as m/s, in the Goggles as km/h?
Or could it be related to the Matek digital air speed sensor? It is connected to DA2 CL2 on the F-765 board. Do you also have a digital connected to F-765 board, or is it an analog signal?

no, the quick check I did was connecting the air unit to SITL via a real serial port and run a plane mission, I checked what I had in the goggles against mavproxy and on screen OSD, I enabled a simulated wind of 10 m/s and saw airspeed change when flying against the wind and with the wind. OSD1_ASPEED_EN toggled ground speed and airspeed so everything worked as expected.

Yours should not be an issue with the units, we always send metric and the goggles render them as ft/s or km/h.
I tested this setup on a MatekF405-Wing with a digital airspeed sensor on the bench only, it was a while ago though

Hi everyone,
When I use the msp OSD for the DJI unit,
neither my CAN GPS or CAN airspeed sensor will work.
Is there a workaround?
I use the latest master for the Matek H743.
Michael

Hi Everyone,

I am trying to reverse engineer the MSP v2 protocol for Mateksys 3901 communication.

24, 58, 3C, 0,        1, 1F,        5, 0,     FF,        3F, 0, 0, 0,                   EE,
$   X   <         rangefinder    (5 bytes)   quality     distance                       crc
24, 58, 3C, 0,        1, 1F,        5, 0,     FF,        3B, 0, 0, 0,                   2F, 
$   X   <         rangefinder    (5 bytes)   quality     distance                       crc
24, 58, 3C, 0,        2, 1F,        9, 0,     8E,        0, 0, 0, 0,   0, 0, 0, 0,      65,
                   optic flow    (9 bytes)   quality    motion_x       motion_y         crc
24, 58, 3C, 0         24, 24 24 24 24 24 24 24 24 24 24 0 24 2 .......
$   X   <          no idea what is this

After the fourth message I get some semi random repeating data of lot of 24 hex numbers with sometimes an inserted hex code of 0, or 3C 9 FF.
Whenever I turn on the sensor the first 3 messages looks ok, but from that onward I have no idea what is the sensor outputting.
I looked through the code, and I got the hit from Alexes comments that I should send some command to switch from polling mode to command mode, to the board will stay silent only only answer to sent commands. Unfortunately I have no idea what should be sent. Can someone help, or point me where can I find some documentation of MSP v2 and especially the format of the different messages, message types and protocol flow.

Thanks, Denes

Hi, I was talking about ardupilot only, I added an option to send MSP telemetry messages without the need for polling from the air unit.

The matek sensor sends periodic MSP v2 frames to ardupilot which has to acknoledge each and every one of them.
I did not dump all of the 3901 messages so not sure if it sends other messages, what I did was simply implementing the handling of MSP rangefinder and opflow messages