[SOLVED] How to send serial data over Telemetry Radio (PX4 Autopilots Support from Embedded Coder)

30 次查看(过去 30 天)
I followed the Serial/UART tutorial here and everything worked fine; I can send data over USB using the Serial interface. I then based myself off of the getAccelerometerData.m file to test passing data back and forth between the Holybro Telemetry Radios while both are connected to my laptop; I've attached the .m file here. I've also attached the Simulink model.
My challenge is sending the same data, but between the Pixhawk 4 and my laptop (where one telemetry radio is plugged into the pixhawk and the other is plugged into my laptop); even though the LED indicator on the radios indicate they're communicating (which they do when I open QGroundControl), I can't get any kind of data to transfer over them. I've tried using both the TELEM1 and UART & I2C B ports on the Pixhawk (and changed the corresponding Simulink Model parameters to communicate over /dev/ttyS1 or /dev/tttyS4. I've verified that I selected both the appropriate port on my laptop, and on the Pixhawk, and tried different combinations, to no avail. In short:
Does anyone know how to allow data transfer over the Telemetry Radios between the Pixhawk and my laptop?
I'm running Windows 10 1809, Ubuntu 16.04 WSL, Pixhawk 4 with latest firmware (v1.9.0, I think), MATLAB R2018b, and the Telemetry Radios have been flashed using QGroundControl with the latest firmware.
Edit: This is literally something that is recommended to try in the Simulink documentation here: Configure the PX4 Serial Transmit and Receive model to exchange data over other serial ports of the Pixhawk Series controller.
So how do I actually do that?
  4 个评论
Joshua O'Reilly
Joshua O'Reilly 2019-7-26
I wired a USB to UART adaptor to the UART & I2C B port on the Pixhawk 4; still nothing. even with a physical connection. That makes me think it's the actual Simulink code that's unable to access it. Maybe the old PSP manual has some info on this.
Joshua O'Reilly
Joshua O'Reilly 2019-7-26
From the Pixhawk Support Package from 2016, p.62 of the PDF:
psp2016.png
I think it's entirely possible that this still isn't fixed, and so wireless communication over telemetry radios just isnt' possible.
My Recommendation at this point:
Get a Raspberry Pi, attach it to via USB and then wireless transmit the information wherever

请先登录,再进行评论。

采纳的回答

Joshua O'Reilly
Joshua O'Reilly 2019-7-26
The Cause
You can't use telemetry radios. Back in 2016, the Pixhawk Support Package indicated:
Important Note: Recent testing has confirmed that external mode does not operate correctly with the telemetry radios. Data comes in very sporadiaclly and in long intervals. We are looking into this and will provide an update to address the issue, in the maen-time, please use USB for serial connection for external mode.
Since I still can't do this, I can only assume that they didn't fix it/implement it in the latest version.
The "Solution"
Use an companion computer, such as a Raspberry Pi, as indicated in the PX4 documentation. Hook that up via USB, and then transmit wireless between the Raspberry Pi and whatever device you were originally trying to connect to.
Thoughts
This really is unfortunate, as the goal, for me, was to create my simulink model, upload it to the Pixhawk, and have it communicating with my laptop. Now, I need to write a custom serial receiver AND either WiFi/SSH/Serial sender on the Raspberry Pi as well.
  5 个评论
Simon Heer
Simon Heer 2021-1-20
Hi R,
what do you mean by 'custom data'? I can send mavlink messages via usb-ftdi connection on Telem2 from a simulink simulation to pixhawk (running the px4_simulink_app in normal mode) and it will successfully publish it in its related topic. However doing so in external mode seems to work only very arbitrary. Thought it would be a problem with the baudrate settings but could not find the cause in this...

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by