Skip to content

Fix GPS Buffer full issue on NRF52480 (Seeed T1000E)#8956

Merged
thebentern merged 1 commit into
meshtastic:masterfrom
fifieldt:bug-5767
Dec 12, 2025
Merged

Fix GPS Buffer full issue on NRF52480 (Seeed T1000E)#8956
thebentern merged 1 commit into
meshtastic:masterfrom
fifieldt:bug-5767

Conversation

@fifieldt

@fifieldt fifieldt commented Dec 12, 2025

Copy link
Copy Markdown
Member

We set the buffer size to 1024 on NRF52480, less than other platforms:

esp32.ini: -DSERIAL_BUFFER_SIZE=4096
esp32c6.ini: -DSERIAL_BUFFER_SIZE=4096
nrf52.ini: -DSERIAL_BUFFER_SIZE=1024

However, 115200 baud, like the T1000e uses is about 12 times that - almost 15 bytes per millisecond. 15 bytes * 200 millisecond (our GPS poll rate) = 3000 bytes, which is longer than our buffer on the nrf52 platform. This causes "GPS Buffer full" errors on the T1000e and other devices based on NRF52480 with newer GPS chips.

This patch increases SERIAL_BUFFER_SIZE for nrf52480 to 4096 to align with other platforms. It keeps the original 1024 for the nrf52832, which has fewer resources.

Fixes #5767

🤝 Attestations

  • I have tested that my proposed changes behave as described.
  • I have tested that my proposed changes do not cause any obvious regressions on the following devices:
    • Heltec (Lora32) V3
    • LilyGo T-Deck
    • LilyGo T-Beam
    • RAK WisBlock 4631
    • Seeed Studio T-1000E tracker card
    • Other (please specify below)

We set the buffer size to about a byte on NRF52480, less than
other platforms:

esp32.ini:  -DSERIAL_BUFFER_SIZE=4096
esp32c6.ini:  -DSERIAL_BUFFER_SIZE=4096
nrf52.ini:  -DSERIAL_BUFFER_SIZE=1024

However, 115200 baud, like the T1000e uses is about 12 times that
- almost 15 bytes per millisecond.
15 bytes * 200 millisecond (our GPS poll rate)  = 3000 bytes, which is longer than our buffer
on the nrf52 platform. This causes "GPS Buffer full" errors on the T1000e
and other devices based on NRF52480 with newer GPS chips.

This patch increases SERIAL_BUFFER_SIZE for nrf52480 to 4096 to align with
other platforms. It keeps the original 1024 for the nrf52832, which has
fewer resources.

Fixes meshtastic#5767
@fifieldt

fifieldt commented Dec 12, 2025

Copy link
Copy Markdown
Member Author

This setting has been tested long-term (1 month continuous) on the T1000E by @cmastro25 who confirms it fixes the issue and introduces no other problems.

@fifieldt fifieldt added the bugfix Pull request that fixes bugs label Dec 12, 2025
@thebentern thebentern changed the base branch from develop to master December 12, 2025 22:21
@thebentern thebentern merged commit f127702 into meshtastic:master Dec 12, 2025
77 of 82 checks passed
horrible-knots pushed a commit to horrible-knots/firmware that referenced this pull request Dec 13, 2025
We set the buffer size to about a byte on NRF52480, less than
other platforms:

esp32.ini:  -DSERIAL_BUFFER_SIZE=4096
esp32c6.ini:  -DSERIAL_BUFFER_SIZE=4096
nrf52.ini:  -DSERIAL_BUFFER_SIZE=1024

However, 115200 baud, like the T1000e uses is about 12 times that
- almost 15 bytes per millisecond.
15 bytes * 200 millisecond (our GPS poll rate)  = 3000 bytes, which is longer than our buffer
on the nrf52 platform. This causes "GPS Buffer full" errors on the T1000e
and other devices based on NRF52480 with newer GPS chips.

This patch increases SERIAL_BUFFER_SIZE for nrf52480 to 4096 to align with
other platforms. It keeps the original 1024 for the nrf52832, which has
fewer resources.

Fixes meshtastic#5767
@drupol

drupol commented Dec 15, 2025

Copy link
Copy Markdown

Should we do the same for the wismesh tag or it is not necessary?

@fifieldt

fifieldt commented Dec 15, 2025

Copy link
Copy Markdown
Member Author

Should we do the same for the wismesh tag or it is not necessary?

Hi @drupol , the wismesh tag will also have its buffer extended by this change. However, it looks like the gps module in the tag, wishmesh tag, only uses 9600 baud, so it wouldn't have been affected by the bug.

@drupol

drupol commented Dec 15, 2025

Copy link
Copy Markdown

Thank you.

scobert969 pushed a commit to zeropt/meshtastic-firmware that referenced this pull request Dec 22, 2025
We set the buffer size to about a byte on NRF52480, less than
other platforms:

esp32.ini:  -DSERIAL_BUFFER_SIZE=4096
esp32c6.ini:  -DSERIAL_BUFFER_SIZE=4096
nrf52.ini:  -DSERIAL_BUFFER_SIZE=1024

However, 115200 baud, like the T1000e uses is about 12 times that
- almost 15 bytes per millisecond.
15 bytes * 200 millisecond (our GPS poll rate)  = 3000 bytes, which is longer than our buffer
on the nrf52 platform. This causes "GPS Buffer full" errors on the T1000e
and other devices based on NRF52480 with newer GPS chips.

This patch increases SERIAL_BUFFER_SIZE for nrf52480 to 4096 to align with
other platforms. It keeps the original 1024 for the nrf52832, which has
fewer resources.

Fixes meshtastic#5767
jeek pushed a commit to jeek/Meshtastic-Exploiteers-Hacker-Pager that referenced this pull request Jun 30, 2026
We set the buffer size to about a byte on NRF52480, less than
other platforms:

esp32.ini:  -DSERIAL_BUFFER_SIZE=4096
esp32c6.ini:  -DSERIAL_BUFFER_SIZE=4096
nrf52.ini:  -DSERIAL_BUFFER_SIZE=1024

However, 115200 baud, like the T1000e uses is about 12 times that
- almost 15 bytes per millisecond.
15 bytes * 200 millisecond (our GPS poll rate)  = 3000 bytes, which is longer than our buffer
on the nrf52 platform. This causes "GPS Buffer full" errors on the T1000e
and other devices based on NRF52480 with newer GPS chips.

This patch increases SERIAL_BUFFER_SIZE for nrf52480 to 4096 to align with
other platforms. It keeps the original 1024 for the nrf52832, which has
fewer resources.

Fixes meshtastic#5767
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix Pull request that fixes bugs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: GPS Buffer full

3 participants