Connect the VOXL 2 I/O using the UART port on the 5G modem
-
@tom Any advice? I still can't connect any device to the J9 UART port in the 5G modem
-
@Eric-Katzfey Hi, just wanted to ask if you can help me to connect VOXL 2 I/O or any other device that uses a UART port to the J9 on the 5G modem.
-
@xav04 Is there any update on this? I am also trying to connect an RTK GPS using the J9 UART Port on the 5G modem, but no luck still..
-
the following docs page (https://docs.modalai.com/voxl2-external-flight-controller/#using-m2-5g-modem-addon-board-m0090) shows you how to physically connect a UART device to J9 of M0090 board.
The corresponding UART port is mapped to CPU (not DSP where PX4 is running), and can be accessed using
/dev/ttyHS2
Your GPS driver would need to run on the CPU.
if you know the baud rate of your GPS device and the GPS device sends out data by default once it is powered on, you can do a very quick test to see if anything comes into the port:
#assuming the device uses 115200 baud rate stty -F /dev/ttyHS2 115200 cat /dev/ttyHS2
at this point, if there is data coming into the serial port, you should see some characters printed (ASCII or not depending on the format of incoming data).
You can also use a tool called
screen
to check serial port:apt-get install screen screen /dev/ttyHS2 115200 #assuming 115200 baud rate #control-a-k then y to exit screen
If you don't have a device that sends out data by default, you can just do a loopback test (add a jumper between TX and RX on J9 of M0090) and then use
screen
, if the port is working, you should see in the terminal every letter that you type on the keyboard. If you don't see anything when you type in the screen terminal, then either loopback jumper is not correctly installed or some other issue. -
@Alex-Kushleyev Thank you so much Alex!
I can see data coming in on the port usingscreen
.Now, how can I ask the PX4 to use this GPS data?
-
On VOXL2, the majority of PX4 software is running on the DSP, so the GPS driver is set up to run on DSP and access the UART ports available to the DSP only.
Have you considered using our suggested configuration described here https://docs.modalai.com/voxl2-guides-onboard-offboard-sensors/#external-gps-mag--gnss ?
I will double check, but I do not think that we support running the GPS driver for PX4 on CPU.
-
@SMRazaRizvi Yes, you can run GPS driver on the apps processor for px4. Take a look at the file
/usr/bin/voxl-px4-start
. You can see in that file (a bash script) where the gps start command is issued. You can see that if the board is detected to be an RB5 (M0052) it will usegps start -d /dev/ttyHS2
to start the driver on the apps side and not the DSP side. So you will have to modify that file. -
Thanks @Alex-Kushleyev and @Eric-Katzfey
To avoid the complexity, I've now connected my RTK-GPS to the configuration described here: https://docs.modalai.com/voxl2-guides-onboard-offboard-sensors/#external-gps-mag--gnss
I'm getting the coordinate position and I am now in the process of setting the correct parameters to be set for the new GPS.
To confirm, I only have to adjust PX4 parameters, right?
-
@SMRazaRizvi We have not integrated an RTK GPS receiver before so cannot comment on the steps needed to get it working properly. Perhaps the manufacturer of the RTK GPS unit can provide some guidance on how to use it with PX4? Or the PX4 community? But if you are seeing valid data from the unit then at least the hardware seems to be connected properly.
-
@Eric-Katzfey I see.
Actually connecting my RTK-GPS to the configuration described here: https://docs.modalai.com/voxl2-guides-onboard-offboard-sensors/#external-gps-mag--gnss was not giving me RTK corrections so I am now using the J9 connector on the 5G modem, and that works fine.
But another problem that I am facing is
Compass Sensor 0 missing
.
Do you think there's some setting of the default compass that was being picked up by PX4 with the M8N GPS that came with the drone? Where can I configure the compass? -
compass driver is started inside the voxl-px4 start-up script :
/usr/bin/voxl-px4-start
# Auto detect the magnetometer. If one or both of these devices # are not connected it will fail but not cause any harm. /bin/echo "Looking for qmc5883l magnetometer" qshell qmc5883l start -R 10 -X -b 1 /bin/echo "Looking for ist8310 magnetometer" qshell ist8310 start -R 10 -X -b 1
please note that both of these drivers are expecting the compass to be connected to the DSP i2c ports. We currently don't have compass driver that can run on the cpu side (unlike GPS). However, you could potentially splice the connection for GND, SDA, SCL and connect the i2c bus to J19 on VOXL2, so that you can use the DSP driver for the compass.. Is that an option for you?
-
Regarding the RTK corrections not working while GPS is connected to the DSP, I am assuming you have an RTK service that downloads the data from internet and sends a mavlink message with the corrections. That mavlink message needs to be consumed by the gps driver and rtk corrections forwarded to the GPS receiver via UART. If this is not happening, then perhaps the mavlink message never gets to the GPS driver inside the DSP, potentially being filtered out somewhere (mavlink manager?). I don't have deep enough knowledge there, maybe others can comment.
-
@Alex-Kushleyev But the RTK corrections come in when I connect the RTK to the 5G modem over J9. What do you think makes a difference here?
-
@SMRazaRizvi When you connect the GPS to J9, you start the GPS driver on the cpu side, so there is probably nothing that filters out the mavlink messages with corrections between the rtk mavlink service and your gps driver.
When starting GPS driver on the DSP, there may be a filter somewhere that prevents the rtk corrections mavlink message from reaching the DSP.
That is my guess
-
@Alex-Kushleyev I see.
I'll try to splice the connection for GND, SDA, and SCL and connect them to the J19 on VOXL2.In this case, should the GND, SDA, and SCL pins be connected to both the J9 on the 5G modem and the J19, or just to the J19?
-
@SMRazaRizvi just J19 for gnd, sda and scl.
Then you still have gnd, 3.3V, rx, tx going to GPS.
-
@Alex-Kushleyev Works like a magic!!
Thank you so much -
@SMRazaRizvi awesome..
I want to look into why running the GPS driver on the DSP did not result in RTK corrections getting through.. This would simplify your setup.
Can you please help me by telling me the topic name that is published by the RTK (rtcm) publishing app? I think it is just not going through to the DSP (being filtered out) for some reason. Also, just curious what app are you using to publish the mavlink messages with RTK (rtcm) corrections?
Alex
-
@Alex-Kushleyev Sure.
But currently, I've crashed my drone after it suddenly flipped 180 roll, and crashed on the ground while I was flying.
For some Here's the log:
https://review.px4.io/plot_app?log=2a41a57f-5028-4619-88dd-cebdde721026
Can you see what's the issue here?
-
I took a quick look, at the very end it looks like motor 2 (green) was commanded zero output
If the PWM range on VOXL2_IO is not calibrated properly, if the mixer is outputting zero, it could result in VOXL2_IO commanding low enough PWM to motor that can cause it to stop.
Can you please let me know if your motors are spinning right after you arm the vehicle (but before you raise the thrust), or they spin up only after you arm AND then raise the throttle stick?