[SOLVED] How to send serial data over Telemetry Radio (PX4 Autopilots Support from Embedded Coder).
4 views (last 30 days)
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?
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.
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.
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.