light-nmea-micropython: 10x + faster NMEA parser with minimal RAM allocation #19436
Replies: 4 comments 4 replies
-
|
Roman, this looks excellent, well done! As for running this in MicroPython, it's so very close to being even easier to use - you have a >docker run -ti --rm micropython/unix
MicroPython v1.28.0 on 2026-05-26; linux [GCC 12.2.0] version
Type "help()" for more information.
>>> import mip
>>> mip.install("github:octaprog7/light-nmea-micropython")
Installing github:octaprog7/light-nmea-micropython/package.json to /root/.micropython/lib
Copying: /root/.micropython/lib/light_nmea/__init__.py
Copying: /root/.micropython/lib/light_nmea/conv_to_hrf.py
Copying: /root/.micropython/lib/light_nmea/nmea0183_parser.py
Copying: /root/.micropython/lib/light_nmea/nmea0183_stats.py
Copying: /root/.micropython/lib/light_nmea/nmea0183_stream.py
Done
>>> from light_nmea import LightNMEA
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: no module named 'light_nmea.LightNMEA'If you update your |
Beta Was this translation helpful? Give feedback.
-
|
Run this command in your PC terminal to download the package straight to your connected device: mpremote mip install github:octaprog7/light-nmea-micropythonTerminal Output: Hardware Execution TestTo verify the installation, execute your test script on the hardware using mpremote exec "exec(open('test_light_nmea.py').read())"Real Hardware Execution Log (ESP32): |
Beta Was this translation helpful? Give feedback.
-
Verification Script (
|
Beta Was this translation helpful? Give feedback.
-
|
@octaprog7 Some years ago I wrote an asynchronous GPS client which attempts to improve on the parsing efficiency of |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi everyone!
I wanted to share my new open-source library: light-nmea-micropython.
For years, micropyGPS was the only choice for MicroPython, but it’s slow (25 pps) and chokes the Garbage Collector with string allocations.
I built light_nmea specifically for 32-bit MCUs working with high-rate GNSS receivers (10-50 Hz):
https://github.com/octaprog7/light-nmea-micropython
Beta Was this translation helpful? Give feedback.
All reactions