How can data be read from the Holybro GPS M8N using a source other than PX4?

I am using the Holybro GPS M8N module on my PX4 board and can see all GPS data. However, I want to read GPS data on a Raspberry Pi and then send it externally to the PX4 board. (My purpose is to control the drone via VIO while verifying the accuracy of my VIO data using the GPS readings.)

First, I wanted to examine the GPS data using Arduino and Raspberry Pi Pico, so I wrote the necessary code. I successfully accessed and read data from the I2C compass, RGB LED, as well as an external switch and red LED controller. However, I am unable to read the GPS data correctly; instead, I receive meaningless characters. What could be the reason for this?

I tried different baud rates, and the result was the same in each case.

Arduino Code:

#define SER1_BAUDRATE 115200
#define SER2_BAUDRATE 57600

// 38400, 57600, 9600, 115200, 230400, 460800, 921600

char my_string[128];

void setup()
{
    Serial.begin(SER1_BAUDRATE);
    Serial2.begin(SER2_BAUDRATE);
}

void loop()
{
  if(Serial2.available() > 0)
  {
    byte a = Serial2.read();
    Serial.write(a);
  }
}

RPi pico Code:

#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/uart.h"

#define UART_ID uart1
#define UART_TX_PIN 4
#define UART_RX_PIN 5

const uint32_t baud_rates[] = {
    50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 
    4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 
    500000, 921600, 1000000, 1500000, 2000000, 3000000
};

#define NUM_BAUD_RATES (sizeof(baud_rates) / sizeof(baud_rates[0]))

int main() {
    stdio_init_all();
    sleep_ms(2000); 

    gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);
    gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);

    for (int i = 0; i < NUM_BAUD_RATES; i++) {
        uint32_t baud = baud_rates[i];
        uart_init(UART_ID, baud);
        printf("\n📡 Attempted Baud Rate: %d\nData: ", baud);
        sleep_ms(500);

        uint64_t start_time = to_ms_since_boot(get_absolute_time());
        
        while (to_ms_since_boot(get_absolute_time()) - start_time < 3000) {
            if (uart_is_readable(UART_ID)) {
                uint8_t c = uart_getc(UART_ID);
                printf("%c ", c); 
            }
        }

        printf("\n"); 
    }

    printf("\n✅ All baudrates tested.\n");
    while (1) sleep_ms(1000);
}

OUTPUT:


📡 Attempted Baud Rate: 110
Data: � � � � � 

📡 Attempted Baud Rate: 134
Data: � � � � � � � 

📡 Attempted Baud Rate: 150
Data: � � � � � � � � � � 

📡 Attempted Baud Rate: 200
Data: � � � � � � � � � � � � � � � 

📡 Attempted Baud Rate: 300
Data: � � � � � � � � � � � � � 

📡 Attempted Baud Rate: 600
Data: � � � � � � � � � � � � � � � � � � 

📡 Attempted Baud Rate: 1200
Data: � � � � � � � � � � � � � � � � � � 

📡 Attempted Baud Rate: 1800
Data: % � �  � D �  E  � � � � � � �    

📡 Attempted Baud Rate: 2400
Data:  �  �   
               �  �     � �  � � � "   �  �      � 

📡 Attempted Baud Rate: 4800
Data: �  �   �  � � � � � �  � �  � � & � � � � � � � � �  � 0 D �  � �  � � � �  � 

📡 Attempted Baud Rate: 9600
Data: B ! �  � �   � @ 2 �  � 0 � �  � , � �   � � �  � � 2 �  � � ` 2 �   , 2 �  � h 2 �  � h � �  � � 6 �  B � ` � �   x � �           x � �   � 2 �   h : �  � � � 2 �   h � �  � 0 

📡 Attempted Baud Rate: 19200
Data: | <  �             � � � | �  �  0  0 � � x <  �             �  ! l �   � #  h  x � � � ! � #  ` � � � |   �  0  0 � � x �  �      � � �  �    � � � J �  �   $  |  � h �   � "  h  | w H �  �  ! H  � � p |  �              � � @ �  �    H � � � @ < @ �  ! @  l w c � @ �  �  ! H � � � B �  �   $  ` � t \  �  0 0 0 � � t �  �  ! @   � � 

📡 Attempted Baud Rate: 38400
Data: � 
         � ! B B � 7 ! ! ! %  ! � � � � � � � � 
                                                 � - B B � 5 ! !  
                                                                   �   ! � 5 ! ! ! %  ! � � � ( M 
                                                                                                   � C B B � 5 ! ! ! %  ! � � � �  
                                                                                                                                    � ! B B � 7 ! ! ! %  ! � � � � � � M 
                                                                                                                                                                          � - B B � 5 ! ! ! %  ! � H � �  
                   � = B B � 7 ! ! ! %  ! � � � � M 
                                                     � - B B � 1 ! ! ! %  ! � H � � � 
                                                                                       � C B B � 3 ! ! ! %  ! �  � � � 
                                                                                                                        � ! B B � 1 ! ! ! %  ! � � � � � � � � 
                                                                                                                                                                � - B B � 3 ! ! ! %  ! �  � � � 
         � = B B � 1 ! ! ! %  ! � � � � ( � 
                                             � - B B � 3 ! ! ! %  ! � � � � �  
                                                                                � C B B � 3 ! ! ! %  ! � � � ( �  � 3 | 5 � G N � � � ! � M 
                                                                                                                                             � ! B B � 1 ! ! ! %  ! � H � � � H � �  
                                                                                                                                                                                      � - B B � 3 ! ! ! %  ! � � � (  
                               � = B B � 1 ! ! ! %  ! � � � � 

📡 Attempted Baud Rate: 57600
Data: � = /        � �        � ! ! � ! = k � � � � 1 /   � = /        � �        � ! ! � ! = C � � � ! =   � � 1 O   �     � �        � ! ! �   � � � � � 5 G        � �        � ! ! i   � � � � � 9 /        � �        � ! ! � ! 9 C � � � � 5 G       � �        � ! ! a ! 5 k � � � � = /       � �        �    ! = K � � � ! =   � � 1 /  �     � �        � ! ! 1 ! 1 k � � � � 5 G       � �        � ! ! � ! 5 k � � � � 9 /       � �        � ! ! ! ! 9 k � � � � 5 O      � �        � ! ! � ! 5 k � � � � 9 / i �      � �        � ! ! y ! 9 K � � � ! 9   � � = /  �     � �        � ! ! 1 ! = k � � � � 1 /       � �        � ! ! 1 ! 1 k � � � � 9 /       � �        � ! ! � ! 9 k � � � � % /      � �        � ! ! � ! % C � � � 

📡 Attempted Baud Rate: 115200
Data:  z � F ^ B a %     z X -  � <  z �  X B  � � *  B B B   H � -  � < H � B r   �  I �   � � � � � � ^ �  z R F � B a % �     z � -  � < H � B r   �  I H  8 � � � � � � � � 
                                                                                                                                                                                 � � � � � �  � � 
           � 
              � � � Z { 9  � �  y 
                                   � n n B � �  z r F � B  �     z � � � -  � < H � B r   !  I �  8 � � � � � � � 
 !  X � �  z � F � B  � �        z � -  � < H � B r   �  I � F � � � � � � � ~ �  z B F � B  � ( ! % !  z ( � �  H � B r   �  I  8 � � � � � � �  z � F � B  � � *  B B B   H h � �  H � B r   �  I � F � � � � � � � F  z R  B  � �     z ( � �  H � B r   o  I H  8 � � � � � � �  z b  B  �   z x � �             � �  R b  � � � � � � � �  H �  X � �  z �  B a ) �       z � � �  H � B r   a  R �  � � � � � � � �  z r  B  � ( ! % !  z � � �  H � B r   X ( 
  � � � � � � �  �  z �  B � R { � *  B B   H � � � �  H � B r   �  I H  � � � � � �  �  z B  B  � �     z � � �  H � B r   Z  I  8 � � � � � � � �  z b  B a +          z 8 � �  H � B r   �  I �  8 � � � � � � � / � � f � � �  � �  z �  B a + �     z x � �  H � B r   Z  I H  � � � � � � � �  z r  B a + ( ! %   z ( � �  H � B r   9  I �  8 � � � � � � � 

📡 Attempted Baud Rate: 230400
Data: � b   \    /   �  
     � � � � �  F � #       � b   \  � 0   �  
     � � � � �                     � � �         �     � b     ' ' ' ' r �   0    � � b   \  x 1   �  
     � � � � �  � � 
                                     � � �         �    b  1     ' ' R � b   \  @ 2   �  
     � � � � �  � �                  � � �         �    b  2     ' ' s � b   \  3   �  
     � � � � �  F � #                 � � �       �  �       ' ' ' ' � � b   \  � 3   �  
     � � � � � �  � /                 � � �         �   �  3  '    ' � � b   \  � 4   �  
     � � � � �                     � � �       �  �    � �    ' ' '    ^ �    4    � � b   \  ` 5   �  
     � � � � �  � � 
                                     � � �       �  �     `   ' ' ' ' ' � b   \  ( 6   �  
     � � � � �  � �                  � � �      @ �  �    b (     ' ' '  � b   \  � 6   �  
     � � � � �  F � #                 � � �         �    b  6     ' '  � b   \  � 7   �  
     � � � � � �  � /                 � � �      @ �  �   �      ' ' ' 8 � b 
         <   �           � �   _  �     � � �   
 
  
          � �  5   �    � o  � � �   � b   \  � 8   �  
     � � � � �                     � � �       �  �     �    ' ' ' '   J �        � � b   \  H 9   �  
     � � � � �  � � 
                                     � � �         �    b  9      ' z � b   \   :   �  
     � � � � �  � �                  � � �         �    b     ' ' ' ' � b   \  � :   �  
     � � � � �  F � #                 � � �         �    b  :      ' � � b   \  � ;   �  
     � � � � � �  � /                 � � �       �  �   >  ;      ' � 

📡 Attempted Baud Rate: 460800
Data: f  � f  ~ � � f  � � � �   � ~  � �  `   � f ` � � � � f  � f  ~ � � f   � �   � ~  � �  `   � f ` � � � � �  x �  �  � `     �  �        �        � � �  f  � f  ~ � � f  � � � �   � ~  � �  `   � f ` � � � � � � ~ � � � � `    � � `       �   �   � ` � � � � f f  � f  ~ � � f   f  f   � ~  � �  `   � x ` � � � � �       `    � � �        �   �   �   � � ~  �       � � � f  � f  ~ � � f  � `  f   � ~  � �  `   � x ` � � � � �   � � � � `    � �  ~        � �      � � � � f  � f  ~ � � f    �  �  � ~  � �  `   � x ` � � � � �  ` � ~ ~  `     �  ~      � �     � � � � � �  f  � f  ~ � � f  � �  �  �  � ~  � �  `   � x ` � � � � �  x �  � `    � � f      �  � �       � � � f  � f  ~ � � f   � � f   � ~  � �  `   � x ` � � � � � � ~ � � � � `     �          � � �   �  � � � � f  � f  ~ � � f  �   f   � ~  � �  `   � ~ ` � � � � �       `    � � �       � � �    � `  � � � �        �  f  � f  ~ � � f   f �  �  � ~  � �  `   � ~ ` � � � � �   � � � � `     �        � �     ` ` � � � � ~ f  � f  ~ � � f  � � f �  �  � ~  � �  `   � ~ ` � � � � �  ` � ~ ~ `    � � x      �  � �       � � � f  � f  ~ � � f   x  f   � ~  � �  `   � ~ ` � � � � �  x �  �  `     �          � � �   �  � � � � f  � f  ~ � � f  � f `  �  � ~  � �  `   � ~ ` � � � � � � ~ � � � � `    � �         � �    � � � � � � f  � f  ~ � � f     f   � ~  � �  `   � � ` � � � � �       `     �  ~        � �      � � � �        � � x f  � f  ~ � � f  � � � �  �  � ~  � �  `   � � ` � � � � �   � � � �    � �       �  � �    � � � � � � f  � f  ~ � � f   �  f   � ~  � �  `   � � ` � � � � �  ` � ~ ~  `     �          � �   ` �  � � � � 

📡 Attempted Baud Rate: 500000
Data: � �  <   �  � �     �   � � ? �         �  � � �  <   �  � �    �     � � ? �         �  � � � �    �     � �         �         � � � �       � � � � �  <   �  � �   � �     � � ? �         �  � � � �   � �     � �               �  � 
                                                         � � � � �  <   �  � �   � �     � � ? �         �  � � � �  � � �      �                   � �  � �  <   �  � �        � � ? �         �  � � � �  � 0  �     � � �         
                                                 �   � 
                                                        � � � � �  <   �  � �    �     � � ? �         �  � � � � � � � �      �              �   �  � � � � �  <   �  � �   �     � � ? �         �  � � � �     �     � � �        �  
                                                      � �          � � � � �  <   �  � �    � �  �  � � ? �         �  � � � �    �      �        � 
                                                                                                                                                        � �     � � � �  <   �  � �    3    � � ? �         �  � � � �  � � � �     � �         �  
                                                               <  � �  �  � �  <   �  � �     3    � � ? �         �  � � � �  �  �      �         �  
                                                                                                                                                         �   � �    � �  <   �  � �   �  �  �  � � ? �         �  � � � � � �  �     � � �       � 
                                                                <  � �   � � �  <   �  � �   �  �  �  � � ? �         �  � � � �    �      � �       �     �   � 
                                                                                                                                                                  � �   �     �  � �  <   �  � �    � �  �  � � ? �         �  � � � �   � �     � �             �   � � �   � �  <   �  � �    � 3    � � ? �         �  � � � �  � � �      �         �  
                                                                                                                                                                      �   � �    � �  <   �  � �    � �  �  � � ? �         �  � � � �  �  �      � �       �      <     � � � �  <   �  � �   � 3    � � ? �         �  � � � � � �  �       � �        �  
                                                                                                                                                                       �  �  � � � � 

📡 Attempted Baud Rate: 921600
Data: x  � �  x   �   x    � x  x   � � �  � x  � �   x  � �  x   �   x     � � x    � � �  � x  � �   x    � x      x �  x        �  �   x x  �   � � � � x  � �  x   �   x    � � x    � � �  � x  � �   x    � � �      � �           �   � x �   � � � � � x  � �  x   �   x    x � � � x    � � �  � x  � �   x   �       � �         � � �       �  � � x x      � � � x  � �  x   �   x    x  x    � � �  � x  � �   x  x �  � �      � �         x �  �   �    �  � � � x  � �  x   �   x    � x � x    � � �  � x  � �   x  x  � �      � �        x  � �      x �   � � x  � �  x   �   x    � x    � � �  � x  � �   x  x �  � � x      x �          �     �   x �   � � x  � �  x   �   x    � � x    � � �  � x  � �   x  x �  � �      � �          � � �   � �  �   � � x  � �  x � x  x �   �    � x         x   � � � � x   � �    � �   �   �  x  x x  �  � � � �   � x  � �  x   �   x    � � x    � � �  � x  � �   x  �   �       x �          �       x � �   �    x    � � x  � �  x   �   x    x   x    � � �  � x  � �   x  � � � �      � �         � �  �   � x    � � � x  � �  x   �   x    � x  x    � � �  � x  � �   x  �  � �      � �  �       � �     x x    � � � x x  � �  x   �   x    � x  x    � � �  � x  � �   x  �  � x      x �  x       x �  �   � x  �   � � � x  � �  x   �   x    � �  x    � � �  � x  � �   x  �  � �      � �  x       x �     � x  �   � �  x  � �  x   �   x    x �  x    � � �  � x  � �   x  � � �       � �  x       � �  �    x  �   � � � � x     � � x  � �  x   �   x    x  � x    � � �  � x  � �   x  � � � �      � �         x �  �   x x  �   � �  x  � �  x   �   x     x  � x    � � �  � x  � �   x  � � �      � �        x  �  �      �   � � � 

📡 Attempted Baud Rate: 1000000
Data: � < � �   � <  �   � <   � � < � � <   � � �   �   � < � �   � <  �   � <   � �  � <   � � �   �      �   �        �  �       �       � <  �  �    � <   �    � � � < � �   � <  �   � <   � �  � � <   � � �   �      �  �        �  �        � �     �  �   � �   � � < � �   � <  �   � <    � � <   � � �   �      �   � �        �  <              � �   �    � � � < � �   � <  �   � <   � � � � � <   � � �   �      �  �        �  �       � �  �      � � �   � � � < � �   � <  �   � <    � � � <   � � �   �      �   � �       �  �       �  �     � �    �   � � � < � �   � <  �   � <    � � � � � <   � � �   �       �        �          �     �   �   � � �   �      � �  � < � �   � <  �   � <     � � <   � � �   �      �   �        �          �      � � <    �   �  � < � �   � <  �   � <   �  � � <   � � �   �      �  � �        �         �   �        �   �  � < � �   � <  �   � <   � � � � � <   � � �   �      �  �        �  �       � �     � �  <   � �   � < � �   � <  �   � <   � � � � � <   � � �   �      �  � � �      �  <             � �  <   � � � � � < � �   � <  �   � <    � � � <   � � �   �      �   �        �  �       �       � <    � � �   �   �   � �  � < � �   � <  �   � <   � � � <   � � �   �      �    �        � � �             � � <  �  �    � � < � �   � <  �   � <    � <   � � �   �      �     �        �  �         �      � � �    � �    � < � �   � <  �   � <    �  � <   � � �   �      �   �        �          �       � �    � �    � < � �   � <  �   � <   � < �  � <   � � �   �      �  � � �      �  �              �  < �    �  � < � �   � � �  � �       � �         �   � � � � �   �  � �     � � <  �  �  �  � �  � � � �    

📡 Attempted Baud Rate: 1500000
Data: � � � �   � �  �   � �    �  � �   � � �   �    � � � �   � �  �   � �   � � � � � �   � � �   �      � � �        � � �      �      �  �   � �    � � � �   � �  �   � �     � � �   � � �   �      �   � �       �  �         �     � �   � � �   � � � � �   � �  �   � �   � � � �   � � �   �      �    �        �         �      � � �  �  �    � �   �    � � � � � � �   � �  �   � �    � � � �   � � �   �      �  � �        �  �       �       �   �     � � � � �   � �  �   � �     � �   � � �   �      �    �        �  �        �        �    �      � � � �   � �  �   � �   � � �  � �   � � �   �      � � �        �  �         �     �  �  � �   � � � � �   � �  �   � �     � � �   � � �   �      �   � �       �  �        �       �        � � � � �   � �  �   � �   �  � � �   � � �   �      �   �        �  �       �  �     � �     � �   � �  �    � � � � � �   � �  �   � �   � � � � �   � � �   �      �  � �        �  �        �  �   � �  �  � �    � � � �   � �  �   � �   �  � �   � � �   �      �  �  �        �  �              � � �  � � � �   � � � �   � �  �   � �   � � � � �   � � �   �      �   �        �  �             �    �   �   � � � � �   � �  �   � �     � �   � � �   �      �  � � � �       �  �        �       � �        � � � �   � �  �   � �   �  � �   � � �   �      �   � �        �  �               �       � � �   �    � � � � � �   � �  �   � �    � � �   � � �   �      �   � �        �                � �   �    �  � � � �   � �  �   � �   �  �   � � �   �      �    � �        �           �       � � �  � �    

1 Like