<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Using M5Stack GPS Module v2.1 (ATGM336H) with Raspberry Pi Pico — No UART Output]]></title><description><![CDATA[<p dir="auto"><strong>Context</strong></p>
<p dir="auto">I am trying to use the M5Stack GPS Module v2.1 (ATGM336H) as a standalone UART GPS device with a Raspberry Pi Pico (MicroPython), not with an M5Stack host device.</p>
<p dir="auto"><strong>Goal</strong></p>
<p dir="auto">My goal is simply to read raw NMEA sentences over UART.<br />
I want to receive standard NMEA output (e.g. $GNGGA, $GNRMC) from the module on a Pico UART RX pin.</p>
<p dir="auto"><strong>Hardware Setup</strong></p>
<p dir="auto">GPS Module: M5Stack GPS Module v2.1 (ATGM336H)<br />
Microcontroller: Raspberry Pi Pico (MicroPython)</p>
<p dir="auto"><strong>Connections:</strong></p>
<p dir="auto">GPS Module Pin 28 (5V) → Pico VBUS<br />
GPS Module Pin 1 (GND) → Pico GND<br />
GPS Module TX pin (various tested) → Pico GP1 (UART RX)</p>
<p dir="auto"><strong>Software (Pico / MicroPython)</strong></p>
<p dir="auto">from machine import UART, Pin<br />
import time</p>
<p dir="auto">uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))</p>
<p dir="auto">print("Listening...")</p>
<p dir="auto">while True:<br />
data = uart.read()<br />
if data:<br />
print(repr(data))<br />
time.sleep(0.1)</p>
<p dir="auto">Also tested at 115200 baud.</p>
<p dir="auto"><strong>What I Have Verified</strong></p>
<p dir="auto">5V is present at the module (measured with multimeter)<br />
Ground is correctly connected<br />
Pico UART is working (used successfully in another part of the project)<br />
SMA antenna is connected<br />
Tested both 9600 and 115200 baud<br />
Tested multiple DIP switch configurations (one switch ON at a time)</p>
<p dir="auto">Pins Tested for GNSS_TX (based on docs):</p>
<p dir="auto">Pin 13<br />
Pin 15<br />
Pin 22<br />
Pin 26<br />
Pin 2</p>
<p dir="auto"><strong>Observed Behavior</strong></p>
<p dir="auto">At 9600 baud: I consistently receive a single byte: <em>b'\xff'</em><br />
At 115200 baud: no data at all<br />
No readable NMEA sentences are ever received</p>
<p dir="auto"><strong>Understanding / Confusion</strong></p>
<p dir="auto">From the documentation and schematic:</p>
<p dir="auto">GNSS_TX is routed via DIP switch to M-Bus pins marked GNSS_TX(SW)<br />
DIP switch labels reference host GPIO (e.g. G1, G3, G17, etc.), not M-Bus pin numbers<br />
It is unclear how DIP switch positions map directly to M-Bus physical pins for standalone use.</p>
<p dir="auto"><strong>Questions</strong></p>
<p dir="auto">What is the exact DIP switch configuration required to expose GNSS_TX on a specific M-Bus pin (e.g. pin 13 or 15)?<br />
Which M-Bus pin should be used for GNSS_TX when using the module outside of the M5Stack ecosystem?<br />
What is the correct default baud rate for this module (9600 vs 115200)?<br />
Does the module require any initialisation or enable signal before UART output begins?<br />
Is there any known issue using this module standalone (without an M5 host)?</p>
<p dir="auto"><strong>Goal Clarification</strong></p>
<p dir="auto">I am not trying to configure or parse GPS data yet — I only need to confirm that raw UART NMEA output is present.</p>
<p dir="auto">Any guidance on correct DIP switch configuration and TX pin mapping for standalone use would be greatly appreciated!</p>
]]></description><link>https://community.m5stack.com/topic/8172/using-m5stack-gps-module-v2-1-atgm336h-with-raspberry-pi-pico-no-uart-output</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 01:34:37 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/topic/8172.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Apr 2026 10:32:30 GMT</pubDate><ttl>60</ttl></channel></rss>